此仓库演示了一个最小且可工作的MCP服务器和客户端示例。这里没有涉及LLM,而是使用所谓的“标准输入输出”方法。
然而,存在一些分支引入了诸如LLM等内容。在理解基础代码后,可以去查看各个分支,了解如何在此基础上添加更多内容。
此示例服务器暴露一个工具:
get_users_favorite_number:当调用此工具时,它简单地返回字符串“42”作为用户的幸运数字。这是一个非常基础的例子,展示了服务器暴露工具并返回结果的能力。server.py:这是MCP服务器的核心。它定义了:
Server("favorite-number-server"))。list_tools函数,负责向客户端提供可用工具列表。call_tool函数,根据工具名称和参数处理工具的执行。test_mcp.py:此文件包含对MCP服务器的自动化测试。它连接到服务器,列出可用工具,调用get_users_favorite_number工具,并断言返回值为“42”。
test.sh:一个简单的shell脚本用于执行测试。它会在运行测试之前激活虚拟环境(如果存在),以确保正确管理依赖项。
按照以下步骤运行示例:
设置虚拟环境(推荐):
python3 -m venv venv
source venv/bin/activate # 在Linux/macOS上
# venv\Scripts\activate # 在Windows上
安装mcp库:
python3 -m pip install mcp
运行测试:
./test.sh
此脚本会:
test_mcp.py文件,该文件将启动服务器,连接到服务器,调用工具,并验证结果。如果测试通过,您将看到如下输出(或类似):
🧪 测试最喜欢的数字MCP服务器
✓ 服务器已初始化:favorite-number-server
✓ 可用工具:['get_users_favorite_number']
✓ 工具结果:42
✓ 测试通过!最喜欢的数字是42
✅ 所有测试通过!