search_targetsLABSCO SUMMARY
Bidirectional associations are the tool worth having.
Being able to run the same association query from the target end or the disease end is what makes this useful in a conversation — "what else is BRCA1 implicated in" and "what should we look at for this disease" are the same call with a different argument. Unofficial, and a thin GraphQL wrapper, but the identifier handling saves the step that usually breaks this workflow.
What it is
An unofficial MCP server over the Open Targets platform, the resource that scores how strongly a gene is associated with a disease by integrating evidence from many sources. It handles the identifier translation that makes this awkward by hand: you search by a gene symbol or a disease name, and it gives you the Ensembl and EFO identifiers the association queries need.
What you get
- Therapeutic targets searched by gene symbol, name or description —
search_targets - Diseases searched by name, synonym or description —
search_diseases - Target-disease associations with evidence scores, queried from either end — pass a
targetIdto see a gene's diseases, or adiseaseIdto see a disease's genes —get_target_disease_associations - A disease's prioritised therapeutic targets as a ranked summary —
get_disease_targets_summary - Full records for one target or one disease —
get_target_details,get_disease_details - Resource templates for direct addressing:
opentargets://target/{ensemblId},opentargets://disease/{efoId},opentargets://drug/{chemblId},opentargets://association/{targetId}/{diseaseId},opentargets://search/{query}
Requirements
No account and no key — the Open Targets GraphQL API at https://api.platform.opentargets.org/api/v4/graphql needs no authentication. Build it yourself with npm install and npm run build, then point your client at build/index.js. Identifiers follow the platform's conventions: Ensembl gene IDs for targets, EFO IDs for diseases, ChEMBL IDs for drugs. Calls carry a 30s timeout.
Setup effort
Build from source
USE CASES
Going from a gene symbol to real evidence
Search the symbol to get its Ensembl ID, then read the diseases it associates with and how strongly.
Finding what to work on for a disease
Resolve the disease to its EFO ID, then pull the prioritised target list rather than reading associations one by one.
Checking a candidate before committing to it
Read the target's full record and the disease's full record side by side, including the ontology terms.
Seeing whether an association is well supported
Query the specific target-disease pair and look at the evidence score rather than the fact that a link exists at all.
6 tools
Listed in project docs. Your client may show a different list.
search_diseasesget_target_disease_associationsget_disease_targets_summaryget_target_detailsget_disease_detailsBEFORE YOU INSTALL
What to know first
Tools you get
6 tools named in the project's documentation.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/Augmented-Nature/OpenTargets-MCP-Server
cd OpenTargets-MCP-ServerInstall and build
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"opentargets-server": {
"command": "node",
"args": [
"<YOUR_PATH_TO_OPENTARGETS_SERVER>/build/index.js"
]
}
}
}Any MCP client
node <YOUR_PATH_TO_OPENTARGETS_SERVER>/build/index.js