Travel Assistant MCP
Allows looking up airport metadata by IATA code, such as airport name, location, and timezone.
Travel Assistant MCP
No-key travel assistant for Claude Desktop, Codex-style agent workflows, Hermes, and other MCP clients. It helps agents look up airports, compare routes, explain travel timing, and build external booking links without requiring a travel API account.
Features
Look up airport metadata by IATA code
Compare alternate origin and destination airport routes
Explain booking windows, airport arrival timing, layovers, and seasonal travel factors
Build external booking links for selected routes
Run locally with no API key or account setup
Disclose commission-eligible links in tool output
Related MCP server: autonomad-travel
Install
npm install -g @forgemeshlabs/travel-assistant-mcpClaude Desktop
Add this to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"travel-assistant": {
"command": "npx",
"args": ["-y", "@forgemeshlabs/travel-assistant-mcp"]
}
}
}Restart Claude Desktop after saving the config, then ask Claude to plan or compare travel routes.
Codex, Hermes, and other MCP-capable agent runtimes can use the same server command:
npx -y @forgemeshlabs/travel-assistant-mcpLocal Run
npm run build
node dist/index.jsTools
search_travel_optionsget_airport_infocompare_routesbuild_booking_linkexplain_travel_timing
Public Data Boundary
This package uses generic language for provider integrations. Tool responses may include external booking links and commission-eligible links. Booking completion happens with booking partners outside this MCP server.
Available Tools
5 toolsbuild_booking_linkARead-onlyIdempotent
Generate only an external booking link for an already chosen route. Use after route details are known or after compare_routes/search_travel_options; do not use as the first step when the user still needs search guidance. Read-only, no authentication, no booking completion, and no reservation side effects. The returned link may be commission-eligible and is disclosed in output.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Origin IATA code (e.g. 'IAH'). Case-insensitive. | |
| destination | No | Destination IATA code (e.g. 'CDG'). Case-insensitive. | |
| departure_date | No | Departure date in YYYY-MM-DD format. Optional. | |
| return_date | No | Return date in YYYY-MM-DD format. Optional — omit for one-way. | |
| currency | No | ISO 4217 currency code (default: USD). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations: read-only, no authentication, no booking completion, no reservation side effects, commission-eligible, link disclosed. Annotations already declare safety profile, but description enriches it.
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?
Four sentences, each essential. Front-loaded with purpose. No wasted words.
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?
Tool is simple; schema fully describes parameters. Description covers behavior, usage context, and no output schema needed. Complete for its purpose.
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 100%, so baseline is 3. Description does not add parameter-specific details beyond schema, but overall context is sufficient.
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?
Clearly states verb 'generate', resource 'external booking link', and context 'for an already chosen route'. Differentiates from sibling tools by specifying it is for after route details are known.
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?
Explicitly says to use 'after route details are known' and 'do not use as the first step when the user still needs search guidance'. Provides clear context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_routesARead-onlyIdempotent
Compare two or more airport route pairs side by side. Use when the user is choosing between alternate origins, destinations, or airports; use search_travel_options for one dated route and get_airport_info for a single airport lookup. Read-only, no authentication, no booking side effects. Responses may include commission-eligible external booking links for each route.
| Name | Required | Description | Default |
|---|---|---|---|
| routes | Yes | Array of route pairs to compare. Minimum 1, typically 2-5. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, etc.), the description adds that it requires no authentication, has no booking side effects, and responses may include commission-eligible external booking links. This fully discloses behavioral traits.
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 a single paragraph that efficiently covers purpose, usage context, and behavioral notes with no redundant information. Every sentence serves a purpose.
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 (one array parameter, read-only, no output schema), the description fully covers its use case, alternatives, and safety profile. No gaps in information.
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?
Input schema has 100% coverage with clear descriptions of the 'routes' parameter and its subfields. The description adds that typical usage is 2-5 routes, which provides useful context beyond the schema.
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 compares two or more airport route pairs side by side, and distinguishes it from sibling tools like search_travel_options and get_airport_info by specifying when to use each.
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?
Explicitly tells when to use this tool (choosing between alternate origins/destinations/airports) and when to use alternatives (search_travel_options for one dated route, get_airport_info for single airport lookup).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_travel_timingARead-onlyIdempotent
Explain general travel timing and logistics, including booking windows, airport arrival timing, layovers, and seasonal considerations. Use for advice questions like when to book or how early to arrive; use search_travel_options when the user wants route-specific flight search. Read-only, no authentication, no external booking link, and no booking side effects.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | No | Origin IATA code. Optional — used to determine if route is international. | |
| destination | No | Destination IATA code. Optional — used to determine if route is international. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description states read-only, no authentication, no booking link, and no booking side effects. Annotations already indicate readOnlyHint and idempotentHint, but the description adds specific behavioral context beyond annotations.
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?
Two concise sentences with purpose, topics, usage guidance, and behavioral traits front-loaded. No unnecessary words.
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?
Covers purpose, usage, and behavior. Lacks explicit mention of output format (likely textual explanation), but given the tool name and description, it's largely complete. Optional params are noted, but their impact on output is implicit.
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 100%, so baseline 3. The description does not add additional semantic info beyond what the schema already provides for the two optional parameters.
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?
Description clearly states the tool explains general travel timing and logistics, listing specific topics. It distinguishes from sibling 'search_travel_options' by specifying when to use each.
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?
Explicitly advises using this tool for general timing advice (e.g., when to book, how early to arrive) and directs to 'search_travel_options' for route-specific search. Also notes read-only, no auth, no booking side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_airport_infoARead-onlyIdempotent
Look up metadata for one airport by IATA code. Use to validate or explain a single airport code before route planning; use search_travel_options for an actual trip search and compare_routes for multiple origin-destination pairs. Read-only, no authentication, no external booking links, and no booking side effects.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Three-letter IATA airport code (e.g. 'SFO'). Case-insensitive. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds 'Read-only, no authentication, no external booking links, and no booking side effects,' reinforcing and providing additional context beyond annotations.
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?
Two sentences, front-loaded with purpose, then usage guidelines and behavioral notes. Every sentence adds value without redundancy.
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?
For a simple lookup tool with one parameter, full schema coverage, and comprehensive annotations, the description covers purpose, usage, and behavior completely.
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 coverage is 100%, so baseline is 3. The description does not add new information about the single parameter beyond what the schema already states (IATA code, case-insensitive).
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?
Description clearly states 'Look up metadata for one airport by IATA code' with a specific verb and resource. It distinguishes from siblings by directing to search_travel_options and compare_routes for other use cases.
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?
Explicitly says when to use (validate/explain a single code before route planning) and when not to, naming alternative tools for trip search and multi-route comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_travel_optionsARead-onlyIdempotent
Primary travel search workflow for one origin-destination airport pair. Use when the user wants flight/trip options for a specific route; use compare_routes for multiple routes, build_booking_link only when route details are already known, and get_airport_info only to validate one airport. Read-only, no authentication, no booking side effects. return_date is optional; omit it for one-way trips. Responses include route metadata and may include commission-eligible external booking links.
| Name | Required | Description | Default |
|---|---|---|---|
| origin | Yes | Origin airport IATA code (e.g. 'LAX', 'JFK'). Case-insensitive. | |
| destination | Yes | Destination airport IATA code (e.g. 'LHR', 'NRT'). Case-insensitive. | |
| departure_date | No | Departure date in YYYY-MM-DD format. Optional — omit for open date searches. | |
| return_date | No | Return date in YYYY-MM-DD format. Omit for one-way trips. | |
| currency | No | ISO 4217 currency code (default: USD). Used in booking link parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds 'no authentication' and mentions response contents including commission-eligible links, providing useful context beyond annotations without contradiction.
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 four sentences, each serving a distinct purpose: purpose statement, usage guidelines, behavioral transparency, and parameter hints. No redundant or extraneous information.
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 no output schema, the description mentions response contents (route metadata, booking links). All parameters are covered by schema and description. For a simple search tool with 5 params, this is sufficiently complete.
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 coverage is 100%, so the baseline is 3. The description adds value by explicitly clarifying the optionality of return_date (one-way trips) and departure_date (open date searches), and by noting the default currency and its role in booking links.
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 as the primary search workflow for one origin-destination airport pair. It explicitly distinguishes this from sibling tools like compare_routes and build_booking_link, making selection unambiguous.
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 provides explicit when-to-use guidance, including using compare_routes for multiple routes and build_booking_link only after route details are known. It also clarifies optional parameters like return_date for one-way trips.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v0.1.2- First observed
build_booking_link - First observed
compare_routes - First observed
explain_travel_timing - First observed
get_airport_info - First observed
search_travel_options
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: airport info lookup, route search, route comparison, booking link generation, and general timing advice. No overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case, making them predictable and easy to understand.
5 tools is well-scoped for a travel assistant server, covering essential workflows without being excessive or insufficient.
Given the stated read-only, no-booking scope, the tool set covers the full lifecycle from airport validation to route search, comparison, and booking link generation, with no obvious gaps.
Maintenance
Related MCP Connectors
AI marketplace — flights, tours, activities, transport & more via MCP. No auth required.
Aggregated travel MCP — flights, tours, activities, price checks, visas, and more.
Search and compare flight offers through a cache-aware Streamable HTTP MCP server for AI agents.
Live flight prices and working booking links for AI agents and travel apps.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceOfficial Industry Standard MCP for Travel Awards, Points, and more. Search award flight availability across multiple airline loyalty programs, find sweet spots, check transfer partners, and get market stats all via MCP.1-

autonomad-travelofficial
AlicenseAqualityDmaintenanceAI travel agent over MCP — live flights, hotels, activities, and events worldwide, then completes the booking on autonomad.ai.82492MIT- AlicenseAqualityAmaintenanceEnables travel search workflows including airport lookup, route comparison, travel timing guidance, and external booking links with commission-eligible links.53971MIT
- AlicenseAqualityAmaintenanceFree travel utilities plus live x402 travel itelligence: $0.01 Travel Pulse disruption and emergency-awareness checks, day trips, weekend getaways, creator experiences, weather-aware planning, mobility options, currency conversion, airport checks, and timing guidance.414371MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/forgemeshlabs/travel'
If you have feedback or need assistance with the MCP directory API, please join our Discord server