Cisco Duo MCP について
Cisco Duo MCPは、Duo MFAと顧客サブアカウントを管理するMSP向けのコミュニティ製MCPサーバー兼CLIです。ロックアウト対応、テナント横断検索、監査をまとめ、変更には明示的なapplyフラグを求めます。
主な機能
- 01MFAロックアウトの調査と解決
- 02顧客アカウント横断でユーザー検索
- 03顧客群のリスクとアカウント上限を確認
- 04バイパスコードとログイン失敗を監査
- 05テナントデータをローカルSQLiteに同期
- 06適用前に変更内容をプレビュー
活用シーン
- 01ユーザーがDuoにログインできない原因を調査
- 02MSPの顧客アカウント間でユーザーを検索
- 03MFAリスクの高い顧客を確認
- 04バイパスコードの使用とログイン失敗を点検
MCP 対応
MCPサーバーはcisco-duo-cliとともに、MCPクライアントへCisco Duoの管理ワークフローを提供します。READMEでは、このビルドではデフォルトのstdioトランスポートを使い、HTTPモードを避けるよう案内しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Cisco Duo + AI - ChatGPT、Claude、GitHub Copilot、Microsoft 365 Copilot、Gemini、および MCP に対応するあらゆるエージェント向け
非公式です。Cisco Duo API 用にコミュニティが開発した Claude Code Skill と MCP サーバーです。 Cisco Systems, Inc. との提携、同社による承認、またはスポンサー提供を受けていません。
スキルの全ページ - インストール、成果、安全性モデル。
1つのコマンドで Duo MFA のロックアウトを解消し、署名付き Admin API 呼び出しを使って、すべての MSP サブアカウントを一度に確認できます。すでにお使いの AI で動作します。ChatGPT(Plus/Pro+。このコネクターが再公開されるまで一時停止中です。mcp-install.md を参照)、Claude Desktop、Codex、Claude Code、Claude Cowork、GitHub Copilotに加え、リモート接続経由でMicrosoft 365 Copilot / Copilot StudioとGoogle Geminiにも対応します。無料のオープンソースで、ノート PC 上で動作します。MSP オーナー向けに開発されています。コードは不要です。
お使いのエージェントで利用可能
セキュリティに関する注意(このコネクターが再公開されるまで)。 HTTP モード (
--transport http)は、localhost 上であっても実行しないでください。このビルドでは トークンを確認しますが、修正リリースで導入されたリクエストサイズとタイムアウトの制限が まだありません。また、MCP ツールはお客様の認証情報を使って変更を加えることもできます。 デフォルトの stdio トランスポートを使用してください。リモートエージェント用にトンネルを 設定している場合は、停止してください。修正版は近日公開予定です。
MSP オーナーが実際に使っている6つのエージェント(ChatGPT はこのコネクターが再公開されるまで一時停止中です。以下を参照してください):
| お使いの AI エージェント | Cisco Duo スキルのインストール方法 |
|---|---|
| Claude Desktop | インストーラーを実行し、Settings > Extensions で cisco-duo-mcp を登録します(JSON の編集は不要です)。 |
| ChatGPT(有料プラン) | このコネクターが再公開されるまで一時停止中です。ChatGPT には HTTP モードが必要ですが、このビルドではトークンを確認する一方で、リクエストサイズやタイムアウトの制限がまだありません。mcp-install.md のセキュリティに関する注意を参照してください。 |
| Codex CLI | 以下のインストールプロンプトを貼り付けます。 |
| Claude Code | 以下のインストールプロンプトを貼り付けます。 |
| Claude Cowork | 以下のインストールプロンプトを貼り付けます。 |
| GitHub Copilot(VS Code) | インストーラーを実行し、mcp.json の servers キーの下に cisco-duo-mcp を追加してから、Agent モードを選択します。 |
ChatGPT にはリモート HTTPS サーバーが必要で、そのためにはこのコネクターの HTTP モードが必要です。このモードは、修正が適用されたコネクターが再公開されるまで一時停止中です。このビルドではトークンを確認しますが、リクエストサイズやタイムアウトの制限がまだありません。mcp-install.md のセキュリティに関する注意を参照してください。
Microsoft と Google のスタックにも対応
大きなインストールベースがありますが、正直にお伝えすると、こちらはリモート/エンタープライズ向けの方法であり、先ほどインストールしたローカルバイナリを使う方法ではありません。
| エージェント | 必要なもの |
|---|---|
| Microsoft 365 Copilot / Copilot Studio | このコネクターが再公開されるまで保留中です。Copilot Studio では HTTP モードが必要ですが、このビルドではそのモードでトークンは確認されるものの、リクエストサイズや時間の制限がまだありません。mcp-install.md のセキュリティに関する注意事項を参照してください。 |
| Google Gemini | Gemini CLI はローカルで動作します。Claude Code と同じです。Gemini アプリはリモートで動作するため、ChatGPT と同じく、保留中の HTTP モードが必要です。mcp-install.md を参照してください。 |
スキルネイティブのエージェント(こちらも対応): Hermes と OpenClaw は、このスキルの
SKILL.mdを直接読み取り、MCP にも対応しています。以下の各インストールセクションを参照してください。また、MCP 経由で Cursor、Windsurf、Cline、Continue.dev、Zed でも動作します。ツールごとの完全な接続手順については、docs/which-agent.md を参照してください。
複数のエージェントを使っていますか? 1 つのコマンドで、サポートされている 51 以上のすべてのエージェントにインストールできます:
npx skills add Servosity/msp-skills@latest(Node.js が必要です。続いて、CLI/MCP バイナリ用のスキル別インストーラーを実行してください)。docs/which-agent.md を参照してください。
60 秒でインストール
Claude Desktop で最速の方法 - ワンクリックの .mcpb
Cisco Duo MCP (.mcpb) をダウンロード - 次に Claude Desktop > Settings > Extensions を開き、ファイルを選択します。ワンクリックで完了し、JSON もシェルも不要です。(すべての Cisco Duo リリースはリリースページで確認できます。)
Claude Code プラグインを使いたい場合は、マーケットプレイスを一度追加してからインストールしてください。ディレクトリ一覧は不要で、すぐに動作します:
/plugin marketplace add Servosity/msp-skills
/plugin install cisco-duo@msp-skills
方法 A - AI エージェントにプロンプトを 1 つ貼り付ける(推奨)
これを Claude Code、Codex CLI、または Claude Cowork にコピーしてください:
このエージェントのワークスペースに、Servosity/msp-skills から Cisco Duo Skill と MCP サーバーをインストールしてください。このワークスペースで POSIX シェル(macOS、Linux、WSL、Bash)を使用している場合は、
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.sh)を実行してください。Windows PowerShell を使用している場合は、iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.ps1 | iexを実行してください。その後、README に従って認証し、cisco-duo-cli --helpを実行して確認してください。
シェルを実行できるエージェントであれば、同じプロンプトを使えます。
方法 B - インストーラーを自分で実行する
Windows(PowerShell):
iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.ps1 | iex
macOS / Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.sh)
インストーラーにより、cisco-duo-cli(CLI)と cisco-duo-mcp(MCP サーバー)の両方が、ユーザーの bin パスに配置されます。Claude Code、Codex、Cowork は、このディレクトリ内の SKILL.md を通じてスキルを検出します。
確認:
cisco-duo-cli --version
最新バージョンにアップグレードする
インストーラーは常に最新リリースを取得します。アップグレードするには、再実行してください:
macOS / Linux:
bash <(curl -fsSL https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.sh)
Windows(PowerShell):
iwr -useb https://raw.githubusercontent.com/Servosity/msp-skills/main/skills/cisco-duo/install.ps1 | iex
Claude Desktop の .mcpb を使用している場合:最新の .mcpb(このセクションの冒頭)をダウンロードし、Settings > Extensions で再度選択してください。Claude Code プラグインを使用している場合:/plugin update cisco-duo@msp-skills。
Claude Desktop、GitHub Copilot、Gemini CLI、Microsoft 365 Copilot、その他の MCP クライアントに追加する
インストーラーの実行後、エージェントごとの接続手順(エージェントごとに 1 セクション)については、mcp-install.md と docs/which-agent.md を参照してください。GitHub Copilot の servers キーや、リモートの Microsoft 365 Copilot/Copilot Studio を使う方法も含まれています。最も簡単なのは、Claude Desktop の Settings > Extensions パネルを使う方法です。JSON の編集を希望するユーザー向けの MCP 設定ブロックは、mcp-install.md に記載されています。
Hermes にインストールする
Hermes CLI から:
hermes skills install servosity/msp-skills/skills/cisco-duo --force
Hermes のチャットセッション内で:
/skills install servosity/msp-skills/skills/cisco-duo --force
Hermes は MCP をネイティブにサポートしているため、cisco-duo-mcp サーバーを直接使用することもできます。インストール方法も環境変数も同じです。
OpenClaw にインストールする
OpenClaw エージェントに次のように伝えてください(コピーしてください):
https://github.com/servosity/msp-skills/tree/main/skills/cisco-duo から cisco-duo スキルをインストールしてください。このスキルでは、必須の CLI(
cisco-duo-cli)のインストール方法がopenclaw:フロントマターブロックで定義されています。
OpenClaw はまだ一般公開されていません。フロントマターの連携設定はあらかじめ組み込まれており、OpenClaw のリリースと同時に有効になります。
認証する
Duo Admin Panel で、Applications > Protect an Application > Admin API に移動し、Admin API アプリケーションを作成します。MSP の場合は、親アカウントで作成し、サブアカウントの権限を付与します。次の3つの値をコピーします:
export CISCO_DUO_API_HOST="api-XXXXXXXX.duosecurity.com" # API hostname
export CISCO_DUO_IKEY="<integration key>"
export CISCO_DUO_SKEY="<secret key>"
cisco-duo-cli doctor
doctor は API ホストを確認した後、署名付きの読み取りリクエスト(GET /admin/v1/users?limit=1)を1回送信し、認証情報を valid、rejected(HTTP 401)、または scope-limited(HTTP 403:アプリケーションに Grant resource - Read 権限がありません)として報告します。デフォルトでは終了コード 0 を返します。スクリプトでは --fail-on error(キーが拒否された場合に失敗)または --fail-on warn(スコープが制限されている場合も失敗)を追加してください。シークレットキーはリクエストへの署名にのみ使用され、Duo に送信されることはありません。
ワークフローに必要な権限だけを付与してください。読み取り専用の作業には Grant resource - Read、Grant read log、Grant read information が必要です。MSP の場合、--account-id とフリートコマンドには Grant accounts - Read も必要で、fleet summary のユーザー上限列には Grant user limits - Read が必要です。ユーザーのロック解除、バイパスコードの発行、電話の切り替えには Grant resource - Write が追加で必要です。governance.md を参照してください。
1社の顧客、またはすべての顧客を操作する
MSP の場合、任意のコマンドに --account-id(サブアカウント ID、または accounts list に表示される正確な名前)を追加するか、CISCO_DUO_ACCOUNT_ID を設定します。CLI は親アカウントで顧客を検索し、その顧客固有の API ホストにリクエストを送信して、顧客ごとに個別のローカルストアを維持します。このストアは指定した値そのものをキーにするため、顧客ごとにどちらか一方の形式を選び、統一してください(アカウント ID が最も安全です)。名前で同期を実行し、ID で監査を実行すると、異なるストアが読み込まれます。fleet summary、fleet risk、fleet find-user は常にすべての顧客を対象にします。
監査の前に同期する
audit bypass、audit stale、search はローカルミラーを読み込みます。テナントごとに一度、次のコマンドでデータを取り込みます:
cisco-duo-cli sync --resources users,admins,phones,bypass_codes --account-id DA9VZOC5X63I2W72NRP9
sync は Duo からデータを読み取り、ユーザーアカウント配下の SQLite ファイルに書き込むだけです。監査では、必要なリソースが一度も同期されていない場合、または最後の同期が途中で停止した場合に complete=false と報告するため、結果が空でもテナントに問題がないと誤認することはありません。ロックアウト、電話の切り替え、フリート、失敗の各コマンドは常にライブデータを読み込みます。
このスキルでできること
| MSP からよく聞かれる質問 | コマンド |
|---|---|
| このユーザーが Duo を通過できないのはなぜですか?どの対処法が当てはまりますか? | cisco-duo-cli lockout triage "[email protected]" --account-id "Acme Corp" |
| ロックを解除し、1 時間有効な 1 回限りのバイパスコードを発行するには?(まずプレビュー) | cisco-duo-cli lockout fix "[email protected]" --account-id "Acme Corp" --bypass |
| 新しい電話番号を取得した場合、Duo の登録先を変更するには? | cisco-duo-cli phone-swap "[email protected]" --number +15551234567 --remove-old |
| この人が所属する顧客を確認するには? | cisco-duo-cli fleet find-user "[email protected]" |
| バイパス中、ロックアウト中、または未登録のユーザーがいる顧客を確認するには? | cisco-duo-cli fleet risk |
| Duo のユーザー上限に近い顧客や、電話クレジットが不足している顧客を確認するには? | cisco-duo-cli fleet summary |
| このテナントで MFA をスキップできるのは誰ですか?また、誰がバイパスコードを発行しましたか? | cisco-duo-cli audit bypass --older-than 30d |
| 1 週間たっても未登録のユーザーは誰ですか?登録メールを再送信するには? | cisco-duo-cli enrollment chase --older-than 7d --limit 25 |
| 今週、失敗したログインや不正の疑いがあるログインは誰に発生しましたか? | cisco-duo-cli failures --since 7d |
| 認証と接続は正常に動作していますか? | cisco-duo-cli doctor |
lockout fix、phone-swap、enrollment chase は、--apply を追加するまで計画を表示するだけで、何も変更しません。
コマンドの全リファレンスについては、guide.md をご覧ください。AI エージェントの運用規約(--agent、--dry-run、変更前に確認するタイミング)については、AGENTS.md をご覧ください。
このスキルの特徴
Duo の公式クライアントライブラリ(duo_client_python、duo_api_golang)はリクエストに署名しますが、ワークフローは利用者に任されます。また、薄い MCP ラッパーは 1 つのツールを 1 つのエンドポイントに対応付けます。1 件のレコードであれば問題ありません。しかし、MSP が実際に尋ねる 2 つの質問には対応しきれません。「このユーザーがログインできないのはなぜか」(ユーザー、所属グループ、電話、バイパスコード、最近の失敗を横断して答える必要があります)と、「すべての顧客について、誰が……」(各顧客は独自の API ホストを持つ別個のサブアカウントです)です。
このスキルは Duo v5 のすべてのリクエストに自ら署名し、名前で顧客を指定して任意のコマンドを実行できるようルーティングし、複数の情報を組み合わせた回答を提供します。lockout triage はユーザー、所属グループ、電話、バイパスコード、最近の失敗を読み取り、ロックを解除しても意味がなくなる Disabled グループも含め、該当する対処法を 1 つ返します。fleet risk と fleet summary は 1 回の呼び出しで全サブアカウントに処理を振り分け、読み取れなかった顧客を 0 として数えるのではなく、fetch_failures に一覧表示します。audit bypass と audit stale は ローカルの SQLite ミラーから回答するため、テナント全体で「MFA をスキップできるのは誰か」という質問にも、ローカルクエリ 1 回で答えられます。
このツールが解決する課題
- ロックアウトチケットの調査は、単に情報を1つ検索するだけでは済みません。ユーザーのステータス、それを上書きするグループ、ユーザーの電話、すでに発行されたバイパスコード、過去1日間のログイン失敗は、それぞれAdmin Panelの別のページにあります。
cisco-duo-cli lockout triageを実行すると、これらすべてに加えて、次に実行すべきコマンドも表示されます。 - 修正には、ロック解除、有効期間の短いバイパスコードの発行、または電話の再有効化といった手順が必要です。以前に発行したコードを消去する必要はありません。
cisco-duo-cli lockout fixで手順を計画し、--applyを付けて実行すると、変更前後の記録が残ります。 - 電話を紛失した場合や新しい電話に替える場合は、新しい電話を作成して紐付け、有効化し、その後古い電話を使用終了にする必要があります。
cisco-duo-cli phone-swapなら、2回の実行でこれらを行い、別のユーザーも共有している電話を削除することはありません。 - 顧客ごとに別のDuoサブアカウントがあるため、「この発信者はどの顧客に属しているか」を調べるには、アカウントを1つずつ検索する必要があります(Duo CommunityのMSPも、顧客ごとに分かれている点について質問しています)。
cisco-duo-cli fleet find-userなら、すべてのアカウントを一度に検索できます。 - バイパスコードは、緊急事態が収束した後も有効なままです。
cisco-duo-cli audit bypassは、テナント内で有効なすべてのコードと、それを発行した管理者を一覧表示し、cisco-duo-cli fleet riskは顧客ごとにコード数を集計します。
詳しい説明は痛点の説明をご覧ください。
よくある質問
ChatGPTで使えますか?
このビルドでは使えません。ChatGPT(Plus、Pro、Team、Business、Enterprise、Educationプラン。Freeでは現時点でDeveloper Modeを利用できません)は、HTTPS経由のリモートMCPサーバーにのみ接続できます。つまり、Cisco Duo MCPサーバーをHTTPモードで実行する必要があります。このビルドのHTTPモードはトークンを検証しますが、リクエストサイズや実行時間の制限はまだありません。そのため、コネクターが再公開されるまでは、実行したりトンネルの背後に配置したりしないでください。その理由については、mcp-install.mdのセキュリティに関する注意事項をご覧ください。それまでは、Claude Desktop、Claude Code、またはCodexをご利用ください。
Codex、Cursor、Windsurf、Cline、Copilot、Geminiで使えますか?
はい。どれもMCPに対応しています。ほかのツールでのインストールコマンドは、上記の一覧表とdocs/which-agent.mdの詳細説明をご覧ください。
コーディングの知識は必要ですか?
いいえ。推奨するインストール方法は、Claude CodeまたはCodexに1文貼り付けることです。エージェントがSKILL.mdを読み取り、インストールを行います。別の方法として、OSごとの1行インストーラー(bashまたはPowerShell)もあります。どちらの方法でも、コードを書く必要はありません。Cisco Duoの認証情報を一度入力するだけです。
Cisco Duoのデータは安全ですか?
データはお使いのマシンに保存されます。CLIとMCPサーバーはローカルバイナリです。SQLiteミラーは、ユーザーアカウント配下のディレクトリに保存されます。AIエージェントが参照するのはCLIの返す内容のみで、通常はクエリ結果であり、生の一括データではありません。認証情報は環境またはエージェントの設定から読み込まれます。このリポジトリに含められたり、MSP Skillsによって外部に送信されたりすることはありません。
Duo MSP(親)アカウントは必要ですか?
いいえ。単一のDuoアカウントにAdmin APIアプリケーションがあれば、fleetコマンド以外のすべてのコマンドをそのアカウントに対して実行できます。MSPとして利用する場合は、サブアカウントの権限(少なくともGrant accounts - Read)を付与したAdmin APIアプリケーションを親アカウントに作成します。--account-id(またはCISCO_DUO_ACCOUNT_ID)を指定すると、各コマンドを1つの顧客に対して実行でき、fleet summary、fleet risk、fleet find-userではすべての顧客を一度に対象にできます。
どの Duo Admin API 権限が必要ですか?
ワークフローで使用する権限のみを付与してください。権限セットは、利用者が設定できる最も強力な制御手段です。読み取り専用の作業(トリアージ、監査、失敗の調査)には、Grant resource - Read、Grant read log、Grant read information が必要です。MSP として --account-id とフリートコマンドを使う場合は、CLI が親アカウントのサブアカウント一覧から各顧客を検索するため、Grant accounts - Read も必要です。また、フリートサマリーのユーザー上限列には Grant user limits - Read が必要です。ユーザーのロック解除、バイパスコードの発行、電話の入れ替え、登録メールの再送には Grant resource - Write が追加で必要です。管理者コマンドには Grant administrators - Read または - Write が、請求に関する set-user-limit には Grant user limits - Write が必要です。
AI にバイパスコードを発行させても安全ですか?
人間が確認する場合に限り安全です。コマンドはそのように設計されています。lockout fix、phone-swap、enrollment chase は実行計画を表示し、--apply を追加するまで何も変更しません。lockout fix によるバイパスコードは1回のみ使用でき、デフォルトでは1時間で期限切れになり、既存のコードはそのまま保持されます。まず、チケット以外の経路で利用者の本人確認を行ってください(users send-verification-push は利用者に Duo Push を送信します)。CISCO_DUO_MCP_READ_ONLY=1 を設定すると、MCP サーバーでは lockout fix、phone-swap、enrollment chase が非表示になり、API ツールは GET 以外のすべての呼び出しを拒否します。
Duo API のレート制限に達しますか?
まれです。クライアントは Duo のレート制限応答に合わせて呼び出し間隔を調整し、Duo が 429 を返した場合は待機して再試行します。フリートコマンドは顧客のサブアカウントごとに数回 API を呼び出します。フリートリスクコマンドはユーザーとバイパスコードもページングし、そのスキャンには --max-scan-pages で上限を設けます。また、上限に達してスキャンが停止した顧客があれば、その旨を示します。Duo は認証ログのポーリングを1分に1回以下にするよう推奨しています。そのため、これより短い間隔で失敗を繰り返し確認しないでください。
Duo Admin Panel の代わりになりますか?
いいえ。Duo Admin Panel を補完するものです。ポリシー、アプリケーション、ディレクトリ同期の管理には、引き続き Admin Panel を使用します。このスキルでは、ロックアウトの診断、電話の入れ替え、顧客をまたいだリスクや容量の確認など、パネル上で何度もクリックして確認する必要があるヘルプデスクや MSP の問い合わせに、AI から対応できます。
費用はいくらですか?
無料です。Apache-2.0 ライセンスで提供されています。費用が発生するのは、使用する AI エージェント(Claude、ChatGPT、Codex など)の利用料のみで、請求元は当方ではなく AI プロバイダーです。
安全モデル
| ティア | 例 | 推奨されるエージェントのポリシー |
|---|---|---|
| 読み取り | ロックアウトのトリアージ、フリートの概要、フリートのリスク、フリートのユーザー検索、監査バイパス、監査の古さ、失敗、同期、検索、エクスポート、すべての一覧表示と取得、アカウント一覧、および --apply を指定しないロックアウト修正、電話番号変更、登録の追跡(計画を表示するだけです) | 許可 |
| 書き込み(通常) | users send-verification-push、phones send-sms-installation、groups create、tokens resync、identity-verification start、identity-verification cancel | --dry-run(またはコマンド独自のプレビュー)でプレビューし、内容をレビューしてから書き込みます |
| MFA アクセス/認証情報 | lockout fix --apply(ロック解除、バイパスコード、再有効化)、phone-swap --apply、users create-bypass-codes、phones create-activation-url、phones send-sms-activation、phones send-sms-passcodes、phones set-quarantine-status(隔離を解除すると、デバイスは再び認証できるようになります)、users add-phone、users add-token、phones create、phones update(新しい番号に変更すると、SMS と電話による認証要素の送信先が変わります)、users bulk-create(バイパス状態のユーザーを作成できます)、groups delete(Disabled グループを削除すると、すべてのメンバーに対する制限が解除されます)、directory-sync sync-user(ディレクトリユーザーを再同期すると、再有効化され、電話が追加され、登録メールが送信される場合があります)、import --input file.jsonl(インポートでは、バイパス状態を含め、create で設定できる任意のフィールドを設定できます)、users enroll(任意のアドレスに一度だけ使用できる登録コードをメールで送り、コードを呼び出し元に返します)、enrollment chase --apply(登録していないユーザーの登録済みアドレスに登録リンクをメールで送信します。Disabled グループのユーザーはスキップされます)、users create と users update(いずれもユーザーをバイパス状態に設定できます)、users add-group、users remove-group、groups update(Bypass または Disabled グループはユーザー自身の状態より優先されます)、registered-devices block-device と unblock-device | 別のチャネルを通じて呼び出し元を確認した後に限り、人間が介在して実行します |
| 破壊的操作 | users delete、users bulk-trash、users remove-phone、users remove-token、phones delete、tokens delete、bypass-codes delete、webauthn delete、desktop-authenticators delete、phone-swap --delete-old | 明示的な確認のもと、人間が介在して実行します |
| 管理/課金 | admins create、admins update、admins delete、admins reset、admins clear-inactivity、accounts create、accounts delete(顧客のサブアカウント全体を削除します)、billing set-edition、billing set-user-limit、billing set-telephony-credits | オペレーター専用であり、エージェントには使用させません |
| 一括書き込み | users bulk-restore(Duo はユーザーを無効状態で復元します) | 明示的な確認のもと、人間が介在して実行します。無人で実行してはいけません |
MFA アクセスのティアは特に重要です。「ロックアウトされた」と言う呼び出し元が、MFA によって防ごうとしていた攻撃者である可能性があります。エージェントがバイパスコード、アクティベーションリンク、新しい電話を発行する前に、別のチャネルを通じて本人確認を行い(cisco-duo-cli users send-verification-push は、すでに所有しているデバイスに Duo Push を送信します)、人間に計画を承認してもらってください。診断のみを行うエージェントでは、CISCO_DUO_MCP_READ_ONLY=1 を設定してください。これにより、MCP サーバーは lockout fix、phone-swap、enrollment chase を非表示にし、API ツールは GET 以外のすべての呼び出しを拒否します。
最も強力な制御は、Admin API アプリケーションの権限セットです。Grant resource - Write のないアプリケーションでは、ユーザーのロック解除、コードの発行、電話への変更ができません。また、Grant administrators - Write または Grant accounts - Write のないアプリケーションでは、管理者や顧客アカウントを変更できません。制限の設定方法を含む詳細は、governance.md をご覧ください。
ステータス
ベータ版です。Cisco Duo API の仕様に照らして検証済みで、毎週開催している Build Sessions では、MSP が本番テナントで実際に稼働させながら検証を進めています。参加登録は compoundingteams.com/build-sessions から行えます。
標準。 オープンな Agent Skills spec(Anthropic、2025年12月、40以上のエージェント)に準拠しています。MCP 互換で、Hermes を含む、MCP 対応エージェントであればどれでも使用できます。OpenClaw に対応済みです(frontmatter は設定済みで、OpenClaw のリリース待ちです)。
Servosity がメンテナンスしています。Apache-2.0 ライセンスです。CLI Printing Press で構築されています。最終更新日:2026-10-13。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。