APRS-based Boston Harbor commuter ferry tracker with MCP server for real-time ferry position tracking and weather data
This server exhibits significant quality gaps. Tools have basic descriptions but lack depth and actionable guidance. Input schemas are present but minimally documented. Parameters lack descriptions in several tools. Output schemas are not documented. Error handling is absent. The codebase shows good engineering practices (Makefile, tests, linting) but the MCP tool definitions themselves do not meet production-grade standards. Average tool score: 42/100.
Cancel all running leave reminders
Check if any leave reminders are currently running
Clear all cached ferry position data
Get information about ferry routes and schedules
Get current weather conditions for Boston Harbor from nearby CWOP station (EW2727)
List all known Boston Harbor commuter ferries with their details
Set a reminder using FreeBSD leave command. Reminds at -5min, -1min, at time, then every minute after.
No output schemas documented. Tools return data but LLMs cannot infer result structure (fields, types, pagination). Agents cannot plan downstream calls or extract needed data.
Tool descriptions are sparse and lack actionable guidance. Descriptions should explain WHAT the tool does, WHEN to use it, and any prerequisites. Current descriptions (e.g., 'List all known Boston Harbor commuter ferries with their details') are too generic.
Parameters lack descriptions in multiple tools. 'use_cache' parameter is explained, but tools with empty property objects (list_ferries, get_ferry_routes, check_reminders, cancel_reminders) provide no guidance on parameters or availability.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 38 | - | v1 |
Get current positions of all Boston Harbor commuter ferries
Get current position and status of a Boston Harbor ferry by MMSI number
No error handling guidance. Tools do not document what can fail, error codes, recovery steps, or retryability. An LLM receiving a 'Weather API unavailable' error has no guidance on what to do next.
No pagination parameters documented. Tools like 'list_ferries' and 'track_all_ferries' that return multiple items do not expose limit, offset, page, or cursor parameters. Large result sets will bloat context and waste tokens.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are absent. Agents cannot distinguish safe tools from those with side effects. clear_cache, set_reminder are clearly mutating but lack markers.
No confirmation or dry-run support for destructive tools. set_reminder and cancel_reminders are write operations but offer no way to preview or confirm before execution.