mcpField
M
MCP Server: Demo

MCP Server: Demo

本地服务
github.com/jubalm数据与分析278 周前更新

关于 MCP Server: Demo

MCP Server: Demo 是用于演示如何构建数据库查询型 MCP 服务的项目,面向探索 Cloudflare MCPAgent、Durable Objects 和 D1 的开发者。

主要功能

  1. 01查询 D1 数据库
  2. 02SQL 查询工具
  3. 03数据库结构内省
  4. 04基于 Durable Objects 的服务实现
  5. 05SQL 迁移与种子数据
  6. 06集成测试

适用场景

  1. 01了解数据库驱动的 MCP 服务
  2. 02查询前检查数据库结构
  3. 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)
安装
  1. 克隆仓库。
  2. 安装依赖:
    npm install
    
开发
  • 启动开发服务:
    npm run dev
    
部署
  • 部署到 Cloudflare Workers:
    npm run deploy
    

许可证

本项目采用 MIT 许可证。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。