io.github.nickzren/opentargets
编码与调试by nickzren
Open Targets 的 MCP server,可查詢 targets、diseases、drugs、variants 與 evidence。
什么是 io.github.nickzren/opentargets?
Open Targets 的 MCP server,可查詢 targets、diseases、drugs、variants 與 evidence。
README
Open Targets MCP Server
A Model Context Protocol (MCP) server that exposes the Open Targets Platform GraphQL API as a set of tools for use with Claude Desktop and other MCP-compatible clients.
<!-- mcp-name: io.github.nickzren/opentargets -->Quick Install
Option 1: Run once with uvx (no install)
uvx --from git+https://github.com/nickzren/opentargets-mcp opentargets-mcp
Option 2: Claude Desktop (MCPM)
# Install mcpm package manager
pip install mcpm
# Install the server
mcpm install opentargets
Option 3: Local install (dev or self-host)
git clone https://github.com/nickzren/opentargets-mcp
cd opentargets-mcp
pip install uv
uv sync
# Run (stdio transport by default)
uv run python -m opentargets_mcp.server
Option 4: Docker
git clone https://github.com/nickzren/opentargets-mcp
cd opentargets-mcp
# Build and run with Docker Compose
docker-compose up -d --build
Note: the default transport is http for docker deployments.
See the configuration section below for details and how to set ports and other environment variables.
Claude Desktop Manual Import (optional)
mcpm import stdio opentargets \
--command "$(uv run which python)" \
--args "-m opentargets_mcp.server --transport stdio"
Then restart Claude Desktop to start using the Open Targets tools.
Features
Core Capabilities
- Target Analysis: Search genes/proteins by Ensembl ID or symbol. Access expression data, genetic constraints, pathways, protein interactions, safety profiles, and mouse phenotypes
- Disease Analysis: Query diseases by EFO ID. Find associated targets, phenotypes (HPO), and research projects
- Drug Discovery: Search drugs by ChEMBL ID. Access safety data, adverse events, indications, and mechanism of action
- Evidence Mining: Explore target-disease associations with scored evidence from multiple sources
- Variant Analysis: Query genetic variants, GWAS credible sets, and pharmacogenomics data
- Study Exploration: Access GWAS studies with L2G predictions and fine-mapped loci
- Smart Search: Entity resolution with synonym handling, autocomplete, and ID mapping
- Cross-Entity Workflows: Multi-hop tools that chain disease, target, and drug evidence for prioritization
- Raw GraphQL Power Tools: Run single and batch raw GraphQL operations with structured status envelopes
Why This Server
This implementation is designed for practical Open Targets workflows:
- Curated breadth: 65 curated tools plus 3 advanced GraphQL tools (68 total), spanning target, disease, drug, evidence, variant, study, metadata, and cross-entity workflow tasks.
- Safer automation: strict ID resolution, typed parameter handling, and resilient retry behavior.
- Lower token overhead: optional
fieldsfilters on core domain tools to return only what you need. - Flexible power mode: raw GraphQL tools are available for edge cases.
Data Sources
The Open Targets Platform integrates evidence from 22+ primary data sources:
- Genetics: Open Targets Genetics, ClinVar, UK Biobank, FinnGen, Gene2Phenotype, Orphanet, COSMIC
- Functional: CRISPR screens, DepMap, GeneBass
- Drugs: ChEMBL, FDA/EMA approvals, chemical probes
- Expression: GTEx, Human Protein Atlas, Expression Atlas
- Pathways: Reactome, Signor, IntAct
- Literature: Europe PMC text mining
- Safety: FAERS, pharmacogenomics data
- Models: Mouse (MGI, IMPC) phenotypes
Architecture
graph LR
subgraph "Clients"
A[Claude Desktop]
B[Python Scripts]
C[AI Agents]
end
subgraph "MCP Server"
D[Open Targets<br/>MCP Server]
E[Tool Categories<br/>Target • Disease • Drug<br/>Evidence • Search • Variant • Study]
end
subgraph "Open Targets"
F[GraphQL API]
G[22+ Data Sources]
end
A <-->|MCP Protocol| D
B <-->|Direct API| D
C <-->|Function Calls| D
D <-->|GraphQL| F
F <--> G
E --> D
style D fill:#e1f5fe
style F fill:#fff3e0
The MCP server acts as a bridge between client applications and the Open Targets Platform. It translates tool calls into GraphQL queries and provides structured access to biomedical data from 22+ integrated sources.
Prerequisites
- Python 3.10+ with pip
Usage
Running the Server Standalone
# Using the convenience script (installs uv if missing, then syncs dependencies)
./run.sh
# Or run directly with uv (stdio transport by default)
uv run python -m opentargets_mcp.server
# Installed entrypoints
opentargets-mcp --help
# Specify transport explicitly
uv run python -m opentargets_mcp.server --transport [stdio|sse|http]
Configuration
- Environment variables: Transport/bind use
MCP_TRANSPORT,FASTMCP_SERVER_HOST, andFASTMCP_SERVER_PORT(defaults:stdio,0.0.0.0,8000). API endpoint usesOPEN_TARGETS_API_URL(default:https://api.platform.opentargets.org/api/v4/graphql). For local-only development, preferFASTMCP_SERVER_HOST=127.0.0.1. - Validated settings: environment configuration is parsed with a typed settings model at startup (
src/opentargets_mcp/settings.py), so invalid values fail fast. - Name resolution: strict; unresolved names raise a clear error (use
search_entitiesto find canonical IDs). - Tool selection guidance: the server sends a short policy to clients to prefer curated tools, use
fieldsto trim output, and reserve raw GraphQL for edge cases. - Pagination guardrails: tool wrappers enforce
page_index >= 0,page_size >= 1, and a globalpage_size <= 500. - Command line:
opentargets-mcp --transport [stdio|sse|http] --host 0.0.0.0 --port 8000 --api <url>provides flexible transport and endpoint selection. - Verbose logging: add
--verboseto elevate the global log level to DEBUG when troubleshooting. - CLI helpers:
--list-toolsprints all registered tools, and--versionprints the package version. - Rate limiting:
OPEN_TARGETS_RATE_LIMIT_RPSandOPEN_TARGETS_RATE_LIMIT_BURSTcan enable global server-side rate limiting.--rate-limitingandOPEN_TARGETS_RATE_LIMIT_ENABLED=trueare also supported.
Transport Modes
The server supports multiple transport protocols powered by FastMCP:
stdio transport (default)
# For Claude Desktop (via mcpm) and local CLI tools
opentargets-mcp --transport stdio
SSE transport
# For web-based MCP clients with Server-Sent Events
opentargets-mcp --transport sse --host 0.0.0.0 --port 8000
HTTP transport
# For streamable HTTP MCP clients
opentargets-mcp --transport http --host 0.0.0.0 --port 8000
Using with MCP Clients
- Claude Desktop: Use mcpm installation (stdio) or direct server connection (sse)
- Web MCP clients: Use SSE or HTTP transports with public URL (tunnel required)
- Custom integrations: Any transport mode depending on your client implementation
Example Scripts
uv run python examples/target_validation_profile.py EGFR
uv run python examples/disease_to_drug.py "schizophrenia"
uv run python examples/drug_safety_profile.py "osimertinib"
uv run python examples/genetic_target_prioritization.py "inflammatory bowel disease"
AI Agent Example
The ReAct Agent provides an interactive terminal interface for exploring Open Targets data:

