Biological APIs

Provides unified access to 100+ biology/medicine APIs for research and discovery.
  • python

9

GitHub Stars

python

Language

6 months ago

First Indexed

2 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs

You have access to a unified Biological APIs MCP Server that integrates 100+ tools from multiple biological and medical databases. Connect once and query pathways, genes, diseases, drugs, literature, trials, and more through a single, streamlined MCP endpoint for research and discovery.

How to use

Connect your MCP client to the unified endpoint to access all APIs in one place. With this server, you can explore pathway data, gene and protein information, disease associations, clinical trials, literature, and drug-related resources across Reactome, KEGG, UniProt, OMIM, GWAS Catalog, PubMed, OpenFDA, MyVariant.info, MyChem.info, and others. You can perform queries to retrieve detailed object information, search across tools, and compose workflows that combine data from multiple sources. The unified endpoint makes it easy to build cross-database analyses and rapid hypothesis testing without juggling separate connections.

If you prefer to work with individual APIs, you can target specific endpoints for Reactome, PubMed, ChEMBL, and more. Each API is available at its dedicated endpoint in addition to the unified option.

How to install

Prerequisites you need before installation: a modern Python environment, a container runtime if you plan to use Docker, and a capable MCP client to manage connections.

Option 1. Docker Compose (recommended for quick setup) Start all services with automatic rebuild, or run in the background. View logs and stop services when you are finished.

# 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

Option 2. Local Python installation Install dependencies and synchronize the MCP server then run the server using your preferred method.

# Install dependencies using uv
uv sync

Starting the server without Docker, using the recommended development workflow: you can start with a Makefile target for running via uvicorn with livereload, or run directly with uv or uvicorn equivalent commands.

# Start server with uvicorn and livereload (recommended for development)
make server

# Or run directly with uvicorn
uv run uvicorn medical_mcps.http_server:app --reload --host 0.0.0.0 --port 8000

Configuration and runtime notes

The MCP server operates as a stateless proxy. It does not store API keys. For APIs that require authentication, you must provide the API key as a parameter with each tool call where applicable.

Production and development endpoints are available for unified access or per-API access. The unified endpoint gives you access to all tools through a single connection, while individual endpoints allow you to query a single API directly.

Caching is enabled by default for all HTTP-based APIs to improve performance. Cache behavior follows RFC 9111 semantics, with per-API cache files stored locally.

Sentry integration is optional for error tracking and performance monitoring. If you enable it, set the SENTRY_DSN environment variable and adjust tracing, profiling, and PII settings as needed.

Testing connections and availability

You can verify that the production server is reachable by sending a simple initialization request to the unified endpoint or to a specific API endpoint. A successful response confirms that the server is running and accessible.

When you test, you should observe that tool results indicate the originating API source, helping you track provenance across analyses.

Security and API keys handling

APIs that require authentication (such as OMIM) demand that you pass the API key with each tool call. Do not store API keys on the server. Use per-request keys when making tool calls.

For OpenFDA and NCI Clinical Trials APIs, you may provide optional API keys for higher rate limits. See the specific tool documentation for how to pass the key in requests.

Troubleshooting and tips

If you encounter issues, check that you are using the unified endpoint or the per-API endpoints correctly, ensure your API keys are valid and provided when required, and verify that your MCP client is configured to target the correct endpoint.

If you see caching-related errors, confirm the local cache directory exists and that your client honors RFC 9111 caching controls. You can clear caches by removing the local cache files as needed.

Example actions you can perform

Search for a disease pathway, then retrieve related genes and chemical interactions, followed by a literature search to gather supporting articles. Combine results from Reactome, KEGG, UniProt, PubMed, and ChEMBL to build a multi-database view of a biomedical topic.

Next steps

Choose unified access for simplicity or select individual APIs to tailor your dataRetrieval workflow. Configure your MCP client to point at the appropriate endpoint, then start querying tools to begin your research.

Notes on available tools and APIs

The server exposes a broad set of tools across multiple APIs. Each tool is prefixed with the corresponding API name to clearly indicate its origin, enabling you to compose cross-database analyses with confidence.

Developer notes

For local development, you can run a full container stack or operate a Python-based server with uvicorn. The MCP endpoint supports both POST for JSON-RPC and GET for streaming if needed.

Available tools

reactome_get_pathway

Get detailed pathway information from the Reactome API.

