Darkmoon について
Darkmoonは、セルフホストしたDarkmoon Proダッシュボードを操作し、自動ペネトレーションテストを行うMCPサーバーです。許可されたテストの実行と、キャンペーンや検出事項の読み取りに対応します。オープンソースCLIだけでは動作せず、Darkmoon Proが必要です。
主な機能
- 01ペネトレーションテストの開始
- 02実行状況の確認
- 03ダッシュボードのキャンペーン一覧
- 04検出事項と重大度統計の閲覧
活用シーン
- 01許可済みターゲットの評価開始
- 02テスト実行の完了確認
- 03ダッシュボード上のキャンペーン確認
- 04検出事項と重大度統計の調査
MCP 対応
MCPサーバーは、ペネトレーションテストの開始・確認と、キャンペーンや検出事項の閲覧ツールを提供します。指定したセルフホストのDarkmoon Pro Dashboard APIに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @darkmoon_ai/mcp-serverDARKMOON_BASE_URLBase URL of your self-hosted Darkmoon Pro Dashboard APIDARKMOON_USERNAMEDashboard userDARKMOON_PASSWORDシークレットDashboard passwordDARKMOON_TOKENシークレットPre-issued JWT, alternative to username/passwordローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@darkmoon_ai/mcp-server
MCP クライアント(Claude Desktop、Goose、Continue、LibreChat など)から、オープンソース(GPL-3.0)の自律型 AI ペネトレーションテストプラットフォームである Darkmoon を操作できる Model Context Protocol サーバーです。
Darkmoon Pro が必要です
Darkmoon エンジンと CLI はオープンソースです。このサーバーは Darkmoon Pro の一部である Darkmoon Dashboard API と通信し、常にセルフホストで利用します。公開ホスト型のエンドポイントはないため、ご自身のインスタンスのベース URL を指定してください。オープンソースの CLI のみでは動作しません。
ツール
| ツール | 説明 |
|---|---|
run_pentest | 許可された 1 つのターゲットに対して自律型ペネトレーションテストを開始し、run_id を返します |
get_run_status | 実行ログに基づいて、実行の状態として running、completed、error、または unknown を報告します |
list_campaigns | ダッシュボードユーザーに表示されるキャンペーンを一覧表示します(読み取り専用) |
get_findings | キャンペーンの脆弱性と深刻度の統計情報を取得します(読み取り専用) |
ご自身が所有するシステム、またはテストの書面による明示的な許可を得ているシステムのみを評価してください。検出結果には誤検知が含まれる可能性があるため、資格を持つ人間が確認する必要があります。
設定
| 変数 | 説明 |
|---|---|
DARKMOON_BASE_URL | Darkmoon Pro Dashboard API のベース URL(必須) |
DARKMOON_USERNAME、DARKMOON_PASSWORD | ダッシュボードの認証情報。呼び出しごとに JWT を要求し、キャッシュしません |
DARKMOON_TOKEN | ユーザー名/パスワードの代替。事前に発行された JWT |
DARKMOON_TIMEOUT_MS | リクエストごとのタイムアウト(任意)。デフォルトは 60000 です |
クライアントの設定
Claude Desktop(claude_desktop_config.json)、Continue、LibreChat では同じ mcpServers 形式を使用します。
{
"mcpServers": {
"darkmoon": {
"command": "npx",
"args": ["-y", "@darkmoon_ai/mcp-server"],
"env": {
"DARKMOON_BASE_URL": "https://darkmoon.example.internal",
"DARKMOON_USERNAME": "your-dashboard-user",
"DARKMOON_PASSWORD": "your-dashboard-password"
}
}
}
}
Goose(~/.config/goose/config.yaml):
extensions:
darkmoon:
type: stdio
enabled: true
name: darkmoon
cmd: npx
args: ["-y", "@darkmoon_ai/mcp-server"]
envs:
DARKMOON_BASE_URL: https://darkmoon.example.internal
DARKMOON_USERNAME: your-dashboard-user
DARKMOON_PASSWORD: your-dashboard-password
Continue(.continue/mcpServers/darkmoon.yaml):
name: Darkmoon
version: 0.1.0
schema: v1
mcpServers:
- name: darkmoon
command: npx
args: ["-y", "@darkmoon_ai/mcp-server"]
env:
DARKMOON_BASE_URL: https://darkmoon.example.internal
DARKMOON_USERNAME: your-dashboard-user
DARKMOON_PASSWORD: your-dashboard-password
開発
npm install
npm run build
npm test # mocked Dashboard API, in-memory MCP client and a real stdio process
ライセンス
Darkmoon と同じ GPL-3.0-only です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。