CIViC MCP Server
使用说明(Markdown 格式):
- 项目简介
- 该仓库实现了一个完整的 MCP 服务器,核心功能包括:向客户端暴露 MCP 工具(如 civic_graphql_query、civic_query_sql),通过 JSON-RPC 形式与客户端通信;通过 Durable Objects 在云端存储阶段数据,并将 CIViC 的 GraphQL/数据查询转换为可分析的 SQLite 表结构;提供工具注册、Prompt 绑定等能力,以支持 LLM 的上下文服务需求。
- 主要功能点
- MCP 协议核心:提供 MCP 风格的工具注册、调用、返回结构,支持 Prompts 的注册与渲染。
- 数据管线:GraphQL 查询执行、结果缓存/阶段化到 SQLite,提供数据访问和 SQL 查询能力。
- 工具与提示:注册并暴露图形化查询工具,提供基于 CIViC 模式的 Prompts。
- 多传输与扩展性:初始实现包含 SSE/Streamable HTTP 传输接口,后续可迁移到更现代的传输方式,具备扩展能力。
- 安全性与分层:对输入/输出进行结构化封装,支持对大数据进行分块存储与检索,并提供错误处理和元数据。
- 安装步骤
- 需要具备 Cloudflare 账号,Wranger/CF Worker 部署环境。
- 安装依赖:在项目根目录执行 npm install。
- 部署到 Cloudflare Workers:执行 npm run deploy。
- 部署后会得到一个类似 https://your-subdomain.workers.dev 的入口地址,作为 MCP 服务器端点。
- 服务器配置(应客户端读取的连接信息,JSON 格式,包含 server name、command、args 等)
- 服务器名称:civic-mcp-server
- 启动命令与参数(示例说明,实际请替换为你部署后的地址与子域名):
- 服务器配置(JSON 示意,不是可执行代码):
- server name: civic-mcp-server
- 命令: "npx"
- 参数: ["mcp-remote", "https://civic-mcp-server.YOUR_SUBDOMAIN.workers.dev/mcp"] 说明:以上 JSON 配置用于 MCP 客户端连接服务器。客户端需要读取 serverName、command、args 来建立连接,具体参数请按实际部署地址替换。
- 基本使用方法
- 启动后,客户端通过 MCP 的 /mcp 入口与服务器通信(POST 方式,或使用支持的 MCP 客户端传输)。SS E 传输可选,MCP 约定支持 JSON-RPC 风格请求/响应。
- 常用工具包括 civic_graphql_query(GraphQL 查询并阶段化数据以便进一步 SQL 查询)以及 civic_query_sql(在阶段数据上执行 SQL 查询)。
- Prompts 提供对话式引导,帮助模型按 CIViC v2 的模式生成 GraphQL 查询并获取结构化结果。
- 对大数据查询,服务会自动进行分块存储和后续的 SQL 查询。