DataCite MCP Server (GraphQL Metadata MCP 后端)
使用说明(简要概览)
-
项目简介
- 该仓库实现了一个基于 MCP 的后端服务器,用于查询 DataCite GraphQL API、提供可访问的资源、注册执行工具并对返回数据进行阶段化存储与查询。服务器部署在 Cloudflare Workers 环境中(本地开发可通过 npm run dev 启动),并提供数据分段查询能力(通过 Durable Object 等机制)以支持大数据返回在后续 SQL 查询中的使用。
-
主要功能点
- MCP 核心实现
- 通过 MCP Server 注册工具(如 datacite_graphql_query、datacite_staged_result、datacite_query_data、datacite_get_schema)并通过 JSON-RPC 形式与客户端通信。
- 具备会话管理、能力声明及对多传输协议的支持(包括流式 HTTP、SSE 等)。
- 数据获取与阶段化
- 将 DataCite GraphQL 的查询结果进行缓存、阶段化存储(Staging)并通过 datacite_query_data / datacite_get_schema 提供数据访问能力。
- 支持 DataCite GraphQL 请求的结果自动分段并在需要时进行分批查询。
- 本地与云端部署能力
- 本地开发可运行,Cloudflare Workers 部署也可使用;支持 Cloudflare Durable Objects 作为数据分发与存储的后端。
- 安全与合规
- 针对数据大小、查询复杂度提供分阶段存储、查询限制和错误处理,尽量避免未授权访问及无效查询。
- MCP 核心实现
-
安装步骤
- 本地开发
- 克隆仓库后进入项目目录,执行依赖安装。
- 启动开发服务器(本地 MCP 服务端):
- 运行开发命令后,MCP 服务默认会在 http://localhost:8787/mcp 提供服务。
- 部署到 Cloudflare Workers
- 按照项目文档的 Deploy 步骤进行 wrangler 部署,将 MCP 服务器部署到 Cloudflare 的边缘网络。
- 本地开发
-
服务器配置(供 MCP 客户端使用的配置示例说明)
- MCP 客户端需要配置一个服务器条目,用于连接 MCP 服务器并发起请求。配置包含服务器标识、启动命令及参数等信息(该部分用于客户端接入,不是服务器端代码的一部分)。
- 参考示例(描述性说明,不直接粘贴代码块):
- 服务器标识名:datacite
- 启动命令(command):npx
- 启动参数(args):mcp-remote、https://datacite-mcp-server.quentincody.workers.dev/mcp
- 上述配置对应 Claude Desktop 的接入方式,具体可在客户端配置界面填写类似信息,服务器端不需要在此处提供代码实现。
-
基本使用方法
- 数据查询
- 通过 MCP 客户端发送 datacite_graphql_query 请求,指定 GraphQL 查询字符串,以及可选的变量,获取初始结果或触发自动分段/阶段化。
- 阶段化后的数据查询
- 当返回结果较大时,服务会提供 data_access_id 等信息,后续可使用 datacite_query_data 来执行 SQL 查询,以获取分块后的数据。
- 获取数据结构与模式
- 使用 datacite_get_schema 工具获取数据模式与结构信息,帮助理解数据表、字段及关系。
- 交互示例
- 在 Claude 等支持 Code Mode 的客户端中,先执行 datacite_graphql_query,必要时使用 datacite_get_schema 了解数据结构,再通过 datacite_query_data 进行高级数据分析。
- 数据查询
-
技术要点
- 数据获取:GraphQL API 调用、结果缓存、分段存储(Durable Objects/SQL 介质)
- 数据组织:以 MCP 提供的工具和域配置对 DataCite 数据进行分层管理与查询
- 安全性:Origin 控制、请求限流与错误处理机制