Baserow Streamable MCP
Provides tools for interacting with Baserow, including listing accessible databases and tables, and creating up to 200 rows per request using user-facing field names.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Baserow Streamable MCPList my accessible Baserow tables and add a row called 'Q3 planning' to the first one."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Baserow Streamable MCP
A remote MCP server for Baserow using Streamable HTTP and the Baserow REST API.
This repository provides a generic Baserow MCP server with discovery, schema inspection, paginated reads, filtering, sorting, search, batch CRUD, safe upsert, and relation helpers.
Tools
list_databases()derives accessible database IDs and table counts from the token-visible tables. Database names arenullbecause Baserow's Database Token discovery endpoint does not return them.list_tables()lists every table accessible to the Database Token across its workspace.get_table_schema(table_id)lists field definitions for a table.get_row(table_id, row_id)gets one row using user-facing field names.list_rows(table_id, page?, size?)returns a paginated row page; defaults to 50 and caps at 200 rows.search_rows(table_id, search, page?, size?)searches rows and returns one paginated page.filter_rows(table_id, filters, filter_type?, order_by?, page?, size?)applies Baserow filters and field-ID sorting.create_rows(table_id, rows)creates up to 200 rows using user-facing field names.update_rows(table_id, rows, dry_run?)updates up to 200 rows; every row must include itsid.upsert_rows(table_id, match_field_id, records, dry_run?)creates or updates rows and rejects non-unique matches.set_linked_rows(table_id, row_id, field_name, linked_row_ids, dry_run?)replaces a link-row relation after schema validation.delete_rows(table_id, row_ids, dry_run?)deletes up to 200 rows.
Set dry_run: true on these tools to return the planned mutation without changing Baserow. create_rows and every other mutating tool are audit logged whether they succeed or fail. Audit entries contain operation metadata and row IDs, but never Baserow tokens or row values.
Table schemas are cached in memory for 60 seconds. Relation writes use that cache to verify that the requested field exists and is a link_row field.
Database Tokens are workspace-scoped and Baserow exposes a token-specific all-tables endpoint. Its response contains each table's database_id, allowing database IDs to be discovered and grouped without a JWT. It does not include database names, so the server returns name: null rather than inventing a value or requiring short-lived user authentication.
The Baserow calls follow these API contracts:
GET /api/database/tables/all-tables/for token-visible table discovery.GET /api/database/fields/table/{table_id}/for table schema.GET /api/database/rows/table/{table_id}/...for individual and paginated row reads.POST|PATCH /api/database/rows/table/{table_id}/batch/for batch create/update.POST /api/database/rows/table/{table_id}/batch-delete/for batch deletion.
Related MCP server: AppFlowy Cloud MCP Server
Requirements
Node.js 22 or later
A Baserow Database Token with the required table permissions
Run locally
cp .env.example .env
# Edit .env and set a long random MCP_AUTH_TOKEN, then export it into the shell.
set -a && . ./.env && set +a
npm install
npm run build
npm startThe MCP endpoint is http://127.0.0.1:7317/mcp by default.
Run with Docker Compose
cp .env.example .env
# Edit .env, then start the service.
docker network create mcp-network 2>/dev/null || true
docker compose up --build -dThe container is named baserow-streamable-mcp and joins the external mcp-network network so another container can reach it at http://baserow-streamable-mcp:7317/mcp. The Compose example also publishes the port on the host loopback interface, persists the audit log in the audit-data volume, and checks GET /health. To reach a self-hosted Baserow service by Docker service name, attach this service to the same external Docker network and set BASEROW_URL accordingly.
Every /mcp request must include Authorization: Bearer <MCP_AUTH_TOKEN>. The unauthenticated GET /health endpoint returns only the service name, version, and status. For remote access, also place the server behind HTTPS; bearer authentication does not encrypt traffic.
Configuration
Variable | Required | Default | Description |
| Yes | — | Baserow origin, such as |
| Yes | — | Baserow Database Token |
| Yes | — | Bearer token required by every request to |
| No |
| Bind address; use |
| No |
| HTTP port |
| No |
| Baserow request timeout |
| No |
| Append-only JSONL audit log path |
| No |
| Minimum structured log level: |
Development
npm run typecheck
npm test
npm run buildSecurity
Never commit
.envor tokens.The Baserow token is sent only in the
Authorization: Token ...header.The server binds to localhost by default.
/mcpuses constant-time bearer-token comparison and rejects missing or invalid credentials./healthintentionally does not test Baserow or reveal configuration data.Structured operational logs go to stderr; mutation audit records go to the configured JSONL file.
Configure HTTPS before remote production use.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Query, browse, and automate OmegaAI workspaces from any MCP client. Streamable HTTP with OAuth 2.0.
Shared Timill Cloud server: query and edit your work-platform data with full per-user RBAC.
Send every row of a dataset, file or Google Sheet to any REST API as its own templated request.
1Read-only ArcadeOps discovery for developer docs, OAuth, OpenAPI and synthetic sandbox.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with AITable workspaces through comprehensive API access, supporting record and field management, datasheet creation, file uploads, and workspace search across 16 tools with both local and remote deployment options.1MIT
- FlicenseBqualityBmaintenanceEnables interaction with the AppFlowy Cloud API to manage workspaces, databases, and row operations. It provides tools for authentication, resource discovery, and full row manipulation including creation and upserts.94-
- AlicenseAqualityBmaintenanceEnables automated schema management for Baserow, including creating, updating, and deleting tables and fields, with built-in 2FA TOTP authentication.1672 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables natural language interaction with Baserow databases, supporting workspace, database, table, and row operations with authentication and batch capabilities.MIT