关于 opentargets
opentargets 是用于查询 Open Targets 数据的只读 MCP 服务,涵盖靶点、疾病、药物、变异和证据。它可按名称或 ID 查询并返回结构化结果,无需 API 密钥。
主要功能
- 01搜索靶点、疾病和药物
- 02获取靶点与疾病关联证据
- 03查询变异和研究
- 04探索药物重定位候选项
- 05执行自定义 GraphQL 查询
适用场景
- 01查找作用于某靶点的药物
- 02比较与某疾病关联的基因
- 03查看靶点与疾病之间的证据
- 04筛选药物重定位候选项
MCP 相关
向 MCP 客户端提供 68 个只读工具,用于查询 Open Targets Platform。结果以结构化数据返回,并在可用时包含数据源 ID 和 PubMed 引用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
68收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ensembl_id | string | 是 |
详细介绍
Open Targets MCP 服务
一个只读 MCP 服务,可通过 Open Targets Platform 探索靶点、疾病、药物和遗传证据。使用名称或 ID,检索支持证据,并探索药物再利用候选项。无需 Open Targets API 密钥。
安装
需要 uv。
Claude Code
claude mcp add opentargets -- uvx opentargets-mcp
Claude Desktop 和 Cursor:将以下内容添加到 claude_desktop_config.json(Settings → Developer → Edit Config)或 ~/.cursor/mcp.json,然后重启:
{
"mcpServers": {
"opentargets": {
"command": "uvx",
"args": ["opentargets-mcp"]
}
}
}
VS Code
code --add-mcp '{"name":"opentargets","command":"uvx","args":["opentargets-mcp"]}'
Codex
codex mcp add opentargets -- uvx opentargets-mcp
其他任何 stdio MCP 客户端的配置方式都相同:命令为 uvx,参数为 opentargets-mcp。
提示:
- 如果客户端报告
spawn uvx ENOENT,请使用which uvx查到的完整路径。 - 使用
opentargets-mcp@latest作为参数,以获取新版本。 - 在 Apple Silicon 上,
cryptography构建错误可能意味着 uv 选用了 Intel(Rosetta)Python。uv python find可作为初步排查线索;缓存的工具环境和桌面客户端可能使用不同的解释器。
你可以询问什么
- “哪些药物靶向 EGFR?它们的研发进展如何?”
- “哪些基因与哮喘的关联最强?”
- “展示 BRAF 与黑色素瘤之间的关联证据。”
- “为 2 型糖尿病推荐药物再利用候选项。”
可使用名称或 ID:基因符号、疾病和药物名称、rsID,或 Ensembl、MONDO 和 ChEMBL ID。如果名称匹配到多个实体,工具会列出候选项供你选择。
工具
共 68 个工具。运行 uvx opentargets-mcp --list-tools 查看完整列表。
| 领域 | 示例 |
|---|---|
| 靶点 | get_target_info、get_target_known_drugs |
| 疾病 | get_disease_info、get_disease_associated_targets |
| 药物 | get_drug_info、get_drug_adverse_events |
| 证据 | get_target_disease_evidence |
| 变异和研究 | get_variant_info、get_credible_sets |
| 搜索和查询 | search_entities、map_ids |
| 工作流 | get_drug_repurposing_candidates |
| 原始 GraphQL | graphql_query、graphql_schema |
许多工具接受 fields(点分隔路径,例如 ["target.approvedSymbol"]),仅返回所需内容。对于精选工具未覆盖的内容,请使用 graphql_query。
证据结果会在可用时包含数据源 ID 和 PubMed 引用。使用 get_api_metadata,在分析中记录 Open Targets API 和数据发布版本。clinicalReportCount 统计的是报告记录数,而非唯一试验数;如需完整报告,请使用 graphql_query。
工作原理
flowchart LR
A(["AI agent<br/>Claude · Codex · VS Code · Cursor"])
subgraph S["opentargets-mcp"]
direction TB
S1["1. Resolve names to IDs"]
S2["2. Run read-only queries"]
S3["3. Return structured JSON"]
S1 --> S2 --> S3
end
subgraph O["Open Targets Platform"]
direction TB
API["GraphQL API"]
DB[("ChEMBL · GWAS Catalog<br/>ClinVar · Europe PMC · more")]
API --- DB
end
A <-->|MCP| S
S <-->|GraphQL| O
classDef client fill:#e8f0fe,stroke:#4285f4,color:#1f2328
classDef step fill:#ffffff,stroke:#34a853,color:#1f2328
classDef data fill:#ffffff,stroke:#f9ab00,color:#1f2328
class A client
class S1,S2,S3 step
class API,DB data
style S fill:#e6f4ea,stroke:#34a853,color:#1f2328
style O fill:#fef7e0,stroke:#f9ab00,color:#1f2328
用自然语言提问;服务会将名称转换为 Open Targets ID,执行只读查询并返回结构化结果。无需 API 密钥。
配置
默认设置适用于本地使用。如需更改,请设置环境变量或传入标志(uvx opentargets-mcp --help):
| 变量 | 标志 | 默认值 |
|---|---|---|
MCP_TRANSPORT | --transport | stdio(也支持 http、sse) |
FASTMCP_SERVER_HOST | --host | 0.0.0.0 |
FASTMCP_SERVER_PORT | --port | 8000 |
OPEN_TARGETS_API_URL | --api | https://api.platform.opentargets.org/api/v4/graphql |
OPEN_TARGETS_RATE_LIMIT_RPS | --rate-limit-rps | 0(关闭);限制传入的 MCP 请求 |
OPEN_TARGETS_RATE_LIMIT_BURST | --rate-limit-burst | 20 |
代理设置从 HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY 中读取。
自托管
从源代码构建:
git clone https://github.com/nickzren/opentargets-mcp
cd opentargets-mcp
uv run opentargets-mcp
使用 Docker(通过端口 8000 提供 HTTP),在克隆的仓库目录中运行:
docker compose up -d --build
将 MCP 客户端连接到 http://localhost:8000/mcp。
开发
uv sync --extra dev
uv run ruff check src tests
uv run pytest -m "not live" # offline
uv run pytest -m live # calls the Open Targets API
示例脚本位于 examples/。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。