mcpField
D
DefectDojo Community

DefectDojo Community

ローカル
github.comセキュリティ03 日前に更新

DefectDojo Community について

DefectDojo Community は、DefectDojo Community Edition を使う AI アシスタントやセキュリティチーム向けの読み取り専用 MCP サーバーです。複数製品の重大な検出結果を脆弱性ごとにまとめ、影響の評価や課題の作成に役立ちます。

主な機能

  1. 01製品と検出件数の取得
  2. 02重要度による対象検出結果の絞り込み
  3. 03CVEごとに重大な検出結果を集約
  4. 04重複検出結果の一覧表示
  5. 05検出結果の詳細取得

活用シーン

  1. 01製品横断で重大な検出結果を確認
  2. 02複数製品に影響する脆弱性を特定
  3. 03集約した脆弱性について課題を作成

MCP 対応

stdio経由でMCPクライアントに7つの読み取り専用ツールを提供し、REST API v2でDefectDojoを参照します。書き込みリクエストは行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"systechgd-defectdojo-community": {
"command": "uvx",
"args": [
"defectdojo-community-mcp"
],
"env": {
"DEFECTDOJO_URL": "<DEFECTDOJO_URL>",
"DEFECTDOJO_API_KEY": "<DEFECTDOJO_API_KEY>",
"DEFECTDOJO_VERIFY_TLS": "<DEFECTDOJO_VERIFY_TLS>",
"DEFECTDOJO_TIMEOUT_SECONDS": "<DEFECTDOJO_TIMEOUT_SECONDS>"
}
}
}
}
起動コマンドuvx defectdojo-community-mcp
設定が必要な環境変数
DEFECTDOJO_URLBase URL of your DefectDojo instance, e.g. https://defectdojo.example.com (no trailing /api/v2).
DEFECTDOJO_API_KEYシークレットDefectDojo API v2 token. Use a dedicated read-only user: this server never needs write access.
DEFECTDOJO_VERIFY_TLSSet to false to skip TLS certificate verification. Discouraged; see SECURITY.md.
DEFECTDOJO_TIMEOUT_SECONDSPer-request HTTP timeout in seconds. Defaults to 30.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypidefectdojo-community-mcp0.1.1
ocighcr.io/systechgd/defectdojo-community-mcp:0.1.1

ツール

7

掲載時のツール一覧 · 3 日前に更新

このツールにパラメーターはありません。

詳細

DefectDojo Community MCP サーバー

CI PyPI Python License OpenSSF Scorecard

DefectDojo Community Edition 向けの読み取り専用Model Context Protocol サーバーです。AI アシスタントが脆弱性の検出結果を読み取り、すべての製品にまたがって同じ脆弱性をグループ化し、使用している課題管理ツール向けの課題を下書きできます。

非公式です。 これは独立したオープンソースプロジェクトです。DefectDojo Inc. または OWASP とは提携しておらず、承認もサポートも受けていません。「DefectDojo」は、このサーバーの接続先を説明する目的でのみ使用しています。


これは本当に必要ですか?

DefectDojo Pro をお使いの場合は、おそらく必要ありません。 Pro には MCP サーバーが組み込まれています。ベンダーが保守しており、より高機能なので、そちらをお使いください。

DefectDojo Pro(組み込み)このプロジェクト
エディションPro のみ — AI 機能は Pro 限定ですCommunity Edition(Pro でも動作します)
必要条件DefectDojo v2.51.2 以降、スーパーユーザーによる有効化が必要API v2 を備えた任意のバージョン
実行場所インスタンス内の /mcpお使いのマシン上のローカル MCP プロセス
トランスポートStreamable HTTPstdio
ツール読み取り専用の core ツールセットに 18 個7 個
書き込みcore では不可。Pro アドオンのツールセット(hierarchy、reporting、dashboards、psirt)では利用可能一切行いません — 安全性モデルを参照

このプロジェクトは、Community Edition に MCP サーバーがまったくないために存在します。通常の API トークンを使って標準の REST API v2 に接続するため、サーバー側で何かを有効にする必要はなく、DefectDojo の特定バージョンも必要ありません。

PyPI にある無関係な defectdojo-mcp パッケージと混同しないでください。これは別のサードパーティプロジェクトです。このプロジェクトの名前は defectdojo-community-mcp です。


ツール

ツール機能
health_check接続と認証を確認し、インスタンス URL と製品数を返します
list_products検出結果数とともにすべての製品を一覧表示します
list_critical_findings対応可能な重大な検出結果を一覧表示します。必要に応じて 1 つの製品に絞り込めます
list_findings_by_severity任意の重大度について、同様に一覧表示します
group_critical_by_vuln最も便利なツールです。 すべての製品にまたがる重大な検出結果を CVE(なければ CWE とタイトル)ごとにグループ化し、影響範囲が広い順に表示します
list_duplicate_findingsDefectDojo が重複としてマークした検出結果を一覧表示します
get_finding1 件の検出結果の詳細を取得します

「対応可能」とは、active であり、誤検知、重複、リスク受容、対象範囲外、または緩和済みではないものを指します。つまり、実際に対応する価値のある検出結果です。

