关于 MCP Server: Demo
MCP Server: Demo 是用于演示如何构建数据库查询型 MCP 服务的项目,面向探索 Cloudflare MCPAgent、Durable Objects 和 D1 的开发者。
主要功能
- 01查询 D1 数据库
- 02SQL 查询工具
- 03数据库结构内省
- 04基于 Durable Objects 的服务实现
- 05SQL 迁移与种子数据
- 06集成测试
适用场景
- 01了解数据库驱动的 MCP 服务
- 02查询前检查数据库结构
- 03将查询工具适配到其他数据库
MCP 相关
该 MCP 服务向 MCP 客户端提供 SQL 查询工具和结构内省工具。它采用 Cloudflare MCPAgent 与 Durable Objects,并以 SSE 作为传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务:演示
概述
本仓库演示如何构建一个 MCP(模型上下文协议)服务,用于访问和查询实际数据库信息。本项目使用 @modelcontextprotocol/sdk 库,借助 Cloudflare 的 MCPAgent 实现工具、管理资源并连接 D1 数据库。
功能
数据库
本项目集成了 D1 数据库(mcp-agent-d1-data)来检索数据,不过只需对工具进行少量调整,你就可以使用任何数据库。此外还包含一些实用功能:
- 架构管理:
db/目录中的 SQL 迁移文件(up.sql、down.sql、seed.sql)用于管理数据库架构并填充种子数据。
MCP 服务(MyMCP)
MyMCP 类继承自 @modelcontextprotocol/sdk 库中的 McpAgent 类。它是服务的核心实现,并以服务器发送事件(SSE)作为基础传输方式。
- Durable Object:服务以 Durable Object 的形式实现,支持有状态交互和长时间运行的操作。空闲时还内置休眠功能。
查询工具
query 工具提供一个接口,让大模型能够向数据库发送 SQL 查询,以便与数据库交互。在生产环境中使用时请务必谨慎,并采取适当的授权保护措施。
内省工具
schema-introspection 工具特别适用于帮助大模型理解数据库结构,从而生成更准确的查询设计。
集成测试
tests/ 目录中包含集成测试,供你开始使用。你可以通过这些测试验证 MCP 服务及其工具的功能,也可以将它们用于 TDD。
npm run test
项目结构
📦 d1-mcp
├── package.json
├── README.md
├── tsconfig.json
├── vitest.config.js
├── worker-configuration.d.ts
├── wrangler.jsonc
├── db
│ ├── down.sql
│ ├── seed.sql
│ └── up.sql
├── public
│ └── index.html
├── src
│ ├── index.ts
│ ├── metadata.ts
│ ├── tools.ts
│ └── utils.ts
└── tests
├── index.test.ts
└── tsconfig.json
入门
先决条件
- Node.js
- Cloudflare Workers CLI(
wrangler)
安装
- 克隆仓库。
- 安装依赖:
npm install
开发
- 启动开发服务:
npm run dev
部署
- 部署到 Cloudflare Workers:
npm run deploy
许可证
本项目采用 MIT 许可证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。