Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP.
- ✓Open-source license (Apache-2.0)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/cyanheads/gbif-biodiversity-mcp-server{
"mcpServers": {
"gbif-biodiversity": {
"command": "node",
"args": ["/path/to/gbif-biodiversity-mcp-server/dist/index.js"]
}
}
}MCP Servers overview
<div align="center"> <h1>@cyanheads/gbif-biodiversity-mcp-server</h1> <p><b>Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP.</b> <div>13 Tools • 2 Resources</div> </p> </div> <div align="center"> [](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/gbif-biodiversity-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/gbif-biodiversity-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/) </div> <div align="center"> [](https://github.com/cyanheads/gbif-biodiversity-mcp-server/releases/latest/download/gbif-biodiversity-mcp-server.mcpb) [](https://cursor.com/en/install-mcp?name=gbif-biodiversity-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvZ2JpZi1iaW9kaXZlcnNpdHktbWNwLXNlcnZlciJdfQ==) [](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22gbif-biodiversity-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fgbif-biodiversity-mcp-server%22%5D%7D) [](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) **Public Hosted Server:** [https://gbif-biodiversity.caseyjhand.com/mcp](https://gbif-biodiversity.caseyjhand.com/mcp) </div> --- ## Tools 13 tools for working with GBIF species taxonomy, occurrence records, datasets, and publishers: | Tool | Description | |:---|:---| | `gbif_match_species` | Match a species name against the GBIF backbone taxonomy — returns taxonKey, confidence score, and full classification | | `gbif_bulk_match_species` | Match up to 50 scientific names to backbone taxon keys in one call — results in input order, per-name NONE/ERROR isolation | | `gbif_get_species` | Fetch a single backbone taxon by key — full classification, authorship, synonymy, vernacular name, descendant count | | `gbif_search_species` | Search or browse the GBIF backbone taxonomy by name fragment, rank, or a kingdom, family, or genus name resolved to its backbone key | | `gbif_get_species_classification` | Return the root-to-parent classification chain for a taxon — root-first ordered array from kingdom to the queried taxon's immediate parent (the taxon itself is not included) | | `gbif_get_species_children` | List direct children of a backbone taxon — genera within a family, species within a genus | | `gbif_search_occurrences` | Search 3.9B+ GBIF occurrence records with Darwin Core filters — country, publishing country, state/province, bounding box, WKT geometry, year, month, basis of record, presence/absence, IUCN Red List category | | `gbif_count_occurrences` | Count occurrences matching a filter without fetching records — fast single-number response, filtered to sightings by default | | `gbif_get_occurrence` | Fetch a single occurrence record by key — full Darwin Core record with GADM geography, presence/absence status, conservation status, media, and quality flags | | `gbif_occurrence_facets` | Aggregate occurrence counts by a dimension — country, year, basis of record, dataset, kingdom, presence/absence, IUCN Red List category | | `gbif_search_datasets` | Search GBIF datasets by keyword, type, country, publishing organization, or hosting organization | | `gbif_get_dataset` | Fetch full dataset metadata by UUID — title, description, citation, contacts, license, DOI, coverage | | `gbif_search_publishers` | Search GBIF-registered publishing organizations by name fragment or country | ### `gbif_match_species` Match a scientific or common name against the GBIF backbone taxonomy. - Fuzzy matching handles minor typos and vernacular names; set `strict: true` for exact-only matching - Returns `taxonKey` — the backbone key required by `gbif_search_occurrences`, `gbif_count_occurrences`, and `gbif_occurrence_facets` - Confidence score 0–100; below 80 warrants review - Full classification hierarchy with keys at each rank: kingdom, phylum, class, order, family, genus, species - `matchType NONE` indicates no usable match — try removing strict mode or broadening the name - Resolves synonyms: always returns the accepted backbone key regardless of which name form was queried; `matchedTaxonKey` carries the synonym's own key when the two differ - `kingdom` disambiguates a name that appears in more than one kingdom, and is rejected when supplied blank: GBIF drops a blank one and matches against the whole backbone — `Parus major` resolves to taxon 9705453 with `kingdom=` exactly as it does with no `kingdom` at all, where `Plantae` resolves to 9711704 — so the undisambiguated answer would come back looking like a disambiguated one. Omit the field to match against the whole backbone --- ### `gbif_bulk_match_species` Match up to 50 scientific names against the GBIF backbone taxonomy in a single call. - The batch counterpart to `gbif_match_species` — built for checklist, inventory, and species-list workflows that would otherwise need one round trip per name - Returns one result per input name, in input order; each carries `taxonKey`, `matchType`, and confidence - Per-name isolation: an unmatched name yields `matchType NONE` and a per-name lookup failure yields `matchType ERROR` with the message and, when the failure was classified, a `reason` — neither sinks the rest of the batch - Same synonym resolution as `gbif_match_species`: `taxonKey` is the accepted taxon, `matchedTaxonKey` the synonym it was queried under - `strict: true` requires an exact match for every name; common names are not supported (use `gbif_search_species`) --- ### `gbif_get_species` Fetch a complete taxon record by GBIF backbone key. - Full classification, authorship string, and vernacular (English) name when available - `taxonomicStatus`: ACCEPTED, SYNONYM, DOUBTFUL — when SYNONYM, `acceptedKey` and `accepted` identify the current name - `numDescendants` and `numOccurrences` for scope at a glance - `extinct` field present only when explicitly flagged — not false on unlabeled taxa - `publishedIn` carries the original description citation when available --- ### `gbif_search_species` Search or browse the GBIF backbone taxonomy. - Accepts name fragments matching scientific and vernacular names - Filter by rank, kingdom, family, or genus to scope browsing - `kingdom`, `family`, and `genus` are given as names and resolved to a backbone key before the search runs, since `/species/search` scopes by key alone. The narrowest one supplied is what scopes — the three nest, and GBIF combines two keys with OR rather than AND. `kingdom` supplied beside `family` or `genus` disambiguates that name instead of scoping on its own: `Prunella` names both a bird genus and a plant genus and resolves to neither without it - Names are matched exactly and capitalized as GBIF writes them, so `paridae` and `Paridaee` fail as `unresolved_taxon_scope` rather than being ignored. An alternative family name lands on the taxon it is a synonym of — `Compositae` scopes to Asteraceae. A `family` and `genus` in different lineages fail as `conflicting_taxon_scope`. The scope actually applied comes back in the enrichment - `isExtinct` filter for extinct vs. extant taxa - Scope to a specific checklist dataset with `datasetKey` — omit the field for the GBIF backbone. GBIF reads a higher-taxon key inside the checklist that key belongs to, so pairing `datasetKey` with a kingdom, family, or genus matches nothing unless the checklist is the backbone; the empty-result notice says so - `q`, `kingdom`, `family`, `genus`, and `datasetKey` are rejected when supplied blank rather than dropped: a blank `datasetKey` returns the unfiltered backbone result, and `q=` returns the whole 46,623,754-name index where `q=` with a space returns nothing. Omit a filter to leave it off — see the note under `gbif_search_occurrences` - Paginated — limit up to 1000, use offset to walk through large groups --- ### `gbif_get_species_classification` Return the root-to-parent classification chain for a taxon as an ordered array. - Root-first from kingdom down to the immediate parent of the queried taxon (kingdom → phylum → class → … → parent) - The queried taxon itself is not included — use `gbif_get_species` for its own record - Each entry: rank, canonical name, scientific name, taxon key - Useful for building taxonomic trees or placing an unfamiliar taxon in context without manual backbone navigation --- ### `gbif_get_species_children` List direct children of a backbone taxon. - Genera within a family, species within a genus, subspecies within a species - Each child: key, name, rank, taxonomic status, common name, occurrence count, descendant count - Paginated — limit up to 1000, iterate with offset for large groups like Coleoptera --- ### `gbif_search_occurrences` Search 3.9B+ GBIF occurrence records with full Darwin Core filtering. - Use `taxonKey` from `gbif_match_species
What people ask about gbif-biodiversity-mcp-server
What is cyanheads/gbif-biodiversity-mcp-server?
+
cyanheads/gbif-biodiversity-mcp-server is mcp servers for the Claude AI ecosystem. Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP. It has 1 GitHub stars and its last recorded update is dated 2026-08-25.
How do I install gbif-biodiversity-mcp-server?
+
You can install gbif-biodiversity-mcp-server by cloning the repository (https://github.com/cyanheads/gbif-biodiversity-mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is cyanheads/gbif-biodiversity-mcp-server safe to use?
+
Our security agent has analyzed cyanheads/gbif-biodiversity-mcp-server and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains cyanheads/gbif-biodiversity-mcp-server?
+
cyanheads/gbif-biodiversity-mcp-server is maintained by cyanheads. The last recorded GitHub activity is dated 2026-08-25, with 0 open issues.
Are there alternatives to gbif-biodiversity-mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy gbif-biodiversity-mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/cyanheads-gbif-biodiversity-mcp-server)<a href="https://claudewave.com/repo/cyanheads-gbif-biodiversity-mcp-server"><img src="https://claudewave.com/api/badge/cyanheads-gbif-biodiversity-mcp-server" alt="Featured on ClaudeWave: cyanheads/gbif-biodiversity-mcp-server" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!