Medical Mcps

by pascalwhoop

168 downloads Not rated yet
GitHub

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:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Medical Mcps
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. 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}'

…

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.