使用说明
MCP演示项目
使用LangChain、LangGraph和Groq创建AI代理的模型上下文协议(MCP)演示,该代理可以与多个MCP服务器进行交互,以进行数学运算和天气信息。
概述
该项目展示了如何:
- 使用FastMCP创建MCP服务器
- 设置多个MCP服务器(数学和天气)
- 使用LangChain MCP适配器连接到多个服务器
- 使用LangGraph创建一个ReAct代理,该代理可以使用来自不同MCP服务器的工具
- 与Groq的语言模型集成
项目结构
mcp_demo/
├── client.py # Main client that connects to MCP servers and runs the agent
├── mathserver.py # MCP server providing mathematical operations
├── weather.py # MCP server providing weather information
├── main.py # Simple entry point
├── requirements.txt # Python dependencies
├── pyproject.toml # Project configuration
└── README.md # This file
特性
数学服务器(mathserver.py)
- 添加:添加两个数字
- 乘:将两个数字相乘
- 使用stdio传输进行通信
天气服务器(weather.py)
- 获得天气:获取城市的天气信息(模拟数据)
- 使用流式HTTP传输进行通信
客户(client.py)
- 连接到数学和天气MCP服务器
- 使用LangGraph创建ReAct代理
- 使用Groq的Qwen模型进行推理
- 演示跨多个服务器的工具使用情况
先决条件
- Python 3.13+
- Groq API 密钥
安装
- 克隆存储库:
git clone <your-repo-url>
cd mcp_demo
- 安装依赖项:
pip install -r requirements.txt
- 设置环境变量:
创建一个
.env项目根目录中的文件:
GROQ_API_KEY=your_groq_api_key_here
用法
运行天气服务器
首先,在单独的终端中启动天气服务器:
python weather.py
天气服务器将启动 http://localhost:8000/mcp 使用流式HTTP传输。
运行客户端
在另一个终端中,运行主客户端:
python client.py
这将:
- 连接到数学服务器(stdio)和天气服务器(HTTP)
- 使用两台服务器上的工具创建ReAct代理
- 让代理人解决一道数学题:“什么是(3+5)x 12?”
- 向客服询问天气:“加利福尼亚的天气怎么样?”
运作原理
- MCP服务器:数学和天气服务器使用FastMCP公开工具
- 多服务器客户端:The
MultiServerMCPClient同时连接到多个MCP服务器 - 工具集成:所有服务器上的工具都可供LangGraph代理使用
- 重新代理:代理可以推理使用哪些工具以及如何组合它们的结果
- 语言模型Groq的Qwen模型提供了推理能力
依赖项
langchain-groq:与Groq的语言模型集成langchain-mcp-adapters:LangChain的MCP适配器langgraph:用于创建ReAct代理mcp:模型上下文协议实现
运输类型
此演示展示了两种不同的MCP传输类型:
- 标准输入输出:由数学服务器用于直接进程通信
- 可流式传输http:由天气服务器用于基于HTTP的通信
输出示例
运行客户端时,您应该看到如下输出:
Math response: The result of (3 + 5) x 12 is 96.
Weather response: The weather in California is sunny.
扩展项目
您可以通过以下方式扩展此项目:
- 向现有服务器添加更多工具
- 为不同域创建新的MCP服务器
- 实现真实天气API集成
- 添加更复杂的数学运算
- 创建自定义LangGraph工作流
许可证
该项目仅用于演示目的。请检查依赖项的许可证以供生产使用。