
教育的な目的ではありません:プロのペネトレーションテスター向けのMCPサーバー。STDIO/HTTP/SSEサポート、nmap、go/dirbuster、nikto、JtR、hashcat、ワードリストの構築などを含みます。
最新のトランスポート/認証サポートと拡張された偵察ツールを備えた、プロフェッショナルな侵入テスト用 MCP サーバー。
@modelcontextprotocol/sdk@^1.26.0 にアップグレード@modelcontextprotocol/inspector@^0.20.0) のバンドルランチャーを維持MCP_TRANSPORT=http)subfinderEnum, httpxProbe, ffufScan, nucleiScan, trafficCapture, hydraBruteforce, privEscAudit, extractionSweeplistEngagementRecords, getEngagementRecordscopeMode=ask) と安全なテンプレートフォールバックを使用したレポート用 SoW 取得フローを追加httpx-toolkit (推奨) または検証済み ProjectDiscovery httpx を使用し、Python の httpx CLI との衝突を回避するようコマンド解決を強化pentest-mcp inspector) を統合nmapScanrunJohnTheRipperrunHashcatgobusterniktosubfinderEnumhttpxProbeffufScannucleiScantrafficCapturehydraBruteforceprivEscAuditextractionSweepgenerateWordlistnpm install -g pentest-mcp
pentest-mcp
pentest-mcp inspector
Inspector のフラグを直接転送できます:
pentest-mcp inspector --help
MCP_TRANSPORT=http MCP_SERVER_HOST=0.0.0.0 MCP_SERVER_PORT=8000 pentest-mcp
MCP_TRANSPORT=sse MCP_SERVER_PORT=8001 pentest-mcp
stdio: ローカル MCP クライアントのデフォルト。http: モダンネットワークトランスポート。推奨。sse: 互換性のみ。非推奨であり、将来のメジャーリリースで削除予定。pentest-mcp inspector はバンドルされた @modelcontextprotocol/inspector CLI を起動します。node <this-package-entrypoint> stdioMCP_TRANSPORT=http (または必要に応じて sse) を使用する場合、以下の環境変数を設定します:
MCP_AUTH_ENABLED=true
MCP_AUTH_MODE=bearer
MCP_AUTH_SCOPES=read,write
MCP_AUTH_AUDIENCE=
MCP_OIDC_ISSUER=https://issuer.example.com
MCP_OIDC_JWKS_URL=https://issuer.example.com/.well-known/jwks.json
# オプションの代替/バックアップ検証モード:
MCP_OIDC_INTROSPECTION_URL=https://issuer.example.com/oauth/introspect
MCP_OAUTH_CLIENT_ID=...
MCP_OAUTH_CLIENT_SECRET=...
レガシーエイリアスも一時的に受け付けられます:
MCP_OAUTH_ENABLEDMCP_OAUTH_PROVIDER_URLMCP_OAUTH_SCOPEScreateClientReport は SoW 処理モードをサポートするようになりました:
scopeMode=ask: MCP エリシテーションによるユーザーへのプロンプト (推奨)scopeMode=provided: scopeOfWork の値を直接使用scopeMode=template: 組み込みの汎用認可テストテンプレートを使用エリシテーションが拒否されたり利用できない場合、レポートは自動的にテンプレートにフォールバックします。
現時点では別個のファイルアップロード API はありません。現在のオプションは以下の通りです:
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "ask"
}
}
scopeOfWork に貼り付ける{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "provided",
"scopeOfWork": "Authorized targets: ...\nOut-of-scope: ...\nTesting window: ...\nRules of engagement: ..."
}
}
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "template"
}
}
recordId=...) を保存します。listEngagementRecords を使用して、すべての作業成果物を迅速に取得できます。recordIds (デフォルトでは最新のレコード) からレポートを生成します。ask)provided)template)以下は、特にペンテストの管理オーバーヘッドを削減するために計画されています。
scopeFilePath の取り込み (MCP ホスト上のローカルファイルパスから SoW をロード)scopeDocument チャンクアップロードフロー (リモートクライアント向けに MCP を介して SoW コンテンツを直接送信)recordId) から所見やレポートセクションへのエビデンス自動リンクnuclei, nikto など) 間での所見の重複排除/マージ導入に関する注意:
scopeFilePath と scopeDocument の強い使用が予想されます。これは、ほとんどのチームがすでにドキュメント/PDF で SoW を管理しており、繰り返しのペーストと再フォーマットの手順を避けたいと考えているためです。{
"tool": "subfinderEnum",
"arguments": {
"domain": "example.com",
"recursive": true,
"allSources": true
}
}
{
"tool": "httpxProbe",
"arguments": {
"targets": ["example.com", "api.example.com"],
"includeTitle": true,
"includeStatusCode": true
}
}
{
"tool": "ffufScan",
"arguments": {
"targetUrl": "https://example.com/FUZZ",
"wordlist": "/usr/share/seclists/Discovery/Web-Content/common.txt",
"threads": 40
}
}
{
"tool": "nucleiScan",
"arguments": {
"targets": ["https://example.com"],
"severities": ["medium", "high", "critical"]
}
}
{
"tool": "trafficCapture",
"arguments": {
"networkInterface": "eth0",
"packetCount": 200,
"bpfFilter": "tcp port 80"
}
}
{
"tool": "hydraBruteforce",
"arguments": {
"target": "10.10.10.20",
"service": "ssh",
"usernameList": "/usr/share/seclists/Usernames/top-usernames-shortlist.txt",
"passwordList": "/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt"
}
}
{
"tool": "extractionSweep",
"arguments": {
"targetUrl": "https://target.local/item.php?id=1",
"risk": 2,
"level": 3
}
}
docker-compose --profile http up
docker-compose --profile stdio up
docker-compose --profile sse up
Docker イメージは以下をインストールします:
nmap, john, hashcat, gobuster, nikto, ffuf, hydra, sqlmap, tcpdumpsubfinder, httpx + httpx-toolkit エイリアス, nucleiバイナリが PATH にあることを確認してください:
which nmap john hashcat gobuster nikto subfinder httpx-toolkit ffuf nuclei hydra sqlmap tcpdump
httpx-toolkit がインストールされていない場合、検証済みの ProjectDiscovery httpx バイナリがフォールバックとして受け入れられます。
許可された使用のみ。明示的な書面による許可があるシステム/ネットワークに対して実行してください。
最終更新日: 2026-03-23
Model Context Protocol (MCP) は、ツールとエージェントのための最も有用な相互運用レイヤーの 1 つです。トレードオフとして、大規模な MCP サーバーは多くのツールを露出させる可能性があり、単純なツール呼び出しはスキーマ、ツールチャター、無関係な呼び出しトレースでコンテキストウィンドウを溢れさせる可能性があります。
実際には、「より多くのツール」が常に「より良い結果」をもたらすわけではありません。トークン使用量を制限し、動作を予測可能に保つ実行パターンと組み合わせる必要があります。
最近のワークフローは、複雑なオーケストレーションをチャットコンテキストからコード実行ループに移行する傾向が強まっています。これにより、繰り返しのスキーマトークンが削減され、ツールの使用が監査可能でテスト可能になります。
主要な参考文献:
再現可能でノイズの少ない MCP 使用を求めるユーザーは、codemode 指向の設定から始めてください:
実用的な注意点: 強力な設定でも、プロバイダーやバージョンによってモデルの動作は依然として一貫しない可能性があります。リトライ、ガードレール、決定論的なフォールバックを確実に維持してください。
高いレバレッジを得られるパターンは、MCP サーバーを呼び出し可能なコードインターフェースやタスク指向の CLI にラップし、すべての生のツールを常にモデルに露出させないことです。
参考ツール:
この分野は急速に変化しています。これを読んでいる時点で、このガイダンスの一部はすでに古くなっている可能性があります。
プロンプトインジェクションは、ツールを使用するエージェントにとって依然として未解決のセキュリティ問題です。管理可能ではありますが、「解決済み」ではありません。
主なリスク:
影響:
対策のベースライン:
明示的に検証されない限り、すべてのツール出力を信頼できない入力として扱ってください。
このサーバーは MCP プロトコルバージョン 2025-11-25 と SDK @modelcontextprotocol/sdk@^1.27.1 を対象としています。
listEngagementRecordsgetEngagementRecordcreateClientReportcancelScan| Feature | Status |
|---|
| stdio transport | Supported (default) |
| Streamable HTTP transport | Supported (MCP_TRANSPORT=http) |
| SSE transport (legacy) | Deprecated compatibility mode |
| Tool annotations | All tools annotated with title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint |
| Bearer auth (OIDC/JWKS) | Supported |
| Origin validation (HTTP) | 403 on invalid Origin when MCP_ALLOWED_ORIGINS is set |
| JSON Schema 2020-12 | Zod-generated schemas |
| Structured tool errors | isError flag with descriptive messages for model self-correction |
| Elicitation | Used for SoW capture in report generation |