这是一个模型上下文协议(MCP)服务器,它公开了Open Targets平台的GraphQL API作为一组工具,用于与Claude Desktop和其他兼容MCP的客户端一起使用。
<!-- mcp-name: io.github.nickzren/opentargets --># 安装mcpm包管理器
pip install mcpm
# 安装服务器
mcpm install opentargets
# 克隆并设置
git clone https://github.com/nickzren/opentargets-mcp
cd opentargets-mcp
pip install uv
uv sync
# 导入到Claude Desktop(stdio传输)
mcpm import stdio opentargets \
--command "$(uv run which python)" \
--args "-m opentargets_mcp.server --transport stdio"
然后重启Claude Desktop以开始使用Open Targets工具。
git clone https://github.com/nickzren/opentargets-mcp
cd opentargets-mcp
pip install uv
uv sync
# 方案1:使用简单的运行脚本(围绕uv run的薄包装)
./run.sh
# 方案2:直接运行
uv run python -m opentargets_mcp.server
Open Targets平台整合了来自22个以上主要数据源的证据:
graph LR
subgraph "客户端"
A[Claude Desktop]
B[Python 脚本]
C[AI 代理]
end
subgraph "MCP 服务器"
D[Open Targets<br/>MCP 服务器]
E[工具类别<br/>目标 • 疾病 • 药物<br/>证据 • 搜索 • 变异 • 研究]
end
subgraph "Open Targets"
F[GraphQL API]
G[22+ 数据源]
end
A <-->|MCP 协议| D
B <-->|直接API| D
C <-->|函数调用| D
D <-->|GraphQL| F
F <--> G
E --> D
style D fill:#e1f5fe
style F fill:#fff3e0
MCP服务器充当客户端应用程序和Open Targets平台之间的桥梁。它将工具调用转换为GraphQL查询,并提供对来自22个以上集成数据源的生物医学数据的结构化访问。
# 使用方便脚本(自动处理uv设置)
./run.sh
# 或直接使用uv运行(默认stdio传输)
uv run python -m opentargets_mcp.server
# 显式指定传输方式
uv run python -m opentargets_mcp.server --transport [stdio|sse|http]
MCP_TRANSPORT (stdio、sse 或 http)、FASTMCP_SERVER_HOST 和 FASTMCP_SERVER_PORT 控制传输和绑定地址。默认值分别为 stdio、0.0.0.0 和 8000。opentargets-mcp --transport [stdio|sse|http] --host 0.0.0.0 --port 8000 提供灵活的传输选择。--verbose 将全局日志级别提升到DEBUG,以便在故障排除时使用。服务器支持由FastMCP驱动的多种传输协议:
# 对于Claude Desktop(通过mcpm)和本地CLI工具
opentargets-mcp --transport stdio
# 对于基于web的MCP客户端,使用Server-Sent Events
opentargets-mcp --transport sse --host 0.0.0.0 --port 8000
# 对于可流式传输的HTTP MCP客户端
opentargets-mcp --transport http --host 0.0.0.0 --port 8000
uv run python examples/target_validation_profile.py EGFR
uv run python examples/disease_to_drug.py "精神分裂症"
uv run python examples/drug_safety_profile.py "奥希替尼"
uv run python examples/genetic_target_prioritization.py "炎症性肠病"
ReAct代理提供了一个交互式的终端界面,用于探索Open Targets数据:

# 复制示例.env文件并添加您的OpenAI API密钥
cp .env.example .env
# 然后编辑.env并设置您的OPENAI_API_KEY
# 运行代理
uv run python examples/react_agent.py
该代理使用ReAct(推理和行动)模式,将复杂的生物医学查询分解成步骤,使其易于探索药物靶标、疾病及其关系。
服务器封装了来自Open Targets平台的45个GraphQL操作。每个工具返回的结构化JSON都反映了官方模式,您可以使用MCP list_tools请求检查完整的机器可读列表。
get_target_info – 核心目标身份记录(Ensembl ID、同义词、基因组坐标)get_disease_info – 疾病/EFO摘要,附带治疗领域背景get_drug_info – 基于ChEMBL的药物概况和机制数据search_entities – 统一实体搜索,处理同义词get_target_associated_diseases – 高置信度的目标-疾病链接及评分get_disease_associated_targets – 优先目标列表,针对EFO疾病get_target_known_drugs – 目标的已批准和研究中的药物get_target_disease_evidence – 跨遗传学、表达和文献的证据详情get_target_info,get_target_class,get_target_alternative_genes,get_target_associated_diseases,get_target_known_drugs,get_target_literature_occurrences,get_target_expression,get_target_pathways_and_go_terms,get_target_homologues,get_target_subcellular_locations,get_target_genetic_constraint,get_target_mouse_phenotypes,get_target_hallmarks,get_target_depmap_essentiality,get_target_interactions,get_target_safety_information,get_target_tractability,get_target_chemical_probes,get_target_tep,get_target_prioritization。get_disease_info,get_disease_associated_targets,get_disease_phenotypes,get_disease_otar_projects。get_drug_info,get_drug_cross_references,get_drug_linked_diseases,get_drug_linked_targets,get_drug_adverse_events,get_drug_pharmacovigilance,get_drug_warnings。get_target_disease_evidence,get_target_disease_biomarkers。search_entities,search_suggestions,get_similar_targets,search_facets。get_variant_info,get_variant_credible_sets,get_variant_pharmacogenomics,get_variant_evidences。get_study_info,get_studies_by_disease,get_study_credible_sets,get_credible_set_by_id。每个分组匹配Open Targets文档中描述的数据域(目标、疾病、药物、证据、变异和研究)。对于高负载工作量,请参考官方API FAQ中的平台节流指导,并尽可能地缓存下游。
# 运行测试
uv run pytest tests/ -v