关于 CockroachDB MCP Server
CockroachDB MCP Server 是面向 Cursor 等 MCP 客户端的数据库连接与查询服务,适用于需要通过 MCP 检查和操作 CockroachDB 的用户。它提供表结构、SQL 查询、连接状态资源和查询模板,并包含重连与保活机制。
主要功能
- 01连接或断开 CockroachDB
- 02列出数据库表
- 03查询表结构
- 04执行 SQL 查询
- 05提供连接状态资源与 SQL 模板
- 06自动重连和 TCP 保活
适用场景
- 01查看数据库中的表和结构
- 02执行 SQL 并检查结果
- 03监控数据库连接状态
MCP 相关
该 MCP 服务向客户端提供 CockroachDB 连接、表查询和 SQL 执行工具,并提供连接状态资源与 SQL 查询模板提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CockroachDB MCP 服务
这是一个面向 Cursor 的 CockroachDB MCP 服务,基于模型上下文协议(MCP)规范实现,可让你直接在 Cursor 中与 CockroachDB 数据库交互。
功能
- 连接到 CockroachDB 数据库
- 获取数据库中的所有表
- 获取表结构信息
- 执行 SQL 查询
- 提供数据库状态资源
- 提供 SQL 查询模板
- 自动重连机制,确保连接稳定
- 连接保活机制,防止连接超时
- 优雅处理进程退出
- 提供详细日志以便排查问题
- 支持手动断开连接
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 CockroachDB MCP 服务:
npx -y @smithery/cli install @Swayingleaves/cockroachdb-mcp-server --client claude
- 克隆代码仓库并进入项目目录
- 安装依赖:
pip install -r requirements.txt
- 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
在 Cursor 中使用
{
"mcpServers": {
"cockroachdb-mcp": {
"command": "uv",
"args": [
"--directory",
"/Users/local/cockroachdb-mcp",
"run",
"server.py"
],
"jdbc_url": "jdbc:postgresql://localhost:26257/defaultdb",
"username": "root",
"password": "root"
}
}
}
MCP 功能说明
工具
connect_database
连接到 CockroachDB 数据库。
参数:
jdbc_url:JDBC 连接 URL(例如,jdbc:postgresql://localhost:26257/defaultdb)username:数据库用户名password:数据库密码
initialize_connection
初始化数据库连接。连接到 MCP 服务后,可立即调用此功能来建立数据库连接。
参数:
jdbc_url:JDBC 连接 URL(例如,jdbc:postgresql://localhost:26257/defaultdb)username:数据库用户名password:数据库密码
disconnect_database
手动断开与数据库的连接。
无参数。
get_tables
获取数据库中的所有表。
无参数。
get_table_schema
获取指定表的结构信息。
参数:
table_name:表名
execute_query
执行 SQL 查询。
参数:
query:SQL 查询语句
资源
db://status
获取数据库连接状态。
返回值:
- 未连接时:
"Not connected" - 已连接时:
"Connected - [Database version]" - 连接错误时:
"Connection error - [Error message]"
提示词
sql_query_template
SQL 查询模板,帮助用户编写 SQL 查询。
日志
服务日志保存在 logs/cockroachdb_mcp.log 文件中。你可以查看此文件,了解服务的运行状态和详细日志。
日志文件采用轮转机制,每个日志文件最大为 10MB,并最多保留 5 个备份文件,以防止占用过多磁盘空间。
特殊字符处理
此服务使用 psycopg2 直接连接到 CockroachDB 数据库,可自动处理用户名和密码中的特殊字符,无需额外进行 URL 编码。即使密码包含特殊字符(例如 @、%、& 等),也能确保正确连接到数据库。
TCP 保活设置
服务默认配置了 TCP 保活机制,防止连接因长时间不活动而关闭:
keepalives=1:启用 TCP keepalivekeepalives_idle=30:空闲 30 秒后发送保活信号keepalives_interval=10:每隔 10 秒发送一次保活信号keepalives_count=5:尝试 5 次后放弃
故障排除
如果遇到问题,请检查日志文件 logs/cockroachdb_mcp.log,这有助于你了解服务的运行状态和可能存在的问题。
常见问题
- 连接被拒绝:确保 CockroachDB 服务器正在运行,并且可从你的计算机访问。
- 身份验证失败:检查用户名和密码是否正确。
- 连接超时:检查网络连接是否稳定,尤其是在连接远程数据库时。
- 数据库服务器问题:检查 CockroachDB 服务器是否正常运行。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。