FastMCP多服务器演示
一个演示项目,展示了使用FastMCP、LangChain和OpenAI的多服务器MCP(模型上下文协议)通信。该项目创建了两个MCP服务器(数学和天气),并演示了如何通过智能代理与它们交互。
特性
- 数学服务器:提供基本的算术运算(加法、乘法)
- 天气服务器:为城市提供天气信息
- 多服务器客户端:演示同时与多个MCP服务器的通信
- AI代理集成:使用LangChain和OpenAI创建一个可以使用两个服务器工具的智能代理
先决条件
- Python 3.13或更高版本
- OpenAI API密钥
- uv(Python包管理器)
安装
1.安装uv(如果尚未安装)
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh窗户:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"替代安装方法:
- 使用pip:
pip install uv - 使用conda:
conda install -c conda-forge uv - 使用自制程序(macOS):
brew install uv
有关更多安装选项,请访问 紫外线文件.
2.克隆和设置项目
git clone git@github.com:ashishpatel546/mcp-server-fastmcp.git
cd fast-mcp3.创建虚拟环境
# Create virtual environment with uv
uv venv
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
# .venv\Scripts\activate4.安装依赖项
# Install all project dependencies
uv pip install -r pyproject.toml5.设置环境变量
创建一个 .env 项目根目录中的文件:
touch .env将您的OpenAI API密钥添加到 .env 文件:
OPENAI_API_KEY=your_openai_api_key_here用法
该项目由三个主要部分组成:
1.数学服务器(mathserver.py)
通过stdio传输提供算术运算。
python mathserver.py2.气象服务器(weather.py)
通过HTTP传输提供天气信息。
python weather.py3.客户(client.py)
演示与AI代理的多服务器通信。
python client.py项目结构
fast-mcp/
├── client.py # Multi-server MCP client with AI agent
├── main.py # Basic entry point
├── mathserver.py # Math operations MCP server (stdio)
├── weather.py # Weather information MCP server (HTTP)
├── pyproject.toml # Project dependencies and configuration
├── requirement.txt # Requirements file
├── uv.lock # uv lock file
├── README.md # This file
└── .env # Environment variables (create this)运作原理
- 数学服务器:作为基于stdio的MCP服务器运行,提供
add()和multiply()函数 - 天气服务器:作为基于HTTP的MCP服务器运行,提供天气信息
- 客户端:创建一个连接到两台服务器的多服务器MCP客户端,并使用LangChain创建一个可以智能使用两台服务器工具的AI代理
客户演示:
- 使用不同的传输方式连接到多个MCP服务器
- 使用LangChain的ReAct代理模式
- 针对不同的查询使用哪些工具做出明智的决策
输出示例
当你奔跑时 client.py,您将看到以下响应:
********* Maths Response *********
The result of (2+3)*8 is 40.
********* Weather Response *********
The current weather in San Francisco is sunny with a temperature of 25°C.依赖项
- fastmcp:用于构建MCP服务器的FastMCP框架
- 语言链:用于构建AI应用程序的LangChain框架
- langchain mcp适配器:用于将MCP与LangChain集成的适配器
- 兰开夏:LangChain的OpenAI集成
- 兰格拉夫:基于图形的AI工作流框架
- 主控程序:核心MCP协议实现
发展
添加新工具
要向Math服务器添加新工具,请执行以下操作:
@mcp.tool()
def your_function(param: type) -> return_type:
"""Description of your function."""
# Your implementation here
return result运行单个服务器
您可以独立测试服务器:
# Test math server
python mathserver.py
# Test weather server (runs on http://localhost:8000/mcp)
python weather.py故障排除
常见问题
- OpenAI API密钥错误:确保你的
.env文件包含有效OPENAI_API_KEY - 导入错误:确保所有依赖项都已安装
uv pip install -r pyproject.toml - Python版本:此项目需要Python 3.13+
虚拟环境问题
如果您遇到虚拟环境问题:
# Remove existing environment
rm -rf .venv
# Create new environment
uv venv
# Activate and reinstall
source .venv/bin/activate
uv pip install -r pyproject.toml许可证
这个项目是开源的。请查看许可证文件以了解更多详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
