reptor-mcp
reptor-mcp: Reptor/SysReptor用MCPサーバー
このプロジェクトは、reptor CLIツールをMCP(Model-Context-Protocol)サーバーに変換し、その強力なペネトレーションテストレポート作成および自動化機能をプログラム可能なサービスとして公開します。
これにより、他のツール、スクリプト、またはAIエージェントがMCPプロトコルを介してSysReptorとプログラム的に対話できるようになり、自動化ワークフローへの統合が容易になります。
アルファ版ソフトウェア: 基盤となる reptor CLIツールはアルファ版です。APIが変更される可能性があり、reptor-mcpが動作しなくなる可能性があります。
認証なし: このサーバーには認証や認可がありません。ローカルでの使用のみを想定して設計されています。インターネットや信頼できないネットワークには公開しないでください。
データの機密性: 機密性の高いプロジェクトデータを扱う場合は、このサーバーを介してLLMに送信することの影響を考慮してください。REPTOR_MCP_EXCLUDE_FIELDSを使用して、LLMに到達する前に機密フィールドを除外してください。
機能
動的ツール生成: 利用可能なすべての
reptorプラグイン(nmap、nessus、burp、zap、sslyzeなど)からMCPツールを自動的に作成します。直接APIツール: reptorのPython APIを直接使用して、調査結果のCRUD、スキーマ検出、テンプレート管理のための構造化されたツールを提供します。
フィールド除外: LLMクライアントにデータを返す前に、機密フィールドをデータから削除します(環境変数で設定可能)。
非同期セーフ: スレッドセーフなシリアル化されたプラグイン実行を備えた、ノンブロッキングなイベントループ。
前提条件
Python 3.10+
uv(推奨) またはpipAPIトークンを備えた実行中の SysReptor インスタンス
インストール
git clone https://github.com/slvnlrt/reptor-mcp.git
cd reptor-mcp
uv venv && source .venv/bin/activate
uv pip install -e .これにより、reptor と fastmcp がPyPIから自動的にインストールされます。reptorリポジトリを個別にクローンする必要はありません。
reptorのローカルチェックアウトに対して作業する必要がある場合(例:未リリースの変更をテストする場合):
uv pip install -e /path/to/reptor-source
uv pip install -e .または、実行時に REPTOR_MAIN_PATH=/path/to/reptor-source を設定して sys.path に注入します。
設定
サーバーは環境変数を介して設定されます:
変数 | 必須 | 説明 |
| はい | SysReptorインスタンスのURL |
| はい | SysReptor APIトークン |
| いいえ | 操作のデフォルトプロジェクトID |
| いいえ | SSL検証を無効にするには |
| いいえ | カスタムCAバンドルファイルへのパス |
| いいえ | LLM応答から削除するフィールド名のカンマ区切りリスト(例: |
| いいえ | 詳細なデバッグログを出力するには |
サーバーの実行
fastmcp run mcp_server.py:mcp --transport streamable-http --port 8008サーバーには http://localhost:8008/mcp/ からアクセス可能になります。
クライアント接続
以下のような設定を使用してMCPクライアントを接続します(例: mcp_settings.json 内):
{
"mcpServers": {
"reptor-mcp": {
"type": "streamable-http",
"url": "http://localhost:8008/mcp/"
}
}
}利用可能なツール
カスタムツール (直接API)
これらのツールは、構造化されたスキーマ対応の操作のためにreptorのPython APIを直接使用します:
ツール | 説明 |
| フィルター(ステータス、重大度、タイトル)を使用して調査結果を一覧表示します。 |
| IDで調査結果の詳細を取得します。 |
| プロジェクトで利用可能な調査結果のフィールド、型、制約を検出します。 |
| フラットなデータ辞書から新しい調査結果を作成します。 |
| 調査結果の単一フィールドを更新します。 |
| IDで調査結果を削除します(明示的な確認が必要です)。 |
| JSONまたはTOMLから調査結果テンプレートをアップロードします。 |
プラグインツール (動的ラッパー)
サーバーは、すべての reptor CLIプラグインをMCPツールとして動的にラップします:
カテゴリ | ツール |
脆弱性インポーター |
|
調査結果管理 |
|
プロジェクト管理 |
|
テンプレート |
|
メモとファイル |
|
翻訳 |
|
インポート/エクスポート |
|
各ツールの正確な引数は、接続されたMCPクライアントを介して確認できます。
reptorのネイティブMCPサーバーとの関係
reptor v0.33以降、reptorには独自の組み込みMCPサーバー(reptor mcp)が含まれています。これら2つのサーバーは補完的です:
機能 | reptor-mcp | ネイティブ |
調査結果のCRUD | :white_check_mark: | :white_check_mark: |
調査結果のスキーマ検出 | :white_check_mark: | :white_check_mark: |
レポートセクションのCRUD | :x: | :white_check_mark: |
脆弱性インポーター (nmap, nessus, burp等) | :white_check_mark: | :x: |
プロジェクト管理 (検索, 作成, エクスポート, 複製) | :white_check_mark: | :x: |
メモ, ファイル, 翻訳 | :white_check_mark: | :x: |
テンプレート管理 | :white_check_mark: | :white_check_mark: |
フィールド除外 | :white_check_mark: | :white_check_mark: |
アーキテクチャ
mcp_server.py # Server entry point, lifespan, configuration
├── tool_generator.py # Dynamic MCP tool generation from plugin argparse definitions
│ ├── signature_utils.py # argparse → Python function signature translation
│ └── wrapper_utils.py # Plugin execution, stdin/stdout capture, config handling
├── custom_tools.py # Direct API tools (findings CRUD, schema, templates)
└── tool_config.py # Plugin exclusions, stdin consumers, config overwrite mappings主な設計上の決定事項:
プラグインラッパーはシリアル化ロックを備えたスレッドで実行され、共有状態を保護しながら非同期イベントループの応答性を維持します。
カスタムツールは、ノンブロッキングなAPI呼び出しのために
asyncio.to_thread()を使用します。フィールド除外は、クライアントに返す前に、すべてのネストされたデータ構造から指定されたフィールドを再帰的に削除します。
ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
謝辞
このプロジェクトは、SysReptorチームとその貢献者によって開発されたオリジナルの reptor CLIツール なしでは実現できませんでした。reptor-mcp は彼らの優れた成果の上に構築され、MCPインターフェースを提供します。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/slvnlrt/reptor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server