Model Context Protocol server for the Ocean Intelligence System. Serves the Blue Life Commons corpus to AI agents — review-gated, source-attributed.
marine-mcp demonstrates solid naming conventions (all tools start with action verbs: search_, get_, lookup_, validate_, obis_) and comprehensive descriptions (avg 150+ chars). However, parameter descriptions are inconsistent, some parameters lack descriptions entirely (e.g., region_id in get_region_briefing, region_id in get_active_missions, difficulty in get_active_missions). Input schemas use Zod with proper types, but output schemas are not documented in the code. Error handling is minimal, tools return generic envelope structures without actionable recovery guidance. The review-gating pattern is well-articulated in tool descriptions, but parameter constraints (e.g., size limits for obis_gbif_passthrough) lack explicit documentation in descriptions.
List citizen-science / travel field missions. Mission logistics are surfaced; any wildlife-interaction guidance is review-gated.
Retrieve a reviewed regional ocean briefing with sources. Review-gated.
Retrieve the full reviewed body of a species page WITH its sources. Returns servable:false (no body) if the artifact is not review-approved.
Provenance check: find which artifacts cite a given URL or source title, and list their sources.
Live occurrence records from OBIS (Ocean Biodiversity Information System). Returns external, UNREVIEWED data labelled as such — never to be conflated with curated commons content. Cite OBIS + the underlying dataset.
Discover species pages in the commons. Returns metadata (id, title, status, review state) — NOT factual claims. Use get_species_details to retrieve a reviewed body.
Parameter descriptions missing or null for region_id (get_region_briefing), region (get_active_missions), difficulty (get_active_missions). LLMs cannot infer parameter meaning from names alone.
Output schemas not documented. Tools return envelope() structures with dynamic fields (sources, status, servable, refused) but no formal schema definition visible in code. LLMs cannot plan downstream calls without knowing response structure.
Error handling lacks actionable recovery guidance. Tools return generic envelope structures with 'found: false' or 'servable: false' but do not suggest next steps (e.g., 'Try search_species() with a partial name').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Self-check tool for contributors/agents: verify artifact frontmatter has the required fields before opening a PR. Mirrors the commons' schema gate.
Numeric constraint (size: 1-20 for obis_gbif_passthrough) declared in schema but not documented in parameter description. LLMs rely on description text, not JSON Schema constraints.
Tool composition: search_species returns metadata only; get_species_details requires species_id lookup. No batch variant for fetching multiple species details. Agents calling this in loops waste tokens.