这是一个使用多个模型上下文协议(MCP)服务器进行数学运算的LangGraph演示项目。该项目展示了如何构建一个智能代理,该代理可以无缝地使用不同的MCP服务器执行各种数学计算。
系统由以下部分组成:
client.py):基于LangGraph的代理,协调多个MCP服务器elementary_math_server.py):基本算术运算exponentiation_math_server.py):幂运算和高级数学┌─────────────────┐
│ LangGraph │
│ 数学代理 │
└─────────┬───────┘
│
├── 基础数学MCP服务器
│ ├── 加法
│ ├── 减法
│ ├── 乘法
│ └── 除法
│
└── 高级数学MCP服务器
├── 幂/指数
├── 平方
├── 立方
└── 平方根
克隆仓库:
git clone <你的仓库地址>
cd langgraph-multi-mcp-math
安装依赖项:
pip install -r requirements.txt
设置Google Cloud凭证:
# 选项1:使用gcloud CLI
gcloud auth application-default login
# 选项2:使用服务账户密钥
export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/service-account-key.json"
运行主要演示:
python client.py
这将启动数学代理,并展示跨多个查询的各种数学运算。
演示包括几个示例查询:
"3 + 5 的结果乘以 12 是多少?""现在我想得到那个结果的平方""2的8次方加15等于多少?"🧮 LangGraph 多MCP数学代理演示
========================================
🔍 查询1:3 + 5 的结果乘以 12 是多少?
----------------------------------------
基础数学:3 + 5 = 8
基础数学:8 × 12 = 96
AI:(3 + 5) × 12 的结果是 96。
🔍 查询2:现在我想得到那个结果的平方
----------------------------------------
高级数学:96² = 9216
AI:96 的平方是 9,216。
🔍 查询3:2的8次方加15等于多少?
----------------------------------------
高级数学:2^8 = 256
基础数学:256 + 15 = 271
AI:2^8 + 15 等于 271。
├── client.py # 主LangGraph代理
├── elementary_math_server.py # 基础数学运算MCP服务器
├── exponentiation_math_server.py # 高级数学运算MCP服务器
├── requirements.txt # Python依赖项
└── README.md # 本文档
add(a, b) - 将两个整数相加subtract(a, b) - 将两个整数相减multiply(a, b) - 将两个整数相乘divide(a, b) - 执行带商和余数的除法power(base, exponent) - 计算base^exponentsquare(number) - 计算number²cube(number) - 计算number³square_root(number) - 计算√number核心的MathAgent类提供了:
代理使用简单但有效的工作流:
创建一个新的MCP服务器:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("您的服务器名称")
@mcp.tool()
def your_function(param: int) -> int:
"""您的函数描述"""
return param * 2
if __name__ == "__main__":
mcp.run(transport="stdio")
添加到客户端配置:
server_config = {
"your_server": {
"command": "python",
"args": ["your_server.py"],
"transport": "stdio",
},
# ... 现有服务器
}
只需向适当的服务器文件添加新的@mcp.tool()装饰函数。
Google Cloud认证:
# 验证认证
gcloud auth list
gcloud config list
MCP服务器连接问题:
未找到工具错误:
通过修改日志级别启用详细日志记录:
logging.basicConfig(level=logging.DEBUG)
此项目采用MIT许可 - 查看LICENSE文件了解详情。
对于问题或问题:
愉快编码! 🧮✨