本项目展示了如何利用LangGraph框架和MCP协议将多种工具来源(自定义工具、本地MCP服务及第三方API)整合到一个统一的AI代理中,实现功能丰富的智能助手系统。
提供与气象相关的API工具:
get_alerts:获取美国各州级气象警报get_forecast:根据经纬度获取天气预报基于MCP协议的本地服务,提供实时气象信息访问。
提供一系列基本工具:
这些工具通过LangChain的@tool装饰器定义,可以被AI代理调用。
集成第三方MCP服务:
连接气象服务器并使用其提供的工具。通过SSE(服务器发送事件)协议与服务器通信,处理连接和重试逻辑。
核心组件,整合所有来源的工具:
pip install -r requirements.txt
在.env文件中设置以下变量:
MOONSHOT_API_KEY:Moonshot API密钥(用于LLM)ZHIPU_API_KEY:Zhipu API密钥(用于网络搜索服务)python weather/weather.py
python weather/agent_with_diverse_tools.py
python weather/mcp_third_party.py
综合代理能够处理各种类型的查询:
数学计算:
字符串操作:
气象信息:
网络搜索:
混合查询:
localhost:8000克隆仓库:
git clone https://github.com/haichaozheng/weather-mcp.git
cd weather-mcp
创建虚拟环境:
# 使用Python标准库
python -m venv weather_venv
# 激活虚拟环境(Windows)
weather_venv\Scripts\activate
# 激活虚拟环境(Linux/Mac)
source weather_venv/bin/activate
安装依赖:
pip install -r requirements.txt
配置环境变量:
.env文件,参考.env.example文件格式weather-mcp/ ├── weather/ │∝ - weather.py # 主服务器文件 │∝ - mcp_client.py # 客户端测试文件 ∝ - requirements.txt # 项目依赖 ∝ --.env.example # 环境变量示例文件 └ -- README.md # 本文档
项目使用.env文件存储环境变量和敏感信息。请按照以下步骤设置:
复制环境变量模板文件:
cp .env.example .env
编辑.env文件,填写实际配置:
MOONSHOT_API_KEY=your_actual_api_key
确保.env文件不会提交到版本控制系统
在.env文件中设置以下变量:
MOONSHOT_API_KEY:Moonshot API密钥localhost:8000