ドキュメント / Claude Code をパネルに接続する

Claude Code をパネルに接続する

この設定をすると、ターミナルで作業しながら Claude Code にパネルの様子を見てもらえます。たとえば 「ディスク上限にいちばん近いアカウントはどれ?」「example.com の DNS レコードを見せて」といった質問です。 Claude Code が読み取れるのは、あなたのトークンで許可した範囲だけです。削除や停止を伴う操作は リクエストとして保留され、あなたがパネルで「承認」を押すまで実行されません。アシスタントが自分のリクエストを 承認することはありません。

これは Nimbopanel で AI を使う 2 つ目の方法です。1 つ目は、パネルの中にあるチャット画面で、 AIアシスタントで説明しています。こちらを使うのに、そちらは不要です。

はじめる前に

  • パネルのアドレス。たとえば https://panel.yourdomain.com です。IP アドレスではなく、パネル自身のアドレスを使ってください。
  • パソコンにインストールされた Claude Code(ターミナルで claude コマンドが動くこと)。
  • パネルのアカウント:管理者、リセラー、顧客、チームユーザーのいずれか。

1. 管理者が接続をオンにする(最初の一度だけ)

システム → セキュリティ → AIアシスタント接続(MCP) を開き、AIアシスタントの接続を許可 にチェックを入れ、 どの種類の利用者に接続を許すかを選んで 保存 を押します。このカードには、アシスタントが使うアドレス (パネルのアドレスの末尾に /mcp を付けたもの)が表示されます。

新規インストールでは、これはオフです。オンにするまでは /mcp が 404 を返し、以下の手順はどれも動きません。

2. アシスタント専用のトークンを作る

パネルにサインインして APIトークン を開きます。管理者とリセラーは セキュリティ の中、 顧客は 詳細 の中にあります。そこで AIアシスタントを接続(Claudeなど) を開いてください。

  1. 見て分かる名前を付けます。たとえば Claude Code on my laptop です。
  2. パネルの部分ごとに アクセスなし、読み取り、読み取りと変更 のいずれかを選びます。 まずは 読み取り にしておきましょう。チェックを入れた範囲をアシスタントが見られるだけで、何も変更できません。
  3. 使えなくなるまで(日) は 90 のままにするか、お好きな日数を入れます。
  4. アシスタント用トークンを作成 を押します。

パネルにトークンが表示されるのは一度だけです。ページを離れる前に必ずコピーしてください。

3. コマンドを 1 つ貼り付ける

パネルには、あなたのアドレスとトークンがすでに入ったコマンドが表示されます。それをコピーして、 ターミナルで実行してください。次のような形です。

claude mcp add --transport http nimbopanel https://panel.yourdomain.com/mcp --header "Authorization: Bearer <token>"

意味は次のとおりです。nimbopanel という名前の MCP サーバーを追加し、HTTP でパネルの /mcp アドレスに接続して、 呼び出しのたびに Authorization ヘッダーでトークンを送る、ということです。

Claude Code の保存先。 既定では、このサーバーは現在のプロジェクト用としてのみ、プロジェクトのフォルダではなく あなたのパソコンの ~/.claude.json に保存されます。すべてのプロジェクトで使うには --scope user を付けます。 本物のトークンを使うときに --scope project を付けてはいけません。トークンが .mcp.json(コミットして共有する ためのファイル)に書き込まれてしまいます。チームで接続を共有する場合は、.mcp.json には参照だけを書き、 各自のトークンは各自が環境変数に持つようにしてください。

{
  "mcpServers": {
    "nimbopanel": {
      "type": "http",
      "url": "https://panel.yourdomain.com/mcp",
      "headers": { "Authorization": "Bearer ${NIMBOPANEL_TOKEN}" }
    }
  }
}

トークンは一人ひとりが自分用に作りましょう。そうすれば、リクエストが誰によるものか分かり、 トークンを 1 つだけ単独で無効にすることもできます。

4. 動作を確認する

claude mcp list

