search_airports
Find airports by city, name or IATA code. Use this to get the codes create_flight requires — never guess them.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Find airports by city, name or IATA code. Use this to get the codes create_flight requires — never guess them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description doesn't need to restate that. It adds value by implying the tool returns airport codes and that guessing is not acceptable, which is useful behavioral context. However, it doesn't describe the return format or any pagination, but given the annotations, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the purpose, and every word earns its place. It's concise and structured effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, read-only annotations), the description is complete enough. It explains the purpose, usage context, and the critical requirement to not guess codes. It could mention the limit parameter, but that's a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions the query parameter implicitly ('by city, name or IATA code') but doesn't explain the 'limit' parameter. The description adds some meaning for 'query' but not for 'limit', so it partially compensates but leaves a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find airports by city, name or IATA code.' It specifies the resource (airports) and the search criteria, and it distinguishes itself from siblings like search_airlines and search_cities by focusing on airports and mentioning IATA codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool: 'Use this to get the codes create_flight requires — never guess them.' This provides clear context and an exclusion (never guess codes), and it names the sibling tool create_flight as the consumer of the output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Each tool targets a distinct resource and action (e.g., create_flight vs create_activity vs create_stay), and descriptions clarify overlaps like stay vs accommodation. The only potential confusion (create_activity covers travel legs) is explicitly explained, so misselection is unlikely.
All tools follow a consistent verb_noun pattern using standard verbs: create, delete, get, list, search, set, update, add, remove, leave. Nouns are consistently singular and descriptive (passport, journey, stay, flight, accommodation). No mixed conventions or vague verbs.
With 36 tools, the count is higher than typical, but the server covers a wide domain: journeys, stays, activities, flights, accommodations, visas, documents, preferences, and sharing. Each entity has CRUD operations plus search and status, so the count is justified, though bordering on heavy.
The tool surface is remarkably complete: full CRUD for every entity (journeys, stays, activities, flights, accommodations, visas), user profile access (get_me), search utilities, sharing controls (join links, member management), and preferences. No obvious dead ends or missing lifecycle steps; even edge cases like deleting bookings before stays are handled.