使用说明内容:

项目简介

MCPAdapt 不是一个 MCP 服务器实现,而是一个 MCP 客户端工具库。它的核心作用是作为桥梁,连接 MCP 服务器和各种流行的 Agent 框架(如 Langchain, CrewAI, Smolagents, Google GenAI 等)。通过 MCPAdapt,开发者可以将任何 MCP 服务器提供的工具快速适配到自己选择的 Agent 框架中,从而扩展 LLM 应用的功能。

简单来说,你可以把 MCPAdapt 理解为 “MCP 工具的万能转换器”,它让你的 Agent 框架能够轻松利用海量的现有 MCP 服务器资源。

主要功能点

  • 多框架支持: 支持 Smolagents, Langchain, CrewAI, Google GenAI 等多种 Agent 框架,并可轻松扩展支持更多框架。
  • 工具自动适配: 自动将 MCP 服务器提供的工具转换为目标 Agent 框架兼容的工具格式。
  • 多种连接方式: 支持通过 Stdio, SSE 等多种协议连接 MCP 服务器。
  • 简化集成流程: 提供简洁易用的 API,几行代码即可完成 MCP 工具的集成。
  • 安全提示: 强调使用 MCP 服务器时的安全风险,提醒用户仅连接可信服务器。

安装步骤

  1. 安装 MCPAdapt 库: 根据你使用的 Agent 框架,选择相应的安装命令。例如,如果你使用 Langchain,可以使用以下命令安装:

    # 使用 uv (推荐)
    uv add mcpadapt[langchain]
    
    # 或使用 pip
    pip install mcpadapt[langchain]

    如果你需要支持多个框架,可以使用逗号分隔,例如:

    uv add mcpadapt[langchain,smolagents]

    目前支持的框架包括:smolagents, langchain, crewAI, google-genai。

  2. 安装 Agent 框架 (如果尚未安装): 确保你已经安装了你想要使用的 Agent 框架,例如 Langchain, CrewAI, Smolagents, google-genai 等。 安装方法请参考对应框架的官方文档。

服务器配置

MCPAdapt 需要连接到一个 已经运行的 MCP 服务器 才能工作。 你需要配置 MCP 服务器的连接信息,主要包括:

  • 连接方式: MCPAdapt 支持 Stdio 和 SSE 两种连接方式。

    • Stdio: 需要提供启动 MCP 服务器的命令 (command) 和参数 (args)。
    • SSE: 需要提供 SSE 服务器的 URL (url),以及可选的 headers。
  • 配置示例 (Stdio 连接): 假设你要连接一个通过命令 'uv run src/echo.py' 启动的 MCP 服务器,配置信息如下:

    {
      "server name": "Echo Server",
      "command": "uv",
      "args": ["run", "src/echo.py"],
      "connection_type": "stdio"
    }

    参数注释:

    • 'server name': MCP 服务器的名称,可以自定义,用于标识服务器。
    • 'command': 启动 MCP 服务器的可执行命令,例如 'uv', 'python', 'node' 等。
    • 'args': 传递给 'command' 的命令行参数列表,用于指定服务器脚本路径、端口等。 本例中 '["run", "src/echo.py"]' 表示使用 'uv run' 命令运行 'src/echo.py' 脚本。
    • 'connection_type': 连接类型,这里是 'stdio' 表示使用标准输入输出流进行连接。
  • 配置示例 (SSE 连接): 假设你要连接一个 URL 为 'http://localhost:8000/sse' 的 SSE MCP 服务器,配置信息如下:

    {
      "server name": "Remote SSE Server",
      "url": "http://localhost:8000/sse",
      "headers": {},  // 可选,如果 SSE 服务器需要身份验证,可以在这里添加 headers
      "connection_type": "sse"
    }

    参数注释:

    • 'server name': MCP 服务器的名称,可以自定义,用于标识服务器。
    • 'url': SSE MCP 服务器的 URL 地址,例如 'http://<服务器IP>:<端口>/sse'。
    • 'headers': 可选,HTTP 请求头信息,用于传递身份验证或其他自定义 header。 默认为空字典 '{}'。
    • 'connection_type': 连接类型,这里是 'sse' 表示使用 Server-Sent Events 进行连接。

基本使用方法

以下代码示例展示了如何使用 MCPAdapt 将 MCP 服务器的工具集成到 Smolagents 框架中:

from mcp import StdioServerParameters
from mcpadapt.core import MCPAdapt
from mcpadapt.smolagents_adapter import SmolAgentsAdapter

# 配置 Stdio 连接参数,指定 MCP 服务器启动命令和参数
server_params = StdioServerParameters(command="uv", args=["run", "src/echo.py"])

# 使用 MCPAdapt 上下文管理器,并指定 SmolagentsAdapter
with MCPAdapt(server_params, SmolAgentsAdapter()) as tools:
    # 'tools' 变量现在包含了适配到 Smolagents 的 MCP 工具列表
    print(tools) # 打印工具列表,查看工具信息
    print(tools[0](text="hello")) # 调用第一个工具,传递参数 'text="hello"'
    # 你可以在你的 Smolagents Agent 中直接使用这些工具了

关键步骤:

  1. 定义服务器连接参数: 根据你的 MCP 服务器类型 (Stdio 或 SSE) 创建 'StdioServerParameters' 对象或字典,配置连接信息。
  2. 选择适配器: 根据你使用的 Agent 框架选择对应的适配器,例如 'SmolAgentsAdapter()', 'LangChainAdapter()', 'CrewAIAdapter()', 'GoogleGenAIAdapter()'。
  3. 使用 'MCPAdapt' 上下文管理器: 将服务器连接参数和适配器传递给 'MCPAdapt()',使用 'with' 语句创建上下文管理器。
  4. 获取适配后的工具: 在 'with' 语句块中,'MCPAdapt' 会返回适配后的工具列表,你可以直接在你的 Agent 框架中使用这些工具。

安全警告

README 中已明确提示安全风险:使用 MCP 服务器,特别是通过 SSE 连接时,务必谨慎,只连接信任和验证过的服务器。部分适配器内部使用了 Python 的 'exec' 函数,连接到恶意服务器可能导致远程代码执行。 请务必验证 MCP 服务器的来源和安全性。

总结

MCPAdapt 极大地简化了 Agent 框架与 MCP 服务器的集成过程,让开发者能够轻松利用丰富的 MCP 工具资源,扩展 LLM 应用的能力。 它本身不是 MCP 服务器,而是一个强大的客户端工具库和适配器。

信息

分类

开发者工具