Skip to main content
Glama

Travel Planner MCP Server

A multi-agent travel planning system built with Google Agent Development Kit (ADK) that exposes its tools via the Model Context Protocol (MCP).

The system uses a root agent with two sub-agents — a weather agent and a travel plan agent — to create weather-aware 3-day travel itineraries. The tools are also exposed through an MCP server, making them accessible to any MCP-compliant client.

Architecture

┌─────────────────────────────────────────────────┐ │ Root Agent │ │ (travel_planner) │ │ │ │ Orchestrates the travel planning workflow: │ │ gather info → check weather → create plan │ │ │ │ ┌─────────────────┐ ┌──────────────────────┐ │ │ │ Weather Agent │ │ Travel Plan Agent │ │ │ │ │ │ │ │ │ │ get_weather() │ │ create_travel_plan()│ │ │ │ (Open-Meteo API)│ │ (itinerary builder) │ │ │ └─────────────────┘ └──────────────────────┘ │ └─────────────────────────────────────────────────┘ ▼ exposed via ▼ ┌─────────────────────────────────────────────────┐ │ MCP Server (stdio) │ │ │ │ Wraps ADK FunctionTools and exposes them as │ │ MCP tools accessible to any MCP client │ │ │ │ Tools: get_weather, create_travel_plan │ └─────────────────────────────────────────────────┘

Project Structure

travel-planner-mcp-server/ ├── travel_planner/ # ADK multi-agent package │ ├── __init__.py │ ├── agent.py # Root agent (orchestrator with sub-agents) │ ├── sub_agents/ │ │ ├── __init__.py │ │ ├── weather_agent.py # Weather specialist sub-agent │ │ └── travel_plan_agent.py # Travel planning specialist sub-agent │ └── tools/ │ ├── __init__.py │ ├── weather_tools.py # Open-Meteo API weather tool │ └── travel_tools.py # Travel plan generation tool ├── mcp_server.py # MCP server exposing ADK tools ├── adk_client_agent/ # Example ADK agent consuming the MCP server │ └── mcp_travel_client/ │ ├── __init__.py │ └── agent.py ├── pyproject.toml ├── requirements.txt ├── .env.example └── README.md

Prerequisites

  • Python 3.10+

  • A Google API key (for Gemini model access)

Setup

  1. Clone the repository:

    git clone <repo-url> cd travel-planner-mcp-server
  2. Install dependencies:

    pip install -r requirements.txt
  3. Configure environment:

    cp .env.example .env # Edit .env and add your Google API key

Usage

Option 1: Run the ADK Multi-Agent System Directly

This uses the root agent with its sub-agents through the ADK web UI:

adk web # Select "travel_planner" in the browser UI

The root agent will:

  1. Ask for your destination and travel date

  2. Delegate to the weather agent to fetch the forecast

  3. Delegate to the travel plan agent to create the itinerary

  4. Present a comprehensive 3-day travel plan

Option 2: Run the MCP Server

This exposes the tools via MCP protocol for any MCP client to consume:

python mcp_server.py

The MCP server exposes two tools:

  • get_weather — Fetches 3-day weather forecast for a location using Open-Meteo API

  • create_travel_plan — Generates a structured 3-day travel itinerary template

Option 3: Run the MCP Client Agent

This demonstrates an ADK agent consuming the MCP server:

cd adk_client_agent adk web # Select "mcp_travel_client" in the browser UI

Option 4: Connect from Any MCP Client

Add to your MCP client configuration (e.g., Claude Desktop, Cursor, etc.):

{ "mcpServers": { "travel-planner": { "command": "python3", "args": ["/path/to/mcp_server.py"] } } }

Tools

get_weather

Fetches a 3-day weather forecast using the Open-Meteo API (free, no API key required).

Parameters:

Parameter

Type

Description

location

string

City or place name (e.g., "Paris", "Tokyo")

date

string

Start date in YYYY-MM-DD format

Returns: Temperature (C/F), conditions, precipitation, wind speed, and UV index for 3 days.

create_travel_plan

Generates a structured 3-day travel itinerary template.

Parameters:

Parameter

Type

Description

location

string

Destination city or place

start_date

string

Trip start date (YYYY-MM-DD)

weather_summary

string

Weather conditions summary

interests

string

Travel interests (default: "general sightseeing")

Returns: Day-by-day itinerary structure with time slots, meals, and tips.

How It Works

This project demonstrates Pattern 2 from the ADK documentation: Building an MCP server with ADK tools.

  1. ADK FunctionTool wraps the Python tool functions

  2. adk_to_mcp_tool_type() converts ADK tool schemas to MCP format

  3. The MCP server advertises tools via list_tools and executes them via call_tool

  4. Any MCP client can discover and invoke the tools through the standard protocol

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

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/DasBalvinderDas/travel-planner-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server