Burpsuite MCP Server について
Burp Suite ProfessionalのローカルREST APIを介してスキャナーを操作し、AIによるWebセキュリティテストを支援するMCPサーバーです。スキャンの開始、状態と問題の取得に対応し、プロキシ履歴とサイトマップは非対応と明示します。
主な機能
- 01対象URLの脆弱性スキャン開始
- 02スキャン状態の確認
- 03重大度による問題の絞り込み
- 04環境変数によるREST API設定
- 05履歴とサイトマップの非対応を説明
活用シーン
- 01AIアシスタントからWebサイトのセキュリティスキャンを開始
- 02スキャンの進行状況を追跡
- 03重大度別にスキャン結果を確認
MCP 対応
スキャン開始、状態確認、脆弱性問題の取得ツールをMCPクライアントに提供します。Burp Suite ProfessionalのローカルREST APIに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Burp Suite MCP Server
Burp Suite Professional に組み込まれたローカル REST API を呼び出し、スキャンの開始やスキャン状況・問題の取得を行う Model Context Protocol(MCP)サーバーです。
概要
この MCP サーバーを使うと、AI アシスタントから Burp Suite Professional のスキャナーを操作して、ウェブセキュリティテストを実施できます。次のツールを提供します。
- ターゲット URL の脆弱性スキャンの開始
- スキャン状況の確認
- スキャンで見つかった脆弱性の取得
Burp Suite Professional 自体のローカル REST API を利用します。これは Burp が独自の自動化機能向けに公開しているものと同じ API であり、別のホスト型製品の API ではありません。(Burp Suite Enterprise は CI/CD 向けの GraphQL 中心の別 API を提供しており、このサーバーはそれを使用しません。)
get_proxy_history と get_site_map は、このサーバーの以前のバージョンとのインターフェース互換性を保つため、ツール一覧に残されています。ただし、Burp Suite Professional の REST API にはプロキシ履歴やサイトマップのエンドポイントがありません。詳しくは、以下の既知の制限事項を参照してください。
Burp Suite の REST API の設定
- Burp Suite Professional を開き、Settings > Suite > REST API に移動します。
- "Service running" にチェックを入れます。
- サービスの URL/ポートを確認(または変更)します。デフォルトは
http://127.0.0.1:1337です(デフォルトではループバックインターフェースのみを使用します。PortSwigger は、信頼できないネットワークでループバック以外のインターフェースにバインドしないよう推奨しています)。 - API キーを作成します。キーが表示されるのは作成時の一度だけです。安全な場所にコピーしてください。
Burp の REST API には、http://<host>:<port>/<api-key>/v0.1/... でアクセスします。また、API は自己ドキュメント化されています。サービスの起動後に http://<host>:<port>/<api-key>/v0.1/<api-key> をブラウザーで開くと、インストールされている Burp のバージョンに対応する正確なリクエスト/レスポンスのスキーマが表示されます。PortSwigger はこの API の静的な完全スキーマを公開していないため、ツールの出力に問題がある場合は、このページを正確な情報源として確認してください。
設定
このサーバーには 2 つの環境変数が必要です。設定されていない場合、起動しません。
| 変数 | 説明 |
|---|---|
BURP_API_URL | Burp の REST API サービスのベース URL。例:http://localhost:1337 |
BURP_API_KEY | Settings > Suite > REST API で生成した API キー |
機能
ツール
サーバーでは、以下のツールを利用できます。
-
start_scan:対象 URL の新しい脆弱性スキャンを開始します(
POST /v0.1/scan)。対象に対して実際のスキャンを実行し、対象へのライブトラフィックを生成します。- パラメーター:
target(必須):スキャン対象の URL(例:https://example.com)scope(任意):Burp のリクエストボディにそのまま渡されます(例:{ include: [...], exclude: [...] })。正確な形式は PortSwigger によって公開されていません。不明な場合は、インスタンスの自己文書化 API を確認してください。scan_configurations(任意):そのまま渡されます(例:Scanner > Scan configurations にある名前付き設定への参照)。省略した場合、Burp はデフォルトのクロールおよび監査設定を使用します。application_logins(任意):認証スキャン用の[{ username, password }, ...]がそのまま渡されます。
- パラメーター:
-
get_scan_status:スキャンのステータスを確認します(
GET /v0.1/scan/{task_id})- パラメーター:
scan_id:スキャンのタスク ID(start_scanから返されます)
- パラメーター:
-
get_scan_issues:スキャンでこれまでに検出された脆弱性の問題を取得します。問題はスキャンステータスと同じ
GET /v0.1/scan/{task_id}レスポンスに含まれて返されます。問題用の個別のエンドポイントはありません。- パラメーター:
scan_id:スキャンのタスク IDseverity:深刻度で問題を絞り込みます(high、medium、low、info、またはall)
- パラメーター:
-
get_proxy_history / get_site_map:Burp Suite Professional の REST API ではサポートされていません。いずれかを呼び出すと、捏造したデータではなく、明確な説明エラーが返されます。既知の制限を参照してください。
注:以前のバージョンのこのサーバーでは、start_scan に scan_type(passive/active/full)パラメーターを指定できました。このパラメーターは Burp の REST API に実際に対応するものがなかったため、上記の scope/scan_configurations/application_logins フィールドに置き換えられました。これらは Burp の実際のリクエストボディに対応しています。
既知の制限:プロキシ履歴とサイトマップ
Burp Suite Professional の REST API でサポートされているのは、スキャンの開始とスキャンステータス/問題の読み取りだけです。HTTP プロキシ履歴やサイトマップ用のエンドポイントはありません。このデータにアクセスするには、以下のいずれかを利用する必要があります。
- Burp の個別の Montoya extension API(Java/Kotlin/Python で作成して Burp に読み込ませる拡張機能です。独自のインターフェースを通じて、必要なデータを公開できます)、または
- デスクトップ UI を直接使用します(Proxy > HTTP history、Target > Site map)。
get_proxy_history/get_site_map を完全に削除すると、それらを名前で参照している既存の設定が気付かないうちに動作しなくなる可能性があります。また、出力を偽装するのは、今回の書き直しで解決する問題そのものです。そのため、両方のツールを残し、呼び出された際には説明エラーを返すようにしています。
エラー処理
すべてのツールは実際の Burp REST API を呼び出し、モックデータで代替するのではなく、実際のエラーを返します。
- 接続拒否/Burp が実行されていない/REST API が有効になっていない:REST API を有効にして Burp が実行されていること、および
BURP_API_URLが正しいことを確認するよう案内する明確なメッセージを返します。 - 401/403(API キーが無効):
BURP_API_KEYを確認するよう案内するメッセージを返します。 - 404:考えられる 2 つの原因、つまり不明または期限切れのスキャン ID、あるいは
BURP_API_URL/BURP_API_KEYの不一致について説明するメッセージを返します。 - それ以外の 2xx 以外のレスポンスは、HTTP ステータスとレスポンスボディを含めて返されます。
インストール
Smithery 経由でのインストール
Smithery 経由で Claude Desktop 用 Burp Suite Server を自動インストールするには:
npx -y @smithery/cli install @Cyreslab-AI/burpsuite-mcp-server --client claude
手動インストール
-
サーバーをビルドします。
cd /path/to/burpsuite-server npm install npm run build -
MCP 設定ファイルにサーバーを追加します。
{ "mcpServers": { "burpsuite": { "command": "node", "args": ["/path/to/burpsuite-server/build/index.js"], "env": { "BURP_API_URL": "http://localhost:1337", "BURP_API_KEY": "your-api-key-here" }, "disabled": false, "autoApprove": [] } } }
使用例
AI アシスタントで Burp Suite MCP サーバーを使用する例を以下に示します。
スキャンの開始
Use the Burp Suite MCP server to scan example.com for vulnerabilities.
スキャンステータスの確認
What's the status of scan <scan_id>?
脆弱性の分析
What high severity vulnerabilities were found in scan <scan_id>?
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。