CockroachDB MCP -cursor适用

ops/2025/3/16 11:14:19/

CockroachDB MCP 服务器

GitHub仓库置顶

这是一个用于 Cursor 的 CockroachDB MCP 服务器,基于 Model Context Protocol (MCP) 规范实现,可以让你在 Cursor 中直接与 CockroachDB 数据库交互。

功能

  • 连接到 CockroachDB 数据库
  • 获取数据库中的所有表
  • 获取表的结构信息
  • 执行 SQL 查询
  • 提供数据库状态资源
  • 提供 SQL 查询提示模板
  • 自动重连机制,确保连接稳定性
  • 连接保活机制,防止连接超时
  • 优雅的进程退出处理
  • 详细的日志记录,便于故障排除
  • 支持手动断开连接

安装

  1. 克隆仓库并进入项目目录
  2. 安装依赖:
pip install -r requirements.txt
  1. 安装 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 功能说明

工具 (Tools)

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 查询语句

资源 (Resources)

db://status

获取数据库连接状态。

返回:

  • 未连接时:"未连接"
  • 已连接时:"已连接 - [数据库版本]"
  • 连接错误时:"连接错误 - [错误信息]"

提示模板 (Prompts)

sql_query_template

SQL 查询提示模板,用于帮助用户编写 SQL 查询。

日志

服务器日志保存在 logs/cockroachdb_mcp.log 文件中。你可以通过查看这个文件来了解服务器的运行状态和详细日志。

日志文件使用循环日志机制,每个日志文件最大 10MB,最多保留 5 个备份文件,以防止日志占用过多磁盘空间。

特殊字符处理

本服务器使用 psycopg2 直接连接到 CockroachDB 数据库,它会自动处理用户名和密码中的特殊字符,无需额外的 URL 编码。这确保了即使密码中包含特殊字符(如 @%& 等),也能正确连接到数据库。

TCP 保活设置

服务器默认配置了 TCP 保活机制,以防止连接因为长时间不活动而被关闭:

  • keepalives=1:启用 TCP keepalive
  • keepalives_idle=30:空闲 30 秒后发送 keepalive
  • keepalives_interval=10:每 10 秒发送一次 keepalive
  • keepalives_count=5:5 次尝试后放弃

故障排除

如果遇到问题,请查看日志文件 logs/cockroachdb_mcp.log,这将帮助你了解服务器的运行状态和可能出现的问题。

常见问题

  1. 连接被拒绝:确保 CockroachDB 服务器正在运行,并且可以从你的机器访问。
  2. 认证失败:检查用户名和密码是否正确。
  3. 连接超时:检查网络连接是否稳定,特别是当连接到远程数据库时。
  4. 数据库服务器问题:检查 CockroachDB 服务器是否正常运行。

http://www.ppmy.cn/ops/166187.html

相关文章

leetcode【面试经典150系列】(一)

目录 121.买卖股票最佳时机 题目描述 示例 算法分析 代码(python3) 122.买卖股票最佳时机II 题目描述 示例 算法分析 代码(python3) 55.跳跃游戏 题目描述 示例 算法分析 代码 45.跳跃游戏II 题目描述 示例 算法分析 代码 121.买卖股票…

让 Deepseek 写一个计算器(网页)

完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简单计算器</title><style&…

request模块基本使用方法

文章目录 一、前言二、请求2.1 请求方式2.2 请求参数2.3 cookie 三、响应 一、前言 官方文档&#xff1a;https://requests.readthedocs.io/en/latest/ 模块安装&#xff1a;pip install request 二、请求 2.1 请求方式 常用请求方法&#xff1a;get、post 请求方法含义get向…

Webpack构建流程详解优化前端性能\Dev-Server与Proxy\网络攻击\HMR

简版 核心流程图 根据&#xff0c;Webpack的构建流程分为初始化、编译和输出三个阶段。初始化阶段读取配置、加载插件、实例化Compiler。编译阶段&#xff08;构建依赖关系&#xff09;涉及Compiler类的运行&#xff0c;生成Compilation对象&#xff0c;处理模块依赖。输出阶…

FreeBSD下安装npm Node.js的22版本 并简单测试js服务器

FreeBSD下安装Node.js 在FreeBSD下安装Node.js很方便&#xff0c;直接pkg安装即可。 使用pkg install安装npm sudo pkg install npm-node22 Updating FreeBSD repository catalogue... Fetching data.pkg: 100% 7 MiB 2.5MB/s 00:03 Processing entries: 100% FreeB…

科大讯飞嵌入式软件开发面试总结

科大讯飞嵌入式软件开发面试总结 一、面试流程 技术面&#xff08;两轮&#xff0c;每轮约 30-40 分钟&#xff0c;重点岗位可能有终面&#xff09; 考察方向&#xff1a;C 语言、数据结构、Linux 系统、ARM 架构、RTOS、驱动开发、项目经验等。 形式&#xff1a;一对一问答&…

工作记录 2017-01-13

工作记录 2017-01-13 序号 工作 相关人员 1 协助BPO进行Billing的工作。 修改BillingJobPoster&#xff0c;处理CCDA 的自动导入。 修改邮件上的问题。 更新RD服务器。 郝 更新的问题 1、In all Notes part, where “posted by…” use Biller Init NOT biller full na…

【云原生知识】如何搭建基于服务网关的分布式服务?

文章目录 概述服务网格核心概念以及原理介绍服务网格相关技术栈介绍 优缺点优势缺点 搭建基于服务网关的分布式服务一、环境准备二、部署 Istio三、配置服务网格四、部署微服务五、验证和监控六、优化和扩展 概述 服务网格核心概念以及原理介绍 服务网格&#xff08;Service …