mcp-baserow
MCP server for Baserow API integration - Enable AI assistants to interact with Baserow databases
GitHub Stars
1
User Rating
Not Rated
Favorites
0
Views
3
Forks
4
Issues
1
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 .env
Edit
.env
and add your credentials:# Recommended: Use credentials for automatic token refresh BASEROW_USERNAME=your@email.com 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:
BASEROW_USERNAME=your@email.com
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
Claude Desktop
Open configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
Add the Baserow server:
{ "mcpServers": { "baserow": { "command": "/path/to/mcp-baserow/start.sh" } } }
Cursor
- Open Cursor settings
- Navigate to MCP Servers section
- Add:
{ "baserow": { "command": "/path/to/mcp-baserow/start.sh" } }
Windsurf
- Open Windsurf configuration
- Add to MCP servers:
{ "baserow": { "command": "/path/to/mcp-baserow/start.sh" } }
- 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
Authentication Tools (3)
baserow_auth_status
- Check authentication status and capabilitiesbaserow_auth_login
- Login with credentialsbaserow_auth_set_token
- Manually set JWT or database token
Workspace Tools (4)
baserow_list_workspaces
- List all workspacesbaserow_get_workspace
- Get workspace detailsbaserow_create_workspace
- Create new workspacebaserow_set_workspace
- Set active workspace for operations
Database Tools (3)
baserow_list_databases
- List databases in workspacebaserow_get_database
- Get database detailsbaserow_create_database
- Create new database
Table Tools (3)
baserow_list_tables
- List tables in databasebaserow_get_table
- Get table with field definitionsbaserow_create_table
- Create new table
Row Operations (8)
baserow_list_rows
- List rows with pagination/filteringbaserow_get_row
- Get single row by IDbaserow_create_row
- Create new rowbaserow_update_row
- Update existing rowbaserow_delete_row
- Delete rowbaserow_batch_create_rows
- Create multiple rowsbaserow_batch_update_rows
- Update multiple rowsbaserow_batch_delete_rows
- Delete multiple rows
π§ͺ 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_workspace
to set an active workspace - Or provide
workspace_id
parameter 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
I am Frontend and Backend Web Developer with more than 12 years of experience. I love to learn new skills. Django, PHP & MySQL, Angular, Node.js, Python
20
Followers
96
Repositories
20
Gists
0
Total Contributions