CockroachDB MCP Server 是一个专为LLM(大型语言模型)和代理应用程序设计的自然语言接口,用于管理、监控和查询CockroachDB中的数据。它与**MCP(模型内容协议)**客户端无缝集成,如Claude Desktop或Cursor,使AI驱动的工作流程能够直接与数据库交互。
CockroachDB MCP Server提供了管理存储在CockroachDB中的数据的工具。
这些工具被组织成四个主要类别:
目的: 提供监控和管理CockroachDB集群的工具。
总结:
目的: 处理数据库级别的操作和连接管理。
总结:
目的: 提供管理CockroachDB中的表、索引、视图和模式关系的工具。
总结:
目的: 执行和管理SQL查询和事务。
总结:
CockroachDB MCP Server支持stdio传输方式。streamable-http传输将在未来的版本中添加支持。
使用CockroachDB MCP Server最简单的方法是通过uvx,这允许您直接从GitHub运行(从分支或使用标记的发布)。建议使用标记的发布。main分支正在积极开发中,可能包含破坏性更改。例如,您可以执行以下命令来运行0.1.0版本:
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git@0.1.0 cockroachdb-mcp-server --url postgresql://localhost:26257/defaultdb
请查看发布说明部分以获取最新版本的信息。 以下是其他示例。
# 使用CockroachDB URI运行
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --url postgresql://localhost:26257/defaultdb
# 使用单独的参数运行
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --host localhost --port 26257 --database defaultdb --user root --password mypassword
# 查看所有选项
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --help
对于开发或如果您希望克隆仓库:
# 克隆仓库
git clone https://github.com/amineelkouhen/mcp-cockroachdb.git
cd mcp-cockroachdb
# 使用uv安装依赖
uv venv
source .venv/bin/activate
uv sync
# 使用CLI界面运行
uv run cockroachdb-mcp-server --help
# 或直接运行主文件(使用环境变量)
uv run src/main.py
一旦您克隆了仓库,安装了依赖项,并验证可以运行服务器,就可以配置Claude Desktop或其他MCP客户端使用此MCP服务器直接运行主文件(它使用环境变量)。通常情况下,这是开发时首选的方式。 以下示例适用于Claude Desktop,但对任何其他MCP客户端同样适用。
uv命令完整路径(例如which uv)claude_desktop_config.json配置文件
~/Library/Application Support/Claude/{
"mcpServers": {
"cockroach": {
"command": "<full_path_uv_command>",
"args": [
"--directory",
"<your_mcp_server_directory>",
"run",
"src/main.py"
],
"env": {
"CRDB_HOST": "<your_cockroachdb_hostname>",
"CRDB_PORT": "<your_cockroachdb_port>",
"CRDB_DATABASE": "<your_cockroach_database>",
"CRDB_USERNAME": "<your_cockroachdb_user>",
"CRDB_PWD": "<your_cockroachdb_password>",
"CRDB_SSL_MODE": "disable|allow|prefer|require|verify-ca|verify-full",
"CRDB_SSL_CA_PATH": "<your_cockroachdb_ca_path>",
"CRDB_SSL_KEYFILE": "<your_cockroachdb_keyfile_path>",
"CRDB_SSL_CERTFILE": "<your_cockroachdb_certificate_path>",
}
}
}
}
您可以通过跟踪日志文件来排查问题。
tail -f ~/Library/Logs/Claude/mcp-server-cockroach.log
您可以使用此服务器的容器化部署。您可以构建自己的镜像,或者使用官方的CockroachDB MCP Docker镜像。
如果您想构建自己的镜像,CockroachDB MCP Server提供了一个Dockerfile。使用以下命令构建此服务器的镜像:
docker build -t mcp-cockroachdb .
最后,配置客户端以在启动时创建容器。下面是一个针对Claude Desktop的例子。编辑claude_desktop_config.json并添加:
{
"mcpServers": {
"cockroach": {
"command": "docker",
"args": ["run",
"--rm",
"--name",
"cockroachdb-mcp-server",
"-e", "CRDB_HOST=<cockroachdb_host>",
"-e", "CRDB_PORT=<cockroachdb_port>",
"-e", "CRDB_DATABASE=<cockroachdb_database>",
"-e", "CRDB_USERNAME=<cockroachdb_user>",
"mcp-cockroachdb"]
}
}
}
要使用CockroachDB MCP Docker镜像,只需用mcp/cockroachdb替换您的镜像名称(如上述示例中的mcp-cockroachdb)。
CockroachDB MCP Server有两种配置方式:通过命令行参数或通过环境变量。 优先级顺序为:CLI参数 > 环境变量 > 默认值。
当使用CLI界面时,您可以使用命令行参数配置服务器:
# 基本CockroachDB连接
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
--host localhost \
--port 26257 \
--db defaultdb \
--user root \
--password mypassword
# 使用CockroachDB URI(更简单)
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
--url postgresql://root@localhost:26257/defaultdb
# SSL连接
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server \
--url postgresql://user:pass@cockroach.example.com:26257/defaultdb?sslmode=verify-full&sslrootcert=path/to/ca.crt&sslcert=path/to/client.username.crt&sslkey=path/to/client.username.key
# 查看所有可用选项
uvx --from git+https://github.com/amineelkouhen/mcp-cockroachdb.git cockroachdb-mcp-server --help
可用CLI选项:
--url - CockroachDB连接URI(postgresql://user:pass@host:port/db)--host - CockroachDB主机名--port - CockroachDB端口(默认:26257)--db - CockroachDB数据库名称(默认:defaultdb)--user - CockroachDB用户名--password - CockroachDB密码--ssl-mode - SSL模式 - 可能的值:require, verify-ca, verify-full, disable(默认)--ssl-key - SSL客户端密钥文件路径--ssl-cert - SSL客户端证书文件路径--ssl-ca-cert - CA(根)证书文件路径如果需要,您可以使用环境变量。所有变量都提供了默认值。
| 名称 | 描述 | 默认值 |
|---|---|---|
CRDB_HOST | CockroachDB节点或负载均衡器的主机名或地址。 | 127.0.0.1 |
CRDB_PORT | CockroachDB节点或负载均衡器的SQL接口端口号。 | 26257 |
CRDB_DATABASE | 作为当前数据库使用的数据库名称。 | defaultdb |
CRDB_USERNAME | 将拥有客户端会话的SQL用户。 | root |
CRDB_PWD | 用户的密码。 | None |
CRDB_SSL_MODE | 使用哪种安全连接类型。 | disable |
CRDB_SSL_CA_PATH | 当sslmode不为disable时的CA证书路径。 | None |
CRDB_SSL_CERTFILE | 当sslmode不为disable时的客户端证书路径。 | None |
CRDB_SSL_KEYFILE | 当sslmode不为disable时的客户端私钥路径。 | None |
有几种方法可以设置环境变量:
.env文件:
在项目目录中放置一个包含每个环境变量键值对的.env文件。工具如python-dotenv、pipenv和uv可以在运行应用时自动加载这些变量。这是一种方便且安全的方式来管理配置,因为它将敏感数据从shell历史记录和版本控制中移除(如果.env在.gitignore中)。
例如,创建一个.env文件,其内容如下所示,该内容来自仓库提供的.env.example文件:cp .env.example .env
然后编辑.env文件以设置您的CockroachDB配置:
或者,
export CRDB_URL= postgresql://root@127.0.0.1:26257/defaultdb
这种方法有助于临时覆盖或快速测试。
与开发框架如OpenAI代理SDK集成,或使用工具如Claude Desktop、VS Code或Augment,将在以下部分中描述。
将此MCP Server与OpenAI代理SDK集成。阅读文档以了解SDK与MCP的集成详情。
安装Python SDK。
pip install openai-agents
配置OpenAI令牌:
export OPENAI_API_KEY="<openai_token>"
并运行应用。
python3 examples/cockroachdb_assistant.py
您可以使用OpenAI仪表板来排查代理工作流的问题。
您可以通过导入服务器的JSON来在Augment中配置CockroachDB MCP Server:
{
"mcpServers": {
"CockroachDB MCP Server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/cockroachdb/mcp-cockroachdb.git",
"cockroachdb-mcp-server",
"--url",
"postgresql://root@localhost:26257/defaultdb"
]
}
}
}
配置MCP客户端最简单的方法是使用uvx。将以下JSON添加到您的claude_desktop_config.json中,记得提供uvx的完整路径。
{
"mcpServers": {
"cockroach-mcp-server": {
"type": "stdio",
"command": "/opt/homebrew/bin/uvx",
"args": [
"--from", "git+https://github.com/amineelkouhen/mcp-cockroachdb.git",
"cockroachdb-mcp-server",
"--url", "postgresql://localhost:26257/defaultdb"
]
}
}
}
如果您希望通过Smithery测试CockroachDB MCP Server,可以自动配置Claude Desktop:
npx -y @smithery/cli install @amineelkouhen/mcp-cockroachdb --client claude
请按照提示提供详细信息以配置服务器并连接到CockroachDB(例如,使用托管的CockroachDB实例)。
此过程将在claude_desktop_config.json配置文件中创建正确的配置。
要在VS Code中使用CockroachDB MCP Server,必须启用代理模式工具。将以下内容添加到您的settings.json中:
{
"chat.agent.enabled": true
}
您可以通过向您的settings.json添加以下JSON来使用uvx启动GitHub所需的CockroachDB MCP服务器版本:
"mcp": {
"servers": {
"CockroachDB MCP Server": {
"type": "stdio",
"command": "uvx",
"args": [
"--from", "git+https://github.com/amineelkouhen/mcp-cockroachdb.git",
"cockroachdb-mcp-server",
"--url", "postgresql://root@localhost:26257/defaultdb"
]
},
}
},
或者,您可以使用uv启动服务器并配置您的mcp.json或settings.json。这通常是开发时首选的方式。
{
"servers": {
"cockroach": {
"type": "stdio",
"command": "<full_path_uv_command>",
"args": [
"--directory",
"<your_mcp_server_directory>",
"run",
"src/main.py"
],
"env": {
"CRDB_HOST": "<your_cockroachdb_hostname>",