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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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