Pharos MCP 服务器
使用说明(Markdown 格式)如下,帮助你快速理解、部署与使用该 MCP 服务器:
-
项目简介
- 该仓库实现了一个基于 MCP(Model Context Protocol)的后端服务器,核心功能是为 LLM 客户端提供上下文信息、数据访问能力、工具注册与执行,以及对大响应进行高效的分阶段存储(staging),从而在对话中获得高效、可扩展的上下文服务。
- 服务器主要以 Cloudflare Workers 为部署目标,提供可扩展的工具注册、资源管理、数据阶段化和 schema/prompt 相关能力,且支持多种传输方式(如流式传输 /mcp、SSE)。
-
主要功能点
- MCP 核心能力:通过 MCP 服务器暴露 Tool Registry,注册并执行工具(如 pharos_graphql_query、pharos_query_data、pharos_get_schema)并返回结构化响应。
- 数据阶段化与查询:对大规模响应进行自动分段存储(stageToDoAndRespond),提供 data_access_id,通过 query_data 与 get_schema 工具进行后续探查与查询。
- 兼容性与传输:实现流式传输(/mcp)与 SSE(/sse)等传输模式,便于 LLM 客户端以不同方式接入 MCP 服务。
- Pharos 数据查询:内置 pharos_graphql_query 工具,调用 Pharos API 的 GraphQL 端点,查询目标、疾病及配体等信息,并在需要时将结果自动分段存储以供后续 SQL 查询。
- 辅助工具与查询链路:提供 pharos_query_data、pharos_get_schema 等工具,用于对已分段的数据进行查询与结构信息获取,便于 LLM 更灵活地探索数据。
- 资源与安全:工具、数据访问、分段存储等均在服务器端实现策略,包含对大数据响应的分阶段处理,确保上下文服务在资源受限环境中的可控性。
-
安装步骤(简化版)
- 获取代码:将本仓库克隆到本地或部署环境中。
- 安装依赖:在项目根目录执行依赖安装(例如 npm install)。
- 构建与打包:按照云端部署平台的指南进行打包,目标环境为 Cloudflare Workers。
- 部署到云端:将打包后的代码发布到 Cloudflare Workers(或等效的托管环境),并配置路由(如 /mcp 或 /sse)。
- 获取访问地址:部署完成后获取对应的工作负载地址,通常形如 https://your-workspace.workers.dev/sse(用于 SSE 传输)或 /mcp 的流式传输入口。
-
服务器配置(MCP 客户端需要) 说明:MCP 客户端需要知道服务器的标识、启动命令以及参数,用于连接和交互。以下为基于仓库信息的准确示例描述(JSON 格式,供 MCP 客户端配置参考;非代码块展示,便于理解):
- serverName: "PharosExplorer"
- command: "npx"
- args: [ "mcp-remote", "https://pharos-mcp-server.your-account.workers.dev/sse" ] 注释:以上配置中的 URL 为部署后 Thrift/HTTP 入口地址示例,实际请替换为你自己的 Workers 部署地址。MCP 客户端将用该信息建立与服务器的连接,并通过 MCP 协议进行请求/响应交互。
-
基本使用方法
- 启动与连接
- 将服务器部署到云端后,使用 MCP 客户端工具连接到 Pharos Explorer 服务器,进入上下文协作模式。
- 常用交互
- 查询 Pharos 数据:使用 pharos_graphql_query 工具发送 GraphQL 查询请求,结果若过大将自动分段存储,返回一个 data_access_id。
- 探索分段数据:使用 pharos_query_data(传入 data_access_id 和 SQL 查询)对已分段数据执行 SQL 查询,获取结构化结果。
- 查看模式与结构:使用 pharos_get_schema 获取分段数据的模式、表结构和关系等元信息,便于后续推理与对话上下文构建。
- 脚本自动化
- 可以将上述工具组合成生成式对话流程,例如先查询目标数据,再对结果进行聚合、筛选,最后将相关片段以结构化形式注入对话上下文。
- 启动与连接
-
运行注意与扩展
- 大响应分段的阈值、分段存储策略等在代码中有配置点,可根据实际数据规模调整。
- 服务器设计上支持多工具注册、扩展新的数据源(通过新增工具、调整 Pharos 接入点等)。
- 与多种传输协议的兼容性使得在不同执行环境中都能稳定工作。
-
开发与贡献
- 本仓库包含了基于 TypeScript 的后端实现、多个工具与分段存储组件,以及用于 Code Mode 的集成工具链,方便未来扩展更多数据源和工具。