worms-marine-taxa-mcp-server
Server Details
Resolve WoRMS marine species names; fetch classifications, synonyms, distributions, traits, and IDs.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- cyanheads/worms-marine-taxa-mcp-server
- GitHub Stars
- 1
- Server Listing
- WoRMS Marine Taxa MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 8 tools
Each tool has a clearly distinct WoRMS operation: name resolution, taxon record retrieval, classification, synonyms, distributions, traits, identifier crosswalking, and reference lookup. Overlap is minimal because resolve_taxon finds taxa while get_taxon retrieves records by ID, and classification/synonyms/distributions/traits each target separate data categories.
All tools use the same worms_ prefix and follow a predictable verb_noun convention: crosswalk_id, get_classification, get_distributions, get_synonyms, get_taxon, get_traits, list_reference, resolve_taxon. There are no mixed casing or inconsistent verb styles.
Eight tools is well-scoped for a read-only taxonomic data server, with one tool per major data access pattern rather than excessive granularity. Each tool earns its place by covering a distinct part of the WoRMS API surface.
The surface covers core marine taxa workflows: resolving names, retrieving full records (including vernaculars and sources), classification and children, synonyms, distributions, traits, external identifier crosswalks, and reference metadata. No obvious lifecycle operation for this read-only taxonomic domain is missing.
Available Tools
8 toolsworms_crosswalk_idWorms Crosswalk IdARead-onlyIdempotentInspect
Crosswalk an AphiaID from worms_resolve_taxon to one or all nine external identifier systems, or reverse an externalId with required type to a full taxon record. Supply exactly one selector. Forward resultOffset indexes whole identifiers across types in requested order; resume nextResultOffset with unchanged selectors. typeTotals distinguishes successful absence from IDs on another segment; failed types remain separate. IDs stay opaque, including leading zeros and LSIDs. No IDs cannot establish taxon absence; IUCN identifiers are not threat categories.
Inputs: type, aphiaId, externalId, resultOffset. Returns: ids, echo, type, error, +18 more
worms_get_classificationWorms Get ClassificationARead-onlyIdempotentInspect
Retrieve root-to-tip classification and optional direct children for an AphiaID or canonical WoRMS LSID. resultOffset indexes lineage followed by fetched children; consume nextResultOffset with unchanged options and upstream offset before advancing page.nextOffset and resetting resultOffset to zero. Missing ranks remain unknown; child offset and filters are inactive without includeChildren. A full fetched 50-row child page has uncertain continuation and can lead to an empty page. The submitted ID keeps its own recorded lineage; a notice names its linked accepted ID, distinguishing an accepted alternative representation from its preferred ID.
Inputs: aphiaId (required), offset, extantOnly, marineOnly, +2 more. Returns: echo, page, error, found, +16 more
worms_get_distributionsWorms Get DistributionsARead-onlyIdempotentInspect
Retrieve recorded distributions for an AphiaID or canonical WoRMS LSID in byte-budgeted segments; resume nextResultOffset as resultOffset with unchanged selectors and filters. WoRMS attaches records to individual name usages, so one AphiaID's rows can miss those of its synonyms: includeSynonyms combines the accepted taxon's rows with those of up to 10 synonyms per call, each row tagged sourceAphiaId; consume nextResultOffset before advancing synonymOffset to synonymUnion.nextSynonymOffset with resultOffset 0. Filters apply to the complete fetched set before pagination and combine by conjunction: recordStatus normalizes case and surrounding whitespace before exact matching; others use case-insensitive whole-value equality without trimming. Rows retain duplicates and source order; no rows does not prove biological or taxon absence. A notice names the linked accepted ID, distinguishing an accepted alternative representation from its preferred ID.
Inputs: aphiaId (required), occurrence, invasiveness, recordStatus, +4 more. Returns: echo, error, notice, aphiaId, +14 more
worms_get_synonymsWorms Get SynonymsARead-onlyIdempotentInspect
Retrieve synonyms for the accepted taxon linked from an AphiaID obtained with worms_resolve_taxon. Consume nextResultOffset within the same upstream offset before advancing page.nextOffset and resetting resultOffset to zero. A present name without an accepted ID has no synonym lookup; inspect it with worms_get_taxon. A full fetched 50-row page has uncertain continuation and may lead to an empty page.
Inputs: aphiaId (required), offset, resultOffset. Returns: echo, page, error, found, +14 more
worms_get_taxonWorms Get TaxonARead-onlyIdempotentInspect
Retrieve full Aphia records by numeric IDs or canonical WoRMS LSIDs in byte-budgeted segments. Resume nextInputOffset as inputOffset using unchanged aphiaIds and options; inputIndex preserves duplicate and missing positions. includeVernaculars (common names) or includeSources (original description, basis of record, and other sources) requires one submitted ID, one of the two per call; resume nextVernacularOffset as vernacularOffset or nextSourceOffset as sourceOffset, repeating the full primary record. sourceUse filters whole use values ignoring case before sourceOffset; populated values are not trimmed. Successful source results report sourceTotalCount before slicing and unfilteredSourceCount only with an effective filter. Optional failure retains the record without source counts; unknown facts remain omitted or null.
Inputs: aphiaIds (required), sourceUse, inputOffset, sourceOffset, +3 more. Returns: echo, error, notice, results, +9 more
worms_get_traitsWorms Get TraitsARead-onlyIdempotentInspect
Retrieve recorded attributes for an AphiaID or canonical WoRMS LSID, including inherited attributes by default. Resume nextResultOffset as resultOffset with unchanged selectors and options. Whole rows retain original preorder nodeIndex and parentIndex across pages; parents may be on earlier pages. measurementType keeps each matching node with its subtree and ancestors, indices unchanged; totalCount counts that set and unfilteredCount the whole tree. Values, references and inheritance markers remain unchanged; on an accepted taxon WoRMS also returns attributes recorded on its synonyms whatever includeInherited is set to, marked by inheritedFrom. A notice names the linked accepted ID, distinguishing an accepted alternative representation from its preferred ID. Missing traits do not prove biological absence; IUCN list membership is not a threat category.
Inputs: aphiaId (required), resultOffset, measurementType, includeInherited. Returns: echo, error, notice, traits, +12 more
worms_list_referenceWorms List ReferenceARead-onlyIdempotentInspect
List supported external identifier systems, a non-exhaustive taxonomic-status guide grouped as accepted, unaccepted, uncertain, or technical, environment-flag semantics, observed worms_get_distributions filter values, live taxonomic ranks, or live trait definitions. Resume nextResultOffset as resultOffset with the same topic. Identifier codes, statuses, environment flags, and distribution terms are available offline. A record status can be the specific reason itself, such as junior subjective synonym, rather than unaccepted. IUCN identifiers are not threat categories; null flags mean not recorded. Trait definitions retain complete-tree preorder indices across pages; parents may be on earlier pages.
Inputs: topic (required), resultOffset. Returns: error, topic, notice, entries, +9 more
worms_resolve_taxonWorms Resolve TaxonARead-onlyIdempotentInspect
Resolve exact or explicitly fuzzy scientific names, or search one vernacular name as a whole recorded common name or, with vernacularMatch: "contains", as part of one. Names default to marine-or-brackish and extant taxa; vernacular cannot filter. Resume scientific segments with nextInputOffset and nextMatchOffset against unchanged names and options; inputIndex preserves duplicates and partialGroup identifies split groups. For vernacular, consume nextResultOffset within the same upstream offset before advancing page.nextOffset and resetting resultOffset to zero. Full 50-match upstream groups remain completeness-unknown; accepted-name fields do not choose an ambiguous match.
Inputs: fuzzy, names, offset, extantOnly, +6 more. Returns: echo, mode, page, error, +14 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Query STRING interactions, enrichment, annotations, homology, and PPI networks.
Search GBIF species taxonomy, occurrence records, datasets, and publishers.
Search GBIF species taxonomy, occurrence records, datasets, and publishers.
Search iNaturalist sightings, identification threads, phenology, and look-alike species.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables keyless lookup of marine species and genus names, retrieval of full taxonomic lineages by AphiaID, and common vernacular names across languages via MCP tools.306 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables users to query marine species occurrences, WoRMS taxonomy, bathymetric depth profiles, environmental parameters, ocean area statistics, and nearby marine biodiversity through the OBIS API.MIT
- AlicenseNot gradedqualityBmaintenanceEnables queries about global taxonomic data, including scientific name matching, classification chains, common names, and synonyms from the Catalogue of Life index.94 npmMIT
- AlicenseAqualityDmaintenanceProvides access to FishBase marine biology data including species information, ecological data, distribution records, and morphological details. Enables species name validation and conversion between common and scientific names through natural language queries.8MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.