mcpField
1
1panel-api

1panel-api

github.com/breadbot86云与 DevOps951 次安装24 周前更新
代码仓库

关于 1panel-api

1panel-api 提供 1Panel API 文档和零依赖的 Node.js 工具层,用于管理 1Panel。它面向需要查找端点并执行结构化 API 调用的 Agent 和运维人员,支持 CLI、JSON 工具调用及 MCP 服务。

主要功能

  1. 01搜索已索引的 API 端点
  2. 02通过 GET、POST 或任意方法调用端点
  3. 03管理应用、网站、容器和数据库
  4. 04使用 CLI 和 JSON 工具调用模式
  5. 05自动完成请求认证

适用场景

  1. 01查找 1Panel 操作对应的端点
  2. 02检查容器状态或搜索容器
  3. 03管理网站、数据库或备份

MCP 相关

其 stdio MCP 服务向 MCP 客户端提供端点搜索、模块列表,以及 GET、POST 和通用请求工具。请求发送至已配置的 1Panel API。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/breadbot86/1panel-skills --skill 1panel-api

安装后在 Claude Code 中输入/1panel-api确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.DS_Store
README.md
INDEX.md
package.json
docs/
SKILL-ai.md
SKILL-backups.md
SKILL-cronjobs.md
SKILL-apps.md
SKILL-containers.md
SKILL-auth.md
SKILL-alert.md
SKILL-dashboard.md
SKILL-groups.md
SKILL-process.md
SKILL-openresty.md
SKILL-logs.md
SKILL-databases.md
SKILL-files.md
SKILL-script.md
SKILL-hosts.md
SKILL-runtimes.md
SKILL-websites_ca.md
SKILL-settings.md
SKILL-websites_acme.md
SKILL-toolbox.md
SKILL-websites_dns.md
SKILL-websites_ssl.md
SKILL-websites.md
tools/
1panel-mcp.js
1panel-lib.js

详细介绍

1Panel API 技能

🎯 通过工具调用管理 1Panel,而不是让 Agent 临时拼接 curl 命令。

本仓库包含 1Panel API 文档和一个零依赖 Node.js 工具层:

  • tools/1panel-tool.js:命令行 / JSON 工具调用运行器
  • tools/1panel-mcp.js:MCP stdio 服务,向支持 MCP 的 Agent 暴露工具
  • tools/1panel-lib.js:Token 计算、API 请求、端点索引解析
  • docs/SKILL-*.md:按模块整理的 1Panel API 端点文档

快速开始

1. 准备 Node.js

需要 Node.js 18+,因为工具使用内置 fetch,不需要安装 npm 依赖。

node --version
2. 配置 1Panel 连接信息

首次使用请提供或设置以下信息:

信息环境变量说明示例
1Panel 地址ONEPANEL_BASE_URL服务器 IP/域名 + 面板端口http://192.168.1.100:8888
API KeyONEPANEL_API_KEY面板「设置」→「API 密钥」生成xxxxxxxx
允许自签 HTTPSONEPANEL_INSECURE自签证书时可设为 truetrue
export ONEPANEL_BASE_URL='http://你的地址:8888'
export ONEPANEL_API_KEY='你的 API Key'
3. 获取 API Key
  1. 登录 1Panel 面板
  2. 进入「设置」→「API 密钥」
  3. 点击「创建」生成新密钥
  4. 将生成的密钥复制到 ONEPANEL_API_KEY

Agent 使用规则

当 Agent 使用本技能管理 1Panel 时:

  1. 优先使用 Node 工具 / MCP 工具,不要手写 curl。
  2. 不确定接口路径时,先调用 onepanel_endpoint_search 搜索端点。
  3. 确认接口后,再调用 onepanel_get、onepanel_post 或 onepanel_request。
  4. 对删除、停止服务、重启服务、覆盖配置、清理文件等危险操作,先向用户确认影响范围。
  5. 向用户返回结果时,说明调用了哪个工具、哪个 endpoint、状态码和关键结果。

MCP 工具

tools/1panel-mcp.js 暴露以下工具:

工具作用
onepanel_endpoint_search搜索本仓库内置的 1Panel API 端点索引
onepanel_modules列出内置 API 模块
onepanel_getGET 一个 1Panel API endpoint
onepanel_postPOST 一个 1Panel API endpoint
onepanel_request使用任意方法调用 1Panel API endpoint
MCP 配置示例

把下面配置加入支持 MCP 的 Agent 配置中:

{
  "mcpServers": {
    "1panel": {
      "command": "node",
      "args": ["/absolute/path/to/1Panel-Skills/tools/1panel-mcp.js"],
      "env": {
        "ONEPANEL_BASE_URL": "http://你的地址:8888",
        "ONEPANEL_API_KEY": "你的 API Key"
      }
    }
  }
}

如果使用 Hermes Agent,可用:

hermes mcp add 1panel --command "node /absolute/path/to/1Panel-Skills/tools/1panel-mcp.js"

然后在 Hermes 的环境变量中设置 ONEPANEL_BASE_URL 和 ONEPANEL_API_KEY,重启会话后即可使用 MCP 工具。

命令行 / JSON 工具调用用法

搜索端点
node tools/1panel-tool.js endpoints --keyword container --limit 5
查询模块
node tools/1panel-tool.js modules
GET 请求
node tools/1panel-tool.js get /containers/status
POST 请求
node tools/1panel-tool.js post /containers/search \
  --body '{"page":1,"pageSize":20}'
通用 request
node tools/1panel-tool.js request \
  --method GET \
  --path /containers/status
JSON 工具调用模式
node tools/1panel-tool.js tool-call '{
  "tool": "onepanel_request",
  "args": {
    "method": "GET",
    "path": "/containers/status"
  }
}'

返回值统一为 JSON,包含:

{
  "ok": true,
  "status": 200,
  "statusText": "OK",
  "url": "http://example:8888/api/v2/containers/status",
  "data": {}
}

认证实现

Node 工具会在内部自动完成 1Panel API 认证,不需要 Agent 手动计算 token。

认证逻辑:

timestamp = 当前 Unix 秒级时间戳
token = md5("1panel" + apiKey + timestamp)
headers:
  1Panel-Token: token
  1Panel-Timestamp: timestamp
  Content-Type: application/json

功能模块

模块说明
应用应用商店、已安装应用管理
网站网站创建、配置、反向代理、SSL
容器Docker 容器管理
数据库MySQL、PostgreSQL、Redis、MongoDB
文件文件上传、下载、压缩、解压
备份备份与恢复
定时任务定时任务
运行环境PHP、Node、Python、Go、Java 运行环境
主机主机监控、防火墙、SSH、磁盘管理
设置系统配置、用户管理

完整端点索引见 INDEX.md,详细 API 文档见 docs 目录。

常见工作流

查看 Docker / 容器状态
  1. 搜索端点:onepanel_endpoint_search({"keyword":"containers status"})
  2. 调用:onepanel_get({"path":"/containers/status"})
  3. 根据返回的容器数量、镜像数量、网络数量汇报结果。
分页查询容器

调用:

{
  "tool": "onepanel_post",
  "args": {
    "path": "/containers/search",
    "body": {"page": 1, "pageSize": 20}
  }
}
调用未知接口
  1. 使用 onepanel_endpoint_search 按关键词或模块查找路径。
  2. 阅读对应 docs/SKILL-*.md 中的参数表。
  3. 使用 onepanel_request 传入 method、path、query、body。

验证

npm test

该命令会检查 Node 文件语法,并确认端点索引可以从 docs/ 正常解析。

评论

支持 Markdown