宝塔拨测博客拨测技术博客
宝塔面板 / AI 运维

宝塔 MCP 的 98 个工具怎么用?分类清单与风险等级,20 个高危工具必须人工确认

宝塔 MCP 共提供 98 个工具,覆盖从查文件、管理网站、操作数据库,到 Docker、防火墙、Java/NodeJS/Python/Go 项目运维等 19 个分类。每个工具都标了风险等级(low 只读、medium 有副作用、high 高危),其中 20 个高危工具涉及删除、覆盖、执行命令,Agent 调用前必须人工确认。本文按「哪些能放心自动用、哪些必须拦下来确认」讲清这 98 个工具的分级与清单。

风险等级怎么分,返回结果怎么看

宝塔 MCP 用统一约定约束所有工具,理解这两点就能判断每个工具能不能交给 Agent 自动跑:

  • 风险等级三档:low 只读/安全;medium 有副作用;high 高危(删除/覆盖/执行命令),调用前须二次确认。
  • 返回结构统一:所有工具都返回 {"status": bool, "msg": string, ...};status=false 为失败(msg 说明原因),成功时按需附加 data、task_id 等字段。
  • 基础工具:标记「基础工具」者(Read、Edit、Write、Glob、Grep、LS、Bash、BashStatus、BashStop 等)仅对非本机部署的客户端开放。

按这个口径,98 个工具里 low 约 39 个、medium 约 39 个、high 20 个。下面先列必须人工确认的高危清单,再讲可以放心自动调用的只读工具。

20 个高危工具:删除、覆盖、执行命令,必须拦下来确认

这些工具要么能删掉生产数据、要么能改服务器安全边界、要么能执行任意命令,Agent 的计划里一旦出现它们,应当停下来人工核对:

工具名 作用 为什么高危
Bash 执行 shell 命令(sh -c) 可执行任意命令,需 Key 显式授权;前台最多等 20s,未完成转后台返回 task_id
Write 创建或覆盖文本文件 完整覆盖已有文件,改前应先用 Read 确认原文
Edit 精确修改已有文本文件 小范围替换,改错即写坏文件
SiteDelete 删除网站 不可逆,删前用 SiteList 核对避免误删
DomainManage 网站绑定域名的添加/删除 删除域名绑定不可逆
DatabaseDelete 删除 MySQL 数据库 不可逆(启用回收站时可恢复,否则真删)
MysqlExecute 对 MySQL 执行写 SQL 会改动生产数据,执行前要求用户确认
ContainerDelete 删除容器(强制) 容器及数据不可恢复
SoftwareUninstall 卸载软件 卸载已安装的软件服务
FirewallPortSet 添加/删除防火墙端口规则 改动安全边界,可能把端口放错或堵死
FirewallIpSet 添加/删除防火墙 IP 规则 放行或屏蔽某 IP 全部访问
JavaProjectDelete 删除 Java 项目 不可逆
NodeProjectDelete 删除 NodeJS 项目 不可逆
PythonProjectDelete 删除 Python 项目 不可逆
GoProjectDelete 删除 Go 项目 不可逆
ProxyProjectDelete 删除反向代理项目 不可逆
HtmlProjectDelete 删除 HTML 项目 不可逆
SSHConfig 生成密钥/关闭密钥认证/重启 sshd 改动 SSH 登录方式,改错可能锁死远程登录
ManageCrontab 创建/删除计划任务 可增删定时任务
ManageChannel 通知通道增删/启停/测试 改动通知配置

几个典型的高危机制值得单独说:

执行命令 Bash 有双层护栏:前台最多等 20 秒,超时自动转后台并返回 task_id(用 BashStatus 查结果、BashStop 停止);后台最长 30 分钟超时强杀;输出受 50KB 上限截断。更重要的是,rm -rf 关键路径、mkfs、dd 覆写块设备、关机重启、fork 炸弹这些灾难命令会被直接拦下拒绝执行。

删除类工具带「确认记录」机制:以 SiteDelete 为例,confirm 参数首次调用必须为 false,只建立确认记录、不真正执行;收到 waiting_confirm 后必须停下来询问用户,只有收到一条后续消息明确同意,才能用完全相同的业务参数把 confirm 设为 true。MysqlExecute 的写操作也走同样的确认流程。

数据库读/写严格分离:MysqlQuery 只允许 SELECT/SHOW/DESCRIBE/DESC/EXPLAIN/WITH/TABLE 等只读语句,写关键字、系统库表与敏感列(password/authentication_string)一律拒绝,且含 %s 占位符时必须用 params 传绑定值、禁止字符串拼接。要写数据只能用 MysqlExecute,且系统库写入与库级/用户级 DDL 会被拒绝。

可以放心自动调用的只读工具

