Recreation.gov MCP — wraps the Recreation Information Database (RIDB) API v1 (ridb.recreation.gov), the official catalog of US federal outdoor recreation: campgrounds, national park & national forest recreation areas, facilities, and individual campsites bookable on Recreation.gov.
Recreation.gov MCP has well-structured tool definitions with clear naming (verb_noun pattern) and comprehensive descriptions (150-250 chars each). All 4 tools have complete input schemas with typed properties and descriptions. However, output schemas are entirely undocumented, LLMs cannot predict response structure. Parameter descriptions lack constraints (enums, ranges, formats). The _apiKey parameter violates secret-injection pattern by exposing credentials as a tool parameter. Error handling is minimal, no recovery guidance or categorization. No tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only.
Get full details for a single Recreation.gov facility (e.g. a campground) by its FacilityID. Returns description, directions, ADA access, phone/email, keywords, and coordinates. Example: get_facility({ facility_id: "232447" })
List the individual campsites within a Recreation.gov facility (campground) by FacilityID. Returns campsite IDs, names, type (e.g. "TENT ONLY", "RV"), loop, reservability, and type of use. Example: list_campsites({ facility_id: "232447" })
Search US federal recreation facilities — campgrounds, day-use areas, visitor centers, trailheads — on Recreation.gov. Filter by name/keyword, state, activity (e.g. "camping", "hiking"), or geographic radius. Returns facility IDs, names, types, phone/email, and coordinates. Example: search_facilities({ query: "Yosemite", state: "CA", activity: "camping" })
Search US federal recreation areas — the parent regions (national parks, national forests, BLM/USACE lands) that contain campgrounds and facilities — on Recreation.gov. Filter by name/keyword or state. Returns RecArea IDs, names, descriptions, phone, and coordinates. Example: search_recareas({ query: "Grand Canyon", state: "AZ" })
Output schemas completely undocumented. LLMs cannot predict response structure, field names, or types. Breaks tool-chaining and forces agents to guess at downstream parameter mappings.
_apiKey parameter exposes credentials as a tool parameter, violating secret-injection pattern. Agent traces log all parameters, secrets leak into logs and prompt history. Should use server-side injection via Authorization header.
No parameter constraints (enums, ranges, formats). 'limit' and 'offset' lack min/max bounds; 'state' lacks enum of valid US state codes; 'activity' lacks enum of valid activities. LLMs will pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 69 | 2026-07-28+ | v2 |
No tool annotations. All 4 tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. Agents cannot infer safety properties without explicit hints.
Error handling returns raw HTTP status + text (e.g. '{ error: 404, message: "..." }'). No recovery guidance, categorization, or actionable next steps. LLMs cannot self-correct or retry intelligently.