Skip to main content

crdb-mcpctl

PyPI Python License CI

A developer-friendly, model-provider-agnostic CLI tool for working with Model Context Protocol servers — built specifically for use with CockroachDB backends.

crdb-mcpctl CLI screenshot


🧠 What This Is

crdb-mcpctl is a spec-aligned, CLI-first interface for creating, managing, exporting, and running Model Context Protocol resources.

It works with crdb-mcp-server, a FastAPI-based MCP implementation backed by CockroachDB. Together, they offer:

  • A reliable MCP context registry (server)
  • A CLI for simulation, LLM runs, and batch workflows (client)

✅ Feature Highlights

  • 🌱 MCP-spec-compliant context management (create, list, get, delete)
  • 📦 Export individual or all contexts to YAML or JSON
  • 🔁 Run contexts against real LLMs (OpenAI, Anthropic, etc.)
  • 💬 Supports streaming, retry, model override
  • 📚 Batch simulation of inputs
  • ⚙️ Reads config from ~/.config/crdb-mcpctl/config.yaml or env vars
  • 🧱 Extensible provider system (Claude, GPT-4, Mistral, etc.)
  • 📈 Configurable logging per command (--log-level)

🚀 Quickstart

📦 Install from PyPI

pip install crdb-mcpctl

🛠 Or install from source

git clone https://github.com/viragtripathi/crdb-mcpctl
cd crdb-mcpctl
pip install -e .

You’ll also need a running instance of crdb-mcp-server


🔐 Configuration Options

✅ Environment Variables (preferred for CI and scripting)

Variable Description
MCP_SERVER_URL Base URL for the MCP server
MCP_API_TOKEN Bearer token for protected endpoints
OPENAI_API_KEY API key for OpenAI LLMs
ANTHROPIC_API_KEY API key for Anthropic Claude LLMs
export MCP_SERVER_URL=http://localhost:8081
export OPENAI_API_KEY=sk-...

🗂 ~/.config/crdb-mcpctl/config.yaml (alternative for local/dev)

server: http://localhost:8081

openai:
  api_key: sk-...

anthropic:
  api_key: your-anthropic-key

✅ Env vars take precedence over config file.


🧪 CLI Commands

# Show version and top-level help
crdb-mcpctl --version
crdb-mcpctl --help

# Create a context
crdb-mcpctl create context --file summarizer.yaml

# List all contexts
crdb-mcpctl list contexts

# Get or delete a context
crdb-mcpctl get context <uuid>
crdb-mcpctl delete context <uuid> -y

# Export one or all
crdb-mcpctl export context <uuid> --file out.yaml
crdb-mcpctl export all --output-dir exported_contexts/

# Run a single input
crdb-mcpctl run context --provider openai --file context.yaml --input "Summarize this article"

# Simulate a batch of inputs
crdb-mcpctl simulate context \
  --provider anthropic \
  --file summarizer.yaml \
  --inputs inputs.txt

🧰 Logging

Enable structured logging with:

crdb-mcpctl create context --file ctx.yaml --log-level DEBUG

♻️ Retry Logic

All network operations (GET, POST, DELETE) retry up to 3 times with 2s backoff using tenacity.


💡 Error Feedback Example

On connection failure:

❌ Failed to connect to MCP server at http://localhost:8081

🔧 Is the server running? Start it with:
  crdb-mcp-server serve --init-schema

🌍 To override the server URL:
  --server http://localhost:8081
  OR
  export MCP_SERVER_URL=http://localhost:8081

🙌 Contributions

This project is open for internal and public usage.

If you want to support additional providers, improve UX, or standardize context specs, contributions are welcome.

Release files for crdb-mcpctl 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for crdb-mcpctl 0.1.0
File Size Uploaded
crdb_mcpctl-0.1.0.tar.gz 6.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for crdb-mcpctl 0.1.0
File Interpreter ABI Platform
crdb_mcpctl-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.9 kB

Release files / crdb_mcpctl-0.1.0.tar.gz

Download URL crdb_mcpctl-0.1.0.tar.gz
Size 6.1 kB
Tags Source
SHA-256 checksum
How to use checksums
367991e8de6e6b5be3cc2176bbd59a1f6f72cd48f8f77d9b8f6c249614732b52
BLAKE2b-256 checksum
How to use checksums
20da0fab4ba9082ba58ecd21e84af765056b5cc01f0ff6376a245b05af85d2ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release files / crdb_mcpctl-0.1.0-py3-none-any.whl

Download URL crdb_mcpctl-0.1.0-py3-none-any.whl
Size 6.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c0aeb214e2ad9acb54290c0d0a7bb65169cf6a692829061aab50479fadf985c
BLAKE2b-256 checksum
How to use checksums
d5906810f2bb5b4077f5f4e4351c7e4da22f77397c633d946b410ad2ea1a2e26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page