Open Targets MCP 服务器

使用说明

  • 项目简介 该仓库实现了一个基于 MCP(Model Context Protocol)的服务端组件,能够与 MCP 客户端(如 Claude Desktop 等)通过标准的 JSON-RPC 风格请求/响应进行交互。核心功能包括:将 Open Targets Platform 的 GraphQL API 结果通过工具暴露给客户端、将查询结果以结构化方式托管为可检索的资源、以及提供可组合的 Prompts/模板来支持 LLM 的交互模式。实现了多传输协议(Streamable HTTP、SSE)的通信能力,并具备会话管理、能力声明和数据托管能力。
  • 主要功能点
    • MCP 服务器实现与协议对接:通过 MCP Server 框架注册工具、处理请求并返回 MCP/Code Mode 兼容响应。
    • 工具 (Tools) 案例:opentargets_graphql_query、opentargets_query_sql、get_target_info、get_disease_associated_targets 等,涵盖 GraphQL 查询、数据获取和后续分析。
    • 数据托管与查询能力:通过 OpenTargets 的 GraphQL API 获取数据,支持将查询结果自动托管为可分析的 SQLite 表结构,提供 query_data/ get_schema 等查询工具。
    • 数据分层与分段存储:内置 Chunking/Staging 机制,将大文本和结构化数据分块存储以优化上下文/传输成本。
    • 支持多传输协议:Streamable HTTP(推荐)和 SSE(向后兼容)两种传输路径。
    • Durable Object 方案:通过 Cloudflare Durable Objects 实现对托管数据的分布式存储与调用隔离,确保数据安全和并发处理能力。
  • 安装与运行步骤
    1. 依赖与构建
      • 将代码部署到支持的运行环境(如 Cloudflare Workers/类似边缘计算平台),并确保可访问的 MCP 入口点。
    2. 部署与配置
      • 部署后确保可以通过以下入口与 MCP 客户端建立连接:Streamable HTTP Endpoint /mcp,以及备用的 SSE Endpoint /sse。
    3. 客户端连接示例
      • MCP 客户端需使用服务器的入口地址进行连接,首选 Streamable HTTP 端点,若使用 Claude Desktop 等工具则按客户端配置要求提供服务器地址。
    4. 使用场景
      • 使用 opentargets_graphql_query 工具查询 Open Targets GraphQL API,客户端可选择将结果托管为可检索的表、并基于 query_data 提供对数据的 SQL 查询能力。
  • 服务器配置(用于 MCP 客户端连接的 JSON 配置描述,非客户端代码) { "server_name": "open-targets-worker", "command": "npx", "args": [ "mcp-remote", "https://open-targets-mcp-server.quentincody.workers.dev/mcp" ] // 注释说明:该配置用于 MCP 客户端在本地或开发环境通过一个命令启动对远程 MCP 服务器的连接。实际连接参数应与部署地址匹配。 } 说明:
    • server_name:在 MCP 客户端侧用于标识要连接的 MCP 服务器条目名(如同示例中的 open-targets-worker)。
    • command / args:用于客户端如何启动与远端 MCP 服务器的连接的指令集合。客户端需要读取此信息以便建立连接,具体执行方式以客户端实现文档为准。
  • 基本使用方法
    • 连接与注册工具:通过 MCP 客户端将 opentargets_graphql_query、opentargets_query_sql 等工具注册到服务器,进行 GraphQL 查询、数据托管及后续 SQL 查询。
    • 数据托管与查询:在 GrafQL 查询后,若结果较大,则会自动分块托管(chunking/staging),客户端应使用 data_access_id 结合 query_data / get_schema 等工具对数据进行分析。
    • 传输协议切换:如需使用 SSE 兼容,请切换到 /sse 端点;如需更稳定的连接,优先使用 /mcp 的 Streamable HTTP 传输。
    • 安全与扩展性:服务端实现包含会话管理、能力声明和多种传输协议的支持,能为 LLM 应用提供安全、可扩展的上下文服务框架。

服务器信息