Model Context Protocol server with CockroachDB
Project description
crdb-mcp-server
A Model Context Protocol (MCP) server implemented in Python using FastAPI and CockroachDB.
🧠 What This Is
crdb-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
crdb-mcpctlCLI
✅ 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 crdb-mcp-server
🏃 Run with schema init
crdb-mcp-server serve --init-schema --log-level INFO
Or:
export MCP_AUTO_INIT_SCHEMA=true
crdb-mcp-server serve
Server runs at
http://localhost:8081by default
🔧 CLI Usage
crdb-mcp-server serve --init-schema
crdb-mcp-server serve --port 8081 --host 127.0.0.1 --reload
crdb-mcp-server --version
crdb-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:
crdb-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
- crdb-mcpctl: 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
Release history Release notifications | RSS feed
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 crdb_mcp_server-0.1.0.tar.gz.
File metadata
- Download URL: crdb_mcp_server-0.1.0.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cd2c9b09848a1a74f31a58fe2f948e5460778d1b19054300181a6b5fd122200
|
|
| MD5 |
911639a895d6be85d1a1958b4c3c3357
|
|
| BLAKE2b-256 |
7ebaa241ad53cb9251ec3a9af08a02159285e10ca9a3d3125f5bd9f596b5d54f
|
File details
Details for the file crdb_mcp_server-0.1.0-py3-none-any.whl.
File metadata
- Download URL: crdb_mcp_server-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 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 |
7fe546489a53f7043d31234f22c6aa9b107b1fb54a807b8af0d8e6985c205bab
|
|
| MD5 |
e915674f4bfba35d71ccd7f18ebf17c9
|
|
| BLAKE2b-256 |
0778542fc2d838fdb42eb41f797ff9796a41fb2d44cf7d30e49ebf60d3d53da5
|