项目简介

这是一个演示如何使用 Python 语言和官方 MCP SDK 构建 Model Context Protocol (MCP) 服务器的示例项目。它展示了 MCP 服务器的核心功能,包括如何定义可被大型语言模型 (LLM) 客户端访问的资源(Resources)和调用的工具(Tools)。

主要功能点

  • 提供资源访问: 允许 LLM 客户端按需读取结构化或非结构化数据。此示例提供了一个动态的问候语资源,根据客户端请求的名字返回个性化问候。
  • 注册和执行工具: 允许 LLM 调用外部功能来执行特定任务。此示例包含一个简单的加法工具,LLM 可以调用它来计算两个数字的和。
  • 基于标准协议通信: 利用 MCP 协议(基于 JSON-RPC)与 LLM 客户端进行标准化通信。

安装步骤

  1. 确保您已安装 Python 3.10 或更高版本。
  2. 安装 'uv' 包管理器(推荐)或 'pip':
    pip install uv
  3. 创建一个新的项目目录并进入:
    uv init mcp-server-sample
    cd mcp-server-sample
  4. 使用 'uv' 添加 MCP SDK 及其命令行工具依赖:
    uv add "mcp[cli]"
    或者,如果您使用 'pip':
    pip install "mcp[cli]"
  5. 将示例代码保存为 'server.py' 文件在项目目录中。

服务器配置(供 MCP 客户端使用)

MCP 服务器需要由 MCP 客户端(如支持 MCP 的 LLM 应用程序或 IDE)来启动和管理。客户端需要知道如何执行您的服务器程序。对于此示例服务器,客户端通常需要以下信息进行配置:

  • 服务器名称 (name): "Demo" (这是在代码 'FastMCP("Demo")' 中定义的名称)
  • 执行命令 (command): 启动服务器的可执行文件路径,例如 'mcp'(如果您使用 'mcp[cli]' 提供的命令行工具)或 'python'(如果您直接运行脚本)。
  • 命令参数 (args): 传递给执行命令的参数列表。如果您使用 'mcp' 命令,参数可能是 '["run", "server.py"]'。如果您直接使用 'python',参数可能是 '["server.py"]' 以及可能的协议参数(如 '--protocol', '--port' 等,具体取决于 MCP 库和客户端如何协商)。

客户端会使用这些信息来启动服务器进程并建立通信连接。

基本使用方法

  1. 开发测试: 使用 'mcp dev' 命令在开发模式下运行服务器,并通过 MCP Inspector 进行测试:
    mcp dev server.py
  2. 安装到客户端: 如果您使用支持 MCP 的桌面客户端(如 Claude Desktop),可以使用 'mcp install' 命令将服务器安装到客户端中,使其可供 LLM 使用:
    mcp install server.py
    安装后,您就可以在客户端的界面中看到并与此服务器提供的工具和资源进行交互。例如,在与 LLM 对话时,可能会建议调用 'add' 工具或访问 'greeting://' 资源。

信息

分类

AI与计算