nimbopanel が接続済みと表示されるはずです。Claude Code の中で /mcp と入力しても確認できます。 そのあとは、ふだんの言葉でそのまま質問してください。

  • 「ホスティングアカウントを一覧にして、ディスクをいちばん使っているのはどれか教えて。」
  • 「example.com の DNS レコードを見せて。」
  • 「いちばん大きいデータベースはどれ?」
  • 管理者の場合:「すべてのサービスは動いている?」「メールキューは増えている?」

アシスタントが見られるのは、アカウントとその使用状況、ドメイン、DNS レコード、メールアカウント(パスワードは見られません)、 データベース、バックアップ、サーバーの負荷とサービス、メールキュー、リセラー、サポートチケットです。 ただし、トークンで指定した部分と、あなた自身の役割の範囲内に限られます。

変更を頼んだとき

  • 読み取りと変更 の場合、新しい通常の名前に対する通常のアドレス(A または AAAA)レコードや テキスト(TXT)レコードの追加は、その場で実行されます。
  • それ以外はすべてあなたの承認待ちになります。レコードの削除、アカウントの停止や再開、メール関連のレコード、 ドメインそのもの、CNAME・SRV・CAA レコード、ワイルドカード、メールソフトが参照する名前などです。 これらはリクエストになります。

APIトークン → アシスタントからのリクエスト を開いてください。各リクエストには、何が起きるのかが 分かりやすい言葉で書かれています。承認… を押し、続けて はい、今すぐ実行 を押します。リクエストは 30 分で期限切れになります。読むべきなのはアシスタントのメッセージではなく、リクエストのほうです。 リクエストはパネルが作成するもので、実行される内容を正確に示しています。

変更を依頼したのはアシスタントのため、パネルはまずパスワード(2 段階認証を使っている場合は確認コードも)でご本人であることの確認を求めます。その後、数分間は再度求められません。

うまくいかないとき

表示 意味 対処
/mcp から 404 Not found、またはそのアドレスにはウェブサイトが設定されていないという趣旨のページ 接続がオフになっているか、パネル自身のものではないアドレス(IP アドレスや別のドメイン)を使っています 手順 1 を確認し、パネル自身のアドレスの末尾に /mcp を付けて使います
403 forbidden_host アドレスはパネルに届いていますが、パネルが自分のものとして認識しないアドレスです パネル自身のアドレス(例:https://panel.yourdomain.com)を使います
401 Login required トークンがない、入力ミス、期限切れ、または無効にされています 新しいトークンを作り、コマンドをやり直します
403 mcp_scope_required アシスタント用ではなく、通常の API トークンです AIアシスタントを接続(Claudeなど) でトークンを作ります
403 mcp_off_for_role あなたの種類のアカウントには、アシスタントの接続が許可されていません 管理者に相談します(手順 1)
429 rate_limited 短時間に呼び出しが多すぎます 1 分ほど待ちます
パネルの一部が見えない その範囲が アクセスなし になっています その範囲を 読み取り にして、新しいトークンを作ります

claude mcp list で失敗と表示される場合、多くは URL の末尾の /mcp が抜けているか、ヘッダーが Authorization: Bearer <token> と完全に一致していません。

接続を外す

claude mcp remove nimbopanel

これで、あなたのパソコンからは削除されます。トークンをどこでも使えなくするには、APIトークン でそのトークンを削除してください。 トークンが残していた未処理のリクエストも取り消されます。管理者は手順 1 で接続全体をオフにでき、 その場合 /mcp は再び 404 を返します。

よい習慣

  • 読み取り を基本にしましょう。読み取りと変更 は、必要な範囲だけに使います。
  • トークンはパソコンごと、人ごとに 1 つ。誰のものか分かる名前を付けます。
  • 90 日の既定のままにするか、共有のパソコンではもっと短くします。
  • トークンを、チャットやチケット、コミットするファイルに貼り付けないでください。

まだ対応していないもの:OAuth によるサインインでしか接続できないクライアント。このエンドポイントは、ヘッダーに入れたトークンを受け付けます。