Skip to main content
Glama
yantaotaotao

Travel Planning FastMCP

by yantaotaotao
README.md
# Travel Planning FastMCP

Python FastMCP server for travel route planning. It uses a LangChain reactive agent with Tongyi Qwen for AI-generated itineraries and keeps local deterministic tools for budget estimation, packing suggestions, food recommendations, and offline fallback planning.

## Install

```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt
```

## Configure Qwen/Tongyi Agent

`plan_trip_route_tool` calls Tongyi Qwen through DashScope. Put your API key in `.env`:

```env
DASHSCOPE_API_KEY=your-real-dashscope-api-key
```

The server loads `.env` automatically before calling the LangChain agent.

## Run

```bash
.venv/bin/python travel_planner_server.py
```

## Tools

- `plan_trip_route_tool`: uses a LangChain Tongyi Qwen agent to create a multi-day route with daily food recommendations, transport advice, lodging-area advice, budget reminders, and practical notes.
- `plan_trip_route_local_tool`: creates a deterministic offline route when you do not want to call Qwen-Agent.
- `estimate_trip_budget_tool`: estimates lodging, food, local transport, attractions, and contingency in CNY.
- `suggest_packing_list_tool`: recommends essentials, seasonal items, and activity-specific items.
- `recommend_food_experiences_tool`: recommends food districts, meal themes, snacks, and dietary notes.

## Example MCP Client Configuration

Use the Python interpreter inside this project's virtual environment. If the MCP client uses system `python3`, it may fail with `ModuleNotFoundError: No module named 'fastmcp'`.

```json
{
  "mcpServers": {
    "travel-planner": {
      "command": "/Users/yantao/Desktop/ai-project/TravelPlanning/.venv/bin/python",
      "args": ["/Users/yantao/Desktop/ai-project/TravelPlanning/travel_planner_server.py"]
    }
  }
}
```

### Trae MCP Configuration

Use the same configuration in Trae:

```json
{
  "mcpServers": {
    "travel-planner": {
      "command": "/Users/yantao/Desktop/ai-project/TravelPlanning/.venv/bin/python",
      "args": [
        "/Users/yantao/Desktop/ai-project/TravelPlanning/travel_planner_server.py"
      ]
    }
  }
}
```

After changing the configuration, reload the MCP server or restart Trae.

### Troubleshooting

If you see:

```text
ModuleNotFoundError: No module named 'fastmcp'
```

the MCP client is using the wrong Python interpreter. Install dependencies first:

```bash
python3 -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
```

Then make sure the MCP `command` points to:

```text
/Users/yantao/Desktop/ai-project/TravelPlanning/.venv/bin/python
```

## Development

```bash
env PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 python3 -m pytest -q
python3 -m compileall travel_planner.py qwen_travel_agent.py travel_planner_server.py
```

TDQS

B3.3/5.0

Scored across 5 tools

Disambiguation4/5

The two route planning tools are clearly differentiated by their execution mode (Qwen-Agent vs local deterministic), but their overlapping names and similar outputs could cause occasional confusion. The remaining tools (budget, packing, food) are clearly distinct.

Naming Consistency5/5

All tool names follow a consistent verb_noun_tool pattern in snake_case, making the API predictable and easy to navigate.

Tool Count5/5

At five tools, the server is well-scoped for travel planning, covering route, budget, packing, and food without unnecessary bloat.

Completeness4/5

The core trip planning lifecycle is covered (route, budget, packing, food), but there's no explicit activity/attraction planning or weather integration, leaving minor gaps.

Maintenance

ActivitySlowing
ResponsivenessNo issues