
Gbif Biodiversity Mcp Server
Connects Claude to the Global Biodiversity Information Facility's 2.4 billion occurrence records and backbone taxonomy. You get 12 tools: fuzzy match scientific names to taxon keys, search occurrences by species, country, bounding box, or year range, pull full Darwin Core records with coordinates and media, aggregate counts by dimension (country, year, basis of record), browse taxonomic hierarchies, and search datasets and publishers. Useful when you're building species distribution queries, validating taxonomy, or need georeferenced observation data without writing raw GBIF API calls. Runs over stdio or streamable HTTP, and there's a public hosted endpoint if you want to skip local setup.
- GitHub stars
- 1
- tools
- 13
- transport
- STDIO, HTTP
- env vars
- 10
- last updated
- Nov 12, 2026
Install
From registry metadata$ npx add-mcp https://gbif-biodiversity.caseyjhand.com/mcp --name gbif-biodiversityRun in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.
Review the command, arguments and environment values before installing. MCP servers run with your local permissions.
Other ways
Claude Code
$ claude mcp add --transport http gbif-biodiversity https://gbif-biodiversity.caseyjhand.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Tools
Verified live · 13 toolsVerified live against the running server on Nov 6, 2026.
gbif_match_speciesMatch a scientific name against the GBIF backbone taxonomy. Returns the best-matching taxon with full classification and a confidence score (0–100). This is the mandatory first step for any GBIF workflow — it returns the backbone taxonKey required by gbif_search_occurrences, g...4 params
Match a scientific name against the GBIF backbone taxonomy. Returns the best-matching taxon with full classification and a confidence score (0–100). This is the mandatory first step for any GBIF workflow — it returns the backbone taxonKey required by gbif_search_occurrences, g...
kingdomstringname*stringrankstringKINGDOM · PHYLUM · CLASS · ORDER · FAMILY · GENUSstrictbooleangbif_bulk_match_speciesResolve up to 50 scientific names to GBIF backbone taxon keys in one call — the batch counterpart to gbif_match_species for checklist, inventory, and species-list workflows that would otherwise need one round trip per name. Each name is matched independently and results are re...2 params
Resolve up to 50 scientific names to GBIF backbone taxon keys in one call — the batch counterpart to gbif_match_species for checklist, inventory, and species-list workflows that would otherwise need one round trip per name. Each name is matched independently and results are re...
names*arraystrictbooleangbif_get_speciesFetch a single backbone taxon by its GBIF taxon key. Returns full classification, authorship, taxonomic status, vernacular name, descendant count, and publication reference. Use after gbif_match_species when you need the complete record rather than the match summary. When taxo...1 params
Fetch a single backbone taxon by its GBIF taxon key. Returns full classification, authorship, taxonomic status, vernacular name, descendant count, and publication reference. Use after gbif_match_species when you need the complete record rather than the match summary. When taxo...
taxonKey*integergbif_search_speciesSearch or browse the GBIF backbone taxonomy by default, or an explicit checklist datasetKey. Accepts scientific name fragments, rank filters, and higher-taxon constraints. Useful for exploring what species exist under a higher taxon (e.g., "list all families of Coleoptera"), f...9 params
Search or browse the GBIF backbone taxonomy by default, or an explicit checklist datasetKey. Accepts scientific name fragments, rank filters, and higher-taxon constraints. Useful for exploring what species exist under a higher taxon (e.g., "list all families of Coleoptera"), f...
datasetKeystringfamilystringgenusstringisExtinctbooleankingdomstringlimitintegeroffsetintegerqstringrankstringKINGDOM · PHYLUM · CLASS · ORDER · FAMILY · GENUSgbif_get_species_classificationReturn the parent chain for a taxon — from kingdom (or domain) down to the immediate parent of the queried taxon — as an ordered array. Each entry has its rank, canonical name, and taxon key. The array is returned root-first (kingdom → phylum → class → … → immediate parent of...1 params
Return the parent chain for a taxon — from kingdom (or domain) down to the immediate parent of the queried taxon — as an ordered array. Each entry has its rank, canonical name, and taxon key. The array is returned root-first (kingdom → phylum → class → … → immediate parent of...
taxonKey*integergbif_get_species_childrenList direct children of a backbone taxon — genera within a family, species within a genus, subspecies within a species. Paginated. Use gbif_match_species to get the taxonKey first, then iterate with offset for large groups.3 params
List direct children of a backbone taxon — genera within a family, species within a genus, subspecies within a species. Paginated. Use gbif_match_species to get the taxonKey first, then iterate with offset for large groups.
limitintegeroffsetintegertaxonKey*integergbif_search_occurrencesSearch GBIF occurrence records with Darwin Core filters. Use taxonKey from gbif_match_species for reliable results — it resolves synonyms automatically. Accepts country (uppercase ISO 3166-1 alpha-2, where the record was observed), publishingCountry (the publishing organizatio...24 params
Search GBIF occurrence records with Darwin Core filters. Use taxonKey from gbif_match_species for reliable results — it resolves synonyms automatically. Accepts country (uppercase ISO 3166-1 alpha-2, where the record was observed), publishingCountry (the publishing organizatio...
basisOfRecordstringHUMAN_OBSERVATION · MACHINE_OBSERVATION · PRESERVED_SPECIMEN · LIVING_SPECIMEN · MATERIAL_SAMPLE · MATERIAL_CITATIONcatalogNumberstringcoordinateUncertaintyInMetersstringcountrystringdatasetKeystringdecimalLatitudestringdecimalLongitudestringgadmGidstringgeometrystringhasCoordinatebooleaninstitutionCodestringisInClusterbooleaniucnRedListCategorystringCR · EN · VU · NT · LC · DDlimitintegermediaTypestringStillImage · MovingImage · Sound · InteractiveResourcemonthintegeroccurrenceStatusstringPRESENT · ABSENT · ANYdefault: PRESENToffsetintegerpublishingCountrystringrecordedBystring+4 more parameters. See the server's own documentation for the full schema.
gbif_count_occurrencesCount occurrences matching a taxon + location filter without fetching records. Use for quick totals ("how many Aves records in Sweden?") or before deciding whether to paginate a full search. Accepts taxonKey, country (uppercase ISO 3166-1 alpha-2), publishingCountry, stateProv...23 params
Count occurrences matching a taxon + location filter without fetching records. Use for quick totals ("how many Aves records in Sweden?") or before deciding whether to paginate a full search. Accepts taxonKey, country (uppercase ISO 3166-1 alpha-2), publishingCountry, stateProv...
basisOfRecordstringHUMAN_OBSERVATION · MACHINE_OBSERVATION · PRESERVED_SPECIMEN · LIVING_SPECIMEN · MATERIAL_SAMPLE · MATERIAL_CITATIONcatalogNumberstringcoordinateUncertaintyInMetersstringcountrystringdatasetKeystringdecimalLatitudestringdecimalLongitudestringgadmGidstringgeometrystringhasCoordinatebooleaninstitutionCodestringisGeoreferencedbooleanisInClusterbooleaniucnRedListCategorystringCR · EN · VU · NT · LC · DDmediaTypestringStillImage · MovingImage · Sound · InteractiveResourcemonthintegeroccurrenceStatusstringPRESENT · ABSENT · ANYdefault: PRESENTpublishingCountrystringrecordedBystringscientificNamestring+3 more parameters. See the server's own documentation for the full schema.
gbif_get_occurrenceFetch a single occurrence record by its GBIF occurrence key. Returns the complete Darwin Core record — all coordinates, administrative geography (GADM levels 0–3), dates, collections metadata, collector identifiers, conservation status, media links, and quality issue flags. Ch...1 params
Fetch a single occurrence record by its GBIF occurrence key. Returns the complete Darwin Core record — all coordinates, administrative geography (GADM levels 0–3), dates, collections metadata, collector identifiers, conservation status, media links, and quality issue flags. Ch...
occurrenceKey*integergbif_occurrence_facetsAggregate occurrence counts across a dimension (COUNTRY, STATE_PROVINCE, YEAR, BASIS_OF_RECORD, DATASET_KEY, KINGDOM_KEY, etc.). Returns one page of facet values ranked by count descending — the top facetLimit at facetOffset 0, a later slice of the same ranking past that. No r...26 params
Aggregate occurrence counts across a dimension (COUNTRY, STATE_PROVINCE, YEAR, BASIS_OF_RECORD, DATASET_KEY, KINGDOM_KEY, etc.). Returns one page of facet values ranked by count descending — the top facetLimit at facetOffset 0, a later slice of the same ranking past that. No r...
basisOfRecordstringHUMAN_OBSERVATION · MACHINE_OBSERVATION · PRESERVED_SPECIMEN · LIVING_SPECIMEN · MATERIAL_SAMPLE · MATERIAL_CITATIONcatalogNumberstringcoordinateUncertaintyInMetersstringcountrystringdatasetKeystringdecimalLatitudestringdecimalLongitudestringfacet*stringBASIS_OF_RECORD · COUNTRY · STATE_PROVINCE · YEAR · DATASET_KEY · KINGDOM_KEYfacetLimitintegerfacetOffsetintegergadmGidstringgeometrystringhasCoordinatebooleanincludeLabelsbooleaninstitutionCodestringisInClusterbooleaniucnRedListCategorystringCR · EN · VU · NT · LC · DDmediaTypestringStillImage · MovingImage · Sound · InteractiveResourcemonthintegeroccurrenceStatusstringPRESENT · ABSENT · ANYdefault: PRESENT+6 more parameters. See the server's own documentation for the full schema.
gbif_search_datasetsSearch GBIF datasets by keyword, type, publishing country (uppercase ISO 3166-1 alpha-2), publishing organization, or hosting organization. The two organization filters answer different questions — publishingOrg matches the organization whose data it is, hostingOrg the organiz...7 params
Search GBIF datasets by keyword, type, publishing country (uppercase ISO 3166-1 alpha-2), publishing organization, or hosting organization. The two organization filters answer different questions — publishingOrg matches the organization whose data it is, hostingOrg the organiz...
hostingOrgstringlimitintegeroffsetintegerpublishingCountrystringpublishingOrgstringqstringtypestringOCCURRENCE · CHECKLIST · METADATA · SAMPLING_EVENTgbif_get_datasetFetch full dataset metadata by UUID key — title, description, citation text, contacts, license, DOI, record count, numConstituents (sub-datasets), temporal/geographic coverage, and the publishing organization key, which gbif_search_datasets takes as publishingOrg. Use after gb...2 params
Fetch full dataset metadata by UUID key — title, description, citation text, contacts, license, DOI, record count, numConstituents (sub-datasets), temporal/geographic coverage, and the publishing organization key, which gbif_search_datasets takes as publishingOrg. Use after gb...
contactLimitintegerdatasetKey*stringgbif_search_publishersSearch organizations registered with GBIF by name fragment or country. Returns organization key, title, and country — sufficient to chain into gbif_search_datasets as publishingOrg for the datasets an organization published, or as hostingOrg for the ones its own installation s...4 params
Search organizations registered with GBIF by name fragment or country. Returns organization key, title, and country — sufficient to chain into gbif_search_datasets as publishingOrg for the datasets an organization published, or as hostingOrg for the ones its own installation s...
countrystringlimitintegeroffsetintegerqstringSponsors
Configuration
GBIF_CLAMP_READ_LIMITSdefault: trueClamp oversized read requests to their documented caps; false restores rejecting maxima.
MCP_LOG_LEVELdefault: infoSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
GBIF_BASE_URLdefault: https://api.gbif.org/v1Base URL every GBIF API request is built from. Override to route through a proxy or a mirror of the GBIF v1 API. Keep the trailing /v1: checklistKey on the match tools, and includeLabels on Catalogue of Life facet buckets, call the /v2 route derived by replacing it, and fail with
GBIF_REQUEST_TIMEOUT_MSdefault: 10000Milliseconds a single GBIF API request may take before it is aborted. Aborted attempts fall to the service's retry policy.
GBIF_USER_AGENTSent as the User-Agent header on every GBIF API request. GBIF asks integrators to identify themselves with a contact URL or email. Unset or blank sends the server name, version, and repository URL.
MCP_TRANSPORT_TYPEdefault: httpSelects the HTTP transport.
MCP_HTTP_HOSTdefault: 127.0.0.1The hostname for the HTTP server.
MCP_HTTP_PORTdefault: 3010The port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHdefault: /mcpThe endpoint path for the MCP server.
MCP_AUTH_MODEdefault: noneAuthentication mode to use: 'none', 'jwt', or 'oauth'.
Readme
@cyanheads/gbif-biodiversity-mcp-server
Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP.
Details
- Repository
- github.com/cyanheads/gbif-biodiversity-mcp-server
- Category
- Search & Web Crawling
- Package
@cyanheads/gbif-biodiversity-mcp-server- Transport
- STDIO, HTTP
- Registry
- MCP registry, active
- Resources
- 1
- Tools verified
- Nov 6, 2026
More from cyanheads
- Pentest Mcp Server1
- Workflows Mcp Server32
- Noaa Cdo Mcp Server5
- Ntfy Mcp Server25
- Macos Mcp Server4
- Clipboard Mcp Server3
- Guardian Mcp Server2
- Mailchimp Mcp Server2
- Sports Mcp Server2
- Whois Mcp Server2
- Federal Reserve Mcp Server1
- Shift Mcp Server1
- Anime Mcp Server2
- Survey Mcp Server4
- Mcp Ts Template145
- nist-nvd-mcp-server
- open-meteo-mcp-server
- openfda-mcp-server
- wikipedia-mcp-server
- census-mcp-server
- crossref-mcp-server
- eur-lex-mcp-server
- faostat-mcp-server
- fema-mcp-server