このプロジェクトが存在する理由は group_critical_by_vuln にあります。モノレポ型のスキャナー構成では、同じ上流の CVE が製品ごとに 1 回ずつ報告されます。このツールはそれらを脆弱性ごとに 1 つのグループにまとめ、影響を受けるすべての製品を一覧表示するため、1 件の課題管理ツール上の課題に簡単に対応付けられます。


インストール

Python 3.10 以降が必要です。

pip install defectdojo-community-mcp

または、コンテナーとして実行できます。

docker pull ghcr.io/systechgd/defectdojo-community-mcp:latest

MCP Registry に io.github.systechgd/defectdojo-community-mcp として登録されているため、レジストリを参照する MCP クライアントは名前を指定してインストールできます。

または、ソースからインストールできます。

git clone https://github.com/systechgd/defectdojo-community-mcp.git
cd defectdojo-community-mcp
pip install -e .

設定

2 つの環境変数が必要です。

変数必須デフォルト備考
DEFECTDOJO_URLはい—ベース URL。例:https://defectdojo.example.com。末尾に /api/v2 を付けないでください。
DEFECTDOJO_API_KEYはい—API v2 トークン。権限を絞る方法については以下を参照してください。
DEFECTDOJO_VERIFY_TLSいいえtruefalse にすると証明書の検証が無効になります。SECURITY.md を参照してください。
DEFECTDOJO_TIMEOUT_SECONDSいいえ30リクエストごとの HTTP タイムアウトです。

トークンは DefectDojo → 自分のユーザー → API v2 Key から取得できます。

専用の読み取り専用ユーザーを作成してください。 トークンにはそのユーザーの権限が引き継がれます。このサーバーに書き込み権限は必要ありません。トークンが漏えいしても、読み取り専用トークンでは検出結果を変更できません。

クライアントに接続する前に、正常に動作することを確認してください。

defectdojo-community-mcp --check
# ok: https://defectdojo.example.com reachable, 23 product(s) visible

MCP クライアントに接続する

Claude Code
claude mcp add defectdojo \
  --env DEFECTDOJO_URL=https://defectdojo.example.com \
  --env DEFECTDOJO_API_KEY=your-token \
  -- defectdojo-community-mcp
Claude Desktop/汎用 JSON 設定
{
  "mcpServers": {
    "defectdojo": {
      "command": "defectdojo-community-mcp",
      "env": {
        "DEFECTDOJO_URL": "https://defectdojo.example.com",
        "DEFECTDOJO_API_KEY": "your-token"
      }
    }
  }
}

コンソールスクリプトが PATH にない場合は、 "command": "python", "args": ["-m", "defectdojo_community_mcp"] を使用してください。

Docker

このサーバーは stdio 経由で MCP を使用するため、デタッチせずに -i を付けて実行してください。

{
  "mcpServers": {
    "defectdojo": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-e", "DEFECTDOJO_URL",
        "-e", "DEFECTDOJO_API_KEY",
        "ghcr.io/systechgd/defectdojo-community-mcp:latest"
      ]
    }
  }
}

例

すべての重大な検出結果を脆弱性ごとにグループ化し、3 つを超えるサービスに影響するものを表示してください。

アシスタントは group_critical_by_vuln を呼び出し、脆弱性ごとに CVE、タイトル、影響を受ける製品の一覧、および検出結果ごとの DefectDojo への直接 URL を取得します。これらがあれば、内容がほぼ同じ 12 件の課題を作成する代わりに、それらすべてを対象とした課題を 1 件作成できます。


安全性モデル

読み取り専用はデフォルトではなく、設計上の不変条件です。

  • ツールが POST、PUT、PATCH、DELETE を実行することはありません。
  • HTTP クライアントクラスにはこれらを実行できるメソッドがないため、誤って変更ツールを追加することはできません。追加するには、そのクラスを意図的に変更する必要があります。
  • すべてのツールが行うすべてのリクエストが GET であることをテストで検証します。

書き込み機能の追加は、この保証を破る変更となります。今後追加する場合は、別のサーバーとして提供するため、運用者は書き込み権限を付与せずに読み取り権限だけを付与できます。

検出結果のデータは、攻撃者の影響を受ける可能性があります。スキャナーの出力には、依存関係のメタデータ、ファイルパス、コミットメッセージに由来するテキストが含まれることがあります。ツールの結果は指示ではなく、データとして扱ってください。脅威モデルの詳細と脆弱性の報告方法については、SECURITY.md を参照してください。


開発

git clone https://github.com/systechgd/defectdojo-community-mcp.git
cd defectdojo-community-mcp
python -m venv .venv && . .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"

pytest          # 57 tests, no network or live instance needed
ruff check .

テストスイートはすべて httpx.MockTransport に対して実行されます。CI ではさらに、Python 3.10~3.13 と、両世代の MCP SDK(FastMCP を含む mcp<2 と、名称が MCPServer に変更された mcp>=2)でテストスイートを実行します。

CONTRIBUTING.md と CODE_OF_CONDUCT.md を参照してください。


ライセンス

Apache-2.0。NOTICE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。