Baserow Streamable MCP

Baserow Streamable MCP

Enables remote access to Baserow workspaces over Streamable HTTP, allowing discovery of accessible tables and creation of rows using user-facing field names.

Category
Visit Server

README

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 row reads, search, and batch CRUD operations.

Tools

  • list_databases() derives accessible database IDs and table counts from the token-visible tables. Database names are null because 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.
  • create_rows(table_id, rows) creates up to 200 rows using user-facing field names.
  • update_rows(table_id, rows) updates up to 200 rows; every row must include its id.
  • delete_rows(table_id, row_ids) deletes up to 200 rows.

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.

Requirements

  • Node.js 22 or later
  • A Baserow Database Token with the required table permissions

Run locally

cp .env.example .env
# Edit .env, then export it into the shell.
set -a && . ./.env && set +a
npm install
npm run build
npm start

The MCP endpoint is http://127.0.0.1:3000/mcp by default.

Run with Docker Compose

cp .env.example .env
# Edit .env, then start the service.
docker compose up --build -d

The Compose example publishes the port only on the host loopback interface. A reverse proxy or tunnel running on the same host can forward HTTPS traffic to it. 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.

For remote access, place the server behind an HTTPS reverse proxy or tunnel. Streamable HTTP is the MCP transport; HTTPS is the external security layer. Phase 1 does not yet add MCP endpoint authentication, so do not expose it publicly without access control at the proxy or tunnel.

Configuration

Variable Required Default Description
BASEROW_URL Yes Baserow origin, such as https://api.baserow.io or http://baserow
BASEROW_TOKEN Yes Baserow Database Token
HOST No 127.0.0.1 Bind address; use 0.0.0.0 in a container
PORT No 3000 HTTP port
REQUEST_TIMEOUT_MS No 15000 Baserow request timeout

Development

npm run typecheck
npm test
npm run build

Security

  • Never commit .env or tokens.
  • The Baserow token is sent only in the Authorization: Token ... header.
  • The server binds to localhost by default.
  • Configure HTTPS and endpoint authentication before remote production use.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured