关于 CIViC MCP Server
CIViC MCP Server 是基于 Cloudflare Workers 的服务,面向癌症基因组数据查询与分析,将 CIViC GraphQL 响应转换为可用 SQL 查询的 SQLite 表。它还提供在 V8 isolate 中执行 JavaScript 的工具。
主要功能
- 01通过 GraphQL 查询 CIViC API
- 02将大型结果暂存为 SQLite 表
- 03使用 SQL 分析暂存数据
- 04在 V8 isolate 中执行 JavaScript
- 05提供变异证据与断言查询提示词
适用场景
- 01查找特定癌症变异的临床证据
- 02分析治疗相关的变异断言
- 03统计基因或疾病相关的证据数据
MCP 相关
该服务通过无状态 Streamable HTTP 向 MCP 客户端提供 GraphQL 查询、SQL 分析和 JavaScript 执行工具,也提供引导查询的 MCP 提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
CIViC MCP 服务
这是一个基于 Cloudflare Workers 的模型上下文协议(MCP)服务,提供用于查询 CIViC(癌症变异临床解读)API 的工具。该服务使用 Durable Objects 将 GraphQL 响应转换为可查询的 SQLite 表,以便高效处理数据。
CIViC 数据库是一个由社区共同维护的癌症变异临床解读资源库。此 MCP 服务支持通过与 AI 助手进行自然语言交互,对癌症基因组信息进行结构化查询和数据分析。
MCP 规范合规性
此服务通过 fleet 的无状态 SDK v2 适配器实现 MCP 2026-07-28:
server/discover取代初始化,且每个请求都携带协议/能力封装。- Worker 使用无状态 Streamable HTTP,不使用 MCP 会话 Durable Object 或
Mcp-Session-Id。 - SDK 会验证
Mcp-Method/Mcp-Name,添加resultType和serverInfo,并提供缓存提示。 - 工具列表采用确定性的注册顺序。
- 工具在成功和出错时都会返回
content和structuredContent;出错时会设置isError: true。 - 大型结构化结果会保留 fleet 的暂存机制和 100KB 传输保护。
工具注解参考
此服务为 MCP 客户端定义了全面的工具注解:
// GraphQL Query Tool
annotations: {
readOnlyHint: false, // Creates/modifies data in SQLite
destructiveHint: false, // Non-destructive data staging
idempotentHint: false, // Different queries produce different results
openWorldHint: true // Interacts with external CIViC API
}
// SQL Query Tool
annotations: {
readOnlyHint: true, // Only reads data
destructiveHint: false, // Cannot modify data (read-only SQL)
idempotentHint: true, // Same query produces same results
openWorldHint: false // Operates on closed SQLite database
}
传输
// MCP 2026-07-28 stateless Streamable HTTP
CivicMCP.serve("/mcp").fetch(request, env, ctx)
保留的 Durable Objects 仅用于应用/数据对象的暂存; 它们不是 MCP 传输会话。
功能
- GraphQL 转 SQL:自动将 CIViC API 响应转换为结构化 SQLite 表
- 高效数据存储:使用 Cloudflare Durable Objects 和 SQLite 暂存并查询数据
- 智能响应处理:对于小型响应、错误和架构内省查询,跳过暂存以优化性能
- 工具流水线:
civic_graphql_query:执行 GraphQL 查询并暂存大型数据集civic_query_sql:支持对暂存数据进行基于 SQL 的分析civic_execute:代码模式 — 在 V8 isolate 中运行 JavaScript,并使用gql.query()和架构辅助工具全面访问 GraphQL
安装与配置
前提条件
- Cloudflare 账户
- 已安装 Wrangler CLI
- Claude 桌面应用
部署到 Cloudflare Workers
-
克隆此仓库:
git clone <repository-url> cd civic-mcp-server -
安装依赖项:
npm install -
部署到 Cloudflare Workers:
npm run deploy -
部署完成后,你会获得类似这样的 URL:
https://civic-mcp-server.YOUR_SUBDOMAIN.workers.dev
配置 Claude 桌面应用
将此配置添加到你的 claude_desktop_config.json 文件中:
{
"mcpServers": {
"civic-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://civic-mcp-server.quentincody.workers.dev/mcp"
]
}
}
}
将 quentincody 替换为你的实际 Cloudflare Workers 子域名。
使用方法
配置完成后,重启 Claude 桌面应用。此服务提供三个主要工具:
civic_graphql_query:针对 CIViC API 执行 GraphQL 查询civic_query_sql:使用 SQL 查询暂存数据civic_execute:代码模式 — 在 V8 isolate 中编写 JavaScript,以访问 CIViC GraphQL API
提示词
此服务提供三个 MCP 提示词,指导模型使用 civic_graphql_query 工具,并采用正确的 GraphQL 语法和可靠的搜索策略:
单独的数据类型提示词
get-variant-evidence— 仅为证据条目生成 GraphQL(不使用 variantName 筛选条件,因为 CIViC 架构不支持)get-variant-assertions— 仅为断言生成 GraphQL,并采用系统性的回退策略
组合数据提示词
get-variant-data— 同时执行证据条目和断言查询,进行全面的变异分析
示例(VS Code Copilot Chat / 斜杠命令):
/get-variant-evidence molecularProfileName:"TP53 Mutation" diseaseName:"Lung Adenocarcinoma" evidenceType:"PROGNOSTIC" first:"200"/get-variant-assertions molecularProfileName:"TPM3-NTRK1 Fusion" therapyName:"Larotrectinib" status:"ALL"/get-variant-data molecularProfileName:"BRAF V600E" diseaseName:"Melanoma" therapyName:"Trametinib" status:"ALL"
提示词的主要特点
- 可靠的 GraphQL 生成:完整、经过验证的查询,不会失败
- 智能搜索策略:自动采用备用方法查找相关数据
- 全面的结果:证据条目包含临床描述;断言提供高层级摘要
- 最优筛选:默认状态为 "ALL",以避免过度筛选;自动排除 null 参数
- 正确生成 URL:提供规范链接以供验证(证据:
/evidence/{id},断言:/assertions/{id})
这些提示词提供完整的 GraphQL 查询,符合 CIViC v2 架构规范,并采用系统化的搜索方法,即使用户提供的参数不够准确,也能确保发现数据。
查询示例
你可以向 Claude 提出如下问题:
- “BRAF 突变有哪些最新的证据条目?”
- “显示肺癌变异的所有治疗解读”
- “查找 CIViC 数据库中证据条目最多的基因”
Claude 会使用服务(及其 civic_graphql_query 工具)从 CIViC 数据库获取相关数据并呈现给你。该服务专为查询 CIViC API 的第 2 版而设计,确保你获取最新信息。
如果遇到问题,或者 Claude 似乎没有使用 CIViC 数据,请仔细检查上述配置步骤。
响应处理
该服务会将大型结果存储在临时 SQLite 数据库中,从而智能优化上下文用量。当 GraphQL 响应符合特定条件时,会直接返回原始响应,而不创建数据库:
- 小型响应(< 1500 个字符):直接返回,避免不必要的开销
- 错误响应:直接传递,便于排查问题
- 空/null 响应:跳过处理,以避免创建空数据库
- 架构内省查询:包含
__schema、__type或其他内省模式的查询会直接返回,因为这类查询包含的是元数据,而非适合转换为 SQL 的数据
这一优化让服务更加高效,并提供更清晰的错误信息,同时仍支持基于 SQL 对大量数据进行强大的分析。
许可证
MIT 许可证(附学术引用要求)——请参阅 LICENSE.md
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。