⚠️ 注: 这是一个学校项目,不是最终产品。它旨在用于教育目的,演示模型上下文协议(MCP)概念和Claude API集成。
______________________________________________________________________
具有模型上下文协议的旅行助手
1.工程概况
该项目展示了使用 模型上下文协议(MCP) 生态系统。它将Claude AI与专门的MCP服务器相结合,提供实时旅行功能,包括网络搜索、天气预报和航班可用性。
它的作用
旅行助手通过以下方式帮助用户计划旅行:
- 搜索网络 目的地、景点和旅行提示
- 查看天气预报 用于行程规划
- 寻找航班选项 出发地和目的地机场之间(仅单向搜索;往返搜索尚未实现)
核心技术栈
- API克劳德 (Anthropic)-LLM骨干负责协调所有工具
- 模型上下文协议(MCP) -基于服务器的工具架构,实现关注点的清晰分离
- python -服务器和代理的实现语言
- 外部API:
- SerpApi用于网络搜索 - Open Meteo用于天气和地理编码 - Amadeus用于飞行数据
运作原理
该代理使用对话界面,Claude在其中处理自然语言请求,确定需要哪些工具,调用适当的MCP服务器,并将结果综合成有用的旅行建议。每个MCP服务器独立运行,使系统模块化和可扩展。
______________________________________________________________________
2.项目结构
文件组织
├── agent.py # Main agent orchestrator
├── search_mcp.py # Web search MCP server
├── weather_mcp.py # Weather & geocoding MCP server
├── amadeus_mcp.py # Flight search MCP server
├── start.bat # Batch script to launch the agent
├── requirements.txt # Python package dependencies
├── .env # Environment variables (API keys)
└── README.md # This documentation核心模块
agent.py
- 协调所有MCP服务器和Claude API交互
- 管理与用户的对话循环
- 将工具调用从Claude路由到相应的MCP服务器
- 通过上下文维护处理多回合对话
search_mcp.py
- 使用SerpApi实现web搜索
- 提供查找目的地、景点和旅行提示信息的工具
- 返回搜索结果和链接供用户参考
weather_mcp.py
- 连接到Open-Meteo API以获取天气数据
- 提供地理编码,将城市名称转换为坐标
- 返回旅行计划的预报和当前天气状况
amadeus_mcp.py
- 与Amadeus travel API集成
- 搜索机场之间的航班选项
- 提供定价和日程信息
requirements.txt
- 列出运行项目所需的所有Python依赖项
- 包括Anthropic SDK、MCP库和API客户端
.env
- 存储敏感的API密钥和凭据
- 出于安全考虑,未致力于版本控制
______________________________________________________________________
3.快速入门
先决条件
- Python 3.10或更高版本
- API密钥用于:
- 无烟煤(Claude API) - SerpApi(网络搜索) - Open Meteo(无天气,无需钥匙) - Amadeus(航班搜索)
安装和设置
- 克隆或下载项目
- 创建虚拟环境:
python -m venv .venv - 激活它:
.venv\Scripts\activate(Windows) - 安装依赖项:
pip install -r requirements.txt - 创建
.env文件并添加API密钥 - 跑
start.bat或python agent.py
______________________________________________________________________
4.配置
环境变量(.env)
创建一个 .env 文件,并添加以下API密钥:
ANTHROPIC_API_KEY=your_anthropic_key_here
SERPAPI_API_KEY=your_serpapi_key_here
AMADEUS_CLIENT_ID=your_amadeus_id_here
AMADEUS_CLIENT_SECRET=your_amadeus_secret_hereAPI设置链接
- Anthropic: https://console.anthropic.com
- SerpApi: https://serpapi.com
- 阿玛迪斯: https://developers.amadeus.com
- 开放天气:免费(无需钥匙)
______________________________________________________________________
5.使用示例
代理运行后,尝试询问:
- “明天从纽约到巴黎有什么航班?”
- “下周巴塞罗那的天气怎么样?”
- “在东京给我找些事情做”
- “搜索悉尼的酒店,告诉我那里的天气”
代理将自动选择正确的工具,并将结果组合成有用的响应。
______________________________________________________________________
6.建筑
数据流
User Input
↓
Agent (agent.py)
↓
Claude API (processes request, identifies needed tools)
↓
MCP Servers (execute tools in parallel)
├─ search_mcp.py (web search)
├─ weather_mcp.py (weather/geocoding)
└─ amadeus_mcp.py (flights)
↓
Claude (synthesizes results)
↓
User Response每个MCP服务器都作为一个独立的进程运行,通过stdio进行通信。Claude决定调用哪些工具并自动聚合结果。
______________________________________________________________________
7.参考文献和资源
______________________________________________________________________
8.测试与调试
使用MCP检查器
使用检查器测试单个MCP服务器:
npx @modelcontextprotocol/inspector python search_mcp.py
npx @modelcontextprotocol/inspector python weather_mcp.py
npx @modelcontextprotocol/inspector python amadeus_mcp.py这将打开一个web界面来测试工具并实时检查消息。
在调试模式下运行代理
在中添加打印语句 agent.py 查看工具调用和响应。运行时检查控制台输出 python agent.py.
______________________________________________________________________
9.故障排除
问题:代理未连接到服务器
- 全部验证
.env变量设置正确 - 检查Python版本(3.10+)
- 确保安装了依赖项:
pip install -r requirements.txt
问题:API调用失败
- 验证API密钥是否有效并具有适当的权限
- 检查互联网连接
- 一些API有速率限制;请稍候,然后重试
问题:Start.bat不起作用
- 尝试直接跑步:
python agent.py - 检查venv是否已激活
______________________________________________________________________
10.许可证和注意事项
这个项目是为了教育目的而创建的,是学校作业的一部分。它展示了MCP模式和Claude API集成。
免责声明:这不是生产就绪的软件。这是一个专注于架构和集成模式的学习项目。
