Skip to main content
Glama

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-mcp

Claude 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-mcp

Local Run

npm run build
node dist/index.js

Tools

  • search_travel_options

  • get_airport_info

  • compare_routes

  • build_booking_link

  • explain_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 tools
compare_routesA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
routesYesArray of route pairs to compare. Minimum 1, typically 2-5.

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_timingA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
originNoOrigin IATA code. Optional — used to determine if route is international.
destinationNoDestination IATA code. Optional — used to determine if route is international.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_infoA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThree-letter IATA airport code (e.g. 'SFO'). Case-insensitive.

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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_optionsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
originYesOrigin airport IATA code (e.g. 'LAX', 'JFK'). Case-insensitive.
destinationYesDestination airport IATA code (e.g. 'LHR', 'NRT'). Case-insensitive.
departure_dateNoDeparture date in YYYY-MM-DD format. Optional — omit for open date searches.
return_dateNoReturn date in YYYY-MM-DD format. Omit for one-way trips.
currencyNoISO 4217 currency code (default: USD). Used in booking link parameters.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 5 tool updatesv0.1.2
    • First observedbuild_booking_link
    • First observedcompare_routes
    • First observedexplain_travel_timing
    • First observedget_airport_info
    • First observedsearch_travel_options

TDQS

A4.7/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, making them predictable and easy to understand.

Tool Count5/5

5 tools is well-scoped for a travel assistant server, covering essential workflows without being excessive or insufficient.

Completeness5/5

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

ActivityStale
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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