OrthoDB MCP server

Gives AI assistants and agents structured access to OrthoDB orthology data through the Model Context Protocol.

What this is

This host exposes the OrthoDB REST API as a set of MCP tools — a standard interface (the Model Context Protocol) that lets an LLM client such as Claude, ChatGPT, Cursor or VS Code call OrthoDB directly: search orthologous groups and genes, fetch group and gene details, list orthologs across species, retrieve FASTA or tabular exports, run a protein BLAST, and browse the taxonomy.

There is nothing to browse here: the endpoint speaks JSON-RPC 2.0 over Streamable HTTP. Point an MCP client at it, or call it with curl.

Endpoint

MCP endpointhttps://mcp.orthodb.org/mcp  (POST, JSON-RPC 2.0, Streamable HTTP)
Healthhttps://mcp.orthodb.org/healthz → {"tools":13}
AuthenticationNone. The service is public and read-only.
Limits5 requests/second (burst 20) and 8 concurrent connections per client IP; over the limit you get HTTP 429 {"error":"rate_limited"}. Request bodies up to 1 MB.
DataThe current OrthoDB release (see the get_release_id tool). Same data as the OrthoDB website and REST API.

Connect a client

Claude Code

claude mcp add --transport http orthodb https://mcp.orthodb.org/mcp

With --scope project, claude mcp list shows the server as “Pending approval” until you run claude once and approve it.

Claude Desktop, Cursor, VS Code, or any client that takes an mcpServers JSON block

{
  "mcpServers": {
    "orthodb": { "type": "http", "url": "https://mcp.orthodb.org/mcp" }
  }
}

Then ask the assistant something like “Find the orthologous group for human TP53 and list its orthologs in mouse and zebrafish” — the client will call the tools below on your behalf.

Call it directly

List the tools:

curl -sS https://mcp.orthodb.org/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Call a tool (search orthologous groups for “TP53” in human, NCBI taxon 9606):

curl -sS https://mcp.orthodb.org/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"search_ogs","arguments":{"query":"TP53","species":"9606"}}}'

Every result is the raw OrthoDB REST response wrapped in {"endpoint", "request", "body"}; a failed call returns {"ok": false, "error": {"code": "…"}} (for example validation when an argument is not an OrthoDB identifier).

Tools

ToolWhat it doesArguments
search_ogsSearch orthologous groups by free text, taxon (species or level), universal/single-copy filters.query, gid/ncbi, species, level, universal, singlecopy, skip, take, counts_only
search_genesSearch genes by free text or organism/NCBI taxon id.query, gid/ncbi, skip, take
blast_sequenceProtein BLAST of a raw amino-acid sequence against OrthoDB.seq
get_groupFull details of one orthologous group: phyletic profile, GO/InterPro annotations, evolutionary descriptors.id (OG id, e.g. 2709330at2759)
get_og_descriptionCompact TSV description of groups by OG id or by clade taxon id.id or clade
get_orthologsOrthologs for one OG/gene id, or gene pairs between two organisms.id, or species + species2; optional clade
get_geneFull details of one gene.id (gene id, e.g. 9606_0:001ecb)
get_siblingsSibling groups that overlap one OG by InterPro domains, with overlap percentages.id, take
get_fastaFASTA protein or CDS sequences for one OG/gene id, optionally per species.id, species, seqtype
get_tabTSV table of gene-level ortholog rows for one OG/gene id.id, species
list_speciesOrganisms under a clade or level taxon id.clade / level
get_treeThe full OrthoDB taxonomy tree (Eukaryota, Bacteria, Archaea, Viruses).—
get_release_idThe current OrthoDB release id.—

Identifiers follow the OrthoDB conventions: genes look like 9606_0:001ecb (NCBI taxon, then a per-genome id), orthologous groups like 2709330at2759 (group number at the level-of-orthology taxon). Searches accept plain text; the detail tools need those ids.

Where to read more