Model Context Protocol server with CockroachDB
Project description
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-clientCLI
✅ 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,/evaluateextensions
🚀 Quickstart
📦 Install from PyPI
pip install cockroachdb-mcp-server
🏃 Run with schema init
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:8081by 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 |
🧱 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.
🙌 Contributions
This project is designed for internal and community use.
PRs welcome to extend functionality (auth, deployment support, /evaluate, telemetry, etc.).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cockroachdb_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: cockroachdb_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d52b3eab46342bd830076dee7cce2de7e49ca90887c96ca68f765f2cfadb569e
|
|
| MD5 |
8cfbcb1fa4649d3ab74bd123f4e07d21
|
|
| BLAKE2b-256 |
ab017733858703f1e79508ccb8b82c734c99bc0648212b51355fa08b406423b7
|
File details
Details for the file cockroachdb_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cockroachdb_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35d59e538dbcecd3a2a621a336d70e08a319d23d825dc4a1f2694865c8f256c8
|
|
| MD5 |
aaf17033c3a0bb48df93d44ab78e52ad
|
|
| BLAKE2b-256 |
4d15c87839194b748e9840551cb4ba60a7190459872f430f186c8507602348d1
|