项目简介

langchain-mcp-adapters-example 仓库提供了一个基于 MCP 协议的简单数学服务器示例。该服务器实现了两个数学工具:加法和乘法,可以通过 MCP 协议与 LLM 客户端进行通信,为 LLM 应用提供数学计算能力。

主要功能点

  • 提供数学计算工具: 实现了 'add' (加法) 和 'multiply' (乘法) 两个工具,供 LLM 客户端调用。
  • 支持 Stdio 和 HTTP (SSE) 传输协议: 服务器可以运行在 Stdio 模式(本地交互)或 SSE 模式(HTTP 交互)。
  • 包含客户端示例: 提供了 'client.py' (Stdio 客户端) 和 'client_http.py' (HTTP 客户端) 两个客户端示例,演示如何与 MCP 服务器进行交互。

安装步骤

  1. 安装依赖: 在项目根目录下,根据需要安装依赖。虽然仓库中没有 'requirements.txt' 文件,但根据代码内容,你可能需要安装以下库:

    pip install python-dotenv mcp fastmcp langchain_gigachat langgraph

    请根据实际运行情况安装缺少的依赖。

  2. 配置 GigaChat 凭据 (可选): 如果 'client.py' 或 'client_http.py' 中使用的 'GigaChat' 模型需要凭据,请在项目根目录下创建 '.env' 文件,并配置 GigaChat 的相关环境变量。具体配置方法请参考 'langchain_gigachat' 库的文档。 注意:本示例的核心是 MCP 服务器的实现,即使没有有效的 GigaChat 凭据,MCP 服务器和客户端的通信流程依然可以演示。

服务器配置

MCP 客户端需要配置以下服务器信息才能连接到 math_server.py:

1. Stdio 模式 (本地):

当使用 'client.py' 客户端连接 'math_server.py' 时,服务器配置应如下所示。客户端会自动启动服务器进程。

{
  "server_name": "math",
  "command": "uv",
  "args": ["run", "math_server.py"]
}

配置参数说明:

  • 'server_name': 服务器名称,可以自定义,例如 "math"。
  • 'command': 启动服务器的命令,这里使用 'uv run' 运行 Python 脚本。 请确保你的环境中安装了 'uv'。 如果没有,可以使用 'python' 命令,例如 '"command": "python"'。
  • 'args': 传递给 'uv run' (或 'python') 命令的参数,'["run", "math_server.py"]' 表示运行 'math_server.py' 脚本。 如果使用 'python' 命令,则参数为 '["math_server.py"]'。

2. HTTP (SSE) 模式:

当使用 'client_http.py' 客户端连接 'math_server.py' 时,需要先手动启动服务器,服务器配置应如下所示。

{
  "server_name": "math",
  "url": "http://localhost:8000/sse",
  "transport": "sse"
}

配置参数说明:

  • 'server_name': 服务器名称,可以自定义,例如 "math"。
  • 'url': MCP 服务器的 SSE 端点 URL,默认为 'http://localhost:8000/sse'。
  • 'transport': 传输协议,这里设置为 '"sse"' 表示使用 SSE 协议。

注意: HTTP 模式需要预先启动服务器。启动命令见 基本使用方法 -> HTTP 模式 (SSE) 步骤。

基本使用方法

1. Stdio 模式 (本地):

  • 运行客户端: 直接运行 'client.py' 脚本即可。客户端会自动启动 'math_server.py' 服务器并与之建立连接。

    uv run client.py
  • 查看输出: 客户端会调用服务器提供的数学工具,并打印计算结果。

2. HTTP 模式 (SSE):

  • 启动服务器: 首先需要手动启动 'math_server.py' 服务器,并指定 'sse' 传输模式。

    uv run math_server.py sse

    python math_server.py sse
  • 运行客户端: 然后运行 'client_http.py' 客户端脚本。客户端会连接到运行在 'http://localhost:8000/sse' 的服务器。

    uv run client_http.py
  • 查看输出: 客户端会调用服务器提供的数学工具,并打印计算结果。

通过以上步骤,你可以体验 langchain-mcp-adapters-example 提供的 MCP 数学服务器,并了解如何在 Stdio 和 HTTP (SSE) 模式下与 MCP 服务器进行交互。

信息

分类

AI与计算