MCP server for Baserow API integration - Enable AI assistants to interact with Baserow databases
Overview
An MCP (Model Context Protocol) server that provides seamless integration between MCP-compatible clients (Claude Desktop, Cursor, Windsurf, etc.) and Baserow, enabling AI-powered database operations through natural language. - : Automatic token refresh with credentials or manual JWT/database tokens - : List, create, and manage Baserow workspaces - : Full control over databases within workspaces - : Create, list, and manage tables with field definitions - : Complete Create, Read, Update, Delete functionality - : Efficient bulk operations for creating, updating, and deleting rows - : Pagination, filtering, and sorting support - : Use plain English to interact with your databases - Node.js v22+ (install via nvm) - An MCP-compatible client: - Claude Desktop - Cursor - Windsurf - Any other MCP-compatible AI editor - Baserow account (self-hosted or cloud) 3. : Edit .
README
Baserow MCP Server
An MCP (Model Context Protocol) server that provides seamless integration between MCP-compatible clients (Claude Desktop, Cursor, Windsurf, etc.) and Baserow, enabling AI-powered database operations through natural language.
🚀 Features
- 🔐 Smart Authentication: Automatic token refresh with credentials or manual JWT/database tokens
- 🏢 Workspace Management: List, create, and manage Baserow workspaces
- 🗄️ Database Operations: Full control over databases within workspaces
- 📊 Table Management: Create, list, and manage tables with field definitions
- 📝 Row CRUD Operations: Complete Create, Read, Update, Delete functionality
- ⚡ Batch Operations: Efficient bulk operations for creating, updating, and deleting rows
- 🔍 Advanced Queries: Pagination, filtering, and sorting support
- 💡 Natural Language: Use plain English to interact with your databases
📋 Prerequisites
- Node.js v22+ (install via nvm)
- An MCP-compatible client:
- Claude Desktop
- Cursor
- Windsurf
- Any other MCP-compatible AI editor
- Baserow account (self-hosted or cloud)
🛠️ Installation
-
Clone the repository:
git clone https://github.com/ayyazzafar/mcp-baserow.git cd mcp-baserow -
Install dependencies:
npm install -
Configure authentication:
cp .env.example .envEdit
.envand add your credentials:# Recommended: Use credentials for automatic token refresh [email protected] BASEROW_PASSWORD=your_password # Optional: Override default API URL for self-hosted instances # BASEROW_API_URL=https://your-baserow-instance.com -
Build the project:
npm run build
🔑 Authentication Options
Option 1: Username/Password (Recommended)
Provides automatic token refresh and full API access:
[email protected]
BASEROW_PASSWORD=your_password
Option 2: JWT Token
For manual token management (expires after 60 minutes):
BASEROW_API_TOKEN=JWT_your_jwt_token_here
Option 3: Database Token
For database-specific operations (limited scope, never expires):
BASEROW_API_TOKEN=Token_your_database_token_here
⚙️ Configuration
MCP Client Setup
- Restart your MCP client
📚 Usage Examples
Natural Language Commands
Once configured, you can use natural language in your MCP client:
- “Show me all my Baserow workspaces”
- “Create a new database called ‘Project Tracker’ in my workspace”
- “List all tables in the Project Tracker database”
- “Add a new row to the Tasks table with title ‘Review PR’ and status ‘In Progress’”
- “Update row 5 in the Tasks table to mark it as completed”
- “Delete all rows in the Archive table that are older than 30 days”
Available MCP Tools
🧪 Development
Setup Development Environment
# Install dependencies
npm install
# Run TypeScript compiler in watch mode
npm run dev
# Run tests (when available)
npm test
Project Structure
mcp-baserow/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── auth-manager.ts # Authentication handling
│ ├── baserow-client.ts # Baserow API client
│ ├── tools/ # MCP tool implementations
│ │ ├── auth.ts # Authentication tools
│ │ ├── workspace.ts # Workspace operations
│ │ ├── database.ts # Database operations
│ │ ├── table.ts # Table operations
│ │ └── row.ts # Row CRUD operations
│ └── types/ # TypeScript type definitions
├── dist/ # Compiled JavaScript
├── examples/ # Usage examples
└── tests/ # Test files
🤝 Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Quick Start for Contributors
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
📝 Changelog
See CHANGELOG.md for a list of changes in each version.
🐛 Troubleshooting
Common Issues
-
“Authentication failed”
- Verify your credentials in
.env - Ensure your Baserow account is active
- Check if you’re using the correct API URL
- Verify your credentials in
-
“No workspace_id provided”
- Use
baserow_set_workspaceto set an active workspace - Or provide
workspace_idparameter in database operations
- Use
-
“Server disconnected”
- Check your MCP client’s logs:
- Claude Desktop:
~/Library/Logs/Claude/mcp-server-baserow.log - Other clients: Check their respective log locations
- Claude Desktop:
- Ensure Node.js v22+ is installed
- Verify all dependencies are installed
- Check your MCP client’s logs:
Debug Mode
Enable debug logging by setting:
export DEBUG=baserow:*
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Anthropic for the MCP specification
- Baserow for the excellent open-source database platform
- The MCP community for examples and best practices
🔗 Links
Made with ❤️ by the open-source community
Install
This server does not publish a one-line install command.
Open the repository installation guide New to MCP? Start with the mcpskill.org guide →Configuration
{
"mcpServers": {
"baserow": {
"command": "/path/to/mcp-baserow/start.sh"
}
}
}