Skip to main content
Glama
swiftyspiffy

Flighty MCP

by swiftyspiffy

search_flights

Read-onlyIdempotent

Find available flights by airline and flight number or by origin and destination for a departure date, returning flight IDs for later tracking.

Instructions

Search available flights by airline+number OR by origin+destination on YYYY-MM-DD.

Search alone does not add/subscribe to a flight. Discover IDs using the airport/airline/metro lookup tools first. Pass a numeric flight_number without airline prefix. Route search endpoints can be airport or metro IDs.

Input Schema

NameRequiredDescriptionDefault
viaNo
origin_idNo
airline_idNo
origin_kindNoairport
flight_numberNo
departure_dateYes
destination_idNo
destination_kindNoairport

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already carry readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: search is non-mutating with respect to subscriptions, and identifiers must come from lookup tools rather than being guessed. Return shape is covered by the output schema, so nothing is missing there.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the two search modes, then constraints, then prerequisites. No filler and no repetition of what the schema already states.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with zero schema descriptions, the definition leaves real gaps: 'via' is undocumented, and it never states which parameter combinations form a valid call or what happens when both modes' parameters are supplied. The output schema relieves it of return-value explanation, which keeps this at an adequate rather than failing level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry the params, and it only partly does: it clarifies flight_number is numeric without an airline prefix, that departure_date is YYYY-MM-DD, and that route IDs may be airport or metro (backing origin_kind/destination_kind). The 'via' parameter is never explained, and the relationship between airline_id+flight_number and origin_id+destination_id is only implied by the word 'OR'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (search) and resource (flights), and enumerates the two supported search modes (airline+number vs. origin+destination) plus the date qualifier. It also explicitly separates itself from subscribe_flight by saying search alone does not add or subscribe to a flight.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite workflow: resolve IDs with the airport/airline/metro lookup tools before calling, and warns that searching is not subscribing. It stops short of naming the concrete siblings (get_flight, list_flights, subscribe_flight) as alternatives for non-search intents, so the routing is implied rather than spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.