MCP服务器示例

一个最小化的MCP服务器和客户端示例,展示了如何暴露工具并返回结果。

  • by day50-dev
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 day50-dev/Simplest-MCP-Server

使用说明

有史以来最简单的MCP

此存储库演示了MCP服务器和客户端的最小工作示例。不涉及LLM,这使用了所谓的“stdio”方法。

然而,也有一些分支引入了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脚本。它在运行测试之前激活虚拟环境(如果存在),以确保正确管理依赖关系。

入门指南

按照以下步骤运行示例:

  1. 设置虚拟环境(推荐):

    python3 -m venv venv
    source venv/bin/activate  # On Linux/macOS
    # venv\Scripts\activate  # On Windows
    
  2. 安装 mcp 图书馆:

    python3 -m pip install mcp
    
  3. 运行测试:

    ./test.sh
    

    此脚本将:

    • 激活虚拟环境(如果存在)。
    • 执行 test_mcp.py 文件,它将启动服务器、连接到服务器、调用工具并验证结果。

    如果测试通过,您将看到以下输出(或类似输出):

    🧪 Testing Favorite Number MCP Server
    ✓ Server initialized: favorite-number-server
    ✓ Available tools: ['get_users_favorite_number']
    ✓ Tool result: 42
    ✓ Test passed! Favorite number is 42
    ✅ All tests passed!