mcpField
1
1panel-api

1panel-api

github.com/breadbot86クラウド・DevOps951 回インストール24 週間前に更新
リポジトリ

1panel-api について

1panel-api は、1Panel の管理に使う API ドキュメントと、依存パッケージ不要の Node.js ツール群を提供します。エンドポイントの検索と構造化 API 呼び出しを CLI、JSON ツール呼び出し、MCP サーバーで行いたいエージェントや運用担当者向けです。

主な機能

  1. 01API エンドポイント索引の検索
  2. 02GET、POST、任意の HTTP メソッドで呼び出し
  3. 03アプリ、ウェブサイト、コンテナ、データベースの管理
  4. 04CLI と JSON ツール呼び出しモード
  5. 05リクエスト認証の自動処理

活用シーン

  1. 011Panel 操作に使うエンドポイントを検索
  2. 02コンテナの状態確認や検索
  3. 03ウェブサイト、データベース、バックアップの管理

MCP 対応

stdio MCP サーバーは、エンドポイント検索、モジュール一覧、GET・POST・汎用リクエストのツールを MCP クライアントに公開します。リクエストは設定済みの 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 スキル

🎯 Agent にその場で curl を組み立てさせるのではなく、ツールを使って 1Panel を操作します。

このリポジトリには、1Panel API ドキュメントと依存関係のない Node.js ツール層が含まれています。

  • tools/1panel-tool.js:コマンドライン/JSON tool-call 実行ツール
  • tools/1panel-mcp.js:MCP stdio サーバー。MCP 対応の Agent にツールを公開します
  • tools/1panel-lib.js:トークン計算、API リクエスト、エンドポイントインデックスの解析
  • docs/SKILL-*.md:モジュールごとに整理した 1Panel API エンドポイントドキュメント

クイックスタート

1. Node.js を準備する

組み込みの fetch を使用するため、Node.js 18 以降が必要です。npm 依存関係のインストールは不要です。

node --version
2. 1Panel の接続情報を設定する

初回使用時に、以下の情報を指定または設定してください。

情報環境変数説明例
1Panel アドレスONEPANEL_BASE_URLサーバーの IP/ドメイン名 + パネルのポートhttp://192.168.1.100:8888
API KeyONEPANEL_API_KEYパネルの「設定」→「API キー」で生成xxxxxxxx
自己署名 HTTPS を許可ONEPANEL_INSECURE自己署名証明書を使用する場合は true に設定できますtrue
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. ユーザーに結果を返す際は、呼び出したツール、エンドポイント、ステータスコード、主な結果を説明します。

MCP ツール

tools/1panel-mcp.js は以下のツールを公開します。

ツール用途
onepanel_endpoint_searchこのリポジトリに組み込まれた 1Panel API エンドポイントインデックスを検索します
onepanel_modules組み込み API モジュールを一覧表示します
onepanel_get1Panel API エンドポイントに GET リクエストを送信します
onepanel_post1Panel API エンドポイントに POST リクエストを送信します
onepanel_request任意のメソッドで 1Panel API エンドポイントを呼び出します
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 ツールを使用できるようになります。

CLI/JSON tool-call の使用方法

エンドポイントを検索する
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}'
汎用リクエスト
node tools/1panel-tool.js request \
  --method GET \
  --path /containers/status
JSON tool-call モード
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 が手動でトークンを計算する必要はありません。

認証ロジック:

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

機能モジュール

モジュール説明
アプリアプリストア、インストール済みアプリの管理
Web サイトWeb サイトの作成、設定、リバースプロキシ、SSL
コンテナDocker コンテナの管理
データベースMySQL、PostgreSQL、Redis、MongoDB
ファイルファイルのアップロード、ダウンロード、圧縮、展開
バックアップバックアップと復元
Cron ジョブ定期タスク
ランタイム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/ から正常に解析できることを確認します。

コメント