使用说明

项目简介

本项目是一个基于 Model Context Protocol (MCP) 的服务器示例,使用 Python 的 FastMCP 框架构建。它演示了如何创建一个 MCP 服务器,该服务器可以注册和执行工具,从而扩展大型语言模型 (LLM) 的能力。本项目包含两个主要的服务器示例:

  1. 基础工具服务器 (server.py): 提供简单的数学计算工具(加法、减法)和一个模拟的 Slack 消息获取工具,用于演示工具注册和调用的基本功能。
  2. 天气代理服务器 (weather.py): 集成美国国家气象局 (NWS) API,提供获取指定州的天气警报和指定经纬度位置的天气预报工具,展示如何构建更实用的、基于外部数据源的工具。

主要功能点

  • MCP 服务器实现: 使用 FastMCP 框架快速搭建 MCP 服务器。
  • 工具注册与执行: 通过装饰器简单注册 Python 函数为 MCP 工具,并支持客户端调用执行。
  • 基础工具示例: 提供加法、减法等基础数学运算工具。
  • 天气信息工具: 集成 NWS API,提供天气警报和天气预报查询工具。
  • Stdio 传输协议: 服务器默认使用 Stdio 传输协议与客户端通信。

安装步骤

  1. 安装 Node.js 和 npx: 请确保你的系统中已安装 Node.js 和 npm (或 npx)。MacOS 用户可以使用 'brew install node' 安装。
  2. 安装 Python 和 uv: 安装 Python 3.11 或更高版本。然后使用 pip 安装 uv 包管理器:'pip install uv'。
  3. 克隆仓库: 使用 Git 克隆本项目到本地:
    git clone https://github.com/thelearningdev/build-ai-agents-with-mcp-apr-2025
    cd build-ai-agents-with-mcp-apr-2025
  4. 创建虚拟环境并安装依赖: 在项目根目录下创建 Python 虚拟环境并安装项目依赖:
    uv venv
    uv sync

服务器配置

MCP 客户端需要配置 MCP 服务器的启动命令和参数才能连接。以下是针对 'server.py' 和 'weather.py' 两个服务器示例的配置信息:

  • 基础工具服务器 (server.py) 配置:

    {
      "server name": "BasicToolsServer",
      "command": "uv",
      "args": ["run", "--with", "mcp[cli]", "mcp", "run", "server.py"]
    }

    参数说明:

    • 'server name': 自定义服务器名称,用于客户端识别。
    • 'command': 启动服务器的命令,这里使用 'uv run'。
    • 'args': 传递给 'uv run' 命令的参数,包括:
      • '--with mcp[cli]': 指定使用 mcp 命令行工具。
      • 'mcp run': 运行 mcp 服务器。
      • 'server.py': 指定要运行的服务器代码文件。
  • 天气代理服务器 (weather.py) 配置:

    {
      "server name": "WeatherAgentServer",
      "command": "uv",
      "args": ["run", "--with", "mcp[cli]", "mcp", "run", "weather.py"]
    }

    参数说明: 与基础工具服务器配置相同,但 'args' 中指定运行 'weather.py' 文件。

注意: 以上配置信息为 JSON 格式,MCP 客户端需要读取并解析这些配置来启动和连接到 MCP 服务器。实际使用时,请根据 MCP 客户端的具体要求进行配置。

基本使用方法

  1. 启动 MCP 服务器: 根据你想要运行的服务器示例,使用相应的配置信息启动 MCP 服务器。例如,在终端中执行命令 'uv run --with mcp[cli] mcp run server.py' 可以启动基础工具服务器。
  2. 配置 MCP 客户端: 在 MCP 客户端中,配置服务器连接信息,包括服务器启动命令和参数(参考上面的服务器配置)。
  3. 客户端连接与工具调用: 启动 MCP 客户端,客户端将根据配置连接到 MCP 服务器。连接成功后,客户端可以列出服务器提供的工具,并调用这些工具来扩展 LLM 的功能。
  4. 查看示例客户端代码: 仓库的 'clients' 目录下提供了 'anthropic_client.py' 和 'adk_with_mcp_gemini.py' 客户端示例,可以参考这些示例了解如何与 MCP 服务器交互。

信息

分类

网页与API