Token导航 LogoToken导航TokenDH.com
Bt Panel MCP Server logo
运维云端未说明官方级别未说明来源级核验

Bt Panel MCP Server

MCP Server

宝塔面板(BT Panel)MCP Server 是一个通过自然语言交互实现服务器日志查询、网站管理及系统状态监控的工具。

工具数

14

提示词数

0

GitHub Stars

3

资源数

0
TypeScriptClaude自动化运维Claude DesktopClaudeCursorWindsurfCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

SuxyEE

提供方

SuxyEE

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

bt-panel-mcp-server

宝塔面板(BT Panel)MCP Server,让任意支持 MCP 协议的 AI 助手直接用自然语言查询服务器日志、管理网站、查看系统状态,不用再手动登录面板。

](https://www.npmjs.com/package/bt-panel-mcp-server) ](https://www.npmjs.com/package/bt-panel-mcp-server) ![License: MIT](https://opensource.org/licenses/MIT)

|

默认 只读模式,设置 BT_MODE=full 可开启全量管理工具。


这能做什么?

在任意支持 MCP 协议的 AI 工具(Cursor、Claude Desktop、Windsurf、Cline、Cherry Studio 等)的对话里直接说:

查询日志 & 监控

"帮我看看 example.com 最近的 Nginx 错误日志" "查一下 shop.com 的 Laravel 日志有没有报错" "服务器现在 CPU 和内存使用情况怎么样?"

一键建站部署(需要 BT_MODE=full

"帮我生成一个小龙虾餐厅落地页,暗红色主题,部署到 claw.example.com,完成后给我访问地址" "把刚才生成的活动报名 HTML 直接部署到服务器,用 IP 访问就行" "把 example.com 首页的联系电话改成 138xxxxxxxx,直接更新到服务器"

网站 & 域名管理(需要 BT_MODE=full

"帮我给 example.com 备份一下" "给 example.com 绑定一个新域名 www.example.com" "停用 test.example.com 这个测试站"

快速开始

第一步:开启宝塔面板 API

登录宝塔面板 → 左侧菜单「设置」→「常用设置」,参考下图找到以下三项:

宝塔面板设置截图

  1. 面板端口(红框①):记下端口号,如 35335,面板地址为 http://服务器IP:端口
  2. 安全入口(红框②):若已设置,面板地址需要带上此路径,如 http://服务器IP:端口/a5cbfadd
  3. API 接口(红框③):打开开关 → 点击「API接口配置」→ 复制接口密钥,并将本机 IP 加入白名单(必须,否则请求会被拒绝)

第二步:配置 MCP

各 AI 工具的配置文件路径不同,找到对应的文件编辑即可:

AI 工具系统配置文件路径
CursorWindows%USERPROFILE%\.cursor\mcp.json
CursormacOS / Linux~/.cursor/mcp.json
Claude DesktopWindows%APPDATA%\Claude\claude_desktop_config.json
Claude DesktopmacOS~/Library/Application Support/Claude/claude_desktop_config.json
WindsurfWindows%USERPROFILE%\.codeium\windsurf\mcp_config.json
WindsurfmacOS~/.codeium/windsurf/mcp_config.json
Cherry Studio设置 → MCP 服务器 → 添加
Cline / Roo Code插件设置 → MCP Servers
其他工具参考对应工具文档中"MCP Server"配置说明

推荐:npx 方式(无需手动下载,始终使用最新版)

{
  "mcpServers": {
    "bt-panel": {
      "command": "npx",
      "args": ["-y", "bt-panel-mcp-server"],
      "env": {
        "BT_PANEL_URL": "http://服务器IP:面板端口/安全入口",
        "BT_API_KEY": "你的API密钥",
        "BT_MODE": "readonly"
      }
    }
  }
}

本地方式(已克隆源码时使用)

{
  "mcpServers": {
    "bt-panel": {
      "command": "node",
      "args": ["本地路径/bt-panel-mcp-server/dist/index.js"],
      "env": {
        "BT_PANEL_URL": "http://服务器IP:面板端口/安全入口",
        "BT_API_KEY": "你的API密钥",
        "BT_MODE": "readonly"
      }
    }
  }
}

BT_PANEL_URL 怎么填? 对照第一步截图中的信息拼接:

情况填写示例
默认端口 8888,无安全入口http://123.456.789.0:8888
自定义端口,无安全入口http://123.456.789.0:35335
自定义端口 + 安全入口http://123.456.789.0:35335/a5cbfadd
开启了面板 HTTPShttps://123.456.789.0:35335/a5cbfadd
安全入口路径在「设置 → 常用设置 → 安全入口」中查看,没设置则不用填。

其余替换内容:

  • 你的API密钥 → 第一步「API接口配置」页面中复制的接口密钥
  • BT_MODEreadonly(只读,默认)或 full(含建站/写文件等管理操作)

第三步:重启 AI 工具

完全退出并重新打开你的 AI 工具,然后测试:

列出宝塔面板所有网站

环境变量

变量名必填默认值说明
BT_PANEL_URL宝塔面板地址,如 http://192.168.1.100:8888,支持 HTTPS 和安全入口路径
BT_API_KEY宝塔面板 API 接口密钥
BT_MODEreadonly工具集模式:readonly 只读安全模式 / full 全量管理模式(含写操作)

工具模式说明

readonly 模式(默认,安全)

只包含查询和读取工具,AI 无法对服务器做任何修改:

工具说明
list_sites列出所有网站
get_nginx_logs读取 Nginx 访问/错误日志(自动探测路径)
get_app_logs读取应用层业务日志(自动探测框架路径)
get_panel_logs读取面板操作日志
get_system_status查询 CPU/内存/磁盘/网络实时状态
read_file读取服务器任意文件(只读)
get_nginx_config读取网站 Nginx 配置文件(只读)
list_domains查询网站绑定的域名列表
list_backups查询网站备份列表

full 模式(BT_MODE=full

在 readonly 所有工具基础上,额外开放:

工具说明
manage_sites创建/删除/启用/停用网站,修改备注、到期时间
manage_domains绑定/解绑域名
manage_backups立即备份/删除备份
save_nginx_config修改保存 Nginx 配置(⚠️ 谨慎,即时生效)
save_file写入服务器文件(⚠️ 谨慎)

工具详细说明

list_sites — 列出所有网站

参数类型必填说明
searchstring按网站名称模糊搜索

get_nginx_logs — 查询 Nginx 日志(自动探测路径)

工具会自动在 /www/wwwlogs/ 目录下探测日志文件,无需手动填写路径;探测失败时会列出目录内容供参考。
参数类型必填默认值说明
site_namestring网站域名,如 example.com
log_typestringaccessaccess(访问日志)或 error(错误日志)
last_linesnumber200读取最后 N 行(最大 2000)
log_pathstring手动指定路径(自动探测失败时使用)

get_app_logs — 查询应用层日志(自动探测框架路径)

工具会自动在网站根目录下按框架候选路径逐一探测,framework: auto 时尝试所有常见框架;探测失败时列出目录结构供参考。
参数类型必填默认值说明
site_namestring二选一网站名称,自动推断路径
log_pathstring二选一手动指定日志文件绝对路径
frameworkstringautoauto(自动)/ laravel / thinkphp / java / nodejs
last_linesnumber200读取最后 N 行(最大 2000)

各框架自动探测路径:

框架候选路径
Laravelstorage/logs/laravel.logstorage/logs/app.log
ThinkPHPruntime/logruntime/logs/app.log
Javalogs/app.loglogs/error.logapp.log
Node.jslogs/app.loglogs/error.logout.log

get_panel_logs — 查询面板操作日志

参数类型必填默认值说明
limitnumber30返回最近 N 条记录(最大 100)

get_system_status — 查询服务器状态

无需参数,返回 CPU、内存、磁盘、网络实时数据。


read_file — 读取任意文件

参数类型必填说明
pathstring文件绝对路径
last_linesnumber只读最后 N 行,大文件必填

get_nginx_config — 读取 Nginx 配置

参数类型必填说明
site_namestring网站名称(域名)

manage_sites — 网站管理(full 模式)

参数类型必填说明
actionstringstart / stop / delete / create / set_note / set_expiry / get_php_versions / get_site_info
site_namestring视情况网站名称
pathstringcreate 必填网站根目录
php_versionstringPHP 版本,如 748081
notestring备注
edatestringset_expiry 必填到期日期(YYYY-MM-DD0000-00-00 永久)
delete_ftp / delete_db / delete_pathbooleandelete 时是否同时删除关联资源

manage_domains — 域名管理(full 模式)

参数类型必填说明
actionstringlist / add / delete
site_namestring网站名称
domainstringadd/delete 必填要操作的域名
portnumber端口,默认 80

manage_backups — 备份管理(full 模式)

参数类型必填说明
actionstringlist / create / delete
site_namestring网站名称
backup_idnumberdelete 必填备份 ID(从 list 获取)

对话使用示例

日志排查

查看 example.com 最近 500 行 Nginx 错误日志
example.com 最近有哪些 502 错误?
查看 shop.com 的 Laravel 日志有没有 Exception

系统状态

服务器现在 CPU 和内存使用率多少?
磁盘还有多少空间?

网站管理(full 模式)

帮我立即备份 example.com
给 example.com 添加域名 www.example.com
停用 example.com

配置查看

读取 example.com 的 Nginx 配置
查看 /www/wwwroot/example.com/.env 文件

🚀 场景案例:AI 生成网站 → 一键部署上线

需要 BT_MODE=full

这是 bt-mcp 最有趣的使用场景之一:让 AI 帮你生成网站内容,然后直接部署到服务器,全程不用手动登录面板。


案例一:小龙虾餐厅落地页(OpenClaw 风格)

你对 AI 说:

"帮我生成一个小龙虾餐厅的宣传落地页,暗红色主题,要有菜单、价格、联系方式,风格现代感强,然后部署到服务器,域名用 claw.myrestaurant.com"

AI 自动执行的步骤:

第一步:生成 HTML
  ↓ AI 生成完整的 index.html(暗红主题、菜单卡片、价格表、微信/电话联系)

第二步:调用 manage_sites(action=create)
  domain: claw.myrestaurant.com
  path:   /www/wwwroot/claw.myrestaurant.com
  → 宝塔自动创建目录 + Nginx 配置

第三步:调用 save_file
  path:    /www/wwwroot/claw.myrestaurant.com/index.html
  content: 
  → 文件写入服务器

第四步:返回访问地址
  ✅ 部署完成!访问地址:http://claw.myrestaurant.com
  ⚠️ 记得把域名 DNS 解析到你服务器的 IP

整个过程 30 秒内完成,你只需要去域名商把 DNS 指向服务器 IP 即可。


案例二:没有域名,用 IP 临时预览

你对 AI 说:

"帮我生成一个活动报名页,直接用服务器 IP 访问就行,不用配域名"

AI 会把域名字段填写为服务器 IP,宝塔建站后直接 http://服务器IP 访问。


案例三:已有网站,AI 更新内容

你对 AI 说:

"把 claw.myrestaurant.com 首页的营业时间改成 10:00-22:00,夏季特供区加一道'麻辣小龙虾拼盘 128元'"

AI 会:

  1. read_file 读取现有 index.html
  2. 修改对应文字
  3. save_file 写回服务器

完全不用手动 SSH 或登录面板。


完整工作流示意

你的想法(自然语言)
       ↓
   AI 生成 HTML
       ↓
 bt-mcp 创建网站目录
       ↓
 bt-mcp 写入 index.html
       ↓
  域名解析(手动,一次性)
       ↓
   🌐 网站上线
提示:如果你的域名已经解析好,整个从「提需求」到「能访问」的过程可以压缩到 1 分钟以内。

常见问题

Q:提示 "Missing required environment variables"?

检查 BT_PANEL_URLBT_API_KEY 是否正确填写,重启你的 AI 工具。

Q:提示请求失败或连接超时?

  1. 确认宝塔面板地址和端口正确(默认 8888)
  2. 确认已在宝塔 API 设置中添加了你的本机 IP 到白名单
  3. 如果面板开启了 HTTPS 或安全入口,地址要包含完整路径(如 https://IP:端口/安全路径

Q:读取日志提示文件不存在?

  • Nginx 日志需要先在宝塔面板开启「访问日志」(网站设置 → 日志)
  • 工具会自动探测并列出目录结构,根据提示补充 log_path 参数即可

Q:日志内容太多,AI 回复很慢?

使用 last_lines 参数限制读取行数,建议不超过 500 行。

Q:full 模式会有什么风险?

save_nginx_configsave_file 是写操作,配置错误可能导致网站无法访问。建议在熟悉 AI 行为后再开启 BT_MODE=full,平时保持默认 readonly


本地开发

cd E:\tools\bt-mcp
npm install --ignore-scripts
npm run build
node dist/index.js   # 输出 "BT Panel MCP Server running (mode: readonly)"

监听文件变化自动重新编译:

npm run dev

技术栈

  • 语言:TypeScript
  • 运行时:Node.js >= 18
  • MCP SDK@modelcontextprotocol/sdk

License

MIT


联系作者

如有问题或建议,欢迎微信交流:

微信联系方式

目录标签

目录标签

TypeScriptClaude自动化运维服务器管理本地部署日志查询网站部署AI助手

支持客户端

Claude DesktopClaudeCursorWindsurfCline

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

14

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP