宝塔 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,仅建立确认记录,需用户明确同意后才执行。