宝塔 MCP 工具说明
共 98 个工具。标题即 MCP 调用时的 tool name;入参表来自各工具的 input_schema。
通用约定
- 返回结构:所有工具统一返回
{"status": bool, "msg": string, ...};status=false为失败(msg说明原因),成功时按需附加data、task_id等字段。 - 风险等级:
low只读/安全;medium有副作用;high高危(删除/覆盖/执行命令),调用前须二次确认。 - 基础工具:标记「基础工具」者仅对非本机部署(nginx/public)的客户端开放。
- 必填:
是=必填,否=可选。
基础
Read
读取文件 · 分类 基础 · 风险 low · 基础工具
读取文本文件;查看文件或读取 Grep 命中位置附近内容时使用。只读。
data 返回 lines 和 next_offset;结果达到约 40KB 时会提前分页。lines 包含 number 和 content,单行最多返回 1000 字符,超出时追加 ...;无效 UTF-8 字节会替换。next_offset 非空时传回 offset 继续读取。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 允许范围内的绝对路径。 |
offset | integer | 否 | 起始行,默认 1。 |
limit | integer | 否 | 行数,默认及上限 2000。 |
调用示例
{
"file_path": "示例",
"offset": 1,
"limit": 2000
}
Edit
精确修改文件 · 分类 基础 · 风险 high · 基础工具
精确修改已有 UTF-8 文本文件;先用 Read 获取原文,再进行小范围替换。高风险:调用前必须向用户确认。
修改前后的文件上限均为 4MB。匹配多处时请增加上下文,或设置 replace_all=true 全部替换。成功时仅返回 replacements。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 允许范围内的绝对路径。 |
old_string | string | 是 | 必须与原文完全一致。 |
new_string | string | 是 | 替换后的文本。 |
replace_all | boolean | 否 | true 时全部替换,默认 false 只替换第一处。 |
调用示例
{
"file_path": "示例",
"old_string": "示例",
"new_string": "示例",
"replace_all": false
}
Write
写入文件 · 分类 基础 · 风险 high · 基础工具
创建或完整覆盖 UTF-8 文本文件;局部修改请使用 Edit。高风险:调用前必须向用户确认。
父目录不存在时自动创建。覆盖已有文件前先用 Read 确认原文。成功时仅返回 bytes。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 允许范围内的绝对路径。 |
content | string | 是 | 文件完整内容,不支持追加。 |
调用示例
{
"file_path": "示例",
"content": "示例"
}
Glob
查找文件 · 分类 基础 · 风险 low · 基础工具
按名称或扩展名查找文件;不知道文件准确路径时使用。只读。
默认跳过 .git、node_modules、venv、dist 等目录。files 是按修改时间倒序排列的绝对路径; next_offset 非空时传回 offset 继续。匹配超过 2000 个文件时请缩小范围。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
pattern | string | 是 | 相对 glob 模式,如 **/*.py。 |
path | string | 否 | 允许范围内的绝对目录,留空使用当前目录。 |
offset | integer | 否 | 默认 0。 |
limit | integer | 否 | 默认及上限 50。 |
调用示例
{
"pattern": "示例",
"path": "",
"offset": 0,
"limit": 50
}
Grep
搜索文件内容 · 分类 基础 · 风险 low · 基础工具
在文件或目录中搜索内容;找代码、配置或日志信息时优先使用,无需先读取整个文件。只读。
目录搜索默认跳过常见缓存、依赖和构建目录,并最多扫描 2000 个文件。 matches 返回匹配行、绝对路径和行号;单行最多搜索前 65536 个字符、返回前 1000 字符。next_offset 非空时传回 offset 继续。忽略大小写可在 pattern 前加 (?i),查看上下文请用返回的路径和行号调用 Read。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
pattern | string | 是 | Python 正则。 |
path | string | 否 | 允许范围内的绝对文件或目录,留空搜索当前目录。 |
glob | string | 否 | 文件模式过滤,如 **/*.py。 |
offset | integer | 否 | 默认 0。 |
limit | integer | 否 | 默认及上限 50。 |
调用示例
{
"pattern": "示例",
"path": "",
"glob": "",
"offset": 0,
"limit": 50
}
LS
列出目录 · 分类 基础 · 风险 low · 基础工具
列出目录的直接子项;浏览目录或确认路径时使用。只读。
目录排在文件前;entry 包含 name、绝对路径 path 和 is_dir;敏感项不会返回。 next_offset 非空时传回 offset 继续。项目超过 2000 个时请改用 Glob。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
path | string | 否 | 绝对目录,留空使用当前目录。 |
offset | integer | 否 | 默认 0。 |
limit | integer | 否 | 默认及上限 50。 |
调用示例
{
"path": "",
"offset": 0,
"limit": 50
}
Bash
执行命令 · 分类 基础 · 风险 high · 基础工具
执行 shell 命令(sh -c)。high 风险,需 Key 显式授权。
前台最多等 20s(低于工具全局超时),未完成自动转后台并返回 task_id;用 BashStatus 查询结果,用 BashStop 停止。 后台最长 30 分钟,超则强杀。run_in_background=true 立即后台。输出受 50KB 上限(头+尾截断)。 极少数灾难命令(rm -rf 关键路径 / mkfs / dd 覆写块设备 / 关机重启 / fork 炸弹)被拦拒绝。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
command | string | 是 | shell 命令串,必填。 |
description | string | 否 | 命令用途说明,仅进审计日志,不影响执行。 |
timeout | integer | 否 | 前台愿意等待的秒数上限,默认 20,服务端封顶 20。 |
run_in_background | boolean | 否 | true 时跳过前台等待,立即后台返回 task_id。 |
调用示例
{
"command": "示例",
"description": "",
"timeout": 20,
"run_in_background": false
}
BashStatus
查询命令状态 · 分类 基础 · 风险 low · 基础工具
查询后台任务的状态、输出与最终结果。low 只读。
task_id 由接入统一后台任务管理器的工具返回;此处只读其状态,绝不新起进程。 wait=true 时最多等 timeout 秒(默认上限 20s)再返回;任务完成时返回完整输出并清理。 运行中返回当前已捕获输出;未知 task_id 返回错误。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 后台任务标识,必填。 |
wait | boolean | 否 | true 时阻塞等待任务结束(受前台 20s 上限)。 |
timeout | integer | 否 | wait=true 时的等待秒数,0 表示用默认上限。 |
调用示例
{
"task_id": "示例",
"wait": false,
"timeout": 0
}
BashStop
终止后台任务 · 分类 基础 · 风险 medium · 基础工具
终止或停止追踪后台任务。medium 风险。
适用于所有统一 task_id 的后台任务。子进程任务会被真实终止;函数线程任务无法强杀, 仅标记为 stopped,后台操作仍可能执行完成。未知 task_id 幂等返回 stopped。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
task_id | string | 是 | 后台任务标识,必填。 |
调用示例
{
"task_id": "示例"
}
网站
SiteList
获取网站列表 · 分类 网站 · 风险 low
获取宝塔面板管理的网站列表。只读,仅面板原生站点。
data.sites 每项含 name、domains、ports、status、ps、project_type、path、php_version、ssl; php_version 仅对 PHP 类站点(PHP/phpmod/wp2)有值,其他语言恒为空串; ssl 为证书状态(enabled、days_left、not_after、issuer、san_domains,未部署时 enabled 为 False)。 name 是站点唯一标识,作为其他网站工具的站点参数。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
search | string | 否 | 按站点名模糊搜索。 |
page | integer | 否 | 页码,从 1 开始。 |
page_size | integer | 否 | 每页数量,默认 20、最大 50。 |
调用示例
{
"search": "",
"page": 1,
"page_size": 20
}
SiteGetConfig
获取网站配置 · 分类 网站 · 风险 low
获取指定网站当前生效的 webserver 配置文件内容。只读。
data 含 webserver(nginx/apache)、config_path、content(配置全文)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
调用示例
{
"site_name": "示例"
}
SiteLogs
获取网站访问日志 · 分类 网站 · 风险 low
获取指定网站的访问日志(原始文本,末尾片段)。只读。网站打不开/报错/502/500 等排查先看本工具。
已对 URL 中的凭据参数(token/key/password 等)脱敏。仅访问日志;错误日志需另查 webserver 的 error log。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
调用示例
{
"site_name": "示例"
}
SiteTraffic
获取网站流量 · 分类 网站 · 风险 low
获取指定网站的访问流量统计(UV/PV、请求数、流量趋势等)。只读。
返回单站流量数据;全站排名与总览用 TrafficAnalysis。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
调用示例
{
"site_name": "示例"
}
SiteCreate
创建网站 · 分类 网站 · 风险 medium
创建网站并绑定 PHP 版本。中风险,有副作用。
php_version 为空时自动绑定已装版本(面板默认优先)。成功时 data 含 site_id、path、php_version、nginx_config。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
domain | string | 是 | 域名或 IP,不含端口。 |
site_path | string | 是 | 网站目录绝对路径。 |
port | string | 否 | 站点端口,默认 80。 |
php_version | string | 否 | PHP 版本号(如 "82"),留空自动绑定。 |
调用示例
{
"domain": "示例",
"site_path": "示例",
"port": "80",
"php_version": ""
}
SiteDelete
删除网站 · 分类 网站 · 风险 high
删除宝塔面板中的网站。高风险、不可逆,调用前必须向用户确认。删前用 SiteList 核对避免误删。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
delete_path | boolean | 否 | True 连网站目录一并删(默认),False 仅删站点记录保留文件。 |
ftp | boolean | 否 | True 同时删除关联 FTP(默认 False)。 |
database | boolean | 否 | True 同时删除关联数据库(默认 False)。 |
confirm | boolean | 否 | 首次调用必须为 false,仅建立确认记录且不会执行。收到 waiting_confirm 后必须停止并询问用户。只有收到一条后续用户消息明确同意,才可使用完全相同的业务参数设置为 true。 |
调用示例
{
"site_name": "示例",
"delete_path": true,
"ftp": false,
"database": false,
"confirm": false
}
OneClickDeploy
一键部署应用 · 分类 网站 · 风险 medium
一键部署 CMS 应用。中风险,有副作用。需先用 SiteCreate 建站。
WordPress 自动补全:绑定 PHP、建库、生成 wp-config.php 并模拟安装向导。可重入:已安装时跳过。 成功时 data 含 admin_username、admin_password、success_url、db_name、db_user、db_password、auto_installed。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
app | string | 是 | 应用标识,如 wordpress、discuz、discuzx、typecho、dedecms。 |
调用示例
{
"site_name": "示例",
"app": "示例"
}
TrafficAnalysis
获取全站流量分析 · 分类 网站 · 风险 low
获取全部网站的流量分析聚合数据。只读。 返回全站聚合:三日总览、当日 Top5 站点(按流量降序)、近 7 日趋势;各段含流量/请求数/UV/PV。 字段以实际返回为准。单站明细用 SiteStats。
入参
无入参,调用时传空对象 {}。
调用示例
{}
SiteCertList
获取证书库列表 · 分类 网站 · 风险 low
获取面板证书库中的证书列表(本地导入 + Let's Encrypt + 云证书)。只读。
data.certs 每项含 id、hash、subject、dns(覆盖域名)、not_after、endtime(剩余天数)、 cloud_id(-1 为本地证书)、use_for_site(已部署到的站点 id 列表)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
search | string | 否 | 按证书名称(subject)模糊搜索。 |
status_filter | string | 否 | all/valid/expiring/expired/expired_long 之一:全部/未过期/15天内到期/已过期/过期1年以上。 |
force_refresh | boolean | 否 | 是否强制刷新证书库(与宝塔云端同步),默认 false。 |
调用示例
{
"search": "",
"status_filter": "all",
"force_refresh": false
}
SiteSSLDeploy
部署SSL证书 · 分类 网站 · 风险 medium
部署证书到网站:将证书库中已有证书(ssl_hash)或直接提供的证书(PEM 内容/文件)部署到指定网站。
中风险:写入站点证书目录并更新 webserver 配置。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
ssl_hash | string | 否 | 证书库中的证书 hash(SiteCertList 查询),与证书内容/文件来源互斥。 |
certificate | string | 否 | PEM 证书内容(含证书链),与 private_key 成对提供。 |
private_key | string | 否 | PEM 私钥内容。 |
cert_file | string | 否 | 证书文件绝对路径(服务器本地),与 key_file 成对提供。 |
key_file | string | 否 | 私钥文件绝对路径。 |
调用示例
{
"site_name": "示例",
"ssl_hash": "",
"certificate": "",
"private_key": "",
"cert_file": "",
"key_file": ""
}
SiteSSLApply
申请SSL证书 · 分类 网站 · 风险 medium
为站点配置/启用 HTTPS:申请并部署 SSL 证书(Let's Encrypt)。中风险:会写站点目录并重载 web 服务。
同步执行,耗时几十秒到数分钟。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList。 |
domains | array<string, integer, number, boolean> | 是 | 要签发的域名列表。 |
validation | string | 否 | 验证方式,仅支持 http。 |
调用示例
{
"site_name": "示例",
"domains": [],
"validation": "http"
}
DomainManage
网站域名管理 · 分类 网站 · 风险 high
管理网站绑定域名:添加或删除。高风险,删除不可逆,调用前须向用户确认。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
operation | string | 是 | add 或 remove。 |
domains | string | 是 | 域名列表,逗号分隔,单个可带 :port(不带端口默认 80);remove 支持批量删除。 |
调用示例
{
"site_name": "示例",
"operation": "示例",
"domains": "示例"
}
SiteConfig
配置网站 · 分类 网站 · 风险 medium
配置网站:切换 PHP 版本 / 设置运行目录 / 配置默认首页 / 配置伪静态 / 重载配置。中风险,有副作用。
action 说明:
- php_version: value 填版本号(如 "82"),已安装版本用 SoftwareList 查询,当前版本见 SiteList 的 php_version;
- run_path: value 填相对路径(如 "/public"),空串表示站点根目录;
- index: value 填逗号分隔的默认文档(如 "index.php,index.html");
- rewrite: value 填伪静态规则全文;
- reload: value 忽略,重载 webserver 配置(php_version/run_path/index 修改后面板已自动重载,本 action 用于手动改配置文件后)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
action | string | 是 | 配置项,php_version/run_path/index/rewrite/reload 之一。 |
value | string | 否 | 配置值,reload 时忽略。 |
调用示例
{
"site_name": "示例",
"action": "示例",
"value": ""
}
SiteControl
启停网站 · 分类 网站 · 风险 medium
启动/停止网站。中风险,有副作用(修改 webserver 配置并重载服务)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
action | string | 是 | start/stop 之一。 |
调用示例
{
"site_name": "示例",
"action": "示例"
}
SiteBackup
备份网站 · 分类 网站 · 风险 medium
备份站点(含文件、配置、SSL、关联数据库)。中风险:占用磁盘与 IO。
该操作可能进入后台并返回 task_id;用 BashStatus 查询状态与结果,用 BashStop 停止任务。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 站点名,取自 SiteList 返回的 name。 |
调用示例
{
"site_name": "示例"
}
网络
WebFetch
抓取网页 · 分类 网络 · 风险 low · 基础工具
获取公开网页内容,供客户端依据 prompt 阅读、提取或分析。只读,不提交表单、不携带认证信息,也不执行网页脚本。
返回受限 Markdown 和 prompt,由调用方完成分析。响应超过 32KB 时拒绝返回。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
url | string | 是 | 完整 http 或 https 地址。 |
prompt | string | 是 | 描述希望从网页中得到的信息。 |
调用示例
{
"url": "示例",
"prompt": "示例"
}
ServerIP
获取服务器IP · 分类 网络 · 风险 low
获取服务器的内网与公网 IP。只读。 data.internal 为内网 IPv4 列表(各网卡,已排除 loopback,多网卡时含多个); data.external 为公网 IP,查询失败时为 None。
入参
无入参,调用时传空对象 {}。
调用示例
{}
Upload
上传 · 分类 网络 · 风险 medium
上传客户端本地文件;调用方必须能在客户端本机执行 curl,否则无法用本工具上传。
首次调用传 file_name,执行返回的 next_action 中对应平台命令,只替换 <LOCAL_FILE>。
命令已固定服务器公钥,应原样执行。命令失败或结果不确定时,按返回的 on_failure 处理,不要重跑旧命令。
不要自行获取 offset、分片或构造 PUT/PATCH。ready=true 表示完成;成功后将返回文件绝对路径,可直接使用 path。
仅上传已经生成完毕且不再写入的本地文件。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_name | string | 否 | 首次调用时传本地文件名,不传路径或文件内容。 |
size | integer | 否 | 可选文件字节数,用于大小校验。 |
sha256 | string | 否 | 可选的预期 SHA256;传入时校验完整内容,未传时只返回实际摘要,expected_sha256_matched=null。 |
file_id | string | 否 | 恢复上传时传首次调用返回的值。 |
调用示例
{
"file_name": "",
"size": null,
"sha256": "",
"file_id": ""
}
数据库
DatabaseList
获取数据库列表 · 分类 数据库 · 风险 low
获取面板管理的 MySQL 数据库列表。只读。
data.databases 每项含 name、username、accept(允许连接的来源 IP)、type。 不返回密码;连接密码须向用户索取。查库列表用本工具,不要用 SQL。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
search | string | 否 | 按库名模糊搜索。 |
调用示例
{
"search": ""
}
DatabaseCreate
创建数据库 · 分类 数据库 · 风险 medium
创建 MySQL 数据库(本地实例)并创建访问用户。中风险。
password 留空时自动生成强密码并在返回中给出。成功时 data 含 name、username、address。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 库名,必填。 |
db_user | string | 是 | 用户名,必填。 |
password | string | 否 | 密码,留空自动生成。 |
codeing | string | 否 | 字符集,默认 utf8mb4(仅 utf8/utf8mb4/gbk/big5)。 |
address | string | 否 | 访问权限,默认 127.0.0.1(仅本机),远程传 % 或具体 IP。 |
ps | string | 否 | 备注。 |
调用示例
{
"name": "示例",
"db_user": "示例",
"password": "",
"codeing": "utf8mb4",
"address": "127.0.0.1",
"ps": ""
}
DatabaseDelete
删除数据库 · 分类 数据库 · 风险 high
删除指定 MySQL 数据库。高风险:调用前必须向用户确认。删前用 DatabaseList 核对避免误删。
面板启用数据库回收站时,删除的库进回收站(可恢复);否则真删、不可逆。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 库名,取自 DatabaseList 返回的 name。 |
调用示例
{
"name": "示例"
}
DatabaseBackup
备份数据库 · 分类 数据库 · 风险 medium
备份指定 MySQL 数据库(全库,存入面板备份目录)。中风险:占用磁盘与 IO。
该操作可能进入后台并返回 task_id;用 BashStatus 查询状态与结果,用 BashStop 停止任务。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 库名,取自 DatabaseList 返回的 name。 |
调用示例
{
"name": "示例"
}
MysqlQuery
MySql查询 · 分类 数据库 · 风险 low
对 MySQL 执行只读 SQL 并返回结果行。只读,不修改任何数据。
仅允许 SELECT/SHOW/DESCRIBE/DESC/EXPLAIN/WITH/TABLE;写关键字、系统库表与敏感列 (password/authentication_string)一律拒绝。SQL 含 %s 占位符时必须以 params 提供 绑定值,禁止字符串拼接。表结构类查询直接传 SHOW CREATE TABLE/DESCRIBE 等。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
sql | string | 是 | 单条只读 SQL,必填。 |
database | string | 否 | 目标库名,留空连实例级(可查 SHOW DATABASES 等)。 |
params | array<string, integer, number, boolean> | 否 | %s 占位符的绑定值列表,sql 含 %s 时必填。 |
limit | integer | 否 | 最多返回行数,默认 100,上限 200;超出截断并以 truncated 标记。 |
调用示例
{
"sql": "示例",
"database": "",
"params": null,
"limit": 100
}
MysqlExecute
MySql写操作 · 分类 数据库 · 风险 high
对 MySQL 执行单条写 SQL(DML/表级 DDL)。高风险,在执行前要求用户确认。 系统库写入与库级/用户级 DDL 拒绝。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
sql | string | 是 | 单条写 SQL,含 %s 占位符时必须以 params 提供绑定值。 |
database | string | 是 | 目标库名,必填。 |
params | array<string, integer, number, boolean> | 否 | %s 占位符的绑定值列表,sql 含 %s 时必填。 |
confirm | boolean | 否 | 首次调用必须为 false,仅建立确认记录且不会执行。收到 waiting_confirm 后必须停止并询问用户。只有收到一条后续用户消息明确同意,才可使用完全相同的业务参数设置为 true。 |
调用示例
{
"sql": "示例",
"database": "示例",
"params": null,
"confirm": false
}
服务
ServiceStatus
获取服务状态 · 分类 服务 · 风险 low
查询服务的安装与运行状态。只读,不改变系统状态。
不传时返回所有支持的服务(nginx、apache、mysql、redis、pure-ftpd、memcached、mongodb + 已装 php-fpm 版本)。 支持别名(httpd/apache2→apache、mysqld/mariadb/mariadbd→mysql);yum/apt 安装的服务同样可识别。 未安装返回 status=not_installed,不误报 stopped;传入不支持的名称返回错误并列出支持范围。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
service_names | array<string, integer, number, boolean> | 否 | 服务名列表(如 ["nginx","mysql"]),留空返回全部。支持别名,自动去重。 |
调用示例
{
"service_names": null
}
ServiceControl
启停服务 · 分类 服务 · 风险 medium
启动/停止指定服务。中风险:会短暂影响该服务现有连接,调用前须向用户确认。
未安装的服务跳过(status=not_installed)。成功时 data.results 每项含 service、operated、running、status。 重启场景由模型自行组合:先 stop 再 start。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
service_names | array<string, integer, number, boolean> | 是 | 服务名列表,别名同 ServiceStatus。 |
action | string | 是 | start/stop 之一。 |
调用示例
{
"service_names": [],
"action": "示例"
}
Docker
ContainerList
容器列表 · 分类 Docker · 风险 low
获取容器列表(状态、IP、端口映射)。只读,不改变任何状态。
未安装或未运行时 data.installed=false 且 data.service_status 说明原因。 data.container_list 每项含 id、name(面板显示名)、status、image、ip、ports、cpu_usage。
入参
无入参,调用时传空对象 {}。
调用示例
{}
ContainerLogs
容器日志 · 分类 Docker · 风险 low
获取容器日志(尾部 lines 行)。只读。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
container | string | 是 | 容器名(面板显示名/真实名/ID)。 |
lines | integer | 否 | 取尾部行数,上限 1000。 |
调用示例
{
"container": "示例",
"lines": 200
}
ContainerInspect
容器详情 · 分类 Docker · 风险 low
查看容器详情(状态、镜像、重启策略、挂载、端口、网络)。只读。
用于排查异常:挂载是否在、端口映射、重启策略、健康状态等。环境变量可能含密码等敏感值,刻意不返回。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
container | string | 是 | 容器名(面板显示名/真实名/ID)。 |
调用示例
{
"container": "示例"
}
ComposeList
编排项目列表 · 分类 Docker · 风险 low
获取 docker-compose 项目列表(含模板与运行状态)。只读。
data.project_list 每项含 id、name、remark、status、path、containers。
入参
无入参,调用时传空对象 {}。
调用示例
{}
ImageList
镜像列表 · 分类 Docker · 风险 low
获取镜像列表(名称/标签/大小)。只读。
data.images_list 每项含 id、name、tags、size(字节);installed/service_status 说明 Docker 状态。
入参
无入参,调用时传空对象 {}。
调用示例
{}
VolumeList
存储卷列表 · 分类 Docker · 风险 low
获取存储卷列表(名称、驱动、挂载点、使用容器)。只读。
data.volume 每项含 Name、Driver、Mountpoint、container(使用该卷的容器名)。
入参
无入参,调用时传空对象 {}。
调用示例
{}
NetworkList
网络列表 · 分类 Docker · 风险 low
获取 docker 网络列表(名称、驱动、子网、网关)。只读。
data.network 每项含 id、name、driver、subnet、gateway。
入参
无入参,调用时传空对象 {}。
调用示例
{}
ContainerControl
容器启停 · 分类 Docker · 风险 medium
启动/停止/重启容器。中风险:会改变容器运行状态,调用前须向用户确认。 返回操作后的容器状态。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
container | string | 是 | 容器名(面板显示名/真实名/ID)。 |
action | string | 是 | 操作,仅支持 start/stop/restart。 |
调用示例
{
"container": "示例",
"action": "示例"
}
ContainerDelete
删除容器 · 分类 Docker · 风险 high
删除容器(强制,同步清理宝塔 name_map 与监控统计)。高风险:容器及数据不可恢复,调用前必须确认。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
container | string | 是 | 容器名(面板显示名/真实名/ID)。 |
调用示例
{
"container": "示例"
}
ImagePull
拉取镜像 · 分类 Docker · 风险 medium
拉取镜像。中风险。
该操作可能进入后台并返回 task_id;用 BashStatus 查询状态与结果,用 BashStop 停止任务。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
image | string | 是 | 镜像名,如 nginx:latest,可带仓库地址(如 registry.example.com/ns/img:tag)。 |
registry | string | 否 | 私有仓库地址,默认空即 Docker Hub。 |
username | string | 否 | 私有仓库用户名,与 password 成对填写。 |
password | string | 否 | 私有仓库密码,仅经 stdin 传入,不进审计。 |
调用示例
{
"image": "示例",
"registry": "",
"username": "",
"password": ""
}
系统
SystemInfo
获取系统信息 · 分类 系统 · 风险 low
获取服务器系统资源概况。只读。 返回 CPU(核数/使用率)、内存(总量/已用/使用率)、根分区磁盘(总量/已用/使用率)、系统负载(1/5/15 分钟)、运行时长(秒)、系统版本。
入参
无入参,调用时传空对象 {}。
调用示例
{}
软件
SoftwareList
获取软件列表 · 分类 软件 · 风险 low
获取宝塔软件商店清单及安装状态。只读。
data.software 每项含 name、title、version(当前已装版本,未装为空)、ps、setup、task(安装任务状态)、 versions(可选版本)。total 取自分页信息,未知时为 None。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
search | string | 否 | 按名称搜索。 |
page | integer | 否 | 页码,从 1 起。 |
page_size | integer | 否 | 每页数量,默认 20、最大 100。 |
调用示例
{
"search": "",
"page": 1,
"page_size": 20
}
SoftwareInstall
安装软件 · 分类 软件 · 风险 medium
提交软件安装(异步)。中风险。立即返回,用 SoftwareList 查看安装进度。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 软件名(nginx、mysql、php-7.4 等)。 |
version | string | 否 | 安装版本,留空时取 SoftwareList 返回的第一个版本(稳定版)。 |
type | string | 否 | 安装方式,默认 1。 |
调用示例
{
"name": "示例",
"version": "",
"type": "1"
}
SoftwareUninstall
卸载软件 · 分类 软件 · 风险 high
提交软件卸载(面板同步执行)。高风险:移除已装软件,调用前必须确认。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 软件名,同 SoftwareInstall。 |
version | string | 否 | 卸载版本,同 SoftwareInstall。 |
type | string | 否 | 保留兼容,卸载方式由面板内部确定。 |
调用示例
{
"name": "示例",
"version": "",
"type": "0"
}
防火墙
FirewallStatus
获取防火墙状态 · 分类 防火墙 · 风险 low
获取系统防火墙状态。只读。
返回 data:running 是否启用、type 类型(ufw/firewalld/iptables)、port_count 端口规则数、ping 是否响应 Ping。
入参
无入参,调用时传空对象 {}。
调用示例
{}
FirewallPortList
获取端口规则列表 · 分类 防火墙 · 风险 low
获取防火墙端口规则列表。只读,防火墙未启用时返回错误。
返回面板分页结构,规则项含 Port、Protocol、Address(来源)、Strategy(accept/drop)、Chain、brief。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
chain | string | 否 | ALL/INPUT/OUTPUT。 |
search | string | 否 | 按端口或备注模糊匹配。 |
page | integer | 否 | 页码,从 1 起。 |
page_size | integer | 否 | 每页数量,上限 100。 |
调用示例
{
"chain": "ALL",
"search": "",
"page": 1,
"page_size": 20
}
FirewallIpList
获取IP规则列表 · 分类 防火墙 · 风险 low
获取防火墙 IP 规则列表(放行或屏蔽的 IP)。只读,防火墙未启用时返回错误。
返回面板分页结构,规则项含 Address(IP/CIDR)、Strategy(accept/drop)、Chain、Family、brief。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
chain | string | 否 | ALL/INPUT/OUTPUT。 |
search | string | 否 | 按 IP 或备注模糊匹配。 |
page | integer | 否 | 页码,从 1 起。 |
page_size | integer | 否 | 每页数量,上限 100。 |
调用示例
{
"chain": "ALL",
"search": "",
"page": 1,
"page_size": 20
}
FirewallPortSet
设置端口规则 · 分类 防火墙 · 风险 high
添加或删除防火墙端口规则。高风险,调用前须向用户确认;防火墙未启用时返回错误。
删除时 protocol/address/strategy/chain 须与添加时一致,建议先 FirewallPortList 查询。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
operation | string | 是 | add 或 remove。 |
port | string | 是 | 端口或范围,如 80、8080-8090。 |
protocol | string | 否 | tcp/udp/tcp/udp,默认 tcp/udp。 |
address | string | 否 | 来源 IP,默认 all。 |
strategy | string | 否 | accept 或 drop。 |
chain | string | 否 | INPUT 或 OUTPUT。 |
brief | string | 否 | 备注。 |
调用示例
{
"operation": "示例",
"port": "示例",
"protocol": "tcp/udp",
"address": "all",
"strategy": "accept",
"chain": "INPUT",
"brief": ""
}
FirewallIpSet
设置IP规则 · 分类 防火墙 · 风险 high
添加或删除防火墙 IP 规则(放行或屏蔽某 IP 全部访问)。高风险,调用前须向用户确认;防火墙未启用时返回错误。
删除时 strategy/chain/family 须与添加时一致,建议先 FirewallIpList 查询。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
operation | string | 是 | add 或 remove。 |
address | string | 是 | 目标 IP/CIDR(如 1.2.3.4),不支持 all。 |
strategy | string | 否 | accept 或 drop,默认 drop。 |
chain | string | 否 | INPUT 或 OUTPUT。 |
family | string | 否 | ipv4 或 ipv6。 |
brief | string | 否 | 备注。 |
调用示例
{
"operation": "示例",
"address": "示例",
"strategy": "drop",
"chain": "INPUT",
"family": "ipv4",
"brief": ""
}
Java
JavaJdk
管理JDK · 分类 Java · 风险 medium
管理本机 JDK(中风险:install/add_local 有副作用,list 只读)。
action=list 返回 data.jdks(每项 name/path/operation/is_current; operation: 0 未装 / 1 已装 / 2 系统自带 / 3 安装中)。 action=install 异步安装指定版本(提交面板任务队列),用 list 轮询 operation 3→1 确认完成。 action=add_local 登记本机已有但未被面板收录的 JDK 路径。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 否 | list/install/add_local,默认 list。 |
version | string | 否 | install 的版本号(如 jdk-17.0.8,可先用 list 确认)。 |
jdk_path | string | 否 | add_local 的 JDK 可执行文件路径(如 .../bin/java)。 |
调用示例
{
"action": "list",
"version": "",
"jdk_path": ""
}
JavaProjectCreate
分析并创建Java项目 · 分类 Java · 风险 medium
把本机 jar 部署成面板可管理 Java 项目(中风险:创建即注册并自动启动)。
analyze_only=true 只读分析(端口/生效配置/隐患),不创建;创建时复用分析补全缺失参数。 传 domains 时自动建 Nginx 反代(best-effort,失败 data.proxy_created=false,用 JavaProjectModify add_proxy 补,否则域名 403)。 缺省:port=jar 分析值、jdk_path=已装 JDK、project_cmd 自动拼装。成功 data 含上述参数 + analysis。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名(面板内唯一),必填。 |
jar_path | string | 否 | jar 绝对路径,必填。 |
jdk_path | string | 否 | JDK 根路径,可带 /bin/java;缺省自动选。 |
port | integer | 否 | 应用端口,缺省用 jar 分析值。 |
run_user | string | 否 | 运行用户,默认 www。 |
project_cmd | string | 否 | 完整启动命令,缺省自动拼装。 |
domains | array<string, integer, number, boolean> | 否 | 域名列表,'域名' 或 '域名:端口'。 |
ps | string | 否 | 备注。 |
analyze_only | boolean | 否 | true 只分析。 |
release_firewall | boolean | 否 | 是否放行端口防火墙。 |
proxy_path | string | 否 | 反代路由前缀,默认 '/';置空只绑域名。 |
调用示例
{
"project_name": "",
"jar_path": "",
"jdk_path": "",
"port": 0,
"run_user": "www",
"project_cmd": "",
"domains": null,
"ps": "",
"analyze_only": false,
"release_firewall": false,
"proxy_path": "/"
}
JavaProjectInfo
查看Java项目 · 分类 Java · 风险 low
查看面板管理的 Java 项目。只读。
project_name 留空返回全部项目列表(含运行态 pid/listen);给出时返回单项目详情: project_config(jar/JDK/启动命令/日志/域名/绑定状态)、pid、监听端口、ssl、log_files (应用日志 + nginx 访问/错误日志路径,供文件读取工具查看)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名,留空返回列表。 |
调用示例
{
"project_name": ""
}
JavaProjectControl
控制Java项目进程 · 分类 Java · 风险 medium
启动/停止/重启 Java 项目进程(中风险:会中断或拉起服务,执行前说明影响)。
已运行时启动/未运行时停止按面板语义返回(不视为错误)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(取自 JavaProjectInfo)。 |
action | string | 否 | start/stop/restart,默认 restart。 |
调用示例
{
"project_name": "示例",
"action": "restart"
}
JavaProjectModify
修改Java项目 · 分类 Java · 风险 medium
修改 Java 项目配置与域名(中风险:config 改后不会自动重启,下次重启才生效)。
action=config 改运行用户/JDK/jar/启动命令/守护状态(未传字段保留现值;改端口=改 project_cmd 的 --server.port=)。
add_domain/remove_domain 绑/删域名(至少保留一个);bind_extranet/unbind_extranet 开关外网映射
(只开外网不建反代,需再 add_proxy 才转发到应用);add_proxy 新增反代(proxy_port 必填,代理到
127.0.0.1:<proxy_port>,proxy_dir 默认 '/');remove_proxy 按 proxy_id 删;proxy_list 只读列反代。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名,必填。 |
action | string | 否 | config/add_domain/remove_domain/bind_extranet/unbind_extranet/ add_proxy/remove_proxy/proxy_list,默认 config。 |
run_user | string | 否 | config 改运行用户。 |
project_jdk | string | 否 | config 改 JDK 路径。 |
project_jar | string | 否 | config 改 jar 路径(须与 project_cmd 一致)。 |
project_cmd | string | 否 | config 改启动命令。 |
daemon_status | boolean | 否 | config 开关守护(崩溃自动拉起)。 |
ps | string | 否 | config 改备注(缺省保留现值)。 |
domains | array<string, integer, number, boolean> | 否 | add_domain/remove_domain 的域名列表。 |
proxy_port | integer | 否 | add_proxy 目标端口(应用端口)。 |
proxy_dir | string | 否 | add_proxy 路由前缀,默认 '/'。 |
proxy_id | string | 否 | remove_proxy 要删的反代 id(proxy_list 获取)。 |
调用示例
{
"project_name": "示例",
"action": "config",
"run_user": "",
"project_jdk": "",
"project_jar": "",
"project_cmd": "",
"daemon_status": null,
"ps": "",
"domains": null,
"proxy_port": 0,
"proxy_dir": "/",
"proxy_id": ""
}
JavaProjectDelete
删除Java项目 · 分类 Java · 风险 high
删除 Java 项目(高风险、不可逆,调用前必须确认)。
停止并移除守护进程、清理 pid/启动脚本/环境变量/日志、删面板项目与域名记录、移除 Nginx 反代;jar 源文件保留。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(先用 JavaProjectInfo 核对)。 |
调用示例
{
"project_name": "示例"
}
NodeJS
NodeVersion
管理Node版本 · 分类 NodeJS · 风险 medium
检测/浏览/安装 Node 版本与全局模块(中风险:install/module 有副作用,list/online 只读)。
action=list 返回 data.versions(已装版本 + 各版本 npm/yarn/pnpm/pm2 是否存在)、 data.plugin_installed(插件是否已装,缺则无法在线安装)与 data.default_version。 action=online 返回可安装版本(data.total 本地分页;每项含 version/lts/security/installed (setup==1 已装)/is_default;lts_only=true 只看稳定版;从新到旧排序),选好后用于 install。 action=install 装指定版本(如 v20.15.0),install_pm2/install_yarn 可顺带补全局模块(pm2 类型需要)。 action=module 给已装版本全局装 npm 模块(modules 逐个)。pm2 类型项目启动依赖该版本已全局装 pm2。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 否 | list/online/install/module,默认 list。 |
version | string | 否 | install/module 的版本号(如 v20.15.0)。 |
install_pm2 | boolean | 否 | install 顺带装该版本 pm2。 |
install_yarn | boolean | 否 | install 顺带装该版本 yarn。 |
lts_only | boolean | 否 | online 只看稳定版(LTS)。 |
page | integer | 否 | online 页码,从 1 起。 |
page_size | integer | 否 | online 每页条数,默认 20,上限 100。 |
modules | array<string, integer, number, boolean> | 否 | module 要装的模块名列表(如 ['pm2'])。 |
调用示例
{
"action": "list",
"version": "",
"install_pm2": false,
"install_yarn": false,
"lts_only": false,
"page": 1,
"page_size": 20,
"modules": null
}
NodeProjectCreate
分析并创建Node项目 · 分类 NodeJS · 风险 medium
把本机 Node 项目目录部署成面板可管理项目(nodejs/general/pm2,中风险:创建即注册并自动启动)。
analyze_only=true 只读分析(scripts/engines/依赖/node_modules/端口启发),不创建。 nodejs_version 三类型均必填(须已安装);绑外网(domains)必须给 port;install_deps=true 先装依赖。 pm2 类型自动确保该版本已全局装 pm2(缺则调插件装,data.pm2_auto_installed 标记)。 nodejs 类型 env 注入面板有缺陷(存了不生效),要环境变量用 general。成功 data.project 含 run/listen。 参数按类型:nodejs 用 project_script;general 用 project_file+project_args;pm2 用 project_file+cluster/watch/max_memory_limit。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_type | string | 否 | nodejs/general/pm2,默认 nodejs。 |
project_name | string | 否 | 项目名,必填。 |
project_cwd | string | 否 | 项目目录,必填。 |
project_script | string | 否 | nodejs 类型启动脚本。 |
project_file | string | 否 | general/pm2 启动文件路径。 |
project_args | string | 否 | general/pm2 启动参数。 |
nodejs_version | string | 否 | node 版本(如 v20.15.0),三类型必填。 |
pkg_manager | string | 否 | npm/yarn/pnpm,默认 npm。 |
run_user | string | 否 | 运行用户,默认 www。 |
port | integer | 否 | 端口,绑外网必给。 |
domains | array<string, integer, number, boolean> | 否 | '域名' 或 '域名:端口'。 |
env | string | 否 | 每行 key=value;nodejs 注入缺陷用 general。 |
cluster | integer | 否 | pm2 实例数,默认 1。 |
watch | boolean | 否 | pm2 自动重载。 |
max_memory_limit | integer | 否 | 内存上限 MB,0 用默认。 |
install_deps | boolean | 否 | 先装依赖。 |
release_firewall | boolean | 否 | 放行端口防火墙。 |
is_power_on | boolean | 否 | 开机自启,默认 true。 |
ps | string | 否 | 备注。 |
analyze_only | boolean | 否 | true 只分析。 |
调用示例
{
"project_type": "nodejs",
"project_name": "",
"project_cwd": "",
"project_script": "",
"project_file": "",
"project_args": "",
"nodejs_version": "",
"pkg_manager": "npm",
"run_user": "www",
"port": 0,
"domains": null,
"env": "",
"cluster": 1,
"watch": false,
"max_memory_limit": 0,
"install_deps": false,
"release_firewall": false,
"is_power_on": true,
"ps": "",
"analyze_only": false
}
NodeProjectInfo
查看Node项目 · 分类 NodeJS · 风险 low
查看面板管理的 Node 项目。只读。
project_name 留空返回全部项目列表(含运行态 run/listen);给出时返回单项目详情: project_config(类型/目录/脚本/node 版本/端口/域名/绑定状态)、run/pid、listen、ssl、 log_files(应用 + pm2 + nginx 日志路径,供文件读取工具查看)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名,留空返回列表。 |
调用示例
{
"project_name": ""
}
NodeProjectControl
控制Node项目进程 · 分类 NodeJS · 风险 medium
启动/停止/重启 Node 项目进程(中风险:会中断或拉起服务,执行前说明影响)。
自动识别项目类型(nodejs/general/pm2)分发到对应子模型;已运行时启动/未运行时停止按面板语义返回。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(取自 NodeProjectInfo)。 |
action | string | 否 | start/stop/restart,默认 restart。 |
调用示例
{
"project_name": "示例",
"action": "restart"
}
NodeProjectModify
修改Node项目 · 分类 NodeJS · 风险 medium
修改 Node 项目配置与域名(中风险:config 改后自动重启生效,pm2 重建 ecosystem)。
action=config 改启动脚本/文件/参数/node 版本/包管理器/端口/环境变量/运行用户/内存/开机自启/备注 (未传字段保留现值;改端口后已绑域名自动重写反代)。 action=add_domain/remove_domain 绑/删域名(至少保留一个)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名,必填。 |
action | string | 否 | config/add_domain/remove_domain,默认 config。 |
project_script | string | 否 | config 改 nodejs 类型启动脚本。 |
project_file | string | 否 | config 改 general/pm2 类型启动文件。 |
project_args | string | 否 | config 改启动参数。 |
nodejs_version | string | 否 | config 切换 node 版本(须已安装)。 |
pkg_manager | string | 否 | config 改 npm/yarn/pnpm。 |
port | integer | 否 | config 改端口(0 不修改)。 |
env | string | 否 | config 改环境变量(每行 key=value;nodejs 注入缺陷见创建工具)。 |
run_user | string | 否 | config 改运行用户。 |
max_memory_limit | integer | 否 | config 改内存上限 MB(0 不修改)。 |
is_power_on | boolean | 否 | config 改开机自启。 |
ps | string | 否 | config 改备注。 |
watch | boolean | 否 | config 改 pm2 自动重载。 |
cluster | integer | 否 | config 改 pm2 实例数(0 不修改)。 |
domains | array<string, integer, number, boolean> | 否 | add_domain/remove_domain 的域名列表。 |
调用示例
{
"project_name": "示例",
"action": "config",
"project_script": "",
"project_file": "",
"project_args": "",
"nodejs_version": "",
"pkg_manager": "",
"port": 0,
"env": "",
"run_user": "",
"max_memory_limit": 0,
"is_power_on": null,
"ps": "",
"watch": null,
"cluster": 0,
"domains": null
}
NodeProjectDelete
删除Node项目 · 分类 NodeJS · 风险 high
删除 Node 项目(高风险、不可逆,调用前必须确认)。
停止进程(pm2 先 pm2 delete)、清理 pid/启动脚本/日志、删面板项目与域名记录、移除 Nginx 反代;项目目录与源码保留。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(先用 NodeProjectInfo 核对)。 |
调用示例
{
"project_name": "示例"
}
Python
PythonVersion
管理Python版本 · 分类 Python · 风险 medium
查看/浏览/移除本机 Python 解释器版本(中风险:remove 有副作用,list/online 只读)。
action=list 返回 data.sdk(all/streamline/pypy,每项 version/type/installed/install_command)、 data.installed 已装版本与 data.default_python。 action=online 返回云端可安装版本(data.versions 本地分页 data.total;is_all=false 只留每小版本最新 streamline;is_pypy=true 看 PyPy;每项 install_command 可直接交 Bash 后台执行)。 action=remove 移除已装版本(multi_remove_env,被项目占用会拒绝)。 安装勿用本工具:优先预编译(下载解压即用,快),无预编译包/特殊参数回落源码编译(慢)。用 Bash 后台执行 install_command(run_in_background=true)→ BashStatus 轮询 → 完成后 PythonEnv list 确认。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 否 | list/online/remove,默认 list。 |
version | string | 否 | remove 的版本号(如 3.12.3)。 |
refresh | boolean | 否 | list/online 强制刷新云端版本缓存。 |
is_all | boolean | 否 | online 显示全部版本(含同小版本多个补丁版)。 |
is_pypy | boolean | 否 | online 查 PyPy 版本。 |
page | integer | 否 | online 页码,从 1 起。 |
page_size | integer | 否 | online 每页条数,默认 20,上限 100。 |
调用示例
{
"action": "list",
"version": "",
"refresh": false,
"is_all": false,
"is_pypy": false,
"page": 1,
"page_size": 20
}
PythonEnv
管理虚拟环境与包 · 分类 Python · 风险 medium
管理面板 Python 虚拟环境与包(pip)(中风险:create/remove/set_default/package 有副作用)。
action=list 返回 data.env_list(每项 bin_path/version/env_type/source/can_create/can_remove/projects
占用项目)与 data.default_python、data.source_priority。
action=create 基于系统(system)型 Python 建虚拟环境(venv_name+python_bin),落 /www/server/pyporject_evn/<name>。
源优先级(list 返回 source/source_priority):① panel_installed 面板安装版本(推荐)→② system 系统
Python→③ panel_pyenv 面板自带 pyenv(精简打包,不适合普通用户,会被拒绝)。已规避面板 create_venv_sync
假成功缺陷(走 create_venv + 磁盘校验,不传 call_log)。
action=remove 移除虚拟环境(被项目使用/conda/非面板路径会拒绝);set_default 设置命令行默认 Python
(path=python_bin;空串关闭);package 在虚拟环境做 pip 管理(python_bin+package_action
install/uninstall/list;install 可带 package_version/pip_source;list 返回已装包)。慢,日志尾部回传。
建 Python 项目前必须先有可用虚拟环境(Create 要求 can_use_directly)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 否 | list/create/remove/set_default/package,默认 list。 |
venv_name | string | 否 | create 的虚拟环境名(唯一)。 |
python_bin | string | 否 | create 源环境 / package 目标环境的 python 路径。 |
ps | string | 否 | create 的环境备注。 |
path | string | 否 | remove/set_default 的 python_bin。 |
package_action | string | 否 | package 的 install/uninstall/list,默认 install。 |
package_name | string | 否 | package install/uninstall 的包名。 |
package_version | string | 否 | package install 的版本约束(可选)。 |
pip_source | string | 否 | package install 的 pip 源 URL(可选,默认阿里云镜像)。 |
调用示例
{
"action": "list",
"venv_name": "",
"python_bin": "",
"ps": "",
"path": "",
"package_action": "install",
"package_name": "",
"package_version": "",
"pip_source": ""
}
PythonProjectCreate
分析并创建Python项目 · 分类 Python · 风险 medium
把本机 Python 项目目录部署成面板可管理项目(中风险:创建即注册并进入环境准备)。
analyze_only=true 只读分析(framework/runfile/xsgi/call_app/requirement/端口启发),不创建。
创建 = 面板 CreateProject 注册 → 后台异步环境准备(装托管依赖+requirements+生成启动脚本+尝试启动)
→ 立即返回。创建返回≠启动成功:必须 PythonProjectInfo 轮询 prep_status 到 complete,再验 run/listen/日志。
前置:project_path 须已有可用虚拟环境 python_bin(can_use_directly,PythonEnv 建);创建前先 analyze_only。
stype 仅 uwsgi/gunicorn/command(python 直跑用 command:project_cmd 支持占位符 {python_bin}/{rfile}/{path}/{parm})。
uwsgi/gunicorn 需 rfile+call_app+port;command 需 project_cmd(port 可留 0)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名,必填。 |
project_path | string | 否 | 项目目录(须已存在、不含空格),必填。 |
python_bin | string | 否 | 虚拟环境 python 路径,必填。 |
stype | string | 否 | uwsgi/gunicorn/command,默认 uwsgi。 |
port | integer | 否 | 端口,uwsgi/gunicorn 必填;command 可留 0。 |
xsgi | string | 否 | wsgi/asgi,默认 wsgi。 |
rfile | string | 否 | uwsgi/gunicorn 启动文件绝对路径。 |
call_app | string | 否 | 可调用对象名,默认 app。 |
framework | string | 否 | 框架,默认 python。 |
project_cmd | string | 否 | command 启动命令,占位符由工具替换,如 "{python_bin} -u {rfile}"。 |
user | string | 否 | 运行用户,默认 root。 |
env_list | array<object> | 否 | 环境变量列表,每项 {"k","v"}(如 [{"k":"PORT","v":"9000"}];"K=V" 会被 schema 拒)。 |
env_file | string | 否 | 环境变量文件路径(可选)。 |
requirement_path | string | 否 | requirements 文件路径(可选,准备阶段自动装)。 |
initialize | string | 否 | 环境准备阶段的初始化命令(可选)。 |
auto_run | boolean | 否 | 开机自启,默认 false。 |
processes | integer | 否 | 进程数,默认 4。 |
threads | integer | 否 | 线程数,默认 2。 |
release_firewall | boolean | 否 | 放行端口防火墙,默认 false。 |
analyze_only | boolean | 否 | true 只分析。 |
调用示例
{
"project_name": "",
"project_path": "",
"python_bin": "",
"stype": "uwsgi",
"port": 0,
"xsgi": "wsgi",
"rfile": "",
"call_app": "app",
"framework": "python",
"project_cmd": "",
"user": "root",
"env_list": null,
"env_file": "",
"requirement_path": "",
"initialize": "",
"auto_run": false,
"processes": 4,
"threads": 2,
"release_firewall": false,
"analyze_only": false
}
PythonProjectInfo
查看Python项目 · 分类 Python · 风险 low
查看面板管理的 Python 项目。只读。
project_name 留空返回全部项目列表(含运行态 run/listen);给出时返回单项目详情: project_config(stype/目录/python_bin/端口/域名/env)、prep_status(环境准备 running/complete/failure)、 run/pids/listen/cpu/mem、python_bin/python_version、services(关联服务 pid/ports)、log_files (应用日志 + 环境准备日志 + 关联服务日志目录);include_packages=true 附虚拟环境已装包。 排错:prep_status=failure 读环境准备日志;run=false 读 stype 对应应用日志。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名,留空返回列表。 |
include_packages | boolean | 否 | 详情是否附带已装包列表。 |
调用示例
{
"project_name": "",
"include_packages": false
}
PythonProjectControl
控制Python项目进程 · 分类 Python · 风险 medium
启动/停止/重启 Python 项目(中风险:会中断或拉起服务,执行前说明影响)。
action=start/stop/restart 走面板 StartProject/StopProject/RestartProject(主服务+关联进程一起启停), 返回"指令已执行",需再用 PythonProjectInfo 核验实际状态;action=start_main/stop_main 只启/停主服务 (同步返回实际结果)。注意:环境准备中(prep_status=running)面板会拒绝启停。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(取自 PythonProjectInfo)。 |
action | string | 否 | start/stop/restart/start_main/stop_main,默认 restart。 |
调用示例
{
"project_name": "示例",
"action": "restart"
}
PythonProjectService
管理项目关联进程 · 分类 Python · 风险 medium
管理 Python 项目关联进程(如 celery worker)。中风险:启停会中断进程。
关联进程存于 project_config.services(每条 {sid,name,command,level,log_type}),主服务是隐式 sid='main'
(用 PythonProjectControl 启停)。命令以 celery 开头自动按 CeleryService 匹配 PID。
action=list 返回全部服务(含主服务)pid/ports;add 注册(name 唯一+command 唯一,name 不能含空白/$/^/反引号);
start/stop/restart 按 sid 启停;remove 停止并删除(面板 remove_service 本身不停进程,本工具先 stop 再删,
避免孤儿进程);log 查看服务日志(data.log)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名,必填。 |
action | string | 否 | list/add/start/stop/restart/remove/log,默认 list。 |
sid | string | 否 | start/stop/restart/remove/log 的服务 id(list 返回)。 |
name | string | 否 | add 的服务名。 |
command | string | 否 | add 的启动命令(如 "celery -A demo worker")。 |
level | integer | 否 | add 的启动顺序优先级,默认 11(主服务为 10)。 |
log_type | string | 否 | add 的日志模式 append/error/off,默认 append。 |
调用示例
{
"project_name": "示例",
"action": "list",
"sid": "",
"name": "",
"command": "",
"level": 11,
"log_type": "append"
}
PythonProjectModify
修改Python项目 · 分类 Python · 风险 medium
修改 Python 项目配置、域名与反代(中风险:config 改后停止并重启项目)。
action=config 改 stype/xsgi/rfile/call_app/project_cmd/parm、端口/用户/进程线程/开机自启/日志/环境变量 (未传字段保留现值,改后自动重启生效)。 action=add_domain 绑域名(面板对已存在域返回"已存在"=实际已绑定、非失败,本工具按逐域如实上报)。 action=remove_domain 删域名(至少保留一个)。注意:面板移除域名会连带停止项目服务(主+协同,与是否剩 最后一个无关,已实证),本工具不自动恢复,移除后须 PythonProjectInfo 复核并在需要时手动重启。 action=bind_extranet/unbind_extranet 开关外网映射(反代 add_proxy 需先开外网映射)。 action=add_proxy 更新/新增 path→port 反代(proxy_path+proxy_port,写 proxy_info 并重写 nginx)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名,必填。 |
action | string | 否 | config/add_domain/remove_domain/bind_extranet/unbind_extranet/add_proxy,默认 config。 |
stype | string | 否 | config 改 uwsgi/gunicorn/python/command。 |
xsgi | string | 否 | config 改 wsgi/asgi。 |
rfile | string | 否 | config 改启动文件(须在项目目录下)。 |
call_app | string | 否 | config 改可调用对象名。 |
project_cmd | string | 否 | config 改 command 启动命令(占位符由工具替换,如 "{python_bin} -u {rfile}")。 |
parm | string | 否 | config 改 python 直跑附加参数。 |
port | integer | 否 | config 改端口(0 不修改)。 |
user | string | 否 | config 改运行用户。 |
processes | integer | 否 | config 改进程数(0 不修改)。 |
threads | integer | 否 | config 改线程数(0 不修改)。 |
auto_run | boolean | 否 | config 改开机自启。 |
logpath | string | 否 | config 改日志目录。 |
loglevel | string | 否 | config 改日志等级(gunicorn)。 |
is_http | boolean | 否 | config 改 uwsgi 是否走 http。 |
env_list | array<object> | 否 | config 替换环境变量列表(每项 {"k","v"};传 [] 清空;"K=V" 会被 schema 拒)。 |
env_file | string | 否 | config 改环境变量文件。 |
domains | array<string, integer, number, boolean> | 否 | add_domain/remove_domain 的域名列表。 |
proxy_path | string | 否 | add_proxy 路由前缀,默认 /。 |
proxy_port | integer | 否 | add_proxy 后端端口,必填。 |
调用示例
{
"project_name": "示例",
"action": "config",
"stype": "",
"xsgi": "",
"rfile": "",
"call_app": "",
"project_cmd": "",
"parm": "",
"port": 0,
"user": "",
"processes": 0,
"threads": 0,
"auto_run": null,
"logpath": "",
"loglevel": "",
"is_http": null,
"env_list": null,
"env_file": "",
"domains": null,
"proxy_path": "/",
"proxy_port": 0
}
PythonProjectDelete
删除Python项目 · 分类 Python · 风险 high
删除 Python 项目(高风险、不可逆,调用前必须确认)。
停止进程(含关联进程)、清理 pid/启动脚本/日志/nginx conf/反代、删面板项目与域名记录;项目目录与源码保留。
删除不删除虚拟环境:venv 与项目非强绑定(可复用/共享),面板接口逻辑即如此;如需移除用
PythonEnv(action='remove', path=<python_bin>)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(先用 PythonProjectInfo 核对)。 |
调用示例
{
"project_name": "示例"
}
Go
GoVersion
管理Go环境 · 分类 Go · 风险 medium
管理本机 Go SDK(中风险:install/use/uninstall/goproxy 有副作用,list 只读)。
action=list 返回 data.installed(已装版本)、data.available(可安装版本,分页:data.total/page/
page_size;每项含 install_command)、data.used(当前使用版本)与 data.goproxy(现状 + 常用源列表)。
stable_only=true 只看每个小版本最新的稳定版(忽略历史/补丁版,列表更短);page/page_size 翻页
(page_size 上限 100)。可用版本较多,分页取数,避免结果超限。
action=install 不同步安装:校验版本在可装列表后返回 install_command + install_hint,
需用 Bash 后台执行防超时(Bash(command=install_command, run_in_background=true) → BashStatus 轮询;
一次只装一个版本)。
action=use 切换当前使用版本(软链 /usr/local/btgo);action=uninstall 卸载指定版本;
action=goproxy 设置 GOPROXY(如 https://goproxy.cn,direct)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 否 | list/install/use/uninstall/goproxy,默认 list。 |
version | string | 否 | install/use/uninstall 的版本号(如 go1.22.4,可省 'go' 前缀)。 |
goproxy | string | 否 | goproxy 时要设置的代理地址(list 的 data.goproxy.list 有常用源)。 |
stable_only | boolean | 否 | list 只看每小版本最新稳定版(默认 false 看全部)。 |
page | integer | 否 | list 页码,从 1 起。 |
page_size | integer | 否 | list 每页条数,默认 20,上限 100。 |
调用示例
{
"action": "list",
"version": "",
"goproxy": "",
"stable_only": false,
"page": 1,
"page_size": 20
}
GoProjectCreate
创建Go项目 · 分类 Go · 风险 medium
把编译好的 Go 二进制部署成面板可管理项目(中风险:创建即注册并自动启动)。
Go 是编译产物,无源码分析步骤:给二进制路径 + 端口 + 启动命令(缺省=二进制本身)直接注册。 创建即同步启动(nohup 脚本 + pid 文件,无 systemd/pm2);成功后用 GoProjectInfo 核验 run/listen。 传 domains 自动开启外网映射(bind_extranet=1);项目目录与二进制文件不会被删除。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名(字母/数字/下划线,面板内唯一),必填。 |
project_exe | string | 否 | Go 可执行文件绝对路径,必填。 |
port | integer | 否 | 应用监听端口(10-65535),必填。 |
project_cmd | string | 否 | 启动命令,缺省=project_exe。 |
run_user | string | 否 | 运行用户,默认 www。 |
domains | array<string, integer, number, boolean> | 否 | 绑定域名列表,'域名' 或 '域名:端口'(给则开启外网映射)。 |
env_list | array<object> | 否 | 环境变量列表,每项 {"k","v"}(如 [{"k":"PORT","v":"9000"}];"K=V" 会被 schema 拒)。 |
env_file | string | 否 | 环境变量文件绝对路径(可选)。 |
is_power_on | boolean | 否 | 开机自启,默认 true。 |
ps | string | 否 | 备注。 |
release_firewall | boolean | 否 | 是否放行端口防火墙。 |
调用示例
{
"project_name": "",
"project_exe": "",
"port": 0,
"project_cmd": "",
"run_user": "www",
"domains": null,
"env_list": null,
"env_file": "",
"is_power_on": true,
"ps": "",
"release_firewall": false
}
GoProjectInfo
查看Go项目 · 分类 Go · 风险 low
查看面板管理的 Go 项目。只读。
project_name 留空返回全部项目列表(含运行态 run/listen);给出时返回单项目详情: project_config(exe/启动命令/端口/运行用户/域名/环境变量)、run/listen/ssl、log_files (应用日志 + nginx 访问/错误日志路径,供文件读取工具查看)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 否 | 项目名,留空返回列表。 |
调用示例
{
"project_name": ""
}
GoProjectControl
控制Go项目进程 · 分类 Go · 风险 medium
启动/停止/重启 Go 项目进程(中风险:会中断或拉起服务,执行前说明影响)。
Go 进程为 nohup 脚本 + pid 文件管理(无守护);未启动时 stop/restart 面板返回"项目未启动",如实上报。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(取自 GoProjectInfo)。 |
action | string | 否 | start/stop/restart,默认 restart。 |
调用示例
{
"project_name": "示例",
"action": "restart"
}
GoProjectModify
修改Go项目 · 分类 Go · 风险 medium
修改 Go 项目配置与域名(中风险:config 改后自动重启生效)。
action=config 改可执行文件/启动命令/端口/运行用户/开机自启/环境变量/备注(未传字段保留现值)。 面板 modify_project 无条件读 project_exe 与 project_ps——本工具始终带上现值,不会漏传。 action=add_domain/remove_domain 绑/删域名(面板保证至少保留一个域名)。 action=bind_extranet/unbind_extranet 开关外网映射(需先有域名)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名,必填。 |
action | string | 否 | config/add_domain/remove_domain/bind_extranet/unbind_extranet,默认 config。 |
project_exe | string | 否 | config 改可执行文件绝对路径。 |
project_cmd | string | 否 | config 改启动命令。 |
port | integer | 否 | config 改端口(0 不修改)。 |
run_user | string | 否 | config 改运行用户。 |
is_power_on | boolean | 否 | config 改开机自启。 |
env_list | array<object> | 否 | config 替换环境变量列表(每项 {"k","v"};面板仅在非空时生效)。 |
env_file | string | 否 | config 改环境变量文件。 |
ps | string | 否 | config 改备注。 |
domains | array<string, integer, number, boolean> | 否 | add_domain/remove_domain 的域名列表。 |
调用示例
{
"project_name": "示例",
"action": "config",
"project_exe": "",
"project_cmd": "",
"port": 0,
"run_user": "",
"is_power_on": null,
"env_list": null,
"env_file": "",
"ps": "",
"domains": null
}
GoProjectDelete
删除Go项目 · 分类 Go · 风险 high
删除 Go 项目(高风险、不可逆,调用前必须确认)。
停止进程、清理 pid/启动脚本/日志、删面板项目与域名记录、移除 Nginx 反代;项目目录与二进制文件保留。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
project_name | string | 是 | 项目名(先用 GoProjectInfo 核对)。 |
调用示例
{
"project_name": "示例"
}
反向代理
ProxyProjectCreate
创建反代项目 · 分类 反向代理 · 风险 medium
创建反向代理项目(中风险:写入 nginx 配置、放行防火墙端口并重载服务)。
一个反代项目 = 一个面板站点(project_type=proxy),按主域名生成站点名,可带多域名与端口 (域名形如 'example.com' 或 'example.com:8080',非 80 端口会成为监听端口)。proxy_pass 为目标 上游(http/https 或 unix socket),proxy_path 为前缀(默认 /)。创建即生效,成功后用 ProxyProjectInfo 确认站点名。
安全提示:若 proxy_pass 指向本机 bt_agent_mcp 服务自身端口(127.0.0.1:<resolve_port()>,
默认 8765),返回 data.warning 会给出风险说明(可能把 MCP 暴露给该反代域名并绕过来源 IP 白名单)。
确需经反代暴露 MCP 时,请在该反代 conf 设置 proxy_set_header X-Real-IP $remote_addr; 并把真实
客户端 IP 加入白名单。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
domains | array<string, integer, number, boolean> | 否 | 域名列表(可带 :port),必填。 |
proxy_pass | string | 否 | 代理目标,如 http://127.0.0.1:8080、https://api.example.com 或 /tmp/app.sock,必填。 |
proxy_path | string | 否 | 代理前缀,默认 /。 |
proxy_host | string | 否 | 转发 Host 头,默认 $http_host。 |
proxy_type | string | 否 | http 或 unix,默认 http。 |
remark | string | 否 | 备注。 |
调用示例
{
"domains": null,
"proxy_pass": "",
"proxy_path": "/",
"proxy_host": "$http_host",
"proxy_type": "http",
"remark": ""
}
ProxyProjectInfo
查看反代项目 · 分类 反向代理 · 风险 low
查看反向代理项目。只读。
site_name 留空返回全部项目列表(data.sites 每项含 name/path/status/ps/ssl 天数/proxy_pass/healthy, 支持 search 模糊搜索 + 分页);给出时返回单项目详情:站点字段 + 配置摘要(域名列表/监听端口/HTTPS 端口/SSL 与强制 HTTPS 状态/IP 黑白名单/URL 规则 proxy_info 精简:proxy_path/proxy_pass/proxy_host/ websocket/超时/备注)+ nginx 配置与日志文件路径(config_file/proxy_config_file/log_files)—— 配置文件内容用文件读取工具按路径自行查看。若某条 URL 规则指向本机 bt_agent_mcp 自身端口, 返回 data.warning 会给出风险提示(来源 IP 白名单可能被绕过,仅剩 API Key 鉴权)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 否 | 反代项目站点名,留空返回列表。 |
search | string | 否 | 列表模式按站点名模糊搜索。 |
page | integer | 否 | 列表模式页码,从 1 开始。 |
page_size | integer | 否 | 列表模式每页数量,默认 20、最大 100。 |
调用示例
{
"site_name": "",
"search": "",
"page": 1,
"page_size": 20
}
ProxyProjectModify
修改反代项目 · 分类 反向代理 · 风险 medium
修改反代项目(中风险:有副作用)。
action 说明:
- remark: 改项目备注(remark)。
- start/stop: 启用/停止反代站点(停止后返回停机页)。
- add_domain: 增加绑定域名(domains,可带 :port;面板会同步 nginx 配置与反代 JSON)。
- remove_domain: 删除绑定域名(domains,至少保留一个)。
- force_https: 开启/关闭强制 HTTPS 跳转(force_https true=开、false=关)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 反代项目站点名,必填。 |
action | string | 否 | remark/start/stop/add_domain/remove_domain/force_https,默认 remark。 |
remark | string | 否 | remark 时的备注。 |
domains | array<string, integer, number, boolean> | 否 | add_domain/remove_domain 的域名列表。 |
force_https | boolean | 否 | force_https 时是否开启强制 HTTPS。 |
调用示例
{
"site_name": "示例",
"action": "remark",
"remark": "",
"domains": null,
"force_https": null
}
ProxyWriteConfig
修改反代配置 · 分类 反向代理 · 风险 medium
直接编辑反代项目的 nginx 配置文件(中风险:改错可能导致站点异常,保存后请用 Bash nginx -t 验证)。
编辑起点:先用 ProxyProjectInfo 拿 config_file 路径,用文件读取工具 Read 当前配置,修改后把完整 conf 全文回传本工具。面板写 conf 后会解析并自动同步反向代理 JSON(proxy_info/域名/端口等)。 若配置有误导致站点异常,可用面板历史版本回滚或 Read 基线恢复后重新保存。
安全提示:若 conf 里某条 proxy_pass 指向本机 bt_agent_mcp 服务自身端口(127.0.0.1:<resolve_port()>,
默认 8765),返回 data.warning 会给出风险说明(可能把 MCP 暴露给该反代域名并绕过来源 IP 白名单);
确需如此请在对应 location 设置 proxy_set_header X-Real-IP $remote_addr; 并把真实客户端 IP 加入白名单。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 反代项目站点名,必填。 |
conf_data | string | 否 | 完整 nginx 配置文件内容(覆盖保存),必填。 |
调用示例
{
"site_name": "示例",
"conf_data": ""
}
ProxyProjectDelete
删除反代项目 · 分类 反向代理 · 风险 high
删除反向代理项目(高风险、不可逆,调用前必须确认)。
删除 nginx 配置/日志/反代 JSON 目录与面板站点/域名记录;remove_path=true 时连同
/www/wwwroot/<name> 站点目录一并删除。反代 JSON 与 nginx 配置删除后不可恢复。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 反代项目站点名(先用 ProxyProjectInfo 核对)。 |
remove_path | boolean | 否 | 是否同时删除站点根目录,默认 false。 |
调用示例
{
"site_name": "示例",
"remove_path": false
}
HTML
HtmlProjectInfo
查看HTML项目 · 分类 HTML · 风险 low
查看面板管理的 Html(静态)项目。只读。
site_name 留空返回全部项目列表(data.sites 每项含 name/path/status/ps/type_id/ssl 剩余天数,支持 search 按站点名/备注模糊搜索 + 分页);给出时返回单项目详情:站点字段 + 域名列表 + SSL 状态 + 运行目录 + nginx/apache/rewrite 配置文件与日志文件路径(config_file/apache_config_file/rewrite_file/ log_files)——配置文件内容用文件读取工具按路径自行查看。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 否 | 项目站点名(主域名),留空返回列表。 |
search | string | 否 | 列表模式按站点名/备注模糊搜索。 |
page | integer | 否 | 列表模式页码,从 1 开始。 |
page_size | integer | 否 | 列表模式每页数量,默认 20、最大 100。 |
调用示例
{
"site_name": "",
"search": "",
"page": 1,
"page_size": 20
}
HtmlProjectCreate
创建HTML项目 · 分类 HTML · 风险 medium
创建 Html(静态)项目(中风险:写入 nginx/apache 配置、非 80 端口放行防火墙并重载服务)。
一个 Html 项目 = 一个面板站点(project_type=html),按主域名生成站点名,可带多域名与端口(域名形如 'example.com' 或 'example.com:8080',非 80 端口会成为监听端口)。path 为网站根目录绝对路径(可指向 已有前端目录,目录不存在会自动创建)。创建即生效,成功后用 HtmlProjectInfo 确认站点名。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
domains | array<string, integer, number, boolean> | 否 | 域名列表(可带 :port),首项为主域名,必填。 |
path | string | 否 | 网站根目录绝对路径(如 /www/wwwroot/demo.example.com),必填。 |
ps | string | 否 | 项目备注。 |
type_id | integer | 否 | 项目分类 ID,默认 0。 |
调用示例
{
"domains": null,
"path": "",
"ps": "",
"type_id": 0
}
HtmlProjectModify
修改HTML项目 · 分类 HTML · 风险 medium
修改 Html(静态)项目(中风险:有副作用)。
action 说明:
- remark: 改项目备注(remark)。
- start/stop: 启用/停止站点(静态站无重启概念)。
- add_domain: 增加绑定域名(domains 列表,可带 :port;面板同步 nginx/apache 配置与 domain 表)。
- remove_domain: 删除绑定域名(domain,可带 :port;至少保留一个)。
- change_path: 修改网站根目录(path 绝对路径,目标目录必须已存在)。
- set_run_path: 设置运行目录(run_path 为根目录下的相对子目录,如 /dist,'/' 或空=根目录)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 项目站点名,必填。 |
action | string | 否 | remark/start/stop/add_domain/remove_domain/change_path/set_run_path,默认 remark。 |
remark | string | 否 | remark 时的备注。 |
domains | array<string, integer, number, boolean> | 否 | add_domain 的域名列表。 |
domain | string | 否 | remove_domain 的域名(可带 :port)。 |
path | string | 否 | change_path 的目标网站根目录(绝对路径,须已存在)。 |
run_path | string | 否 | set_run_path 的相对子目录(如 /dist)。 |
调用示例
{
"site_name": "示例",
"action": "remark",
"remark": "",
"domains": null,
"domain": "",
"path": "",
"run_path": ""
}
HtmlProjectDelete
删除HTML项目 · 分类 HTML · 风险 high
删除 Html(静态)项目(高风险、不可逆,调用前必须确认)。
删除 nginx/apache/rewrite 配置、放行记录与面板站点/域名记录;不删除 /www/wwwroot 站点目录 (如需删除目录请用文件系统工具另行处理)。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
site_name | string | 是 | 项目站点名(先用 HtmlProjectInfo 核对)。 |
调用示例
{
"site_name": "示例"
}
SSH
SSHInfo
查看SSH · 分类 SSH · 风险 low
查看 SSH 服务状态与登录配置。只读。
data 含 sshd_status 与 config(root 登录方式、密码/密钥登录开关、密钥类型)。
入参
无入参,调用时传空对象 {}。
调用示例
{}
SSHConfig
配置SSH · 分类 SSH · 风险 high
管理 SSH 密钥认证或重启 sshd。中风险:生成密钥时保留密码认证(双通道),关闭密钥时自动恢复密码。
action 说明:
- key: value 填密钥类型(ed25519/ecdsa/rsa),生成密钥对并启用密钥认证,保留密码认证;
- key_off: value 忽略,关闭密钥认证并恢复密码认证;
- restart: value 忽略,重启 sshd。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | key/key_off/restart 之一。 |
value | string | 否 | 密钥类型(仅 key 时需要)。 |
调用示例
{
"action": "示例",
"value": ""
}
SSHIntrusion
查看异常登录 · 分类 SSH · 风险 low
查看 SSH 异常登录统计(爆破情况)。只读。
data.intrusion 含累计与今日的登录失败/成功次数,用于判断是否遭受爆破攻击。
入参
无入参,调用时传空对象 {}。
调用示例
{}
安全
SecurityCheck
安全检查 · 分类 安全 · 风险 low
检查服务器安全状态:安全评分、10 项安全检查项(含状态与修复建议)、SSH 危险命令历史。只读。
安全检查项包括 SSH 端口、密码策略、登录告警、面板 SSL 等,每项含 status(是否通过)、suggest(修复建议)。 修复操作须用 Bash 执行(高风险操作须向用户确认)。
入参
无入参,调用时传空对象 {}。
调用示例
{}
计划任务
GetCrontab
获取计划任务列表 · 分类 计划任务 · 风险 low
获取面板计划任务列表。只读。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
search | string | 否 | 按任务名/脚本内容模糊搜索。 |
category | string | 否 | 过滤:system(系统)/enabled(启用)/disabled(停用)/分类 id,空=全部。 |
page | integer | 否 | 页码,默认 1。 |
page_size | integer | 否 | 每页条数,默认 0=全部。 |
调用示例
{
"search": "",
"category": "",
"page": 1,
"page_size": 0
}
ManageCrontab
计划任务管理 · 分类 计划任务 · 风险 high
管理计划任务:add 创建 / del 删除。高风险。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | add创建 / del删除 |
id | integer | 否 | 任务id,del必填,取自GetCrontab |
name | string | 否 | 任务名,add必填 |
schedule.type | string | 否 | 周期类型:minute-n每N分/hour每小时/hour-n每N时/day每天/day-n每N天/week每周/month每月/second-n每N秒;各类型需填字段:minute-n→interval, hour→minute, hour-n→interval+minute, day→hour+minute, day-n→interval+hour+minute, week→weekday+hour+minute, month→interval+hour+minute, second-n→interval |
task.type | string | 否 | 任务类型:shell执行命令/site备份网站/path备份目录/database备份数据库/logs日志切割/log_cleanup日志清理;target填对象:site→站点名, path→目录路径, database→库名, logs/log_cleanup→站点或目录 |
task.command | string | 否 | 命令/脚本,shell必填 |
task.target | string | 否 | 备份/日志对象(站点/目录/库名),备份日志类必填 |
调用示例
{
"action": "add",
"id": 0,
"name": "示例",
"schedule": {
"type": "minute-n"
},
"task": {
"type": "shell"
}
}
通知
GetChannel
获取通知通道列表 · 分类 通知 · 风险 low
获取面板已配置的通知通道列表。只读。返回通道 id/type/used/title。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
refresh | boolean | 否 | 强制刷新配置,默认 false。 |
调用示例
{
"refresh": false
}
ManageChannel
通知通道管理 · 分类 通知 · 风险 high
管理通知通道:add 添加 / del 删除 / status 启停 / test 发测试消息。高风险。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
action | string | 是 | add/del/status/test |
id | string | 否 | 通道id,del/status/test必填,取自GetChannel |
type | string | 否 | 通道类型:weixin(企业微信,webhook URL)/mail/feishu/dingding 可添加;wx_account(个人微信/公众号) 需面板扫码绑定;sms(短信)/webhook(自定义) 不支持 |
title | string | 否 | 备注名,add必填,≤15字 |
data.url | string | 否 | 机器人webhook地址(weixin/feishu/dingding) |
data.send | object | 否 | SMTP 配置 {qq_mail,qq_stmp_pwd,hosts,port},mail 必填。 |
data.receive | array<string> | 否 | 收件人邮箱,mail必填(至少1个) |
调用示例
{
"action": "add",
"id": "示例",
"type": "weixin",
"title": "示例",
"data": {
"url": "示例"
}
}
SendMessage
发送消息 · 分类 通知 · 风险 medium
通过指定通知通道发送一条自由消息。通道不存在/停用时返回 available.channels。
入参
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
channel_id | string | 是 | 目标通道 id,取自 GetChannel。 |
content | string | 是 | 消息内容。 |
title | string | 否 | 消息标题,默认 宝塔面板消息推送。 |
调用示例
{
"channel_id": "示例",
"content": "示例",
"title": ""
}