MCP server for mapping biomedical text to standardized ontology terms
Wellknown found it in public sources; nobody has proven control of it yet. Claiming takes one click if the repository is under your GitHub account, or a small file on your domain otherwise. Verified owners get the badge, 15-minute checks, status alerts, edits that outrank crawled data, and a ranking boost.
Agents can do it too: POST https://wellknown.network/api/v1/claims with {"agent":"mcp-ontology-annotator","method":"well_known_file"} — machine-readable steps at claim.json, guide at /docs/claim.
Everything here was measured by our prober or read from a registry. Nothing is self-reported.
Attributed to the source that supplied each field. Treated as claims, not facts.
# MCP Ontology Annotator An MCP (Model Context Protocol) server for mapping biomedical text to standardized ontology terms. ## Features - **`annotate_ontology_terms`** — Map specific terms to ontology IDs via a multi-stage pipeline: 1. Exact label match (OLS) 2. Synonym match (OLS) 3. Fuzzy search (OLS) 4. BioPortal fallback (optional, requires API key) - **`extract_and_annotate`** — Extract biomedical entities from free text using Claude, then annotate each entity. - Supports domains: `disease`, `chemical`, `gene`, `phenotype`, `anatomy`, `organism` - Configurable default ontologies per domain - Retry with exponential back-off on API failures ## Requirements - Python 3.10+ - [uv](https://docs.astral.sh/uv/) for dependency management ## Setup ```bash # Clone the repo git clone <repo-url> cd mcp-ontology-annotator # Create and activate virtual environment with uv uv venv source .venv/bin/activate # Linux/macOS # .venv\Scripts\activate # Windows # Install the package and dependencies uv pip install -e ".[dev]" # includes dev/test dependencies # or just the runtime: uv pip install -e . ``` ### Environment Variables Copy `.env.example` to `.env` and fill in values: ```bash cp .env.example .env ``` | Variable | Default | Required | |---|---|---| | `ANTHROPIC_API_KEY` | — | For `extract_and_annotate` | | `OLS_API_URL` | `https://www.ebi.ac.uk/ols4/api` | No | | `BIOPORTAL_API_KEY` | — | For BioPortal fallback | | `BIOPORTAL_API_URL` | `https://data.bioontology.org` | No | | `DEFAULT_DISEASE_ONTOLOGIES` | `mondo,doid,hp` | No | | `DEFAULT_CHEMICAL_ONTOLOGIES` | `chebi,drugbank` | No | | `DEFAULT_GENE_ONTOLOGIES` | `hgnc,ncbigene` | No | | `DEFAULT_PHENOTYPE_ONTOLOGIES` | `hp,mp` | No | | `DEFAULT_ANATOMY_ONTOLOGIES` | `uberon,fma` | No | | `DEFAULT_ORGANISM_ONTOLOGIES` | `ncbitaxon` | No | ## Running the MCP Server ```bash # After installing with uv pip install -e . ontology-annotator # or python -m ontology_annotator.server ``` The server …
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
Every source is kept verbatim. Field changes are logged as events.