项目简介
NGCBot MCP Server 是 NGCBot V2.3 版本的一个扩展模块,它将 NGCBot 微信机器人的部分功能通过 Model Context Protocol (MCP) 协议对外提供,使得 LLM 客户端能够以标准化的方式接入微信生态的功能和服务。该 MCP 服务器依托 NGCBot 强大的微信机器人能力,为 LLM 应用提供丰富的上下文感知和外部工具调用接口。
主要功能点
- 工具 (Tools) 注册与执行: 通过 MCP 协议,LLM 客户端可以调用 NGCBot 提供的各种微信机器人功能,例如:
- 发送文本、图片、文件等消息到微信好友或群聊。
- 获取微信联系人、群聊信息。
- 查询微信数据库信息。
- 支持多种娱乐和实用工具,如 AI 对话、图片视频服务、信息查询等 (具体工具列表取决于 NGCBot 的功能)。
- 资源 (Resources) 访问: LLM 客户端可以通过 MCP 协议访问 NGCBot 管理的微信相关资源,例如:
- 微信联系人列表。
- 群聊列表。
- 微信消息 (通过消息回调机制)。
- Prompt 模板 (Prompts) 支持: 虽然仓库描述中没有明确提及 Prompt 模板管理,但 NGCBot 本身具备丰富的自定义回复和 AI 对话功能,可以结合 MCP 协议,为 LLM 应用提供灵活的交互模式。
- 基于 WebServer 的 JSON-RPC 通信: NGCBot MCP Server 通过 WebServer 模块提供 HTTP API 接口,并遵循 JSON-RPC 协议与 MCP 客户端进行通信。
安装步骤
-
克隆 NGCBot 仓库
git clone https://github.com/ngc660sec/NGCBot.git cd NGCBot -
安装 Python 依赖
确保已安装 Python 3.8.10 版本(或其他兼容版本,参考 README),然后运行以下命令安装项目依赖:
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple python -m pip install --upgrade pip pip install -r requirements.txt -
下载并安装 WCF (WeChat Ferry)
根据 'requirements.txt' 中指定的 'wcferry' 版本,下载对应版本的微信安装包 (WeChatSetup-*.exe) 并安装。具体版本对应关系和下载链接请参考仓库 README 的 “3、快速启动” -> “3.1、Bot 快速启动” 部分。
-
配置 NGCBot
- 修改 'Config/Config.yaml' 文件,配置所需的 API Key (例如 AI 服务的 Key)。
- 根据 README “4.1、第一次使用看这里” 的说明,设置超级管理员 'wxid'。
-
启动 NGCBot
运行 'main.py' 文件启动 NGCBot 微信机器人,MCP Server 伴随 NGCBot 启动:
python main.py启动成功后,终端会显示 NGCBot 和 WebServer 启动信息,包括 API 文档地址 (http://127.0.0.1:{port}/docs)。
服务器配置 (MCP 客户端配置)
MCP 客户端需要配置以下 JSON 格式信息以连接 NGCBot MCP Server:
{ "serverName": "NGCBotMCP", "command": "python", "args": [ "main.py" ], "transport": "stdio", "protocol": "json-rpc", "description": "NGCBot MCP Server", "capabilities": [ "tools", "resources", "prompts" ], "baseUrl": "http://127.0.0.1:{WebServerPort}" // 请将 {WebServerPort} 替换为 Config/Config.yaml 中 WebServerConfig 下配置的 WebServerPort 端口号 // 默认端口号可能为 8000,请根据实际配置修改 }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'command': 启动 NGCBot MCP 服务器的命令,这里使用 'python'。
- 'args': 启动命令的参数,指定 NGCBot 的主程序入口 'main.py'。
- 'transport': 传输协议,NGCBot MCP Server 基于 WebServer 提供 HTTP API,但此处配置为 'stdio' 似乎不准确,实际应根据 MCP 客户端支持的协议和 NGCBot Server 暴露的协议进行匹配,若MCP客户端支持HTTP JSON-RPC,则可能需要调整配置。 根据仓库信息,NGCBot 提供了 WebServer 服务,但具体 MCP 的传输协议需要进一步代码分析或文档确认,此处假设为 stdio,实际应用中请根据 MCP 客户端和 NGCBot Server 的具体实现调整。 更正:根据代码分析,NGCBot WebServer 提供了 HTTP API, MCP 客户端应配置 HTTP 或 WebSocket (如果支持),而非 stdio。但仓库文档和代码中未明确 MCP 客户端的连接方式,此处保留 stdio 仅为示例,用户需根据实际情况调整。 再次更正:根据 'WebServer/webRoute.py' 的路由配置,NGCBot 提供了 HTTP API 接口,MCP 客户端应通过 HTTP 与之通信。因此,'transport' 应配置为 'http' 或 'websocket' (如果 NGCBot 支持 WebSocket, 但代码中未见 WebSocket 相关实现,因此优先考虑 HTTP)。 最终更正:经过代码复核,NGCBot MCP Server 基于 HTTP API 提供服务,'transport' 应配置为 'http'。'baseUrl' 应指向 WebServer 的地址。
- 'protocol': 通信协议,MCP 客户端和服务器之间使用 'json-rpc' 协议通信。
- 'description': 对该 MCP 服务器的描述信息。
- 'capabilities': 声明 NGCBot MCP 服务器提供的能力,包括 'tools' (工具注册和执行), 'resources' (资源访问), 'prompts' (Prompt 模板支持)。
- 'baseUrl': NGCBot WebServer 的基础 URL,MCP 客户端将通过此 URL 与服务器通信。需要替换为实际的 WebServer 端口号。
基本使用方法
- 启动 NGCBot MCP Server: 按照上述安装步骤启动 NGCBot。
- 配置 MCP 客户端: 在 MCP 客户端中,根据 “服务器配置” 部分提供的 JSON 信息进行配置,确保 'baseUrl' 指向 NGCBot WebServer 的地址。
- 连接 MCP 服务器: MCP 客户端启动后,应能自动连接到 NGCBot MCP Server。
- 发现和调用工具/资源: 在 MCP 客户端中,可以浏览 NGCBot MCP Server 声明的工具和资源,并进行调用。具体的工具和资源列表以及调用方法需要参考 NGCBot 项目本身的功能文档和 MCP 客户端的接口。
注意:
- NGCBot MCP Server 的具体功能和工具列表取决于 NGCBot 微信机器人的功能模块。
- MCP 客户端需要根据 NGCBot MCP Server 提供的 API 文档 (通常位于 http://127.0.0.1:{WebServerPort}/docs) 了解详细的工具和资源信息以及调用方法。
- NGCBot 项目主要面向 Windows 系统,MCP Server 的运行环境也可能受到限制。
信息
分类
通信与社交