{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_h4q27z7mukn3","handle":"mcp-ontology-annotator","url":"https://wellknown.network/agents/mcp-ontology-annotator","links":{"self":"https://wellknown.network/agents/mcp-ontology-annotator/record.json","html":"https://wellknown.network/agents/mcp-ontology-annotator","markdown":"https://wellknown.network/agents/mcp-ontology-annotator/record.md","api":"https://wellknown.network/api/v1/agents/mcp-ontology-annotator","status":"https://wellknown.network/api/v1/agents/mcp-ontology-annotator/status","claim":"https://wellknown.network/agents/mcp-ontology-annotator/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/mcp-ontology-annotator/claim.json","badge":"https://wellknown.network/agents/mcp-ontology-annotator/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/mcp-ontology-annotator/history","tools":"https://wellknown.network/api/v1/agents/mcp-ontology-annotator/tools"},"ard":{"identifier":"urn:air::server:mcp-ontology-annotator","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"mcp-ontology-annotator","summary":"MCP server for mapping biomedical text to standardized ontology terms","description":"# MCP Ontology Annotator\n\nAn MCP (Model Context Protocol) server for mapping biomedical text to standardized ontology terms.\n\n## Features\n\n- **`annotate_ontology_terms`** — Map specific terms to ontology IDs via a multi-stage pipeline:\n  1. Exact label match (OLS)\n  2. Synonym match (OLS)\n  3. Fuzzy search (OLS)\n  4. BioPortal fallback (optional, requires API key)\n- **`extract_and_annotate`** — Extract biomedical entities from free text using Claude, then annotate each entity.\n- Supports domains: `disease`, `chemical`, `gene`, `phenotype`, `anatomy`, `organism`\n- Configurable default ontologies per domain\n- Retry with exponential back-off on API failures\n\n## Requirements\n\n- Python 3.10+\n- [uv](https://docs.astral.sh/uv/) for dependency management\n\n## Setup\n\n```bash\n# Clone the repo\ngit clone <repo-url>\ncd mcp-ontology-annotator\n\n# Create and activate virtual environment with uv\nuv venv\nsource .venv/bin/activate   # Linux/macOS\n# .venv\\Scripts\\activate    # Windows\n\n# Install the package and dependencies\nuv pip install -e \".[dev]\"    # includes dev/test dependencies\n# or just the runtime:\nuv pip install -e .\n```\n\n### Environment Variables\n\nCopy `.env.example` to `.env` and fill in values:\n\n```bash\ncp .env.example .env\n```\n\n| Variable | Default | Required |\n|---|---|---|\n| `ANTHROPIC_API_KEY` | — | For `extract_and_annotate` |\n| `OLS_API_URL` | `https://www.ebi.ac.uk/ols4/api` | No |\n| `BIOPORTAL_API_KEY` | — | For BioPortal fallback |\n| `BIOPORTAL_API_URL` | `https://data.bioontology.org` | No |\n| `DEFAULT_DISEASE_ONTOLOGIES` | `mondo,doid,hp` | No |\n| `DEFAULT_CHEMICAL_ONTOLOGIES` | `chebi,drugbank` | No |\n| `DEFAULT_GENE_ONTOLOGIES` | `hgnc,ncbigene` | No |\n| `DEFAULT_PHENOTYPE_ONTOLOGIES` | `hp,mp` | No |\n| `DEFAULT_ANATOMY_ONTOLOGIES` | `uberon,fma` | No |\n| `DEFAULT_ORGANISM_ONTOLOGIES` | `ncbitaxon` | No |\n\n## Running the MCP Server\n\n```bash\n# After installing with uv pip install -e .\nontology-annotator\n# or\npython -m ontology_annotator.server\n```\n\nThe server …","publisher":null,"homepage":null,"repository":null,"version":"0.1.0","license":null,"protocols":["mcp"],"tags":["mcp"],"pricing":null,"endpoints":[{"url":"pypi:mcp-ontology-annotator","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","summary":"pypi","version":"pypi","description":"pypi"}},"derived":{"capabilities":[{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":1,"provenance":"derived"},{"slug":"dev.package-management","name":"Packages & Dependencies","confidence":0.859,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.756,"provenance":"derived"}],"categories":["dev","knowledge"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"mcp-ontology-annotator","registry":"pypi","observedAt":"2026-10-28T12:22:57.689Z","publishedAt":"2026-02-24T04:25:09.864326Z","latestVersion":"0.1.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"mcp-ontology-annotator","url":"https://pypi.org/project/mcp-ontology-annotator/","firstSeenAt":"2026-09-10T02:24:26.592Z","fetchedAt":"2026-10-28T12:21:35.989Z","normalizedAt":"2026-10-28T12:21:35.989Z"}]},"firstSeenAt":"2026-09-10T02:24:26.592Z","updatedAt":"2026-10-28T12:22:57.689Z"}