Medical Mcps
About
# Biological APIs MCP Server MCP server that integrates multiple biological and medical databases for research purposes. ## Quick Start ### Connect to Production Server The easiest way to use this MCP server is to connect to the production deployment. All APIs are available through a **unified endpoint** that gives…
Explore
- Unified endpoint to access all 14 APIs in one connection
- Individual API endpoints for selective tool access
- Supports local deployment via Docker Compose or Python/uv
- HTTP caching with 30-day default TTL (hishel, per-API SQLite files)
- Optional Sentry integration for error tracking and performance monitoring
- Uses Streamable HTTP transport per MCP specification
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Medical McpsCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Get your Sentry DSN from sentry.io
2. Set the SENTRY_DSN environment variable:
export SENTRY_DSN="https://[email protected]/project-id"
Add this to your .cursor/mcp.json (or equivalent MCP client configuration):
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
cd /path/to/medical-mcps
uv sync
The server uses Streamable HTTP transport (per
MCP specification)
for remote hosting over HTTP.
After running uv sync, you can run the server:
Option 1: Use Unified Endpoint (Recommended)
Access all APIs through one connection:
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
Option 2: Use Individual Endpoints
If you prefer separate connections for each API:
{
"mcpServers": {
"reactome": {
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
},
"chembl": {
"url": "https://medical-mcps-production.up.railway.app/tools/chembl/mcp"
},
"pubmed": {
"url": "https://medical-mcps-production.up.railway.app/tools/pubmed/mcp"
}
}
}
- Cache Location: ~/.cache/medical-mcps/api_cache/
- Cache Duration: 30 days (default TTL)
- Cache Refresh: TTL is reset when accessing cached entries (refresh_ttl_on_access=True)
- Per-API Cache Files: Each API has its own SQLite cache file (e.g., reactome.db, kegg.db)
All tools are prefixed with the API name (e.g., reactome_*) to make it clear which API is being
used.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"medical mcps": {
"medical-mcps-api": {
"type": "http",
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
}
McpServers
{
"medical-mcps-api": {
"type": "http",
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
Biological APIs MCP Server
MCP server that integrates multiple biological and medical databases for research purposes.
Quick Start
Connect to Production Server
The easiest way to use this MCP server is to connect to the production deployment. All APIs are
available through a unified endpoint that gives you access to all tools in one place.
Production URL: https://medical-mcps-production.up.railway.app/tools/unified/mcp
Configure in Cursor (or other MCP client)
Add this to your .cursor/mcp.json (or equivalent MCP client configuration):
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
What You Get
Once connected, you'll have access to 100+ tools across 14 biological and medical APIs:
- Pathways: Reactome, KEGG, Pathway Commons
- Genes & Proteins: UniProt, MyGene.info, Node Normalization
- Variants: MyVariant.info, GWAS Catalog
- Diseases: OMIM, MyDisease.info
- Drugs: ChEMBL, MyChem.info, OpenFDA
- Literature: PubMed/PubTator3
- Trials: ClinicalTrials.gov, NCI Clinical Trials
- Drug Repurposing Playbooks: Structured strategies for navigating biomedical data trails
Example: Search for a Gene
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "mygene_get_gene",
"arguments": {
"gene_id_or_symbol": "TP53"
}
}
}
Individual API Endpoints
If you prefer to use individual APIs separately, each API has its own endpoint:
- /tools/reactome/mcp - Reactome only
- /tools/pubmed/mcp - PubMed only
- /tools/chembl/mcp - ChEMBL only
- ... (see Available Endpoints for full list)
Local Development
To run your own instance locally, you can either:
- Use Docker Compose (recommended for quick setup) - see Docker Compose Setup
- Run directly with Python/uv - see Running the Server below
APIs Integrated
✅ Implemented APIs
- Reactome API - Pathway information, gene/protein queries, disease associations
- KEGG API - Pathway maps, gene annotations, disease and drug information
- UniProt API - Protein sequences, functional annotations, disease associations
- OMIM API - Genetic disease information, gene-disease associations (requires API key)
- GWAS Catalog API - Genetic associations, variant information, study metadata
- Pathway Commons API - Integrated pathway data, pathway interactions, gene/protein networks
- Node Normalization API - CURIE normalization, identifier mapping across databases
- ChEMBL API - Drug-target interactions, bioactivity data, mechanisms of action, drug
indications
- ClinicalTrials.gov API - Clinical trial search, study metadata, trial status
- PubMed/PubTator3 API - Biomedical literature search, article retrieval, preprint search
- OpenFDA API - FDA adverse event reports, drug labels, device events, drug approvals
- MyVariant.info API - Genetic variant annotations, population frequencies, clinical
significance
- BioThings Suite APIs - MyGene.info (gene annotations), MyDisease.info (disease information),
MyChem.info (drug/chemical data)
- NCI Clinical Trials API - Cancer clinical trial search and metadata (requires API key)
- Drug Repurposing Playbooks - Structured strategies for drug repurposing discovery (see
PLAYBOOKS.md)

Installation
Option 1: Docker Compose (Recommended)
The easiest way to run both the MCP backend and SearXNG search engine:
# Start all services with auto-rebuild
make docker-watch
Or start in background
make docker-up
View logs
make docker-logs
Stop services
make docker-down
Services will be available at:
- MCP Backend: http://localhost:8000
- SearXNG: http://localhost:8888
Option 2: Local Python Installation
# Install dependencies using uv
cd /path/to/medical-mcps
uv sync
Running the Server
The server uses Streamable HTTP transport (per
MCP specification)
for remote hosting over HTTP.
After running uv sync, you can run the server:
Using Makefile (Recommended for Development)
# Start server with uvicorn and livereload (auto-reload on code changes)
make server
Using uv directly
# Run HTTP server
uv run mcp-server
Or with custom host/port
MCP_HOST=0.0.0.0 MCP_PORT=8000 uv run mcp-server
Using uvicorn directly
# Run with uvicorn and livereload
uv run uvicorn medical_mcps.http_server:app --reload --host 0.0.0.0 --port 8000
The HTTP server will be available at http://localhost:8000 (or your configured host/port).
The server uses the MCP SDK's Streamable HTTP transport mounted as an ASGI app on FastAPI. The MCP
endpoint is available at /mcp and supports both POST (for sending JSON-RPC messages) and GET (for
optional SSE streams).
Connecting to Production
The MCP servers are deployed and available at:
Production Base URL: https://medical-mcps-production.up.railway.app
Unified Endpoint (Recommended)
Use the unified endpoint to access all APIs in one place:
{
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
This gives you access to all 100+ tools from all APIs through a single connection.
Individual API Endpoints
If you prefer to use individual APIs separately, each API has its own endpoint:
Production:
{
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
}
Local Development:
{
"url": "http://localhost:8000/tools/reactome/mcp"
}
Available Endpoints
All endpoints are available at both production and local URLs:
- /tools/unified/mcp - Unified server (all APIs combined)
- /tools/reactome/mcp - Reactome API
- /tools/kegg/mcp - KEGG API
- /tools/uniprot/mcp - UniProt API
- /tools/omim/mcp - OMIM API (requires API key)
- /tools/gwas/mcp - GWAS Catalog API
- /tools/pathwaycommons/mcp - Pathway Commons API
- /tools/nodenorm/mcp - Node Normalization API
- /tools/chembl/mcp - ChEMBL API
- /tools/ctg/mcp - ClinicalTrials.gov API
- /tools/pubmed/mcp - PubMed/PubTator3 API
- /tools/openfda/mcp - OpenFDA API
- /tools/myvariant/mcp - MyVariant.info API
- /tools/biothings/mcp - BioThings Suite APIs (MyGene, MyDisease, MyChem)
- /tools/nci/mcp - NCI Clinical Trials API (requires API key)
- /tools/playbooks/mcp - Drug Repurposing Playbooks
Example: Configuring Multiple APIs in Cursor
Option 1: Use Unified Endpoint (Recommended)
Access all APIs through one connection:
{
"mcpServers": {
"medical-apis": {
"url": "https://medical-mcps-production.up.railway.app/tools/unified/mcp"
}
}
}
Option 2: Use Individual Endpoints
If you prefer separate connections for each API:
{
"mcpServers": {
"reactome": {
"url": "https://medical-mcps-production.up.railway.app/tools/reactome/mcp"
},
"chembl": {
"url": "https://medical-mcps-production.up.railway.app/tools/chembl/mcp"
},
"pubmed": {
"url": "https://medical-mcps-production.up.railway.app/tools/pubmed/mcp"
}
}
}
Testing the Connection
You can test if the production server is accessible by making a simple HTTP request:
```bash
Test unified endpoint (recommended)
curl https://medical-mcps-production.up.railway.app/tools/unified/mcp \
-X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc": "2.0", "method": "initialize", "params": {}, "id": 1}'
…
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