reactome_query_pathways

Query pathways by keyword or gene/protein name.

reactome_get_pathway_participants

Get all participants in a Reactome pathway.

reactome_get_disease_pathways

Get pathways associated with a disease.

kegg_get_pathway_info

Get pathway information by pathway ID in KEGG.

kegg_list_pathways

List pathways, optionally filtered by organism.

kegg_find_pathways

Find pathways matching a query keyword.

kegg_get_gene

Get gene information by gene ID.

kegg_find_genes

Find genes matching a query keyword.

kegg_get_disease

Get disease information by disease ID.

kegg_find_diseases

Find diseases matching a query keyword.

kegg_link_pathway_genes

Get genes linked to a pathway.

uniprot_get_protein

Get protein information by accession.

uniprot_search_proteins

Search proteins in UniProtKB.

uniprot_get_protein_sequence

Get protein sequence in FASTA format.

uniprot_get_disease_associations

Get disease associations for a protein.

uniprot_map_ids

Map identifiers between databases.

omim_get_entry

Get entry information by MIM number.

omim_search_entries

Search entries in OMIM.

omim_get_gene

Get gene information by gene symbol.

omim_search_genes

Search genes in OMIM.

omim_get_phenotype

Get phenotype information by MIM number.

omim_search_phenotypes

Search phenotypes in OMIM.

gwas_get_association

Get association information by association ID.

gwas_search_associations

Search for associations with various filters.

gwas_get_variant

Get SNP information by rsId.

gwas_search_variants

Search for SNPs/variants by rsId.

gwas_get_study

Get study information by study ID.

gwas_search_studies

Search for studies with various filters.

gwas_get_trait

Get trait information by trait ID.

gwas_search_traits

Search for traits.

pathwaycommons_search

Search for pathways, proteins, or other biological entities.

pathwaycommons_get_pathway_by_uri

Get pathway information by URI.

pathwaycommons_top_pathways

Get top-level pathways, optionally filtered by gene or datasource.

pathwaycommons_graph

Get pathway graph or network information.

pathwaycommons_traverse

Traverse pathway data using graph path expressions.

nodenorm_get_semantic_types

Get all supported BioLink semantic types.

nodenorm_get_curie_prefixes

Get all supported CURIE prefixes.

nodenorm_get_normalized_nodes

Normalize CURIEs to obtain equivalent identifiers.

nodenorm_get_allowed_conflations

Get available conflation types.

chembl_get_molecule

Get molecule information by ChEMBL ID.

chembl_search_molecules

Search molecules by name or synonym.

chembl_get_target

Get target information by ChEMBL ID.

chembl_search_targets

Search targets by name or synonym.

chembl_get_activities

Get bioactivity data filtered by target or molecule.

chembl_get_mechanism

Get mechanism of action for a molecule.

chembl_find_drugs_by_target

Find drugs targeting a specific protein.

chembl_find_drugs_by_indication

Find drugs for a disease/indication.

chembl_get_drug_indications

Get all indications for a specific drug.

ctg_search_studies

Search ClinicalTrials.gov trials with various filters.

ctg_get_study

Get a single study by NCT ID.

ctg_search_by_condition

Search trials by condition/disease.

ctg_search_by_intervention

Search trials by intervention/treatment.

ctg_get_study_metadata

Get data model metadata for ClinicalTrials.gov.

pubmed_search_articles

Search biomedical articles from PubMed/PubTator3.

pubmed_get_article

Get detailed article information by PMID or DOI.

pubmed_search_preprints

Search preprint articles via Europe PMC.

openfda_search_adverse_events

Search FDA adverse event reports.

openfda_get_adverse_event

Get detailed adverse event report by safety report ID.

openfda_search_drug_labels

Search FDA drug product labels.

openfda_get_drug_label

Get full drug label by set ID.

openfda_search_device_events

Search FDA device adverse event reports.

myvariant_search_variants

Search genetic variants by gene, HGVS notation, or rsID.

myvariant_get_variant

Get comprehensive variant details.

mygene_get_gene

Get gene information from MyGene.info by ID or symbol.

mydisease_get_disease

Get disease information from MyDisease.info by ID or name.

mychem_get_drug

Get drug data from MyChem.info by ID or name.

nci_search_trials

Search NCI cancer trials by condition, intervention, phase, or status.

nci_get_trial

Get NCI trial details by trial ID.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational