使用说明

项目简介

Qwen-Agent 是一个用于构建基于 Qwen LLM 应用的框架,它利用 Qwen 的指令跟随、工具使用、规划和记忆能力。其中,MCP (Model Context Protocol) 服务器组件允许 Qwen-Agent 作为 MCP 服务器,对外提供标准化的上下文信息和功能。

主要功能点

  • 资源管理 (Resources): 托管和管理应用程序所需的各种资源,例如文档、数据文件等,并提供数据访问能力。
  • 工具注册和执行 (Tools): 允许注册和执行外部工具,使得 LLM 客户端可以通过 MCP 服务器调用这些工具,扩展 LLM 的功能。
  • Prompt 模板 (Prompts): 支持定义和渲染 Prompt 模板,实现可定制的 LLM 交互模式,方便客户端根据需求获取特定 Prompt。
  • JSON-RPC 协议通信: 通过标准的 JSON-RPC 协议与 MCP 客户端进行通信,接收请求并返回响应。
  • 多种传输协议支持: 理论上支持 Stdio, SSE, WebSocket 等多种传输协议(仓库文档中主要提及 Stdio)。
  • 会话管理和能力声明: MCP 服务器负责会话管理,并可以声明自身提供的能力。

安装步骤

  1. 安装 Qwen-Agent 库 (包含 MCP 支持):

    pip install -U "qwen-agent[mcp]"

    或者,如果需要包含 GUI 等其他可选功能,可以使用:

    pip install -U "qwen-agent[gui,rag,code_interpreter,mcp]"
  2. 准备 Node.js 和 uv (如果需要运行示例中的 Javascript MCP 服务器): 部分 MCP 工具服务器(例如 Memory 和 Filesystem)可能基于 Javascript 开发,需要 Node.js 环境。Sqlite 工具服务器示例使用了 'uvx' 运行时,'uv' 是其依赖。

    • 安装 Node.js: 请从 Node.js 官网下载并安装最新版本。
    • 安装 uv: 运行命令 'pip install uv' 安装 uv 运行时,并确保 uv 版本为 0.4.18 或更高 ('uv --version' 查看版本)。
    • 安装 Git 和 SQLite: 部分 MCP 服务器可能依赖 Git 和 SQLite,请确保已安装 ('git --version' 和 'sqlite3 --version' 查看版本)。 macOS 用户可以使用 Homebrew ('brew install uv git sqlite3'),Windows 用户可以使用 winget ('winget install --id=astral-sh.uv -e', 'winget install git.git sqlite.sqlite') 安装。

服务器配置 (MCP 客户端配置)

MCP 客户端需要配置 MCP 服务器的启动信息,以便连接并使用服务器提供的功能。以下是 Qwen-Agent 仓库提供的 MCP 服务器配置示例 (JSON 格式),客户端需要根据实际部署情况进行配置:

{
    "mcpServers": {
        "memory": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-memory"]
        },
        "filesystem": {
            "command": "npx",
            "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/files"]
            <!--  '/path/to/allowed/files'  需要替换为实际允许文件系统服务器访问的路径 -->
        },
        "sqlite" : {
            "command": "uvx",
            "args": [
                "mcp-server-sqlite",
                "--db-path",
                "test.db"
                <!-- 'test.db'  可以替换为实际的 SQLite 数据库文件路径 -->
            ]
        }
    }
}

配置参数说明:

  • 'mcpServers': 包含多个 MCP 服务器配置的 JSON 对象。
    • 'server name': 例如 '"memory"', '"filesystem"', '"sqlite"',用于客户端标识和引用不同的 MCP 服务器实例。
      • 'command': 启动 MCP 服务器的命令。例如 '"npx"', '"uvx"'。
      • 'args': 启动命令的参数列表。
        • '"@modelcontextprotocol/server-memory"': Memory 服务器的 npm 包名。
        • '"@modelcontextprotocol/server-filesystem"', '"/path/to/allowed/files"': Filesystem 服务器的 npm 包名和允许访问的文件路径。
        • '"mcp-server-sqlite"', '"--db-path"', '"test.db"': Sqlite 服务器的命令和数据库文件路径参数。

注意:

  • 上述配置示例中的 '"command"' 和 '"args"' 是用于启动基于 Javascript 或 uv 运行时的 MCP 服务器的,实际部署时可能需要根据 MCP 服务器的具体实现和部署方式进行调整。
  • MCP 客户端通常会将此配置信息传递给 Qwen-Agent 框架或 Agent,以便 Agent 可以利用 MCP 服务器提供的资源和工具。

基本使用方法

  1. 启动 MCP 服务器 (根据需要选择并启动): 根据上述服务器配置示例,在命令行中分别启动 Memory, Filesystem, Sqlite 等 MCP 服务器。例如,启动 Memory 服务器:

    npx -y @modelcontextprotocol/server-memory
  2. 配置 MCP 客户端 (例如 Qwen-Agent Agent): 在 Qwen-Agent Agent 的初始化配置中,指定 'mcpServers' 参数,将上述 JSON 配置信息传递给 Agent。例如,参考 'examples/assistant_mcp_sqlite_bot.py' 示例代码。

  3. 运行 Qwen-Agent Agent: 启动配置了 MCP 服务器的 Qwen-Agent Agent,Agent 即可通过 MCP 协议与已启动的 MCP 服务器进行交互,利用服务器提供的资源和工具完成任务。

更多信息

更详细的 MCP 服务器配置和使用方法,请参考仓库 'examples' 目录下的示例代码,以及 Model Context Protocol 官方文档MCP 服务器列表

信息

分类

AI与计算