NGCBot MCP Server
项目简介
NGCBot MCP Server 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为 LLM 应用提供与微信机器人 NGCBot API 交互的能力。它通过 MCP 协议标准化的方式,将 NGCBot API 提供的微信消息发送、用户 ID 查询等功能封装成可供 LLM 调用的工具 (Tools),使得 LLM 能够方便地集成微信相关的上下文信息和操作能力。
核心功能:
- 工具注册与执行: 注册了 'send_text' (发送微信文本消息), 'get_wxid' (获取微信ID), 'push_room' (群发消息) 等工具,允许 LLM 通过调用这些工具实现微信消息的发送和微信用户信息的查询。
- 基于 FastMCP 框架: 使用 'fastmcp' 库构建,简化了 MCP 服务器的开发流程,并提供了基础的 MCP 协议处理能力。
- 桥接 NGCBot API: 作为 LLM 和 NGCBot API 之间的桥梁,将 NGCBot API 的功能以 MCP 工具的形式暴露给 LLM,实现 LLM 对微信功能的间接控制。
- 配置化 API 接入: 通过 'config.py' 文件配置 NGCBot API 的地址和密钥,方便用户根据实际情况进行配置。
主要功能点:
- 微信消息发送: 允许 LLM 控制发送文本消息给指定的微信好友或群聊。
- 微信ID查询: 允许 LLM 根据微信昵称或群聊名称查询对应的微信 ID (wxId)。
- 群消息推送: 支持向特定类型的微信群(如黑名单、白名单、推送群)发送群消息。
安装步骤:
- 安装 Python 环境: 确保您的机器上已安装 Python 3.7 或更高版本。
- 安装依赖库: 使用 pip 安装项目依赖。在项目根目录下打开终端,执行命令:
(如果仓库中没有 'requirements.txt' 文件,请手动安装 'fastmcp', 'requests', 'aiohttp' 这三个库:'pip install fastmcp requests aiohttp')pip install -r requirements.txt
服务器配置:
MCP 客户端需要配置以下 JSON 格式的服务器信息才能连接到 NGCBot MCP Server。请根据实际情况修改 'command' 和 'args' 字段。
{ "serverName": "NGCBot-MCP-Server", "command": "python", "args": ["main.py"], "env": { "NGCBOT_API": "http://180.184.42.11:7000", // NGCBot API 的地址,请替换为实际地址 "NGCBot_KEY": "" // NGCBot API 的密钥,请替换为实际密钥 }, "description": "NGCBotMCP服务", "version": "0.1.0", "dependencies": ["requests", "fastmcp", "aiohttp"] }
配置说明:
- 'serverName': 服务器名称,可自定义。
- 'command': 启动服务器的命令,这里使用 'python' 解释器。
- 'args': 启动命令的参数,这里指定执行 'main.py' 文件。
- 'env': 环境变量配置,用于配置 NGCBot API 的相关信息。
- 'NGCBOT_API': [必填] 请将 'http://180.184.42.11:7000' 替换为实际的 NGCBot API 服务地址。
- 'NGCBot_KEY': [必填] 请将 '""' 替换为您在 NGCBot API 服务端申请的 BotKey。
- 'description': 服务器描述信息。
- 'version': 服务器版本号。
- 'dependencies': 服务器依赖的 Python 库。
基本使用方法:
- 启动 MCP 服务器: 在项目根目录下打开终端,执行命令 'python main.py' 即可启动 NGCBot MCP Server。服务器将监听标准输入/输出 (stdio) 以接收和发送 MCP 协议的 JSON-RPC 消息。
- 配置 MCP 客户端: 在您的 LLM 应用或 MCP 客户端中,配置上述提供的服务器 JSON 信息,建立与 NGCBot MCP Server 的连接。
- 调用工具: 通过 MCP 客户端,您可以调用服务器提供的工具,例如:
- 调用 'send_text' 工具发送微信消息,需要提供 'text' (消息内容) 和 'receiver' (接收者 wxId 或微信昵称) 参数。
- 调用 'get_wxid' 工具查询微信 ID,需要提供 'wxName' (微信昵称或群聊名称) 参数。
- 调用 'push_room' 工具群发消息,需要提供 'text' (消息内容) 和 'msgType' (消息类型,如 'black', 'white', 'push') 参数。
注意:
- 本 MCP 服务器依赖于外部的 NGCBot API 服务,请确保 NGCBot API 服务正常运行,并配置正确的 API 地址和密钥。
- 使用微信相关功能需遵守微信平台的使用规范。