介绍 YugabyteDB MCP Server
Sfurti Sarah
June 10, 2025
概述
YugabyteDB MCP Server 是一个全新的、轻量级的、基于 Python 的服务器,它允许像 Anthropic's Claude 这样的大语言模型(Large Language Model, LLM)直接与你的 YugabyteDB 进行交互。
在本文中,我们将通过一个快速演示,向你展示 MCP 如何让 AI 应用仅使用自然语言提示词(prompt)就能访问、查询、分析和解读 YugabyteDB 数据库中的数据。
什么是 MCP?
Model Context Protocol (MCP) 是一项新标准,它使大语言模型(LLM)能够以一致且标准化的方式与现有的企业服务进行交互。
这些服务可以是数据提供者(如 YugabyteDB 或文件服务器)、执行器(如邮件服务器),或两者兼有。深入探讨超出了本文的范围,但这个高层概述有助于说明为什么 MCP 是如此有价值的进展。
当前 AI 应用面临的一个挑战是,它们的有效性仅限于其训练数据,并且只能通过生成文本、音频或视频来产生结果。
然而,如果 LLM(作为 AI 应用的一部分)需要访问更实时的数据或公司特定的数据,该怎么办?如果 AI 应用需要发送邮件、在日历中安排事件或采取其他行动,又该怎么办?简而言之,AI 应用如何访问现有的服务?
在过去,每个 LLM 和框架(例如 LangChain)都有自己的实现方式。这种缺乏标准、一致的服务接口的方式,为 AI 应用开发带来了复杂性并减缓了进展。
MCP 通过标准化 AI 应用使用现有服务的方式,直接解决了这个问题。
它的工作原理如下:
- 现有服务被封装(或由)MCP Server 进行代理
- 你的应用("Host")集成了 MCP Client
- 你的应用的 MCP Client 被配置为连接一个(或多个)MCP Server
- Client 会发现 MCP Server 所发布的可用"工具(tools)"。工具类似于 API 端点,代表 MCP Server(及其后端服务)提供的离散功能
- 这些工具也以结构化的方式进行描述,以便 LLM 能够详细理解所发布的功能;也就是说,让 LLM 知道每个函数能做什么以及如何调用它
- MCP Server 可以是本地的(通过标准输入/输出进行通信)或远程的(通过网络使用 SSE 进行通信)
- 每个工具就像一个带有参数和(可选)返回值的函数
MCP 使工具增强型 LLM 具备可扩展性、一致性和可组合性。
为什么选择 YugabyteDB MCP Server?
YugabyteDB 是一个开源的、兼容 PostgreSQL 的分布式 SQL 数据库,专为云原生、多区域工作负载而设计。但在此之前,还没有针对它的 MCP 集成。
这意味着 LLM 无法直接理解或分析存储在 YugabyteDB 中的数据。
因此我们构建了 MCP Server 来:
- 在 YugabyteDB 上实现 LLM 驱动的数据探索
- 使用 安全的只读查询 以避免修改生产数据
- 开箱即用地支持 Claude Desktop、Cursor 和 Windsurf 等工具
- 帮助使用自然语言 与实时数据进行交互
演示:用 Claude 与你的 YugabyteDB 数据库对话
在这个演示中,我们预加载了一个运行着 Northwind 数据集 的 三节点 YugabyteDB 集群。这为我们提供了一组丰富的示例业务数据(订单、产品、客户等)用于查询和可视化。
我们将使用 MCP 协议将 Claude 连接到此数据库,然后使用自然语言提示词进行探索。
环境要求
要跟随本演示,你需要:
设置 YugabyteDB MCP Server
- 克隆仓库并安装依赖:
git clone https://github.com/yugabyte/yugabytedb-mcp-server.git
cd yugabytedb-mcp-server
uv sync
将 Claude 连接到 Server
- 在 Claude Desktop 中,进入:
- Settings → Developer → Edit Config
- 在 claude_config.json 中添加一个新的 mcpServer 条目:
{
"mcpServers": {
"yugabytedb-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/cloned/yugabytedb-mcp-server/",
"run",
"src/server.py"
],
"env": {
"YUGABYTEDB_URL": "dbname=northwind host=localhost port=5433 user=yugabyte password=yugabyte load_balance=true"
}
}
}
}
- 重启 Claude 以应用更改。
在以下位置查看日志:
- macOS:~/Library/Logs/Claude
- Windows:%APPDATA%\Claude\Logs
提示词 1:总结数据库
提示词: "Summarize the database you are connected to."
Claude 将会:
- 调用
summarize_database - 列出所有表及其 schema 和行数
- 用通俗易懂的英语描述它所看到的内容
示例输出:
### 提示词 2:构建仪表板
提示词: "Build a dashboard with 3 visualizations:
- Monthly sales trend
- Top 10 customers by revenue
- Sales grouped by customer country"
Claude 将会:
- 执行安全的只读 SQL 查询
- 聚合和结构化结果
- 为此创建一个交互式仪表板
示例输出:
所有这些都不需要编写任何 SQL!
结论
YugabyteDB MCP Server 弥合了你的 AI 应用(及其 LLM)与 YugabyteDB 数据之间的鸿沟——实现了对实时、结构化数据集的无缝自然语言交互。
通过利用 Model Context Protocol,我们标准化了工具集成,并为直观的数据探索打开了大门,无需编写任何一行 SQL。
无论你是在构建仪表板、总结数据,还是试验 AI 驱动的工作流,这个轻量级的 MCP Server 都为 LLM 增强型应用提供了一个安全、可扩展的基础。我们很期待看到开发者们如何利用它在 YugabyteDB 之上解锁新的洞察并构建智能数据体验。
要开始使用,请尝试本演示,探索 GitHub 仓库,并告诉我们你构建了什么!
了解更多关于使用 YugabyteDB 构建和部署 GenAI 和 RAG 应用的信息,请查看这里。请持续关注我们的博客,获取更多最佳实践以及 YugabyteDB MCP Server 的使用指南。