SimBrief MCP server — access your flight plans from Claude Desktop
Six tools with consistent naming (verb_noun pattern: get_*) and adequate descriptions (120-180 chars each). All tools are READ_ONLY and properly documented. However, input schemas are minimal, only a single optional 'plan_id' parameter with basic description. No output schemas documented. Descriptions lack WHEN/WHY guidance and dependency hints. No error handling guidance or recovery paths. Parameter descriptions are generic ('Optional flight plan ID') without format constraints or examples of valid IDs. Tools return formatted strings rather than structured objects, forcing LLMs to parse unstructured text.
ATC flight plan string ready for filing, including route, callsign, flight type, flight rules and equipment codes. Leave plan_id empty to get the latest dispatch.
High-level summary of a flight plan: flight number, aircraft, route, distance, cruise altitude, estimated times and total fuel. Leave plan_id empty to get the latest dispatch.
Detailed fuel breakdown: taxi, trip burn, contingency, alternate burn, reserve, minimum and planned takeoff fuel, plus any extra fuel buckets. Leave plan_id empty to get the latest dispatch.
All flight times in UTC: scheduled OUT/OFF/ON/IN, estimated time enroute, block time, taxi times, reserve and endurance. Leave plan_id empty to get the latest dispatch.
Current weather: METAR, TAF and ATIS for departure, arrival and alternate airports. Leave plan_id empty to get the latest dispatch.
No output schemas documented. All tools return formatted strings (e.g., '═══ FLIGHT SUMMARY ═══\n Flight: ...') rather than structured JSON objects. LLMs cannot extract specific fields (flight_number, aircraft_type, distance) without parsing unstructured text, increasing hallucination risk and token waste.
Input parameter 'plan_id' lacks format guidance. Description says 'Optional flight plan ID' but does not specify: is it numeric, alphanumeric, UUID? What does 'latest dispatch' mean if omitted? LLMs cannot validate or construct valid IDs without explicit constraints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Aircraft weight breakdown: OEW, payload, passenger count, ZFW, TOW, ramp weight and landing weight. Leave plan_id empty to get the latest dispatch.
No error handling guidance. Tools call external SimBrief API (timeout=30) but descriptions do not explain what happens on network failure, invalid plan_id, or API errors. No recovery hints (e.g., 'If plan not found, try omitting plan_id to fetch latest').
Descriptions lack WHEN/WHY context. 'High-level summary of a flight plan' does not explain when to call this vs get_fuel_plan or get_weights. No guidance on tool selection or composition.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). While all tools are READ_ONLY, this is not declared in the tool definition, forcing LLMs to infer safety from descriptions alone.