Skip to main content
Glama
dcianciulli

DefectDojo MCP Server

by dcianciulli

import_scan

Import scan reports into DefectDojo to centralize findings, deduplicate issues, and track remediation across products.

Instructions

Import a scan report into DefectDojo.

Either engagement_id OR (product_name + auto_create_context=True) must be provided. Either file_path (local file) or scan_data (raw content) must be provided.

Args: scan_type: Scanner type (e.g., "ZAP Scan", "Nessus Scan", "SARIF", "Trivy Scan", etc.) file_path: Path to the scan results file on the local filesystem scan_data: Raw scan data as string (alternative to file_path) engagement_id: Target engagement ID product_name: Product name (for auto-create context) product_type_name: Product type name (for auto-create context) engagement_name: Engagement name (for auto-create context) test_title: Custom test title auto_create_context: Auto-create product/engagement if they don't exist active: Mark findings as active verified: Mark findings as verified close_old_findings: Close findings not present in new scan close_old_findings_product_scope: Close at product scope push_to_jira: Push findings to JIRA minimum_severity: Minimum severity to import (Info, Low, Medium, High, Critical) deduplication_on_engagement: Deduplicate within engagement environment: Environment name version: Version being scanned build_id: Build ID branch_tag: Branch or tag commit_hash: Commit hash service: Service name group_by: Group findings by (component_name, component_name+component_version, file_path) tags: Tags to apply

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNo
activeNo
serviceNo
versionNo
build_idNo
group_byNo
verifiedNo
file_pathNo
scan_dataNo
scan_typeYes
branch_tagNo
test_titleNo
commit_hashNo
environmentNo
product_nameNo
push_to_jiraNo
engagement_idNo
engagement_nameNo
minimum_severityNoInfo
product_type_nameNo
close_old_findingsNo
auto_create_contextNo
deduplication_on_engagementNo
close_old_findings_product_scopeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it delivers: it documents that auto_create_context can create products/engagements, that close_old_findings will close findings absent from the new scan, and the push_to_jira side effect. It omits permission/auth requirements and deduplication semantics, keeping it below a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and the two hard requirements before the Args block, and the prose is tight. The per-parameter list is long but each line carries distinct information needed for a 24-param tool, so it is not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 24-parameter import with 0% schema coverage and no annotations, the description manages to explain the requirement combinations and the key behavioral toggles. It does not mention auth prerequisites, import processing/async behavior, or how it differs from reimport_scan, but an output schema exists so return values need not be covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 24 parameters, so the description must compensate, and it annotates nearly all of them ('auto-create product/engagement if they don't exist', 'close findings not present in new scan', severity values, group_by values). The bare group_by enumerations and some terse entries (test_title, tags) leave minor gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb+resource ('Import a scan report into DefectDojo'), and the sibling context (reimport_scan) makes the distinction clear: import creates a new test from a report whereas reimport targets an existing one. The agent can tell what this does without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit mutually-exclusive requirements: 'Either engagement_id OR (product_name + auto_create_context=True)' and 'Either file_path or scan_data'. This is real routing guidance that prevents common invocation errors. It does not, however, state when to prefer this over the sibling reimport_scan, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.