# Copy the example .env file and add your OpenAI API key
cp .env.example .env
# Then edit .env and set your OPENAI_API_KEY
# Run agent
uv run python examples/react_agent.py
The agent uses a ReAct (Reasoning and Acting) pattern to break down complex biomedical queries into steps, making it easy to explore drug targets, diseases, and their relationships.
Available Tools
The server wraps 68 operations from the Open Targets Platform: 65 curated tools plus 3 advanced GraphQL tools. Every tool returns structured JSON that mirrors the Open Targets GraphQL schema, and you can inspect the full machine-readable list with the MCP list_tools request.
Most domain tools accept either a canonical identifier (e.g., ENSG..., EFO_..., CHEMBL...) or a human-readable name/symbol. When a name is provided, the server automatically resolves it to the best matching Open Targets ID.
Many core tools accept an optional fields list (dot-paths) to filter the response payload.
search_entities also returns search.triples for compact {id, entity, name} consumption.
For edge cases, prefer curated tools + fields first; use raw GraphQL only when no curated tool fits.
Quick-start shortcuts
get_target_info– Core target identity record (Ensembl IDs, synonyms, genomic coordinates)get_disease_info– Disease/EFO summary with therapeutic area contextget_drug_info– ChEMBL-backed drug profile and mechanism datasearch_entities– Unified entity search with synonym handlingget_target_associated_diseases– High-confidence target-disease links with scoresget_disease_associated_targets– Prioritised target list for an EFO diseaseget_target_known_drugs– Approved and investigational agents for a targetget_target_disease_evidence– Evidence details across genetics, expression, and literatureget_drug_repurposing_candidates– Multi-hop disease -> target -> drug candidate prioritizationgraphql_batch_query– Run one GraphQL query across many variable sets
Full catalog by category
- Target identity & biology (20 tools) —
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. - Disease analytics (8 tools) —
get_disease_info,get_disease_associated_targets,get_disease_phenotypes,get_disease_otar_projects,get_disease_known_drugs,get_disease_ontology,get_disease_literature_occurrences,get_disease_similar_entities. - Drug profiling (10 tools) —
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_drug_pharmacogenomics,get_drug_literature_occurrences,get_drug_similar_entities. - Evidence synthesis (2 tools) —
get_target_disease_evidence,get_target_disease_biomarkers. - Search & discovery (4 tools) —
search_entities,search_suggestions,get_similar_targets,search_facets. - Metadata & ontology utilities (5 tools) —
get_api_metadata,get_association_datasources,get_gene_ontology_terms,get_interaction_resources,map_ids. - Workflow tools (1 tool) —
get_drug_repurposing_candidates. - Batch lookups (3 tools) —
get_targets_batch,get_diseases_batch,get_drugs_batch. - Variant interpretation (6 tools) —
get_variant_info,get_variant_credible_sets,get_variant_pharmacogenomics,get_variant_evidences,get_variant_intervals,get_variant_protein_coordinates. - Study exploration (6 tools) —
get_study_info,get_studies_by_disease,get_study_credible_sets,get_credible_set_by_id,get_credible_set_colocalisation,get_credible_sets. - Advanced GraphQL (3 tools) —
graphql_schema,graphql_query,graphql_batch_query.
Each grouping matches the data domains described in the Open Targets docs (targets, diseases, drugs, evidence, variants, and studies). For high-volume workloads, respect the platform's throttling guidance from the Open Targets API FAQ and cache downstream where possible.
Development
# Run lint checks (same as CI/release)
uv run ruff check src tests
# Run tests
uv run pytest tests/ -v
# Inspect registered tools from CLI
uv run opentargets-mcp --list-tools
常见问题
io.github.nickzren/opentargets 是什么?
Open Targets 的 MCP server,可查詢 targets、diseases、drugs、variants 與 evidence。
相关 Skills
前端设计
by anthropics
面向组件、页面、海报和 Web 应用开发,按鲜明视觉方向生成可直接落地的前端代码与高质感 UI,适合做 landing page、Dashboard 或美化现有界面,避开千篇一律的 AI 审美。
✎ 想把页面做得既能上线又有设计感,就用前端设计:组件到整站都能产出,难得的是能避开千篇一律的 AI 味。
网页构建器
by anthropics
面向复杂 claude.ai HTML artifact 开发,快速初始化 React + Tailwind CSS + shadcn/ui 项目并打包为单文件 HTML,适合需要状态管理、路由或多组件交互的页面。
✎ 在 claude.ai 里做复杂网页 Artifact 很省心,多组件、状态和路由都能顺手搭起来,React、Tailwind 与 shadcn/ui 组合效率高、成品也更精致。
网页应用测试
by anthropics
用 Playwright 为本地 Web 应用编写自动化测试,支持启动开发服务器、校验前端交互、排查 UI 异常、抓取截图与浏览器日志,适合调试动态页面和回归验证。
✎ 借助 Playwright 一站式验证本地 Web 应用前端功能,调 UI 时还能同步查看日志和截图,定位问题更快。
相关 MCP Server
GitHub
编辑精选by GitHub
GitHub 是 MCP 官方参考服务器,让 Claude 直接读写你的代码仓库和 Issues。
✎ 这个参考服务器解决了开发者想让 AI 安全访问 GitHub 数据的问题,适合需要自动化代码审查或 Issue 管理的团队。但注意它只是参考实现,生产环境得自己加固安全。
Context7 文档查询
编辑精选by Context7
Context7 是实时拉取最新文档和代码示例的智能助手,让你告别过时资料。
✎ 它能解决开发者查找文档时信息滞后的问题,特别适合快速上手新库或跟进更新。不过,依赖外部源可能导致偶尔的数据延迟,建议结合官方文档使用。
by tldraw
tldraw 是让 AI 助手直接在无限画布上绘图和协作的 MCP 服务器。
✎ 这解决了 AI 只能输出文本、无法视觉化协作的痛点——想象让 Claude 帮你画流程图或白板讨论。最适合需要快速原型设计或头脑风暴的开发者。不过,目前它只是个基础连接器,你得自己搭建画布应用才能发挥全部潜力。