使用说明

项目简介

本项目是 Model Context Protocol (MCP) 编程极速入门指南,旨在帮助开发者快速上手 MCP 服务器的开发。MCP 协议为大语言模型 (LLM) 提供了一种标准化的方式来连接外部数据源和工具,从而扩展 LLM 的能力。本指南以 Python 语言和 'mcp' 库为基础,通过实际代码示例,详细讲解了如何构建一个 MCP 服务器,并重点介绍了 工具 (Tools) 功能的开发和使用。同时,也简要介绍了 资源 (Resources), Prompt 模板 (Prompts) 等其他核心概念,以及如何在 Claude 桌面端加载和使用自定义的 MCP 服务器。

主要功能点

  • 工具 (Tools): 演示如何注册和实现 MCP 工具,并通过示例展示了如何创建一个网络搜索工具,允许 LLM 调用外部网络搜索功能。
  • 资源 (Resources): 介绍了如何定义和提供静态资源以及动态资源,使 LLM 可以访问预定义的数据或根据参数获取数据。
  • Prompt 模板 (Prompts): 展示了如何创建 Prompt 模板,以便在客户端预设和定制与 LLM 的交互模式。
  • Sampling: 讲解了 Sampling 功能,用于在工具执行前后进行人工干预或额外的处理步骤,例如在执行敏感操作前进行用户确认。
  • 传输层 (Transports): 虽然指南主要使用 'stdio' 传输协议,但也提及了 MCP 支持 'stdio' 和 'SSE' 两种传输协议。
  • 客户端和服务端开发: 不仅包含 MCP 服务器端的开发指南,还提供了 Python 客户端代码示例,演示了如何与 MCP 服务器建立连接并调用其提供的工具和资源。
  • 集成 Claude 桌面端和 LangChain: 指导如何将开发的 MCP 服务器集成到 Claude 桌面端以及 LangChain 框架中,方便用户在实际 LLM 应用中使用。

安装步骤

  1. 初始化项目并创建虚拟环境: 打开终端,执行以下命令初始化项目并进入项目目录:

    uv init mcp_getting_started
    cd mcp_getting_started

    创建并激活 Python 虚拟环境:

    uv venv
    .venv\Scripts\activate.bat  # Windows
    # source .venv/bin/activate  # macOS/Linux
  2. 安装依赖: 使用 'uv' 安装 'mcp' 库及其命令行工具,以及示例代码中可能用到的 'httpx' 和 'openai' 库:

    uv add "mcp[cli]" httpx openai

服务器配置

以下 JSON 配置信息用于 MCP 客户端 (例如 Claude 桌面端) 连接到本指南中 'web_search.py' 示例服务器。请将以下配置添加到 MCP 客户端的服务器配置文件中。

{
  "mcpServers": {
    "web-search-server": {  // 服务器名称,可以自定义
      "command": "uv",      // 启动服务器的命令,这里使用 uv 运行 Python 脚本
      "args": [             // 命令参数
        "--directory",      // 指定工作目录,根据实际情况修改为 web_search.py 所在的目录
        "D:/projects/mcp_getting_started", // 示例目录,请替换为实际的项目路径
        "run",              // uv run 命令,用于运行 Python 脚本
        "web_search.py"     // 要运行的 MCP 服务器 Python 脚本文件名
      ]
    },
    "image-server": {     // 另一个服务器配置示例,用于 image_server.py
      "command": "uv",
      "args": [
        "--directory",
        "D:/projects/mcp_getting_started", // 示例目录,请替换为实际的项目路径
        "run",
        "image_server.py"
      ]
    }
    // 可以继续添加更多 MCP 服务器配置
  }
}

注意:

  • 'command' 和 'args' 需要根据您的实际环境和脚本位置进行调整。
  • '--directory' 参数用于指定 Python 脚本所在的工作目录,请替换为实际的项目路径。
  • 服务器名称 ('web-search-server', 'image-server') 可以自定义,用于在 MCP 客户端中标识不同的服务器。

基本使用方法

  1. 运行 MCP 服务器: 在项目根目录下,使用 'uv run' 命令运行示例服务器脚本,例如 'web_search.py' 或 'image_server.py'。

    uv run web_search.py

    服务器成功启动后,会显示类似 'MCP server started on stdio transport' 的提示信息。

  2. 使用 MCP Inspector 调试: 可以使用官方提供的 'Inspector' 可视化工具调试 MCP 服务器。

    • 通过 'npx':
      npx -y @modelcontextprotocol/inspector uv run web_search.py
    • 通过 'mcp dev':
      mcp dev web_search.py

    启动 Inspector 后,打开浏览器访问提示的地址,连接到正在运行的 MCP 服务器,即可查看和测试服务器提供的工具、资源和 Prompt 模板。

  3. 在 MCP 客户端中使用: 将上面生成的服务器配置信息添加到 MCP 客户端 (例如 Claude 桌面端) 的配置文件中。重启客户端后,即可在客户端中连接并使用您部署的 MCP 服务器提供的功能。例如,在 Claude 桌面端,您可以在聊天时调用 'web-search' 工具进行网络搜索,或使用预设的 Prompt 模板。

  4. 使用客户端代码示例: 指南中提供了 Python 客户端代码示例 ('开发 MCP 服务端' 章节),演示了如何使用 'mcp.client.stdio' 库连接到 MCP 服务器,并调用服务器提供的工具。您可以参考这些示例代码,开发自己的 MCP 客户端应用。

通过本指南,您可以快速搭建和运行自己的 MCP 服务器,并将其集成到各种支持 MCP 协议的 LLM 应用中,扩展 LLM 的功能和应用场景。

信息

分类

开发者工具