
Minimal MCP Multi-Server Demo

2025.04.17
0
Jupyter Notebook多服务器系统MCP协议演示开发效率
该项目是一个基于Model Context Protocol (MCP)的多服务器演示项目,展示了如何在不依赖高级库(如FastMCP)的情况下,使用MCP Python SDK的低级方法构建本地多服务器系统。项目包含数学服务器和天气服务器,以及一个自定义客户端和基于LLM的主机,用于演示MCP的实际应用。
View on GitHub
Overview
基本能力
产品定位
该项目旨在演示如何使用MCP协议构建本地多服务器系统,适用于开发者和研究人员学习和实践MCP协议的实际应用。
核心功能
- 多服务器支持:支持多个独立的服务器(如数学服务器和天气服务器)同时运行。
- 自定义客户端:提供客户端代码,用于连接多个服务器并调用其功能。
- LLM主机:基于OpenAI的交互式主机逻辑,能够根据用户查询自动选择正确的工具并返回结果。
- 工具调用:数学服务器提供
add
和multiply
工具,天气服务器提供get_weather
工具(提供模拟天气信息)。
适用场景
- 开发者学习:适合开发者学习MCP协议的实际应用和实现细节。
- 多服务器系统构建:适用于需要构建本地多服务器系统的场景。
- 工具调用演示:用于演示如何通过MCP协议调用不同服务器的工具。
工具列表
- 数学服务器工具:
add
:加法工具。multiply
:乘法工具。- 天气服务器工具:
get_weather
:获取模拟天气信息的工具。
常见问题解答
- 如何更改服务器端口?:更新对应的
.py
文件中的端口配置。 - 如何运行主机?:打开
host.ipynb
文件并执行其中的单元格。 - 许可证限制:项目代码适用于非商业用途,第三方库和工具受其各自许可证约束。
使用教程
使用依赖
- 克隆项目仓库。
- 建议创建虚拟环境。
- 安装依赖:
pip install -r requirements.txt
安装教程
- 启动数学服务器:
python math_server.py
- 启动天气服务器:
python weather_server.py
调试方式
- 打开
host.ipynb
文件。 - 执行以下查询示例:
await run_host_query("How many hours are in 5 days?")
await run_host_query("What's the weather like in Berlin?")
- 观察主机如何选择正确的工具并返回结果。