Kali Factory MCP Server
Kali Factoryの手順
Kali LinuxのOSINTツールへのアクセスを必要とするAIエージェントのための、より安全なホストローカル制御プレーン。
このパッケージはGPU Factoryの形状(型付きジョブ送信、ベアラ認証、キューイングされたワーカー実行、許可リスト化されたDockerイメージ実行)を模倣していますが、適用先は別の問題です。それは、エージェントに認証なしのシェルを与えることなく、Kaliの偵察およびトラフィック分析ツールへのアクセスを分散させることです。
FastAPI制御API
Redisキュー
RQワーカー
ハードニングされたKaliイメージに対するDockerファーストのコンテナ実行
生のシェルではなく、型付きジョブ(osint、トラフィックキャプチャ、JS分析、リーク調査)
ベアラトークン認証
MCP対応エージェントのためのローカルMCPサーバー
実行間で偵察結果を保持するためのオプションのChromaDBサイドカー
なぜこれが存在するのか
Kaliには数百のツールが同梱されており、その多くは正当な競合インテリジェンスやセキュリティ調査に役立ちますが、エージェント主導の自動化には適さないものもあります。素朴なアプローチ(エージェントをKaliシェルに放り込んで、あとは勝手にやらせる)では、3つの問題が発生します。
エージェントが、自動化コンテキストから決して到達可能であってはならないエクスプロイトフレームワーク(
metasploit、sqlmap、hashcat、john、aircrack-ng、exploitdbなど)を含む、すべてのツールにアクセスできてしまう。ツールの呼び出しが非構造化のシェル文字列であり、引数インジェクションのバグが発生しやすく、クリーンな監査が不可能である。
エージェントが何をするかについてレート制限、時間制限、出力予算がないため、1つの誤作動したエージェントがターゲットを攻撃したり、ディスクを埋め尽くしたりする可能性がある。
このパッケージは、すべての呼び出し可能なツールがマニフェストで宣言され、すべての引数がPydanticによって検証され、すべてのコンテナ実行がイメージプレフィックスによって許可リスト化され、すべての呼び出しにベアラトークンが必要となる型付きジョブAPIを通じてKaliを公開することで、これら3つの問題をすべて解決します。
コアとなる安全性の特性
shell=Trueを使用しない汎用的な「任意のコマンドを実行する」エンドポイントがない
ジョブは明示的なスキーマで検証される
コンテナ実行はイメージプレフィックスによって許可リスト化される
コンテナ内でのツール実行はバイナリ名によって許可リスト化される
APIにはベアラトークンが必要
ワーカーとAPIは別々のプロセス
エクスプロイト/認証情報クラッキング/ワイヤレスツールはイメージビルド時に明示的に削除される
ネットワークに触れるすべてのツールで送信ログを記録
ジョブタイプ
kali_probeKaliコンテナに到達可能であり、ツール許可リストが損なわれていないことを検証する
osint_run許可リストから型付きOSINTツール(amass、whatweb、gobuster、dnsenumなど)を構造化された引数で実行する
traffic_capture制限時間内に
mitmdumpを実行し、キャプチャファイルを返す
js_analysisJavaScript URLに対して
linkfinder/secretfinder/arjunを実行する
leak_scanGitHub組織/リポジトリに対して
trufflehogを実行し、コミットされた認証情報を探す
subdomain_enumターゲットドメインに対して
amass enum(パッシブソースのみ)を実行する
web_fingerprintwhatwebを実行してターゲットの技術スタックを特定する
nuclei_exposuresexposures/テンプレートサブセットのみを使用してターゲットに対してnucleiを実行するcves/、vulnerabilities/、default-logins/、fuzzing/テンプレートディレクトリは明示的にブロックされる
クイックスタート
環境変数をコピーする:
cp .env.example .env
./scripts/bootstrap-secrets.shAPIトークンは以下に保存される:
.secrets/api_tokenそして .env は KALI_FACTORY_API_TOKEN_FILE を通じてそれを指す。
Redisを起動する:
docker compose up -d redisKaliランタイムイメージをビルドする:
docker build -t kali-factory/recon:latest runtimes/kali/Python環境を作成する:
python3 -m venv .venv
source .venv/bin/activate
pip install -e .APIを実行する:
./scripts/start-api.shワーカーを実行する:
./scripts/start-worker.shMCPサーバーを実行する:
./scripts/start-mcp.shリクエスト例
ヘルスチェック:
curl http://localhost:8081/healthKaliプローブ:
curl -X POST http://localhost:8081/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"type":"kali_probe"}'サブドメイン列挙:
curl -X POST http://localhost:8081/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type":"subdomain_enum",
"domain":"example.com",
"max_runtime_sec": 300
}'Webフィンガープリント:
curl -X POST http://localhost:8081/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type":"web_fingerprint",
"url":"https://example.com"
}'GitHubリークスキャン:
curl -X POST http://localhost:8081/jobs \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type":"leak_scan",
"github_org":"example-org"
}'ファイル
START_HERE_FOR_AGENTS.md— この制御プレーンを使用するエージェントのための単一エントリーポイントガイドruntimes/kali/Dockerfile— 許可リスト化されたツールがインストールされたKaliコンテナイメージruntimes/kali/tools.json— 宣言的なツールマニフェスト(許可リスト + 引数テンプレート)scripts/bootstrap-secrets.sh— APIトークンファイルを作成し、権限をロックするscripts/start-api.sh— APIの起動ラッパーscripts/start-worker.sh— ワーカーの起動ラッパーscripts/start-mcp.sh— ローカルMCPサーバーの起動ラッパーscripts/install-user-services.sh— ユーザーレベルのsystemdユニットをインストールするsrc/kali_factory/api/— APIサーバー(FastAPI)src/kali_factory/worker/— RQベースのジョブ実行src/kali_factory/models/— Pydanticジョブスキーマsrc/kali_factory/jobs/— ジョブタイプごとのハンドラーsrc/kali_factory/policy/— 認証、許可リストの強制、レート制限src/kali_factory/mcp/server.py— ローカルKali Factory API上のstdio MCPアダプターcompose.yaml— Redis(およびオプションのChromaDB)サイドカーDockerfile— API/ワーカー用アプリコンテナ.env.example— 必要な設定DEPLOYMENT.md— ホスト固有の実行およびサービスガイダンス
推奨される次のハードニング
APIをTailscale、Caddy、またはその他の内部専用ゲートウェイの背後に配置する
APIトークンをローテーションする
ファイルまたはSQLiteへの監査ログを追加する
明示的なジョブクォータとツールごとのレート制限を追加する
ターゲットごとの許可リストを追加する(所有している、またはテストの許可を得ているドメインのみをエージェントが偵察できるようにする)
Kaliコンテナで送信ログを記録し、すべての送信リクエストがキャプチャされるようにする
サービスモデル
kali-factory-api.serviceは永続的に実行されるべきkali-factory-worker.serviceは永続的に実行されるべきMCPサーバーは永続的なサービスとして実行してはならない
MCPクライアントはstdio経由でオンデマンドで
scripts/start-mcp.shを生成すべき
他のFactoryパッケージとの関係
Factory | 分散するもの | ジョブの例 |
GPU Factory | CUDA / GPU計算 |
|
Kali Factory | OSINT / 偵察ツール |
|
これら2つのパッケージは同じアーキテクチャ形状(FastAPI + Redis + RQ + ベアラ認証 + 型付きジョブ + 許可リスト化されたDocker実行)を共有しており、重複しないポート(GPU Factoryは 8080、Kali Factoryは 8081)を使用して同じホスト上で共存するように設計されています。
将来の parallel-OS オーケストレーターは、必要なランタイムに一致するFactoryにエージェントのリクエストをルーティングできます。
Kali Factoryではないもの
脆弱性スキャナーではない。
nucleiは含まれていますが、exposures/テンプレートに限定されています。CVE / エクスプロイト / デフォルトログイン / ファジングテンプレートは明示的にブロックされています。エクスプロイトフレームワークではない。 Metasploit、sqlmap、hashcat、john、aircrack-ng、exploitdb、hydra、medusa、ncrack、nikto、wpscan、responder、impacket、crackmapexecはすべて、ビルド時にランタイムイメージから削除されます。
不正なテストツールではない。 所有している、または明示的なテスト許可を得ているターゲットに対してのみ使用してください。APIはすべてのジョブをログに記録します。悪用は利用者の責任となります。
ライセンス
Apache 2.0(LICENSE を参照)。
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.
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/marcmunoz-uno/Kali-Factory-Instructions'
If you have feedback or need assistance with the MCP directory API, please join our Discord server