cockroachdb-mcp-server¶
A Model Context Protocol (MCP) server implemented in Python using FastAPI and CockroachDB.
๐ง What This Is¶
cockroachdb-mcp-server
is a production-grade, spec-aligned MCP server that:
- Implements the Model Context Protocol
- Uses CockroachDB as a resilient, SQL-compatible backend
- Exposes full CRUD APIs for managing model contexts
- Stores context definitions as JSONB, allowing arbitrary input/output schema
- Works seamlessly with the
cockroachdb-mcp-client
CLI
โ Feature Highlights¶
- โ
REST API for MCP context management (
/contexts
) - โ Schema bootstrapping via CLI flag or env var
- โ CRDB URL auto-detection and dialect fix
- โ ASCII banner and version info
- โ Structured logging and configurable log level
- โ
Ready for
/run
,/deploy
,/evaluate
extensions
๐ Quickstart¶
๐ฆ Install from PyPI¶
pip install cockroachdb-mcp-server ```` ### ๐ Run with schema init ```bash cockroachdb-mcp-server serve --init-schema --log-level INFO
Or:
export MCP_AUTO_INIT_SCHEMA=true cockroachdb-mcp-server serve
Server runs at
http://localhost:8081
by default
๐ง CLI Usage¶
cockroachdb-mcp-server serve --init-schema cockroachdb-mcp-server serve --port 8081 --host 127.0.0.1 --reload cockroachdb-mcp-server --version cockroachdb-mcp-server --banner
๐ Configuring the Database¶
โ
Set the CRDB_URL
environment variable¶
export CRDB_URL="postgresql://root@localhost:26257/defaultdb?sslmode=disable"
Automatically rewritten to
cockroachdb://...
under the hood for compatibility.
Alternatively, set it directly:
export CRDB_URL="cockroachdb://root@localhost:26257/defaultdb?sslmode=disable"
โ Both formats are supported.
๐งช API Endpoints¶
Method | Path | Description |
---|---|---|
POST | /contexts | Create a context |
GET | /contexts | List all contexts |
GET | /contexts/{id} | Get context by ID |
PUT | /contexts/{id} | Update context |
DELETE | /contexts/{id} | Delete context |
๐ View full API reference โ
๐งฑ Schema Auto-Bootstrap¶
Run this manually:
cockroachdb-mcp-server serve --init-schema
Or automatically with:
export MCP_AUTO_INIT_SCHEMA=true
The schema created is:
CREATE TABLE IF NOT EXISTS mcp_contexts ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), context_name STRING NOT NULL, context_version STRING NOT NULL, body JSONB NOT NULL, created_at TIMESTAMP DEFAULT now() );
๐ Related Projects¶
- cockroachdb-mcp-client: CLI tool to manage MCP contexts, simulate LLM runs, export, and batch simulate across providers.