项目简介
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 服务器进行交互。
安装步骤
-
安装依赖: 在项目根目录下,根据需要安装依赖。虽然仓库中没有 'requirements.txt' 文件,但根据代码内容,你可能需要安装以下库:
pip install python-dotenv mcp fastmcp langchain_gigachat langgraph请根据实际运行情况安装缺少的依赖。
-
配置 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与计算