这些 low 风险工具不改变任何系统状态,适合让 Agent 自主执行:

  • SiteList:获取网站列表(用于确认站点名、拿 SiteList 返回的 name 给后续操作)
  • SiteGetConfig / SiteLogs / SiteTraffic / TrafficAnalysis:查网站配置、访问日志、流量与全站流量分析
  • ServiceStatus:查服务安装与运行状态(nginx、apache、mysql、redis、pure-ftpd、memcached、mongodb 及已装 php-fpm),支持别名,未安装返回 not_installed 不误报
  • ContainerList / ContainerLogs / ContainerInspect / ComposeList / ImageList / VolumeList / NetworkList:查 Docker 容器、日志、详情、编排、镜像、存储卷、网络列表
  • DatabaseList / MysqlQuery:列数据库、执行只读 SQL 查询
  • SystemInfo:服务器系统资源概况
  • FirewallStatus / FirewallPortList / FirewallIpList:查防火墙状态与规则列表
  • SoftwareList:查已装软件
  • SecurityCheck:检查服务器安全状态(安全评分 + 10 项检查项 + SSH 危险命令历史)
  • SSHInfo / SSHIntrusion:查 SSH 配置与异常登录统计(判断是否遭爆破)
  • GetCrontab / GetChannel:查计划任务列表、通知通道列表

典型场景:让 Agent「查一下网站列表、看看 nginx 和 mysql 的运行状态、扫一遍安全评分」,走的全是 low 工具,可以放心自动执行;但一旦它的计划里出现 SiteDelete、MysqlExecute、Bash 里的删除或写操作,就应该停下来确认。

19 个分类的完整计数

按官方工具说明逐类统计,98 个工具分布如下:

分类 工具数 分类 工具数
基础 9 Java 6
网站 15 NodeJS 6
网络 3 Python 8
数据库 6 Go 6
服务 2 反向代理 5
Docker 10 HTML 4
系统 1 SSH 3
软件 3 安全 1
防火墙 5 计划任务 2
通知 3 — —

「基础」类 9 个是文件与命令相关:Read 读取文件、Edit 精确修改、Write 写入、Glob 查找文件、Grep 搜索内容、LS 列出目录、Bash 执行命令、BashStatus 查命令状态、BashStop 终止后台任务。

「网站」类 15 个覆盖站点全生命周期:从 SiteList 查列表、SiteGetConfig 查配置、SiteLogs/SiteTraffic/TrafficAnalysis 看日志流量,到 SiteCreate 建站、SiteDelete 删站、OneClickDeploy 一键部署应用、SiteCertList/SiteSSLDeploy/SiteSSLApply 管证书、DomainManage 管域名、SiteConfig/SiteControl 配置与启停、SiteBackup 备份。

各语言项目(Java、NodeJS、Python、Go)都遵循同一套结构:管环境/版本 → 分析并创建项目 → 查看项目 → 控制项目进程 → 修改项目 → 删除项目,其中「删除项目」统一为 high 风险。

信息来源

本文工具数量、分类、风险等级与机制均以宝塔官方文档为准:《宝塔 MCP 工具说明》。工具与参数随版本可能调整,具体以面板实际返回的 tool name 与 input_schema 为准。

常见问题

宝塔 MCP 一共提供多少个工具?

共 98 个,分基础、网站、网络、数据库、服务、Docker、系统、软件、防火墙、Java、NodeJS、Python、Go、反向代理、HTML、SSH、安全、计划任务、通知 19 个分类。工具名即 MCP 调用时的 tool name。

宝塔 MCP 的风险等级 low/medium/high 分别代表什么?

low 表示只读/安全,例如查询网站列表、服务状态、系统信息;medium 表示有副作用,例如创建网站、启停服务、安装软件;high 表示高危操作(删除/覆盖/执行命令),调用前必须二次确认。

哪些 MCP 工具属于高危、必须人工确认?

共 20 个高危工具,包括执行命令 Bash、写入/修改文件 Write/Edit、删除网站 SiteDelete、删除数据库 DatabaseDelete、MySQL 写操作 MysqlExecute、删除容器 ContainerDelete、设置防火墙规则、删除各语言项目,以及配置 SSH、管理计划任务和通知通道等。

宝塔 MCP 工具调用失败或成功,返回结果怎么看?

所有工具统一返回 {"status": bool, "msg": string, ...} 结构:status=false 表示失败,msg 说明原因;成功时按需附加 data、task_id 等字段。

Agent 能自动执行命令和删除网站吗?

执行命令走 Bash 工具(高危,需显式授权),并会拦截 rm -rf 关键路径、mkfs、dd 覆写块设备、关机重启、fork 炸弹等灾难命令;删除网站走 SiteDelete,首次调用 confirm 必须为 false,仅建立确认记录,需用户明确同意后才执行。