Open Targets Platform MCP
The official Open Targets MCP server: an agent searches genes, diseases and drugs and queries target-disease associations
- 37 ★ on the repository
- Last commit
- Apache-2.0
Extended access
Why this level
- Queries go to the external Open Targets API, so a third-party service sees the gene, disease and drug names from your questions
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/open-targets-platform-mcpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Queries go to the external Open Targets API, so a third-party service sees the gene, disease and drug names from your questions
This is third-party code. Review the repository files before installing.
What it does
The Open Targets MCP server, for a data platform on target-disease links used in drug discovery. The agent calls the platform's GraphQL API: it searches genes, diseases, drugs, variants and studies, turns names into standard identifiers (ENSEMBL, EFO and MONDO, ChEMBL) and runs queries. There are five tools. `get_open_targets_graphql_schema` returns a subschema by category, `get_type_dependencies` returns an SDL fragment with all dependent types, `search_entities` finds identifiers, `query_open_targets_graphql` runs a query, and `batch_query_open_targets_graphql` runs one query with different parameters. The schema is cached when the server starts. An optional server-side jq filter keeps only the needed fields in the response and saves tokens. You can connect to the hosted Open Targets server or run your own with `uvx` or Docker.
Who it is for. Bioinformaticians and drug discovery researchers who select targets and check gene-disease links.
Good fit when
- You need a list of targets linked to breast cancer, together with associations
- A gene is named by symbol, for example BRCA2, and the agent needs its ENSEMBL identifier
- A drug is looked up by name, and its mechanisms of action are needed
- One query has to run for a hundred genes, and the batch tool saves calls
- API responses are large, and the jq filter keeps only the gene symbol and identifier
Not a fit when
- The result feeds clinical decisions: the project is called experimental, and features and the API change without notice
- The data must come from somewhere other than Open Targets: the server works only with its GraphQL API
- You need to work offline: both the hosted server and a local run call the platform API
Example request
Find the BRCA2 gene in Open Targets and show the five diseases with the strongest association.MCP
- Transport
- http, stdio
- Authentication
- not required
Environment variables
OTP_MCP_TRANSPORT- Transport: `stdio` or `http`, `http` by default.
OTP_MCP_JQ_ENABLED- The value `true` turns on the jq filter.
OTP_MCP_API_ENDPOINT- Address of the Open Targets GraphQL API.
Limitations
The project is experimental: features, the API and the documentation change without notice. The hosted server is at `https://mcp.platform.opentargets.org/mcp`, and a local run also calls the platform API with a 30-second timeout. A local server starts over HTTP on `localhost:8000` by default, and for stdio you pass `--transport stdio`. The jq filter is off and is turned on with the `--jq` flag. A local install needs Python 3.11 or newer and the uv package manager.
How to disable. Remove the server from the client's MCP configuration. Stop the local process, and remove the Docker container with `docker rm -f`.
FAQ
How do I connect Open Targets Platform MCP to Claude Desktop?
The remote server is the simplest: add it as a custom connector at `https://mcp.platform.opentargets.org/mcp`. For a local run put an `otp-mcp` block into the configuration with the command `uv run --directory <path> otp-mcp --transport stdio`.
Is an API key needed?
The documentation does not mention a key. The hosted server and a local run call the open Open Targets GraphQL API, and settings are variables with the `OTP_MCP_` prefix.
How do I run the server locally?
With `uvx --from git+https://github.com/opentargets/open-targets-platform-mcp otp-mcp`. It starts over HTTP on `localhost:8000`. A Docker image is available at `ghcr.io/opentargets/open-targets-platform-mcp`.
What does the jq filter do?
The `--jq` flag adds a `jq_filter` parameter to the query tools, and the server trims the response to the needed fields, for example `.data.target | {id, symbol: .approvedSymbol}`. That cuts token use on large responses.
Which tools does the server have?
Five: `get_open_targets_graphql_schema`, `get_type_dependencies`, `search_entities`, `query_open_targets_graphql` and `batch_query_open_targets_graphql`. Request the schema first, then find identifiers and run the query.
Discussion
No questions or reviews yet.
Related
MCP serversOfficial MCP server from the OpenSearch project exposes a cluster to agents: indexes, mappings, DSL search and shard state.
Medical MCP
medical-mcp
MCP server for medical sources: FDA and EMA drug data, WHO statistics, PubMed and clinical trials without API keys.
A Claude Code plugin and MCP server: over 1000 scientific tools for biology, chemistry and medicine, data-check commands and routing skills
BioMCP
biomcp
One binary and a single command grammar for 70 biomedical sources: PubMed, ClinVar, ClinicalTrials.gov, OncoKB. MCP mode starts with the serve command
pgEdge Postgres MCP
pgEdge Postgres MCP Server
Postgres MCP in Go with read-mode queries, EXPLAIN plans, semantic search, several databases and a ready chat client and web interface
Elasticsearch MCP connects multiple search clusters, with an explicit target name and access scoped to the supplied credentials.
README in short
The repository presents the server as official, names two ways to run it (hosted and local) and lists settings with the `OTP_MCP_` prefix. A separate section explains the three-step query strategy: schema, identifier lookup, execution.