使用说明
项目简介
Qt MCP 服务器是 Model Context Protocol (MCP) 协议的 Qt 框架实现,旨在为 LLM 客户端提供一个强大且灵活的后端服务。它基于 Qt 库构建,充分利用 Qt 的跨平台能力和成熟的开发生态,为开发者提供构建 MCP 服务器的便捷途径。该项目不仅实现了 MCP 协议的核心功能,还提供了插件化的架构和丰富的示例,方便用户进行二次开发和扩展。
主要功能点
- 资源管理: 提供资源托管和访问控制,支持多种资源类型和 URI 寻址。
- 工具执行: 允许注册和调用外部工具,并进行输入验证和结果返回。
- Prompt 模板处理: 支持定义和管理 Prompt 模板,实现可定制的 LLM 交互模式。
- JSON-RPC 通信: 采用标准的 JSON-RPC 协议与客户端进行通信。
- 插件化架构: 客户端和服务器端均支持插件扩展,方便集成不同的传输协议和功能模块。
- 会话管理: 服务器端负责管理客户端会话,确保安全和隔离。
- 多种传输协议支持: 默认支持 Stdio 传输协议,可通过插件扩展支持 SSE、WebSocket 等。
- 示例丰富: 提供 Echo 服务器和 Window 服务器等示例,方便用户快速上手和理解。
安装步骤
-
安装 Qt 6.8.1 或更高版本: 确保您的开发环境中已安装 Qt 6.8.1 或更高版本,并配置好 Qt 环境变量。
-
安装 CMake 3.16.0 或更高版本: CMake 用于项目的构建管理,请确保已安装。
-
克隆仓库:
git clone https://github.com/signal-slot/qtmcp.git cd qtmcp -
创建构建目录并进入:
mkdir build && cd build -
使用 CMake 配置项目:
- 指定 Qt 的安装路径,并开启示例构建:
cmake -DCMAKE_PREFIX_PATH=/path/to/qt -DBUILD_EXAMPLES=ON ..注意: 将 '/path/to/qt' 替换为您 Qt 的实际安装路径。
-
构建项目:
cmake --build . --parallel -
运行服务器示例:
- 构建成功后,示例程序位于 'build/examples/mcpserver/' 目录下。
- Echo 服务器: 运行 'build/examples/mcpserver/echo/echo' 或 'build/examples/mcpserver/echo/echo.exe' (Windows)。
- Window 服务器: 运行 'build/examples/mcpserver/window/window' 或 'build/examples/mcpserver/window/window.exe' (Windows)。
服务器配置
MCP 客户端需要配置服务器的启动命令和参数才能连接。以下是针对 Echo 服务器 和 Window 服务器 示例的配置信息 (JSON 格式),您可以根据实际使用的服务器示例进行选择和配置:
Echo 服务器配置 (stdio 传输协议):
{ "serverName": "QtEchoServer_stdio", "command": "./echo", "args": [], "transport": "stdio" }
参数注释:
- '"serverName"': 服务器的名称,自定义,用于在客户端标识服务器连接。
- '"command"': 服务器启动命令。 './echo' 假设您在 'build/examples/mcpserver/echo/' 目录下运行客户端,并且已编译生成 'echo' 可执行文件。请根据实际路径调整。
- '"args"': 启动参数,Echo 服务器示例不需要额外的启动参数,所以为空数组 '[]'。
- '"transport"': 传输协议,这里使用 'stdio' (标准输入输出)。
Echo 服务器配置 (sse 传输协议):
{ "serverName": "QtEchoServer_sse", "command": "./echo", "args": ["-b", "sse", "-a", "127.0.0.1:8080"], "transport": "sse", "serverUrl": "http://127.0.0.1:8080" }
参数注释:
- '"serverName"': 服务器的名称,自定义。
- '"command"': 服务器启动命令。 './echo',同样需要根据实际路径调整。
- '"args"': 启动参数,用于指定使用 SSE 后端 ('-b sse') 和监听地址 ('-a 127.0.0.1:8080')。
- '"transport"': 传输协议,这里使用 'sse' (Server-Sent Events)。
- '"serverUrl"': 服务器 URL,用于 SSE 客户端连接,需要与启动参数中的监听地址一致。
Window 服务器配置 (stdio 传输协议):
{ "serverName": "QtWindowServer_stdio", "command": "./window", "args": [], "transport": "stdio" }
参数注释:
- '"serverName"': 服务器的名称,自定义。
- '"command"': 服务器启动命令。 './window',需要根据实际路径调整。
- '"args"': Window 服务器示例也不需要额外的启动参数,为空数组 '[]'。
- '"transport"': 传输协议,使用 'stdio'。
Window 服务器配置 (sse 传输协议):
{ "serverName": "QtWindowServer_sse", "command": "./window", "args": ["-b", "sse", "-a", "127.0.0.1:8080"], "transport": "sse", "serverUrl": "http://127.0.0.1:8080" }
参数注释:
- '"serverName"': 服务器的名称,自定义。
- '"command"': 服务器启动命令。 './window',需要根据实际路径调整。
- '"args"': 启动参数,指定 SSE 后端 ('-b sse') 和监听地址 ('-a 127.0.0.1:8080')。
- '"transport"': 传输协议,使用 'sse'。
- '"serverUrl"': 服务器 URL,用于 SSE 客户端连接,与启动参数中的监听地址一致。
MCP 客户端配置:
将上述 JSON 配置信息填入 MCP 客户端的服务器配置中,客户端即可根据配置连接到相应的 Qt MCP 服务器示例。
基本使用方法
-
启动 MCP 服务器: 根据安装步骤构建并运行 Echo 服务器或 Window 服务器示例。例如,在终端中进入 'build/examples/mcpserver/echo/' 目录,运行 './echo' (或 './echo.exe') 启动 Echo 服务器。
-
配置 MCP 客户端: 打开 MCP 客户端 (例如,仓库中提供的 'examples/mcpclient/inspector/MCP Inspector' 客户端示例),在连接配置中填入上述生成的服务器配置 JSON 信息。
-
连接服务器: 在 MCP 客户端中点击连接服务器按钮,客户端将根据配置信息与 Qt MCP 服务器建立连接。
-
使用 MCP 功能: 连接成功后,您可以使用 MCP 客户端提供的界面,浏览服务器提供的资源、调用工具、执行 Prompt 模板等功能,体验 MCP 协议提供的上下文服务。具体功能取决于您运行的服务器示例 (Echo 服务器提供简单的回显工具,Window 服务器提供窗口管理和屏幕截图工具)。
信息
分类
开发者工具