项目简介

'mcp-agent-example' 仓库是一个参考项目,旨在展示如何构建和使用基于 Model Context Protocol (MCP) 的服务器,以及如何将其集成到代理(Agent)应用中。仓库中包含一个实现了MCP协议的天气工具服务器示例。

主要功能点

  • MCP天气工具服务器: 包含一个可运行的MCP服务器实现 ('weather_mcp.py')。
  • 提供实用工具: 天气服务器通过MCP协议提供以下工具供LLM客户端调用:
    • 获取用户当前位置(城市、地区、国家、坐标)。
    • 获取指定地理坐标的天气预报。
  • Stdio传输支持: 服务器通过标准输入/输出(Stdio)传输协议与MCP客户端通信,符合MCP规范。
  • 代理集成示例: 仓库还包含一个简单的代理应用 ('mini_tui_agent.py'),演示了如何加载并使用MCP服务器提供的工具与LLM进行交互(注:此部分是客户端示例,服务器功能在 'weather_mcp.py' 中)。

安装步骤

要运行此MCP天气工具服务器示例,您需要安装Python环境及相关的依赖库。

  1. 确保您已安装 Python 3.8 或更高版本。
  2. 安装所需的Python库。根据仓库中的代码 ('weather_mcp.py'),需要 'httpx' 和 'mcp.server.fastmcp' (这通常是实现MCP服务器的基础库)。您可能需要通过 pip 或 uv 来安装:
    pip install httpx mcp-server-fastmcp
    # 或者如果您使用 uv
    uv pip install httpx mcp-server-fastmcp
    确切的安装命令可能取决于仓库的完整依赖管理配置(如 pyproject.toml),请参考仓库根目录下的说明(如果提供)。
  3. 确保您的系统环境中可以执行 Python 脚本。

服务器配置

为了让MCP客户端能够连接并使用此天气工具服务器,客户端需要以下配置信息。这些信息通常以 JSON 格式提供给MCP客户端库:

  • 'name': 服务器的友好名称。
  • 'command': 启动服务器进程的命令。
  • 'args': 传递给启动命令的参数列表。

对于 'weather_mcp.py' 提供的天气服务器,典型的客户端配置示例如下(不包含代码块,仅为配置内容及注释):

{
  "name": "Weather Server", // 服务器的名称,用于客户端区分不同的MCP服务器
  "command": "uv", // 启动服务器进程的命令,这里使用uv运行Python脚本
  "args": ["run", "weather_mcp.py"] // 传递给uv命令的参数,指示运行weather_mcp.py脚本
}

客户端框架会使用 'command' 和 'args' 来启动 'weather_mcp.py' 脚本,并通过 Stdio 建立通信。运行 'weather_mcp.py' 需要已安装前面提到的依赖。

基本使用方法

MCP客户端(如仓库中的代理示例或您自己的LLM应用)在通过上述配置连接到天气服务器后,即可发现并调用服务器暴露的工具。

  1. 客户端启动天气服务器进程(基于配置中的 'command' 和 'args')。
  2. 服务器启动后,会通过Stdio向客户端声明其能力(如提供的工具列表及其描述)。
  3. LLM客户端根据需要,通过发送JSON-RPC请求调用服务器提供的工具,例如 'get_user_location' 或 'get_forecast'。
  4. 服务器执行相应的Python函数(如 '@mcp.tool' 标记的函数),并将结果通过JSON-RPC响应返回给客户端。

简而言之,此 'weather_mcp.py' 脚本就是一个独立的MCP服务器程序,它接收来自客户端的工具调用请求,执行相应逻辑,并将结果返回。客户端(如 'mini_tui_agent.py')负责启动这个服务器进程并与其进行交互。

信息

分类

网页与API