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