Sightseeing trip planner powered by Z-number fuzzy optimization. Provides the plan_trip tool: full pipeline from OSRM → Google → Z-number optimizer → results + HTML.
Three tools with complete schemas and descriptions, but significant gaps in parameter documentation and error handling. plan_trip_async has a comprehensive schema (16 params, all typed and described), but wait_for_plan_result and get_plan_result are minimal. Descriptions are adequate (100-200 chars) but lack actionable error guidance. No tool annotations (readOnlyHint, idempotentHint). Parameter descriptions are present but some lack constraints (e.g., optimizer enum values not formally constrained, timezone_offset range not specified). Output schemas are not documented, LLMs cannot predict response structure for downstream chaining.
Retrieve the full results of a completed trip plan, including routes, interactive map URL, and detailed itinerary.
Asynchronously plan a sightseeing trip. Returns a plan_id instantly. Call wait_for_plan_result(plan_id) to block until computation finishes, then get_plan_result(plan_id) to retrieve full results.
Block until a trip plan computation finishes. Returns status 'done' when ready, or 'pending' if still computing. Timeouts are normal; keep retrying with the same plan_id.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for plan_trip_async, wait_for_plan_result, or get_plan_result. This breaks downstream tool chaining and forces agents to guess field names.
Enum constraints not formally declared. 'optimizer' accepts 'ls', 'alns', 'de' and 'evaluation' accepts 'znum', 'crisp', but these are only documented in text descriptions, not as JSON Schema enums. LLMs may hallucinate invalid values.
Numeric parameter ranges not specified. timezone_offset, start_hour, max_hours, budget, and drive cost parameters lack min/max bounds. LLMs can pass absurd values (e.g., timezone_offset=999, start_hour=48).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Error handling lacks recovery guidance. Descriptions mention 'timeouts are normal' and 'keep retrying', but no structured error codes or actionable messages are documented. LLMs cannot distinguish retryable from fatal failures.
Tool annotations missing. No readOnlyHint, idempotentHint, or destructiveHint declared. All three tools are read-only (safe to retry), but this is not formally signaled to the MCP client.