WoRMS (World Register of Marine Species) MCP — keyless. Authoritative marine-species taxonomy. Resolve a marine species/genus name to its AphiaID + accepted name + classification, walk the full taxonomic lineage, and get common (vernacular) names. No API key required.
Three well-named, read-only tools with complete input schemas and clear descriptions. All tools follow verb_noun naming (search_*, get_*). Descriptions are concise (80 - 180 chars) and explain purpose clearly. Input schemas are properly typed with required fields marked. However, output schemas are not formally documented, LLMs must infer response structure from descriptions. Error handling is basic (generic error objects). No parameter constraints (enums, ranges) despite opportunities (e.g., fuzzy and marine_only could be documented more formally). No tool annotations (readOnlyHint, idempotentHint) despite all being read-only and idempotent.
Walk the full taxonomic lineage (root → tip) for a WoRMS AphiaID: returns a flat ordered array of { rank, name, aphia_id } from superdomain down to the taxon itself. Keyless.
Get common (vernacular) names for a WoRMS AphiaID across languages. Keyless.
Resolve a marine species or genus name to its WoRMS AphiaID, accepted name, authority, status (accepted/unaccepted), rank, and high-level classification (kingdom/family/genus). WoRMS is the authoritative world register of marine species. Keyless.
Output schemas not documented. LLMs must infer response structure from descriptions alone. No formal specification of returned fields (e.g., species array structure, lineage format, names object shape).
No tool annotations despite all tools being read-only and idempotent. Missing readOnlyHint and idempotentHint would help agents understand retry safety and side-effect profile.
Boolean parameters (fuzzy, marine_only) lack explicit enum or constraint documentation. Descriptions say 'Default false' and 'Default true' but do not formally declare these as boolean enums or explain the semantic difference.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Error responses are generic objects with 'error' field. No recovery guidance (e.g., 'Try search_species() with a partial name' if classification lookup fails). Errors do not categorize as retryable vs. fatal.
No pagination support. search_species may return many results but offers no limit/offset or cursor. Large result sets could exhaust context window.