使用说明

项目简介

本项目是一个基于FastMCP库实现的MCP服务器示例,它提供两个简单的数学工具:加法和乘法。此服务器主要用于演示MCP服务器的基本功能,例如工具注册和通过标准IO进行通信。在 'mcp-client' 仓库中,此服务器被用作一个示例 MCP 服务器,供 Agent 调用其提供的数学工具。

主要功能点

  • 工具注册与提供: 通过 '@mcp.tool()' 装饰器轻松注册 Python 函数为 MCP 工具,对外提供特定功能。本示例中提供了 'add' (加法) 和 'multiply' (乘法) 两个工具。
  • 标准IO传输: 使用标准输入输出 (stdio) 作为默认的 MCP 通信传输协议,简化部署和运行方式。
  • FastMCP 框架: 基于 'mcp.server.fastmcp.FastMCP' 库构建,该库简化了 MCP 服务器的开发过程。

安装步骤

此服务器示例无需额外安装步骤,因为它是一个独立的 Python 脚本。确保已安装 Python 环境即可运行。如果需要更复杂的部署,可以考虑使用 Poetry 或其他 Python 包管理工具进行依赖管理。

服务器配置

MCP 客户端(例如 'mcp-client' 仓库中的 Agent)需要配置连接到此 MCP 服务器的信息。配置信息通常以 JSON 格式提供,用于告知客户端如何启动和连接服务器。

对于本示例 'math_server.py',客户端需要配置以下信息:

{
  "math": {
    "command": "python",  // 启动服务器的命令,这里使用 python 解释器
    "args": ["agent/math_server.py"], // 启动命令的参数,指向服务器脚本的相对路径 (相对于客户端的 agent 目录)
    "transport": "stdio"   // 使用 stdio (标准输入输出) 作为传输协议
  }
}

配置参数说明:

  • '"math"': 服务器的名称,客户端用此名称来引用和调用此服务器提供的工具。可以自定义,但客户端配置中需要保持一致。
  • '"command"': 启动服务器进程的命令。通常是 Python 解释器 'python' 或 'python3'。
  • '"args"': 传递给启动命令的参数列表。这里指向 'agent/math_server.py' 脚本的相对路径。请注意,此路径是相对于 MCP 客户端的执行目录而言的。 如果客户端和服务器脚本不在同一目录下,需要根据实际情况调整路径。
  • '"transport"': 指定 MCP 服务器使用的传输协议,这里设置为 '"stdio"',表示使用标准输入输出进行通信。

基本使用方法

  1. 启动 MCP 服务器: 在终端中,导航到 'mcp-client/agent' 目录,然后运行以下命令启动 'math_server.py':

    python math_server.py

    服务器将在后台运行,并通过标准IO等待客户端的连接和请求。

  2. 配置 MCP 客户端: MCP 客户端 (例如 'mcp-client' 中的 Agent) 需要加载上述提供的服务器配置 JSON。在 'mcp-client' 项目中,默认配置已在 'agent/mcp_agent/agent.py' 文件中定义:

    DEFAULT_MCP_CONFIG: MCPConfig = {
        "math": {
            "command": "python",
            "args": [os.path.join(os.path.dirname(__file__), "..", "math_server.py")],
            "transport": "stdio",
        },
    }

    客户端将根据此配置启动 'math_server.py' 进程,并与之建立 MCP 连接。

  3. 使用 MCP 客户端调用工具: 启动 MCP 客户端后,客户端可以通过 MCP 协议调用 'math_server' 提供的 'add' 和 'multiply' 工具。具体的调用方式取决于 MCP 客户端的实现。在 'mcp-client' 示例中,Agent 会根据用户的自然语言指令,自动判断是否需要调用这些数学工具。

注意: 本示例服务器仅用于演示目的,功能非常简单。在实际应用中,MCP 服务器可能需要提供更复杂的功能和工具,并可能需要支持更安全的传输协议 (如 WebSocket, SSE) 和更完善的错误处理机制。

信息

分类

AI与计算