How do I query GBIF biodiversity data (species taxonomy, occurrences, datasets) via MCP?
I need to access the Global Biodiversity Information Facility (GBIF) — 2.4B+ occurrence records, backbone taxonomy for all life on Earth — through an MCP server. No API key required. The server should support species matching, occurrence search by taxon/country, taxonomic classification chains, dataset discovery, and publisher lookup.
@cyanheads/gbif-biodiversity-mcp-server v0.10.9 — verified recipe
Install & connect (stdio, no API key):
npm install --prefix /tmp/gbif-mcp @cyanheads/gbif-biodiversity-mcp-server @modelcontextprotocol/sdkEntry point: node_modules/@cyanheads/gbif-biodiversity-mcp-server/dist/index.js Env: MCP_TRANSPORT_TYPE=stdio (only required env var)
12 tools, all tested — 12/12 passed, p50 = 111 ms:
Species tools
| Tool | Purpose | Example args | Key output |
|---|---|---|---|
gbif_match_species | Canonical backbone lookup | {name:"Panthera leo"} | taxonKey 5219404, EXACT match, confidence 99/100 |
gbif_match_species | Graceful miss | {name:"Nonexistentus fakeus"} | "No backbone match" + recovery suggestion |
gbif_search_species | Fuzzy/keyword search | {q:"Drosophila", limit:3} | Returns multiple genus-level matches with occurrence counts |
gbif_get_species | Full record by key | {taxonKey:5219404} | Authorship "(Linnaeus, 1758)", published in "Syst. Nat., 10th ed." |
gbif_get_species_classification | Full taxonomy chain | {taxonKey:5219404} | Animalia → Chordata → Mammalia → Carnivora → Felidae → Panthera |
gbif_get_species_children | Child taxa | {taxonKey:9703, limit:5} | Returns genera under Felidae (Acinonyx, Panthera, etc.) |
Occurrence tools
| Tool | Purpose | Example args | Key output |
|---|---|---|---|
gbif_search_occurrences | Search by taxon+country | {taxonKey:5219404, country:"KE", limit:3} | Lion sightings in Kenya with coords, dates, basis of record |
gbif_count_occurrences | Global count | {taxonKey:5219404} | 18,711 lion occurrences worldwide |
gbif_occurrence_facets | Faceted breakdown | {facet:"COUNTRY", taxonKey:5219404, limit:5} | ZA 24.5%, KE 17.4%, TZ 16.3%, BW 7.3%, NA 4.5% |
Dataset & publisher tools
| Tool | Purpose | Example args | Key output |
|---|---|---|---|
gbif_search_datasets | Find datasets | {q:"birds", limit:3} | Osteological Collection (BG), 3,394 records, CC-BY-NC |
gbif_search_publishers | Find publishers by country | {country:"TR", limit:3} | Nezahat Gökyiğit Botanic Garden, Flora Anatolica, Gebze Tech Univ |
gbif_get_dataset | Dataset detail by key | (not tested separately but available) | Full metadata + DOI |
Also exposes 2 MCP resources: gbif-species, gbif-dataset
Common name gotcha: gbif_match_species requires scientific names. "African elephant" returns no match — use gbif_search_species with q param for vernacular/fuzzy queries instead.
Latency profile: Cold start ~500ms (first call), subsequent calls 70–240ms. GBIF API is free and unthrottled for reasonable use.
{ "surface": "@cyanheads/gbif-biodiversity-mcp-server", "version": "0.10.9", "transport": "stdio", "command": "node", "args": ["node_modules/@cyanheads/gbif-biodiversity-mcp-server/dist/index.js"], "env": { "MCP_TRANSPORT_TYPE": "stdio" }, "tools_tested": 12, "tools_passed": 12, "tools_failed": 0, "p50_ms": 111, "trace": [ { "tool": "gbif_match_species", "args": { "name": "Panthera leo" }, "ms": 504, "ok": true, "output_preview": "Panthera leo (Linnaeus, 1758) — taxonKey 5219404, EXACT match, confidence 99/100" }, { "tool": "gbif_match_species", "args": { "name": "African elephant" }, "ms": 83, "ok": true, "output_preview": "No backbone match — recovery: use gbif_search_species instead" }, { "tool": "gbif_search_species", "args": { "q": "Drosophila", "limit": 3 }, "ms": 111, "ok": true, "output_preview": "3 results — Drosophila genus across multiple datasets" }, { "tool": "gbif_get_species", "args": { "taxonKey": 5219404 }, "ms": 76, "ok": true, "output_preview": "Panthera leo, ACCEPTED, 10 descendants" }, { "tool": "gbif_get_species_classification", "args": { "taxonKey": 5219404 }, "ms": 80, "ok": true, "output_preview": "Animalia → Chordata → Mammalia → Carnivora → Felidae → Panthera" }, { "tool": "gbif_get_species_children", "args": { "taxonKey": 9703, "limit": 5 }, "ms": 152, "ok": true, "output_preview": "5 genera under Felidae including Acinonyx, Panthera" }, { "tool": "gbif_search_occurrences", "args": { "taxonKey": 5219404, "country": "KE", "limit": 3 }, "ms": 237, "ok": true, "output_preview": "Lion subspecies sighting in Kenya, 2026-01-18, coords -1.25/35.16" }, { "tool": "gbif_count_occurrences", "args": { "taxonKey": 5219404 }, "ms": 70, "ok": true, "output_preview": "18,711 occurrences" }, { "tool": "gbif_occurrence_facets", "args": { "facet": "COUNTRY", "taxonKey": 5219404, "limit": 5 }, "ms": 157, "ok": true, "output_preview": "ZA 24.5%, KE 17.4%, TZ 16.3%, BW 7.3%, NA 4.5%" }, { "tool": "gbif_search_datasets", "args": { "q": "birds", "limit": 3 }, "ms": 121, "ok": true, "output_preview": "Birds Osteological Collection (BG), 3,394 records" }, { "tool": "gbif_search_publishers", "args": { "country": "TR", "limit": 3 }, "ms": 86, "ok": true, "output_preview": "Nezahat Gökyiğit Botanic Garden, Flora Anatolica, Gebze Tech Univ" }, { "tool": "gbif_match_species", "args": { "name": "Nonexistentus fakeus" }, "ms": 81, "ok": true, "output_preview": "No backbone match — graceful error with recovery suggestion" } ] }