30.0 / 30
Public leaderboard
Public assessment
KyrieTangSheng/mcp-server-nationalparks (mcp-server-nationalparks)
What changed in the harness
Selection accuracy 100→100, token cost up 12%, unconfirmed writes 100%→100%.
Category breakdown
Where the score comes from.
Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.
01Safety
02Legibility
26.6 / 30
03Economics
20.0 / 20
04Discoverability
15.5 / 20
Highest-impact fix
Estimated gain +4 pointsMake target tools discoverable on the first call
Clarify tool names, decision boundaries, and required argument schemas so an agent can choose and construct the target call without exploratory steps.
Description evidence
Defects and rewrites.
6 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.
| Tool | Defect types | Suggested rewrite |
|---|---|---|
findParks |
no_return_description |
Search for national parks, optionally filtered by state code (e.g., CA,NY), name or description text, or available activities such as hiking or camping. Returns a paginated list of matching park records with details such as name, designation, and location; use limit and start to control paging. |
getParkDetails |
no_return_description |
Retrieve the full detail record for a single national park identified by its park code (e.g., yose for Yosemite, grca for Grand Canyon). Returns comprehensive information for that park, including its name, description, and other detailed attributes such as operating hours and contacts. |
getAlerts |
name_restates_behavior no_return_description |
Retrieve current official notices for national parks, such as closures, hazards, and other important safety information, optionally filtered by park code or by alert title/description text. Returns a paginated list of alert records with their category, title, and content; use limit and start to control paging. |
getVisitorCenters |
name_restates_behavior no_return_description |
Retrieve visitor center listings for one or more national parks, including their operating hours, optionally filtered by park code or by name/description text. Returns a paginated list of visitor center records with details such as addresses and hours; use limit and start to control paging. |
getCampgrounds |
name_restates_behavior no_return_description |
Retrieve available campgrounds across national parks, including their amenities and facilities, optionally filtered by park code or by name/description text. Returns a paginated list of campground records with details such as sites, facilities, and reservation information; use limit and start to control paging. |
getEvents |
no_return_description |
Find upcoming events at national parks, optionally filtered by park code, by event title/description text, or within a date range (dateStart to dateEnd using YYYY-MM-DD format). Returns a paginated list of event records with their dates, times, and locations; use limit and start to control paging. |
Selection evidence
Confusable tool pairs.
6 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.
| Tool A | Tool B | Confidence | Why they collide |
|---|---|---|---|
getAlerts |
getCampgrounds |
medium | A task like 'is camping allowed/open at Yosemite right now' is ambiguous: it could be answered via campground listings/amenities or via alerts for closures and hazards. Both descriptions reference 'information,' and camping availability is often determined by alerts. |
getParkDetails |
getAlerts |
medium | Descriptions overlap semantically ('detailed information about a specific park' vs 'important information' including closures). A request like 'give me current important information before I visit Yosemite' could be routed to either the general park details or the alerts feed. |
getVisitorCenters |
getCampgrounds |
medium | Both are facility lookups returning hours/amenities. A request like 'get information about the park's facilities and their operating hours' is genuinely ambiguous between visitor centers (explicit operating hours) and campgrounds (amenities/availability). |
getAlerts |
getVisitorCenters |
low | Both descriptions begin with 'Get information about...'. A vague task like 'get visitor information for Yosemite' or 'what should I know before visiting' could land on either the visitor centers feed or the alerts/important-information feed, though their purposes differ. |
findParks |
getParkDetails |
low | A task like 'find details about Yosemite National Park' is ambiguous: findParks searches by name/state while getParkDetails requires a parkCode. Given only a park name, an agent may call findParks (correct first step) or attempt getParkDetails using the name as a code. |
getParkDetails |
getCampgrounds |
low | Requests like 'I need information about Yosemite National Park' vs 'I need information about camping at Yosemite' differ by one qualifier; both share the 'get information about' phrasing, so a slightly vague trip-planning request could select the wrong tool. |
Compare the field