项目简介

本项目是一个使用 Python 和 FastMCP 框架实现的 Model Context Protocol (MCP) 服务器示例。它演示了如何通过 MCP 协议向 LLM 客户端提供工具和资源,以增强 LLM 的上下文感知和功能扩展能力。该服务器提供了简单的算术运算工具和动态问候语资源,可作为开发更复杂 MCP 服务器的起点。

主要功能点

  • 资源管理: 提供动态问候语资源 'greeting://{name}',允许客户端根据名称获取个性化的问候信息。
  • 工具执行: 注册了 'add' 和 'multiply' 两个工具,允许客户端调用执行加法和乘法运算。
  • 标准MCP协议: 遵循 Model Context Protocol,支持客户端通过 JSON-RPC 协议进行交互。
  • 多种传输协议: 示例代码默认使用 SSE 协议,也支持 Stdio 协议,方便在不同场景下部署和测试。
  • 易于扩展: 基于 FastMCP 框架,可以轻松添加更多资源和工具,扩展服务器功能。

安装步骤

  1. 安装 Python: 确保您的系统已安装 Python 3.10 或更高版本。
  2. 安装 mcp 库: 使用 pip 包管理器安装 mcp 库。在终端中运行以下命令:
    pip install mcp
  3. 保存服务器代码: 从仓库中复制 'servers/mcp_demo.py' 文件,并保存到您本地的合适位置,例如 'mcp_demo.py'。

服务器配置

MCP 服务器需要与 MCP 客户端配合使用。以下是配置 VSCode MCP Client 扩展连接到此服务器的示例配置(在 VSCode 设置中编辑 'mcpClient.servers'):

[
  {
    "type": "stdio",
    "name": "本地 MCP Demo Server",
    "enabled": true,
    "command": "python", // 运行 Python 命令
    "args": [
      "path/to/mcp_demo.py" // 将 "path/to/mcp_demo.py" 替换为您保存 mcp_demo.py 文件的实际路径
    ]
  }
]

配置参数说明:

  • 'type': 连接类型,这里使用 'stdio',因为 'mcp_demo.py' 是一个可以通过命令行运行的脚本。
  • 'name': 服务器名称,可以自定义,用于在客户端中标识不同的 MCP 服务器连接。
  • 'enabled': 是否启用此服务器连接,设置为 'true' 表示启用。
  • 'command': 启动 MCP 服务器的命令。对于 Python 脚本,通常使用 'python' 命令。
  • 'args': 传递给启动命令的参数列表。这里指定了 'mcp_demo.py' 脚本的路径。请务必将 'path/to/mcp_demo.py' 替换为您实际保存 'mcp_demo.py' 文件的路径。

如果您希望使用 SSE 协议 (例如用于远程访问),您需要修改 'mcp_demo.py' 中的 'mcp.run(transport='sse')' 并确保网络可访问性,然后在客户端配置中使用 'sse' 类型并提供服务器 URL。

基本使用方法

  1. 启动 MCP 服务器: 打开终端,导航到 'mcp_demo.py' 文件所在的目录,并运行命令 'python mcp_demo.py' (如果您配置客户端为 'stdio' 类型) 或者运行 'python mcp_demo.py --transport sse' (如果您希望使用 SSE 协议,并需要在客户端配置相应的 SSE URL)。 服务器将开始运行并等待客户端连接。
  2. 配置并连接 MCP 客户端: 根据您使用的 MCP 客户端(例如 VSCode MCP Client 扩展),配置服务器连接信息,包括服务器类型、名称、启动命令(或 SSE URL)等。确保客户端配置与服务器实际运行方式一致。
  3. 使用 LLM 客户端与 MCP 服务器交互: 在 LLM 客户端中,您可以利用 MCP 服务器提供的工具和资源来增强 LLM 的能力。例如,您可以指示 LLM 调用 'add' 工具进行加法运算,或者访问 'greeting://yourname' 资源获取问候语。具体的交互方式取决于您使用的 LLM 客户端的功能和界面。

注意: 本示例 'mcp_demo.py' 主要用于演示 MCP 服务器的基本功能,实际应用中您可能需要根据具体需求扩展工具和资源,并考虑更完善的错误处理、安全性等问题。

信息

分类

AI与计算