MCP Server for Campertunity - A Model Context Protocol server for interacting with camping and outdoor recreation data
Four tools with complete schemas and descriptions, but significant gaps in error handling, output documentation, and parameter clarity. Tool names follow verb_noun convention (place-availability, place-book, place-details, place-search), which is good. However, descriptions are generic (avg ~80 chars, below the 194-char baseline), and output schemas are not documented. Error handling returns raw error messages without recovery guidance. The place-search tool has an overly complex filters enum (40+ values) that could confuse LLMs. No tool annotations (readOnlyHint/destructiveHint) despite clear read/write distinctions. Parameters lack format validation hints (e.g., date format YYYY-MM-DD is stated but not enforced). Overall: functional but below production baseline.
Check availability for camping places and sites within a date range
Book a camping place with specified dates and guest counts
Get detailed information about a specific camping place
Search for camping places with filters for location, amenities, activities, terrain, and availability
Output schemas not documented. Tools return JSON blobs without field descriptions, forcing LLMs to infer structure. Downstream tools cannot reliably extract placeId, siteId, or booking confirmation fields.
Error handling returns raw error messages ('Error: ' + message) without recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal. Example: 'Campertunity API error: 404' gives no actionable next step.
place-search filters enum contains 40+ values (tent, rv, lodging, glamping, cabin, driveIn, walkIn, equestrian, boat, biking, boating, fishing, hiking, horsebackRiding, paddling, windSports, surfing, swimming, whitewaterPaddling, wildlifeWatching, picnicTable, fires, toilets, outhouse, potableWater, petFriendly, rvHookup, rvSanitation, trash, showers, wifi, handicap, beach, cave, desert, forest, hotSpring, lake, river, swimmingHole, waterfall, creek). This is cognitively overloaded for LLM selection. Should be split into categories (siteType, accessType, amenities, activities, terrain) with separate parameters.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Tool descriptions are too brief (avg 50 chars vs 194-char baseline). 'Check availability for camping places and sites within a date range' lacks context on when to use place-availability vs place-search, what the response contains, or whether it requires prior place discovery.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). place-book is clearly destructive (WRITE risk), but this is not signaled in the schema. Agents cannot determine safe retry behavior or whether to request confirmation.