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

README
Baserow MCP Server

MCP
License: MIT
TypeScript
Node.js

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
πŸ› οΈ Installation
  1. Clone the repository:

    git clone https://github.com/ayyazzafar/mcp-baserow.git
    cd mcp-baserow
    
  2. Install dependencies:

    npm install
    
  3. 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
    
  4. 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
  1. 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
  2. Add the Baserow server:

    {
      "mcpServers": {
        "baserow": {
          "command": "/path/to/mcp-baserow/start.sh"
        }
      }
    }
    
Cursor
  1. Open Cursor settings
  2. Navigate to MCP Servers section
  3. Add:
    {
      "baserow": {
        "command": "/path/to/mcp-baserow/start.sh"
      }
    }
    
Windsurf
  1. Open Windsurf configuration
  2. Add to MCP servers:
    {
      "baserow": {
        "command": "/path/to/mcp-baserow/start.sh"
      }
    }
    
  1. 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 capabilities
  • baserow_auth_login - Login with credentials
  • baserow_auth_set_token - Manually set JWT or database token
Workspace Tools (4)
  • baserow_list_workspaces - List all workspaces
  • baserow_get_workspace - Get workspace details
  • baserow_create_workspace - Create new workspace
  • baserow_set_workspace - Set active workspace for operations
Database Tools (3)
  • baserow_list_databases - List databases in workspace
  • baserow_get_database - Get database details
  • baserow_create_database - Create new database
Table Tools (3)
  • baserow_list_tables - List tables in database
  • baserow_get_table - Get table with field definitions
  • baserow_create_table - Create new table
Row Operations (8)
  • baserow_list_rows - List rows with pagination/filtering
  • baserow_get_row - Get single row by ID
  • baserow_create_row - Create new row
  • baserow_update_row - Update existing row
  • baserow_delete_row - Delete row
  • baserow_batch_create_rows - Create multiple rows
  • baserow_batch_update_rows - Update multiple rows
  • baserow_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
  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request
πŸ“ Changelog

See CHANGELOG.md for a list of changes in each version.

πŸ› Troubleshooting
Common Issues
  1. "Authentication failed"

    • Verify your credentials in .env
    • Ensure your Baserow account is active
    • Check if you're using the correct API URL
  2. "No workspace_id provided"

    • Use baserow_set_workspace to set an active workspace
    • Or provide workspace_id parameter in database operations
  3. "Server disconnected"

    • Check your MCP client's logs:
      • Claude Desktop: ~/Library/Logs/Claude/mcp-server-baserow.log
      • Other clients: Check their respective log locations
    • Ensure Node.js v22+ is installed
    • Verify all dependencies are installed
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

Author Information
Ayyaz Zafar

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

@AyyazSolutions

20

Followers

96

Repositories

20

Gists

0

Total Contributions