Minimal MCP Multi-Server Demo

Minimal MCP Multi-Server Demo

site icon
2025.04.17 0
Jupyter Notebook多服务器系统MCP协议演示开发效率
该项目是一个基于Model Context Protocol (MCP)的多服务器演示项目,展示了如何在不依赖高级库(如FastMCP)的情况下,使用MCP Python SDK的低级方法构建本地多服务器系统。项目包含数学服务器和天气服务器,以及一个自定义客户端和基于LLM的主机,用于演示MCP的实际应用。
View on GitHub

Overview

基本能力

产品定位

该项目旨在演示如何使用MCP协议构建本地多服务器系统,适用于开发者和研究人员学习和实践MCP协议的实际应用。

核心功能

  1. 多服务器支持:支持多个独立的服务器(如数学服务器和天气服务器)同时运行。
  2. 自定义客户端:提供客户端代码,用于连接多个服务器并调用其功能。
  3. LLM主机:基于OpenAI的交互式主机逻辑,能够根据用户查询自动选择正确的工具并返回结果。
  4. 工具调用:数学服务器提供addmultiply工具,天气服务器提供get_weather工具(提供模拟天气信息)。

适用场景

  1. 开发者学习:适合开发者学习MCP协议的实际应用和实现细节。
  2. 多服务器系统构建:适用于需要构建本地多服务器系统的场景。
  3. 工具调用演示:用于演示如何通过MCP协议调用不同服务器的工具。

工具列表

  1. 数学服务器工具
  2. add:加法工具。
  3. multiply:乘法工具。
  4. 天气服务器工具
  5. get_weather:获取模拟天气信息的工具。

常见问题解答

  1. 如何更改服务器端口?:更新对应的.py文件中的端口配置。
  2. 如何运行主机?:打开host.ipynb文件并执行其中的单元格。
  3. 许可证限制:项目代码适用于非商业用途,第三方库和工具受其各自许可证约束。

使用教程

使用依赖

  1. 克隆项目仓库。
  2. 建议创建虚拟环境。
  3. 安装依赖:
pip install -r requirements.txt

安装教程

  1. 启动数学服务器:
python math_server.py
  1. 启动天气服务器:
python weather_server.py

调试方式

  1. 打开host.ipynb文件。
  2. 执行以下查询示例:
await run_host_query("How many hours are in 5 days?")
await run_host_query("What's the weather like in Berlin?")
  1. 观察主机如何选择正确的工具并返回结果。

许可证

该项目遵循 Other 开源许可条款,请参阅 Other 了解完整条款。