pentestMCP
pentestMCP: MCPを介したAI駆動のペネトレーションテスト
pentestMCPは、Model Context Protocol(MCP)を通じて、大規模言語モデル(LLM)と実用的なペネトレーションテストツールの間に強力な橋渡しを提供します。このプロジェクトはMCPサーバーとして機能し、20以上の標準的なセキュリティ評価ユーティリティ(Nmap、Nuclei、ZAP、SQLMapなど)を呼び出し可能な「ツール」として公開します。これにより、MCP互換クライアント(Claude Desktopや特定のVS Code環境など)内のAIエージェントが、自動化・対話型のセキュリティ分析タスクにこれらのユーティリティを活用できるようになります。
このプロジェクトの目標は、複雑なセキュリティワークフローを自然言語で制御できるようにし、ペンテスト機能をより身近にし、AI駆動環境に統合することです。この作品はLaurie Kirk氏のGhidraMCPに触発されています。
目次
Related MCP server: redteam-mcp
ビデオデモ
https://github.com/user-attachments/assets/930c879a-5cb4-478a-b033-f30df0e770a6
コアコンセプトとアーキテクチャ
pentestMCPはMCP仕様に厳密に準拠し、MCPサーバーとしてのみ機能します。特定のLLMを組み込んだり、直接通信したりすることはありません。対話フローはMCPクライアントホストアプリケーションによって仲介されます:
クライアントホストアプリケーション(例:Claude Desktop、カスタムエージェント):pentestMCPに接続し(通常はDockerが仲介する
stdio経由)、ユーザー操作を管理し、選択したLLMとのインターフェースを提供します。LLM:ユーザープロンプトとツール定義(クライアントホスト経由でpentestMCPから取得)を受け取ります。コンテキストに基づいて呼び出すツールを決定します。
pentestMCPサーバー(このプロジェクト):Dockerコンテナ内で実行されます。クライアントホストからの
tools/callリクエストをリッスンし、対応する基盤ツール(例:nmap)を実行して、結果を返します。外部ツール:Dockerイメージ内にカプセル化された実際のコマンドラインユーティリティ。
サーバーはPython MCP SDK(mcp.server.fastmcp.FastMCP)を使用して構築されており、以下の特徴があります:
ツールディスカバリー: Pythonの型ヒントとdocstringを利用して、MCPツールスキーマを自動生成します。
並行性制御:
threading.Semaphoreにより、リソースを大量に消費するスキャンの同時実行を制限します。非同期スキャンパターン: 長時間実行されるタスク(Nmap、Nuclei、SQLMap、Gobuster)では、MCP接続をブロックしないように起動/取得メソッドを実装しています。
sequenceDiagram
participant User
participant ClientHost as Client Host (Claude, VS Code)
participant LLM
participant PentestMCP as pentestMCP Server (Docker via stdio)
participant ExtTool as External Tool (e.g., Nmap)
User->>ClientHost: "Perform Nmap service scan on scanme.nmap.org"
ClientHost->>PentestMCP: tools/list Request
PentestMCP-->>ClientHost: List of Tools (including 'run_nmap_scan')
ClientHost->>LLM: User Prompt + Available Tools Description
LLM-->>ClientHost: Decision: Use 'run_nmap_scan', target='scanme.nmap.org', args='-sV'
ClientHost->>PentestMCP: tools/call (name='run_nmap_scan', args={...})
Note over PentestMCP, ExtTool: pentestMCP executes 'nmap -sV scanme.nmap.org' internally
PentestMCP-->>ClientHost: tools/call Result (pid, output_path for async or direct output)
ClientHost->>LLM: Tool Execution Result
LLM-->>ClientHost: Formulate Final Response
ClientHost-->>User: "Nmap scan launched/completed. Results..."主な機能
包括的なツールセット: MCPを介して20以上の必須ペネトレーションテストツールを統合。
標準化されたアクセス:
stdioサーバーの起動をサポートする任意のMCPクライアントが、複雑なペンテストワークフローを利用可能にします。ノンブロッキングスキャン: 対話フローをロックすることなく、長時間実行されるスキャンを効率的に処理します。
リソース管理: スキャンの基本的な同時実行制限を実装。
ポータブルで再現可能: Docker化された環境により、すべての依存関係とツールが、プラットフォーム(Windows、macOS、Linux)を問わず一貫して利用可能であることを保証します。
Webスキャナー統合: OWASP ZAP Active ScanおよびAJAX Spider機能を直接制御できます。
前提条件
Docker: Docker Desktop(Windows/macOS)またはDocker Engine(Linux)がインストールされ、実行されている必要があります。Dockerデーモンがアクティブであることを確認してください。
Git: ローカルでイメージをビルドする場合にのみ必要です(
git clone手順)。(任意ですが推奨)OWASP ZAPインスタンス: ZAP関連ツール(
run_zap_*、run_active_scan_*、run_ajax_*)を使用する場合に必要です。このZAPインスタンスは、pentestMCP Dockerコンテナの内部からネットワークアクセス可能である必要があります(設定についてはクライアントホスト統合セクションを参照)。
インストールとセットアップ
最速かつ最も信頼性の高いセットアップには、ビルド済みのDockerイメージの使用をお勧めします。
🐳 ビルド済みDockerイメージを使用する(推奨)
ビルド済みイメージを使用すると、ローカルでのビルド時間を回避でき、依存関係の問題なしにすべてのツール(gofang、nmap、nucleiなど)が正しくインストールされていることを確認できます。
Docker Hubからイメージをプルします:
docker pull ramgameer/pentest-mcp:latestℹ️ 注: 環境によっては、認証が必要な場合や、Dockerデーモンが実行されていることを確認する必要がある場合があります。
🛠️ Dockerイメージをローカルでビルドする
⚠️ 重要: ローカルでのビルドは、現在Linux環境で最も効率的にサポートされています。
サーバーのコードを変更したい場合、最新バージョンを使用したい場合、またはビルド済みイメージが利用できない場合は、Dockerイメージをローカルでビルドできます。
リポジトリをクローンします:
git clone https://github.com/ramkansal/pentestMCP.git cd pentestMCPDockerイメージをビルドします:
docker build -t pentest-mcp-server:custom .SecListsをインストールします(任意ですが強く推奨):
💡 ヒント: いくつかのツール(Gobusterやファジングユーティリティなど)は、大規模なワードリストに依存しています。これらの特定のスキャンを効果的に機能させるには、SecListsリポジトリをクローンする必要があります。 GXP5
クライアントホストとの統合
pentestMCPはDocker内で実行され、stdioを介してクライアントホストと通信します。ホスト(例:Claude Desktop、VS Code)を設定して、docker run -i ...を使用してサーバーを起動します。
Claude Desktopとの統合
設定ファイルの場所を確認/作成します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
設定を編集します:
mcpServersセクションを追加/更新します。正しいイメージ名(ramgameer/pentest-mcp:latestまたはカスタムタグ)を使用します。{ "mcpServers": { "pentestMCP": { "command": "docker", "args": [ "run", "--rm", "-i", "ramgameer/pentest-mcp:latest" ] } } }Claude Desktopを完全に再起動します。
確認: アイコンを探します。クリックすると、ペネトレーションテストツールの一覧が表示されます。
操作: Claudeにツールの使用を依頼します(例についてはドラフトを参照)。
VS Code Copilot Chatとの統合
統合するには、MCPをサポートするCopilot ChatエージェントのMCPサーバーを定義するようにVS Codeの設定を構成する必要があります。
前提条件をインストールします: Github Copilot拡張機能と関連するGitHub Copilot拡張機能がインストールされていることを確認します。
VS Codeの設定を構成します: ユーザーまたはワークスペースの
settings.jsonファイルを開きます(コマンドパレット:「基本設定: 設定(JSON)を開く」)。適切なパスの下にMCPサーバー設定を追加します(このパスは、特定のCopilot Chatエージェントの実装によって異なる場合があります。ドキュメントを確認してください):"pentest-mcp": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "ramgameer/pentest-mcp:latest" ] }VS Code / エージェントをリロードします: VS Codeを再起動するか、関連するコマンドを使用してCopilotエージェントの設定をリロードし、変更を有効にします。詳細については、特定のCopilotエージェントのドキュメントを参照してください。
操作: Copilot Chatインターフェースを使用し、エージェントがサポートしている場合はメンションを介してツールを呼び出すか、プロンプトに基づいてエージェントにツールを呼び出させます。
ツールリファレンス
サーバーは、機能ごとに分類されたさまざまなツールを公開しています:
偵察と列挙:
run_subfinder:ProjectDiscoveryのSubfinderを使用してサブドメインを発見します。launch_nmap_scan/fetch_nmap_results:Nmapネットワークスキャンを実行し、結果を非同期的に取得します。run_gobuster_scan/check_gobuster_status:Gobusterを使用してディレクトリ/ファイル/DNSのブルートフォースを非同期的に実行します。launch_gofang_scan/fetch_gofang_results:抽出機能を備えたオールインワンWebクローラーであるgofangを実行します。run_harvester/check_harvester_status:OSINT収集(メール、ホスト、IP)のためにtheHarvesterを非同期的に実行します。run_dig_tool:DNSdigクエリを実行します。fetch_whois_data:ドメインのWHOIS情報を取得します。run_curl_tool:HTTP操作用にcURLコマンドを実行します。
脆弱性スキャン:
launch_nuclei_scan/fetch_nuclei_results:ProjectDiscoveryのNucleiを使用して、テンプレートベースの脆弱性スキャンを非同期的に実行します。
Webアプリケーション分析:
launch_arjun_scan/fetch_arjun_results:Arjunを使用して隠しHTTPパラメータを特定します。
エクスプロイトサポート:
run_searchsploit:Searchsploitを使用してローカルのExploit-DBデータベースを検索します。run_sqlmap_tool/check_sqlmap_status:SQLインジェクションテスト用にSQLmapを非同期的に実行します。
Active Directory分析(
ad_*ツール):列挙:
ad_user_enum、ad_shares_enum、ad_smb_signing_check、ad_certipy_enum、ad_ldap_dump、ad_bloodhound_collect攻撃/強制:
ad_asreproast、ad_kerberoast、ad_password_spray、ad_coerce_petitpotam、ad_coerce_printerbug、ad_responder_poison、ad_relay_setup資格情報/ドメイン操作:
ad_check_credentials、ad_secrets_dump、ad_dcsync
セキュリティに関する考慮事項
実行権限: ツールはDocker内で
appuserとして実行されますが、Docker自体はホスト権限で実行されます。ファイルを変更したり、昇格したシステムアクセスを必要とするツールには注意してください。ターゲットの承認: 重要: 明示的かつ事前の書面による承認があるシステムに対してのみ、これらのツールを使用してください。許可のないスキャンは違法であり、非倫理的です。
ネットワーク露出: ZAPのポート(
-p 8888:8888)をマッピングする場合は、信頼できないネットワーク上にある場合に、ホストのファイアウォールがアクセスを制限していることを確認してください。構成されたZAP APIキーは、インスタンスを制御します。入力検証: MCPは構造化された入力を提供しますが、基盤となるツールは、Pythonラッパー関数内で堅牢に処理されない場合、巧妙に細工された引数に対して脆弱なままである可能性があります。
コントリビューション
コントリビューションを歓迎します! リポジトリをフォークし、機能ブランチを作成し、プルリクエストを送信してください。すべてのコントリビューションで、倫理的なテストガイドラインの遵守を徹底してください。バグレポートや機能提案は、GitHub Issuesからお寄せください。
ライセンス
このプロジェクトは、MITライセンスの条件に基づいて配布されています。
免責事項
本ソフトウェアは、教育目的および許可された倫理的なセキュリティテストのためだけに意図されています。 明示的な許可なくシステムに対して使用することは、厳しく禁止されており、違法です。著者および貢献者は、このプログラムの誤用または損害について一切の責任を負いません。自己責任で使用し、適用されるすべての法律および契約を遵守してください。
謝辞
このプロジェクトは、Laurie Kirk による GhidraMCP に関する画期的な研究から深いインスピレーションを得ています。
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceAn MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.7-
- FlicenseNot gradedqualityCmaintenanceA penetration testing MCP server that runs 20 hacking tools inside a Kali Linux Docker container, enabling AI assistants to execute security scans and attacks via natural language.2-
- FlicenseNot gradedqualityDmaintenanceAI-powered Attack Surface Intelligence server that exposes industry-standard penetration testing tools via MCP, enabling AI agents to perform comprehensive security assessments.3-
- AlicenseNot gradedqualityBmaintenanceAI-powered penetration testing framework that can operate as an MCP server, enabling automated security assessments through natural language commands.2MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/RamKansal/pentestMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server