Minimal Model Context Protocol (MCP) server in Go. Exposes tools over stdio for getting time, text statistics, weather forecasts, and movies in theaters.
Four tools with clear verb-noun naming (get_*, text_stats). All have descriptions (avg 140 chars, within baseline 34-392). Input schemas present with type declarations and parameter descriptions. However, output schemas are undocumented, LLMs cannot predict response structure. Error handling is minimal (generic error messages, no recovery guidance). No tool annotations (readOnlyHint, etc.). Missing pagination for get_movies_in_theaters despite potentially large result sets. Parameter constraints (e.g., limit 1-20) documented in descriptions but not enforced in schema.
Return movies currently in theaters in a country, optionally filtered by MPAA rating. Uses TMDB. Requires TMDB_API_KEY env var (free signup at themoviedb.org).
Return the current date and time in the requested IANA timezone. Defaults to UTC.
Return the forecast for a location on a given day. Uses Open-Meteo (no API key required). Day defaults to today.
Return character, word, and line counts for an input string.
Output schemas undocumented. LLMs cannot predict response structure (fields, types, nesting). Handlers return JSON strings but no schema definition visible in tool registration.
get_movies_in_theaters lacks pagination. Limit defaults to 10 but no offset/page param or next_cursor. Large result sets could exhaust context; no guidance for fetching additional results.
Error messages are generic ('Unknown timezone', 'Location not found'). No recovery guidance. LLMs cannot self-correct or know whether to retry, ask user, or try alternative tools.
No tool annotations. Tools are read-only but lack readOnlyHint in schema. Agents cannot distinguish safe tools from destructive ones without external documentation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
get_movies_in_theaters requires TMDB_API_KEY env var but no validation that it exists before tool invocation. Error only surfaces at runtime. Should validate at server startup or in tool handler with clear guidance.