Open Targets MCP Server
Official MCP server for the Open Targets Platform, exposing target-disease-drug association data and the GraphQL API for drug discovery research.
The Open Targets Platform MCP server is the official Model Context Protocol implementation maintained by Open Targets, the public-private partnership that integrates evidence from genetics, genomics, and chemistry to systematically identify and prioritize drug targets. It gives AI assistants a purpose-built interface to the Open Targets Platform GraphQL API, including target-disease associations, drug data, variants, and studies, with a business interpretation layer that helps agents understand pagination, schema relationships, and entity ID formats (ENSEMBL, EFO/MONDO, ChEMBL, rsIDs).
The server exposes five tools covering schema introspection, single and batch GraphQL execution, type dependency exploration, and entity search across targets, diseases, drugs, variants, and studies. Notable features include a pre-fetched GraphQL schema cache for fast startup, optional server-side jq filtering to reduce token consumption, configurable rate limiting, and support for both stdio and HTTP transports. It is built on fastmcp.
Open Targets hosts a public remote endpoint at https://mcp.platform.opentargets.org/mcp for immediate use without local installation, and also publishes the source on GitHub plus a Docker image at ghcr.io/opentargets/open-targets-platform-mcp for self-hosting. The project is experimental and under active development, released in partnership with Anthropic as part of the Claude for Healthcare and Life Sciences launch.
Tools
| Tool | Description |
|---|---|
get_open_targets_graphql_schema |
Fetch category-based subschemas from the Open Targets Platform GraphQL API, including documentation for relevant types and fields. |
get_type_dependencies |
Explore schema type relationships and retrieve GraphQL SDL subsets with recursive dependencies for a given type. |
query_open_targets_graphql |
Execute a GraphQL query against the Open Targets Platform to retrieve data about targets, diseases, drugs, and their associations. |
batch_query_open_targets_graphql |
Execute the same GraphQL query multiple times with different variable sets for efficient batch processing. |
search_entities |
Search for entities across multiple types (targets, diseases, drugs, variants, studies) and retrieve their standardized IDs (ENSEMBL, EFO/MONDO, ChEMBL, rsIDs). |
Option 1: Remote hosted endpoint (simplest)
Open Targets runs a public hosted MCP server. Add it as a connector in Claude Desktop or any MCP client that supports remote HTTP MCP servers:
https://mcp.platform.opentargets.org/mcp
No authentication or API key is required. The endpoint targets the public Open Targets Platform API.
Option 2: Local install via uvx
Run the server directly from the GitHub repo using uvx:
uvx --from git+https://github.com/opentargets/open-targets-platform-mcp otp-mcp
Option 3: Claude Desktop stdio config
Clone and install with uv:
git clone https://github.com/opentargets/open-targets-platform-mcp.git
cd open-targets-platform-mcp
uv sync
Then add to your Claude Desktop config:
{
"mcpServers": {
"otp-mcp": {
"command": "uv",
"args": [
"run",
"--directory",
"<your-path>/open-targets-platform-mcp",
"otp-mcp",
"--transport",
"stdio"
]
}
}
}
Add --jq to the args array to enable server-side jq filtering.
Option 4: Docker
docker pull ghcr.io/opentargets/open-targets-platform-mcp
docker run -d -p 8000:8000 -e OTP_MCP_HTTP_HOST=0.0.0.0 \
ghcr.io/opentargets/open-targets-platform-mcp
Configuration
All settings use the OTP_MCP_ env var prefix or equivalent CLI flags. Common variables:
OTP_MCP_API_ENDPOINT(defaulthttps://api.platform.opentargets.org/api/v4/graphql)OTP_MCP_TRANSPORT(stdioorhttp, defaulthttp)OTP_MCP_HTTP_HOST,OTP_MCP_HTTP_PORTOTP_MCP_JQ_ENABLED(defaultfalse)OTP_MCP_RATE_LIMITING_ENABLED(defaultfalse)OTP_MCP_API_CALL_TIMEOUT(default30)
Prerequisites
- Python 3.10+ (3.11+ for local CLAUDE_DESKTOP setup) for local installs
uvpackage manager foruvx/uv runworkflows- Docker for containerized deployment
- Optional:
jqinstalled on the host for the filtering feature
- Systematic identification and prioritization of drug targets for a disease of interest using Open Targets association scores and evidence.
- Safety assessment for candidate targets (for example, retrieving known safety liabilities and adverse events for a gene like PTGS2).
- Multi-entity queries that combine target, disease, drug, variant, and study evidence to support a therapeutic hypothesis.
- Resolving free-text gene, disease, or drug names to standardized identifiers (ENSEMBL, EFO/MONDO, ChEMBL) for downstream pipelines.
- Schema-aware GraphQL exploration so agents can construct valid Open Targets queries without manually reading the full API schema.
- "Find the top 20 targets associated with idiopathic pulmonary fibrosis in Open Targets and rank them by overall association score."
- "List known drugs in clinical trials for EGFR and include mechanism of action and trial phase."
- "What safety concerns and adverse events are reported for PTGS2 in the Open Targets Platform?"
- "Resolve 'TP53' and 'breast carcinoma' to their Open Targets identifiers and pull the supporting evidence types."
- "Batch query the disease associations for these 10 ENSEMBL IDs and return the top 3 diseases for each."
- Official, maintained by Open Targets, with a public hosted endpoint that requires no API key or local setup.
- Includes a business interpretation layer plus schema introspection tools, so agents construct valid GraphQL queries instead of guessing.
- Optional jq filtering and batch queries reduce token usage on large biomedical result sets.
- Multiple deployment options: hosted, uvx, Docker, and self-hosted stdio/HTTP.
- Marked as experimental and under active development; features and APIs are subject to change.
- Read-only access to public Open Targets data; no support for proprietary or write-back workflows.
- Requires the user or agent to be comfortable composing GraphQL queries for anything beyond simple entity search.
- nickzren/opentargets-mcp: community MCP server that wraps 49 Open Targets GraphQL operations as individual tools.
- QuentinCody/open-targets-mcp-server: minimal community MCP exposing a single GraphQL execution tool against the Open Targets API.
- Augmented-Nature/OpenTargets-MCP-Server: unofficial MCP server for gene-drug-disease associations research.