AM

ayyazzafar/mcp-baserow

Developer tools
13 stars 11 forks Quality 72 Trend 24MIT

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

🛠️ 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
    [email protected]
    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

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

  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

🧪 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

Made with ❤️ by the open-source community

View the full README on GitHub

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" } } }