OpenTargets MCP Server

# Unofficial Open Targets MCP Server ๐งฌ
Unofficial Model Context Protocol server for accessing Open Targets platform data for gene-drug-disease associations research.
[](https://platform.opentargets.org/)
Developed by [Augmented Nature](https://augmentednature.ai)
## โ
**Verified Features**
**All 6 tools working with live Open Targets API data:**
- ๐ฏ **Target Search** - Gene symbols, names, descriptions (BRCA1, TP53, etc.)
- ๐ฆ **Disease Search** - Names, synonyms, descriptions (cancer, diabetes, etc.)
- ๐ **Target-Disease Associations** - Evidence scores from 20+ databases
- ๐ **Disease Target Summaries** - Prioritized therapeutic targets
- ๐งฌ **Target Details** - Comprehensive gene/protein information
- ๐ญ **Disease Details** - Complete disease profiles with ontologies
## ๐ **Quick Start**
```bash
# Install and build
npm install
npm run build
# Run the server
node build/index.js
```
## ๐ **MCP Client Configuration**
### Claude Desktop
```json
{
"mcpServers": {
"opentargets-server": {
"command": "node",
"args": ["/path/to/opentargets-server/build/index.js"]
}
}
}
```
### Other MCP Clients
```bash
node /path/to/opentargets-server/build/index.js
```
## ๐ ๏ธ **Available Tools**
### ๐ฏ `search_targets`
**Search therapeutic targets by gene symbol, name, or description**
```json
{
"name": "search_targets",
"arguments": {
"query": "BRCA1", // Gene symbol, name, or description
"size": 10 // Optional: 1-500 results (default: 25)
}
}
```
**Example Results:**
- **BRCA1** (ENSG00000012048) - BRCA1 DNA repair associated
- **BRCA2** (ENSG00000139618) - BRCA2 DNA repair associated
- **BRIP1** (ENSG00000136492) - BRCA1 interacting DNA helicase 1
### ๐ฆ `search_diseases`
**Search diseases by name, synonym, or description**
```json
{
"name": "search_diseases",
"arguments": {
"query": "breast cancer", // Disease name, synonym, or description
"size": 10 // Optional: 1-500 results (default: 25)
}
}
```
### ๐ `get_target_disease_associations`
**Get target-disease associations with evidence scores**
```json
{
"name": "get_target_disease_associations",
"arguments": {
"targetId": "ENSG00000012048", // Target Ensembl ID
"size": 10 // Optional: 1-500 results
}
}
```
**OR**
```json
{
"name": "get_target_disease_associations",
"arguments": {
"diseaseId": "EFO_0000305", // Disease EFO ID
"size": 10 // Optional: 1-500 results
}
}
```
### ๐ `get_disease_targets_summary`
**Get prioritized targets associated with a disease**
```json
{
"name": "get_disease_targets_summary",
"arguments": {
"diseaseId": "EFO_0000305", // Disease EFO ID (required)
"size": 20 // Optional: 1-500 targets (default: 50)
}
}
```
### ๐งฌ `get_target_details`
**Get comprehensive target information**
```json
{
"name": "get_target_details",
"arguments": {
"id": "ENSG00000012048" // Target Ensembl gene ID
}
}
```
### ๐ญ `get_disease_details`
**Get comprehensive disease information**
```json
{
"name": "get_disease_details",
"arguments": {
"id": "EFO_0000305" // Disease EFO ID
}
}
```
## ๐ **Resource Templates**
Access Open Targets data through standardized URIs:
- `opentargets://target/{ensemblId}` - Complete target information
- `opentargets://disease/{efoId}` - Complete disease information
- `opentargets://drug/{chemblId}` - Drug information
- `opentargets://association/{targetId}/{diseaseId}` - Association evidence
- `opentargets://search/{query}` - Search results
## ๐งช **Real-World Examples**
### Cancer Research Workflow
```bash
# 1. Search for cancer-related targets
{"name": "search_targets", "arguments": {"query": "oncogene", "size": 10}}
# 2. Get detailed info for specific target
{"name": "get_target_details", "arguments": {"id": "ENSG00000012048"}}
# 3. Find all diseases associated with BRCA1
{"name": "get_target_disease_associations", "arguments": {"targetId": "ENSG00000012048"}}
# 4. Get top targets for breast cancer
{"name": "get_disease_targets_summary", "arguments": {"diseaseId": "EFO_0000305", "size": 20}}
```
### Drug Discovery Pipeline
```bash
# 1. Search for Alzheimer's disease
{"name": "search_diseases", "arguments": {"query": "Alzheimer", "size": 5}}
# 2. Get disease details
{"name": "get_disease_details", "arguments": {"id": "EFO_0000249"}}
# 3. Find prioritized therapeutic targets
{"name": "get_disease_targets_summary", "arguments": {"diseaseId": "EFO_0000249", "size": 30}}
```
## ๐ฌ **Data Sources & Standards**
**Open Targets integrates 20+ databases:**
- **ChEMBL** - Drug & compound data
- **Ensembl** - Gene & protein annotations
- **EFO** - Experimental Factor Ontology
- **ClinVar** - Clinical variant data
- **GWAS Catalog** - Genome-wide association studies
- **UniProt** - Protein sequences & functions
- **Reactome** - Biological pathways
- **And many more...**
**Standardized Identifiers:**
- **Targets**: Ensembl gene IDs (e.g., ENSG00000012048)
- **Diseases**: EFO IDs (e.g., EFO_0000305)
- **Drugs**: ChEMBL IDs (e.g., CHEMBL1234)
## ๐๏ธ **Architecture**
- **TypeScript** implementation with robust type safety
- **GraphQL** queries for efficient data retrieval
- **MCP Protocol** compliant JSON-RPC communication
- **Error Handling** with comprehensive validation
- **Production Ready** with 30s timeouts and proper logging
## ๐ **API Information**
- **Base URL**: `https://api.platform.opentargets.org/api/v4/graphql`
- **Version**: Open Targets v25.0.1
- **Rate Limits**: Generous for research use
- **Authentication**: None required
- **Format**: GraphQL queries, JSON responses
## ๐ค **Contributing**
This server is developed and maintained by [Augmented Nature](https://augmentednature.ai). For enhancements:
1. Fork the repository
2. Make your changes
3. Submit a pull request
## **Support**
For issues with:
- **MCP Server**: Check the server logs and error outputs
- **Open Targets API**: Visit [platform.opentargets.org](https://platform.opentargets.org/)
- **GraphQL Queries**: Use the [Open Targets GraphQL browser](https://api.platform.opentargets.org/api/v4/graphql/browser)
## Citation
If you use this project in your research or publications, please cite it as follows:
```bibtex @misc{opentargetsmcp2025,
author = {Moudather Chelbi},
title = {OpenTargets MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/OpenTargets-MCP-Server},
note = {Accessed: 2025-06-29}
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: two are for retrieving details (disease and target), two for retrieving associations/summaries (target-disease and disease-targets), and two for searching (diseases and targets). There is no overlap in functionality, making it easy for an agent to select the right tool.
All tool names follow a consistent verb_noun pattern with 'get_' or 'search_' prefixes, followed by descriptive nouns (e.g., get_disease_details, search_targets). The naming is uniform and predictable across all six tools.
With 6 tools, this server is well-scoped for its purpose of querying disease and target data in the OpenTargets domain. Each tool serves a specific, non-redundant function, and the count is appropriate for covering core operations without being overwhelming.
The tool set provides comprehensive coverage for querying and retrieving disease and target information, including details, associations, and search capabilities. A minor gap is the lack of update or creation tools, but this is reasonable for a read-only data query server focused on biomedical research.