mcp-defectdojo
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level | INFO |
| FASTMCP_HOST | No | Bind address for network transports | 0.0.0.0 |
| FASTMCP_PORT | No | Port for network transports | 8000 |
| REQUIRE_AUTH | No | Set to false to allow unauthenticated network access | |
| AUDIT_HMAC_KEY | No | HMAC key for audit log integrity chain | |
| AUDIT_LOG_FILE | No | Path for dedicated audit log file | |
| DEFECTDOJO_URL | Yes | Base URL of the DefectDojo instance (must use https:// unless overridden) | |
| MCP_AUTH_TOKEN | No | Legacy auth token mapping to admin role | |
| MCP_READ_TOKEN | No | Legacy read token mapping to reader role | |
| AUDIT_LOG_SYSLOG | No | Syslog destination. Format: [transport://]host[:port] | |
| FASTMCP_TRANSPORT | No | Transport mode: stdio, sse, streamable-http, http | stdio |
| AUDIT_LOG_HTTPS_CA | No | Custom CA certificate path for HTTPS TLS verification | |
| DEFECTDOJO_API_KEY | No | API key for DefectDojo (generate at DefectDojo > API v2 > Your API Key) | |
| ALLOW_INSECURE_HTTP | No | Allow http:// URLs (TLS required by default) | false |
| AUDIT_LOG_HTTPS_URL | No | HTTPS endpoint for log forwarding | |
| AUDIT_LOG_SYSLOG_CA | No | Custom CA certificate for syslog TLS verification | |
| MUTATION_RATE_LIMIT | No | Max mutations per rate window per authenticated caller | 60 |
| MUTATION_RATE_WINDOW | No | Rate window in seconds | 60 |
| AUDIT_LOG_HTTPS_TOKEN | No | Bearer token for HTTPS endpoint authentication | |
| DEFECTDOJO_READ_API_KEY | No | Read-only API key (used for GET requests) | |
| DEFECTDOJO_WRITE_API_KEY | No | Write API key (used for POST/PATCH requests) | |
| AUDIT_LOG_HTTPS_BATCH_SIZE | No | Number of log records per HTTPS batch | 10 |
| AUDIT_LOG_HTTPS_FLUSH_SECS | No | Seconds before flushing a partial batch | 5 |
| UNTRUSTED_CONTENT_WRAPPING | No | Read-side wrapping kill-switch. on/off | on |
| DEFECTDOJO_DEFAULT_FOUND_BY_ID | No | Finding type ID used in create_finding payloads | 1 |
| OPEN_ACCESS_MUTATION_RATE_LIMIT | No | Max mutations per rate window across all unauthenticated traffic | 10 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| health_checkA | Check connectivity to the DefectDojo instance. Returns JSON with status 'ok' or 'unhealthy' and a message. |
| list_productsB | List products in DefectDojo. Args: limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. |
| get_productA | Get a single product by ID. Args: product_id (must be > 0). Returns JSON with id, name, description, prod_type fields. |
| create_productA | Create a new product. Requires write scope. Rate-limited. Args: name, description, prod_type_id (must be > 0). Returns JSON with created product. |
| list_product_typesA | List product types in DefectDojo. Use this to find valid prod_type_id values for create_product. Args: limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. |
| list_engagementsA | List engagements for a product. Args: product_id (> 0), limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. |
| get_engagementA | Get a single engagement by ID. Args: engagement_id (must be > 0). Returns JSON with engagement fields. |
| create_engagementA | Create a new engagement. Requires write scope. Rate-limited. Args: product_id (> 0), name, target_start (YYYY-MM-DD), target_end (YYYY-MM-DD). Returns JSON with created engagement. |
| list_testsA | List tests for an engagement. Args: engagement_id (> 0), limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. |
| get_testA | Get a single test by ID. Args: test_id (must be > 0). Returns JSON with test fields. |
| create_testB | Create a new test. Requires write scope. Rate-limited. Args: engagement_id (> 0), test_type_id (> 0), target_start (YYYY-MM-DD), target_end (YYYY-MM-DD). Returns JSON with created test. |
| list_test_typesA | List test types in DefectDojo. Use this to find valid test_type_id values for create_test. Args: limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. |
| list_findingsA | List findings with optional filters. Args: test_id, product_id, engagement_id (all optional, > 0); severity (Critical/High/Medium/Low/Info); active, verified, duplicate, false_p, out_of_scope, is_mitigated, risk_accepted, outside_of_sla (all optional booleans); tags (optional list); component_name, title (optional strings); limit (1-100, default 20), offset (>= 0). Returns JSON with 'items' array and 'pagination' metadata. DOM-19 (Phase 14.2): the |
| get_findingA | Get a single finding by ID. Args: finding_id (must be > 0). Returns JSON with finding fields. |
| create_findingA | Create a new finding. Requires write scope. Rate-limited. Args: test_id (> 0), title, severity (Critical/High/Medium/Low/Info), description, active (default true), verified (default false). Returns JSON with created finding. |
| update_findingA | Update an existing finding. Requires write scope. Rate-limited. Args: finding_id (> 0), plus optional: title, severity (Critical/High/Medium/Low/Info), description, active, verified, false_p, duplicate, out_of_scope, is_mitigated. At least one field required. Returns JSON with updated finding. State-transition gate (F-008/F-018): mitigated→unmitigated cascades (active=true, explicit is_mitigated=false, or false_p/duplicate/out_of_scope flips) are rejected with a redirect to |
| close_findingA | Close a finding with a reason. Requires write scope. Rate-limited. Args: finding_id (> 0), reason (mitigated/false_positive/out_of_scope/duplicate), note (optional closure note). Returns JSON with updated finding. DOM-21 (Phase 14.2): when The note-attach failure is also emitted as a structured |
| reopen_findingA | Reopen a previously mitigated finding. Requires engagement_mgmt permission — reopening signals remediation failure and is gated above finding_mgmt. Rate-limited. Args: finding_id (> 0), note (optional reason for reopening). Returns JSON with updated finding. DOM-21 (Phase 14.2): when The note-attach failure is also emitted as a structured |
| import_scanB | Import a scan report into DefectDojo. Requires write scope. Rate-limited. |
| add_finding_noteA | Add a note to a finding. Requires write scope. Rate-limited. Args: finding_id (> 0), entry (note text), private (default false). Returns JSON with created note — the |
| list_finding_notesA | List notes for a finding. Args: finding_id (> 0). Returns universal envelope |
| add_finding_tagsA | Add tags to a finding. Requires write scope. Rate-limited. Args: finding_id (> 0), tags (non-empty list of strings, each <= 200 chars). Returns JSON with tags array. |
| remove_finding_tagsA | Remove tags from a finding. Requires write scope. Rate-limited. Args: finding_id (> 0), tags (non-empty list of tag strings to remove). Returns JSON with tags array. |
| reimport_scanA | Re-import a scan report into an existing test in DefectDojo. Requires write scope. Rate-limited. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/inspicere/mcp-defectdojo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server