Ecology, biodiversity, and conservation biology research — species identification (GBIF, NCBI Taxonomy), invasive species impact, ecosystem dynamics, conservation status (IUCN), niche ecology. Use for biodiversity questions, species comparison, invasion biology, conservation prioritization, and ecology-related literature search.
85%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
The canonical home for this skill is tooluniverse-ecology-biodiversity in mims-harvard/ToolUniverse
When a question involves identifying or comparing species:
GBIF_search_species to get taxonomy, WoRMS_search_species for marine organismsPubMed_search_articles or EuropePMC_search_articles to find studies on specific ecological impactsReasoning framework — when comparing invasive species impacts:
Reasoning framework for pollination questions:
Reasoning framework for population ecology questions:
| Tool | Use For |
|---|---|
IUCN_get_conservation_status | Red List conservation status (CR/EN/VU/NT/LC) by scientific name — the authoritative extinction-risk source (needs a free IUCN_API_KEY) |
GBIF_search_species | Species taxonomy, occurrence data, distribution |
GBIF_search_occurrences | Where has a species been observed? |
GBIF_get_taxon_parents | Walk UP the GBIF Backbone tree — ranked ancestor lineage (kingdom→genus) for a taxonKey |
GBIF_get_taxon_children | Walk DOWN the tree — direct child taxa (e.g. species in a genus) for a taxonKey |
GBIF_get_taxon_synonyms | Alternative / historical scientific names for an accepted taxonKey |
GBIF_get_vernacular_names | Common names (with language code) for a taxonKey; optional language filter |
GBIF_parse_name | Parse messy/authored name strings into canonical name + genus/epithet/author/year |
iDigBio_search_records | Search 130M+ digitized museum/herbarium specimen records (Darwin Core) by genus/scientificname/locality — use to complement GBIF with physical-specimen provenance |
iDigBio_get_record | Full Darwin Core detail for one specimen by uuid (from iDigBio_search_records) |
WoRMS_search_species | Marine species taxonomy |
BOLDSystems_search_by_taxon / _search_by_bin / _get_record | DNA barcode-based species identification (COI barcoding); BIN clusters group specimens by barcode similarity, useful for cryptic-species questions GBIF's name-based search can't resolve |
ensembl_get_taxonomy | Taxonomic classification |
NCBIDatasets_get_taxonomy | NCBI taxonomy lookup |
PubMed_search_articles | Literature on ecology topics |
EuropePMC_search_articles | European literature including ecology |
Resolve a name to a GBIF usageKey once, then navigate the Backbone tree:
key = tu.run_tool("GBIF_match_name", {"name": "Panthera leo"})["data"]["usageKey"] # 5219404
tu.run_tool("GBIF_get_taxon_parents", {"taxon_key": key}) # Animalia→...→Felidae→Panthera
tu.run_tool("GBIF_get_taxon_synonyms", {"taxon_key": key}) # Felis leo Linnaeus, 1758, ...
tu.run_tool("GBIF_get_vernacular_names", {"taxon_key": key, "language": "eng"}) # Lion, African Lion
# Walk down from a genus key (Panthera = 2435194) to its species:
tu.run_tool("GBIF_get_taxon_children", {"taxon_key": 2435194, "limit": 8})
# Normalize an authored name string without a key:
tu.run_tool("GBIF_parse_name", {"name": "Quercus robur L."}) # canonicalName 'Quercus robur'All five tools hit the public GBIF API with no key. Get the starting taxon_key
from GBIF_match_name or GBIF_search_species.
GBIF/WoRMS/BOLDSystems/iDigBio (above) are the primary sources. These eight add authority-specific, phylogenetic, and observational coverage GBIF alone doesn't provide — use them when GBIF is ambiguous, when you need a phylogenetic tree rather than a flat classification, or when you need citizen-science occurrence density rather than museum-specimen records.
| Tool | Use For |
|---|---|
EOL_search_species / EOL_get_page / EOL_get_hierarchy_entry / EOL_get_collection | Encyclopedia of Life — aggregated species pages (images, text, multiple classification systems per page), curated topical collections |
ITIS_search_by_scientific_name / _search_by_common_name / ITIS_get_hierarchy / ITIS_get_full_record | ITIS (Integrated Taxonomic Information System) — the authoritative North American taxonomy standard; returns a tsn (Taxonomic Serial Number) |
CoL_search_species / CoL_get_taxon / CoL_get_children | Catalogue of Life — the broadest single global species checklist (consolidates 190+ source databases); good first stop when GBIF's backbone doesn't have a clean match |
OpenTree_match_names / OpenTree_get_taxon / OpenTree_get_mrca / OpenTree_get_induced_subtree | Open Tree of Life — a synthetic phylogenetic tree (not just a rank hierarchy) across all of life; use when the question is about evolutionary relationships/branch order, not just classification |
iNaturalist_search_taxa / _get_taxon / _search_observations / _get_species_counts | iNaturalist — citizen-science observation records with photos/location/date; use for occurrence density and recent sightings, not authoritative taxonomy |
OBIS_search_taxa / OBIS_search_occurrences | OBIS (Ocean Biodiversity Information System) — marine-species occurrence records with coordinates/time, resolved to AphiaID (WoRMS' identifier); the marine analog of GBIF occurrence search |
eBird_get_taxonomy / eBird_get_taxon_groups | eBird (Cornell Lab) — bird-specific taxonomy and species groupings; use for bird questions instead of generic taxonomy sources, which are shallower on avian subspecies/hybrid codes |
MarineRegions_search_by_name / MarineRegions_get_record | Marine Regions Gazetteer (VLIZ) — geographic/political marine boundaries (seas, EEZs, bays) by MRGID; pairs with OBIS for "which occurrences fall inside this named sea" questions |
Choosing among the identity/taxonomy sources (EOL, ITIS, CoL, GBIF all answer "what is this species"):
tsn).usageKey, ITIS tsn, CoL taxon_id, EOL page_id, Open Tree ott_id, iNaturalist taxon_id, OBIS AphiaID) — always resolve within one system, don't mix an ID from one database into another's lookup call.Example: cross-checking a species across four identity systems (verified live, real IDs):
tu.run_tool("EOL_search_species", {"query": "Panthera leo"}) # page_id 1270491
tu.run_tool("ITIS_search_by_scientific_name", {"scientific_name": "Panthera leo"}) # tsn 183803
tu.run_tool("CoL_search_species", {"q": "Panthera leo"}) # 293 CoL-database matches
tu.run_tool("OpenTree_match_names", {"names": "Panthera leo,Panthera tigris"})
# -> ott_id 563151 (leo), 42314 (tigris); note `names` is a comma-separated
# STRING, not a JSON array, even though it takes multiple namesExample: phylogenetic MRCA and subtree (verified live):
tu.run_tool("OpenTree_get_mrca", {"ott_ids": "417950,770315"})
# -> mrca_name "Homininae", mrca_ott_id 312031, num_tips 19
tu.run_tool("OpenTree_get_induced_subtree", {"ott_ids": "417950,770315,312031"})
# -> real Newick tree with supporting_studies citations (pg_2741@tree6645, ...)Example: marine species + region (verified live):
tu.run_tool("OBIS_search_taxa", {"scientificname": "Rhincodon typus"}) # whale shark occurrence-resolved AphiaID
tu.run_tool("MarineRegions_search_by_name", {"name": "Mediterranean Sea"}) # MRGID 25180Example: citizen-science occurrence density (verified live):
tu.run_tool("iNaturalist_search_taxa", {"query": "Panthera leo"})
# -> genus-level hit "Panthera" (59,036 observations) if the exact binomial
# isn't the top match — check the returned `rank` before assuming species-levelEcology questions often have counter-intuitive answers. For example:
Always search the literature before answering ecology questions. Use PubMed_search_articles with specific terms like "[species] invasive impact [region]" or "[organism] [ecological process]".
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
mims-harvard/ToolUniverse
37bb81a
Canonical home
since Jul 28, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.