Skip to content

About

为 AstrBot 提供一系列 MCSManager 面板的工具函数

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Latest commit

 

History

7 Commits

Folders and files

Repository files navigation

MCSManagerFunction - AstrBot 插件

简介

本插件为 AstrBot 提供一系列 MCSManager 面板的工具函数,使 Agent 能够直接调用 MCSManager 的 API,实现实例管理、文件操作、日志查看等功能。

依赖

  • Python 3
  • aiohttp

安装前请确保已在 AstrBot 中配置好 LLM 模型,并且启用了工具调用功能。

配置

在 AstrBot WebUI 的插件管理中,找到 "MCSManagerFunction",填写以下配置:

  • base_url: MCSManager 面板的访问地址,例如 http://localhost:23333,请勿包含末尾斜杠。
  • api_token: MCSManager 的 API 密钥,在面板的用户管理中,在 "API 密钥" 中可以生成或查看。
  • permission_mode: 工具权限控制,默认「全部工具仅管理员可用」,详见「权限与限制」。
  • blocked_instances: 禁止操作的实例(UUID 或名称关键词),详见「权限与限制」。

保存配置后,插件会自动连接并注册工具。

权限与限制

插件在调用 MCSManager API 前会执行以下校验(硬性限制,对 AI 的工具调用同样生效):

管理员校验(permission_mode)

  • 全部工具仅管理员可用(默认):所有 mcsmanager_* 工具仅 AstrBot 管理员可用。
  • 仅危险操作需管理员:读取类工具(概览、节点、实例列表/详情、日志、文件浏览)所有人可用; 启动/停止/重启/强杀实例、发送控制台命令、写入/删除/新建/压缩/解压/复制/移动文件仅管理员可用。
  • 不校验:不进行权限校验(不推荐)。

「管理员」指 AstrBot 全局配置中的管理员(WebUI → 配置 → 管理员 ID)。非管理员调用受限工具时, 工具会返回权限不足的提示,AI 会据此告知用户。

实例禁止名单(blocked_instances)

  • 填写实例 UUID 或名称关键词(子串匹配,忽略大小写),每行一个。
  • 被列入的实例会从实例列表中隐藏,且拒绝一切针对它的操作(对管理员同样生效)。
  • 禁止名单非空时,针对实例的操作会先查询实例详情以解析名称,无法确认时保守拒绝。

删除保护

  • mcsmanager_delete_files 始终拒绝删除实例根目录(空路径、"/"、"." 等目标)。

使用方法

插件加载成功后,AI 助手在对话中可自动调用以下工具(无需用户手动输入指令)。默认仅 AstrBot 管理员可用,可在配置中调整(见「权限与限制」)。用户只需用自然语言提出需求,例如: "帮我启动实例 xxx" "查看所有实例列表" "获取实例日志" "列出游戏服务器文件"

工具列表

所有工具均以 "mcsmanager_" 开头,以下是详细列表:

仪表盘 / 节点

  • mcsmanager_get_overview 获取面板全局概览(版本、CPU、内存、节点状态等)
  • mcsmanager_get_daemon_list 获取所有已连接节点列表及基本状态

实例管理

  • mcsmanager_get_instances 获取指定节点上的实例列表 参数:daemon_id, page, page_size, instance_name(可选), status(可选)
  • mcsmanager_get_instance_detail 获取实例详细信息(配置、进程信息等) 参数:daemon_id, uuid
  • mcsmanager_start_instance 启动实例
  • mcsmanager_stop_instance 停止实例
  • mcsmanager_restart_instance 重启实例
  • mcsmanager_kill_instance 强制终止实例进程
  • mcsmanager_send_command 向运行中的实例控制台发送命令 参数:daemon_id, uuid, command
  • mcsmanager_get_instance_log 获取实例最近的输出日志(纯文本) 参数:daemon_id, uuid, size(可选,单位KB)

文件管理

  • mcsmanager_list_files 列出实例指定目录下的文件和文件夹 参数:daemon_id, uuid, target, page, page_size 注意:target 应使用相对于实例根目录的路径,不要以 "/" 开头, 根目录传空字符串或 "."
  • mcsmanager_read_file 读取文本文件内容 参数:daemon_id, uuid, target
  • mcsmanager_write_file 写入或覆盖文件内容 参数:daemon_id, uuid, target, text
  • mcsmanager_delete_files 删除文件或文件夹(可批量) 参数:daemon_id, uuid, targets(列表)
  • mcsmanager_create_folder 新建文件夹 参数:daemon_id, uuid, target
  • mcsmanager_compress_files 压缩文件/文件夹为 zip 参数:daemon_id, uuid, source, targets(列表)
  • mcsmanager_decompress_file 解压 zip 文件 参数:daemon_id, uuid, source, targets(字符串)
  • mcsmanager_copy_files 复制文件/文件夹 参数:daemon_id, uuid, targets(二维列表)
  • mcsmanager_move_files 移动或重命名文件/文件夹 参数:daemon_id, uuid, targets(二维列表)

致谢

许可证

本项目采用 GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (AGPL-3.0) 协议开源。 详见 LICENSE 文件或 https://www.gnu.org/licenses/agpl-3.0.html。

问题反馈

如遇到问题,请通过 GitHub Issue 反馈,并附上 AstrBot 日志(尤其是 DEBUG 级别日志)以及 MCSManager 版本信息。

About

为 AstrBot 提供一系列 MCSManager 面板的工具函数

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

Generated from Soulter/helloworld