使用说明
MCP演示
一个展示模型上下文协议(MCP)与FastMCP服务器和LangChain集成的演示项目。
概述
该项目演示了如何使用FastMCP创建和使用MCP(模型上下文协议)服务器,将其与LangChain代理集成,以创建可以使用外部工具的AI应用程序。演示包括两个示例服务器:
- 数学服务器:提供基本的数学运算(加法、乘法)
- 天气服务器:模拟任何位置的天气数据检索
特性
- 🧮 数学运算:使用MCP工具对数字进行加法和乘法运算
- 🌤️ 天气信息:获取任何位置的模拟天气数据
- 🤖 AI代理集成:使用LangChain和OpenAI GPT-4与MCP工具交互
- 🔄 多种运输方式:演示stdio和HTTP传输
项目结构
MCP-Demo/
├── main.py # Main entry point
├── math_server.py # MCP server for mathematical operations
├── weather.py # MCP server for weather information
├── client.py # Client that integrates MCP servers with LangChain
├── pyproject.toml # Project configuration and dependencies
├── requirements.txt # Python dependencies
├── uv.lock # UV lock file
└── README.md # This file
需求
- Python 3.10或更高版本
- OpenAI API密钥(用于AI代理)
安装
-
克隆存储库:
git clone <repository-url> cd MCP-Demo -
安装依赖项:
# Using pip pip install -r requirements.txt # Or using uv (recommended) uv sync -
设置环境变量: 创建一个
.env项目根目录中的文件:OPENAI_API_KEY=your_openai_api_key_here
用法
运行单个服务器
数学服务器(stdio传输)
python math_server.py
天气服务器(HTTP传输)
python weather.py
天气服务器将在 http://localhost:8000 默认情况下。
运行完整演示
-
启动天气服务器 (在一个终端中):
python weather.py -
运行客户端 (在另一个终端中):
python client.py
客户将使用AI代理演示数学和天气操作。
MCP服务器
数学服务器(math_server.py)
通过stdio传输提供数学运算:
add(a: int, b: int) -> int:将两个数字相加multiply(a: int, b: int) -> int:将两个数字相乘
天气服务器(weather.py)
通过HTTP传输提供模拟天气信息:
get_weather(location: str) -> str:返回给定位置的天气数据
客户端集成(client.py)
客户演示如何:
- 创建一个
MultiServerMCPClient具有多个MCP服务器 - 配置不同的传输类型(stdio和HTTP)
- 将MCP工具与LangChain代理集成
- 使用OpenAI的GPT-4模型与工具进行交互
交互示例
演示客户端将执行以下示例交互:
-
数学查询:“什么是(3+5)x 12?”
- 使用数学服务器的
add和multiply工具 - 预期结果:96
- 使用数学服务器的
-
天气查询“加利福尼亚的天气怎么样?”
- 使用天气服务器
get_weather工具 - 返回模拟天气数据
- 使用天气服务器
发展
添加新工具
要向数学服务器添加新工具,请执行以下操作:
@mcp.tool()
def subtract(a: int, b: int) -> int:
"""Subtracts b from a."""
return a - b
要向天气服务器添加新工具,请执行以下操作:
@mcp.tool()
async def get_forecast(location: str, days: int = 7) -> str:
"""Get weather forecast for multiple days."""
# Implementation here
pass
运输类型
- 标准:直接进程通信(由数学服务器使用)
- streamable_http:基于HTTP的通信(由天气服务器使用)
依赖项
mcp:核心模型上下文协议库langchain-groq:LangChain与Groq的整合langchain-mcp-adapters:LangChain的MCP适配器langgraph:基于图的代理框架langchain-openai:LangChain的OpenAI集成
故障排除
- 缺少OpenAI API密钥:确保你的
.env文件包含有效的OpenAI API密钥 - 端口冲突:如果端口8000繁忙,请在中修改端口
weather.py - 导入错误:确保所有依赖项都已安装
pip install -r requirements.txt
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
该项目仅用于演示目的。请检查生产使用的各个依赖许可证。