Model Context Protocol server for PwnDoc pentest documentation
Tools for managing vulnerabilities and findings within audits.
Get all findings from a specific audit.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | The audit ID |
“Show me all findings in the Acme Corp audit”
“List vulnerabilities for audit 507f1f77bcf86cd799439011”
[
{
"_id": "507f1f77bcf86cd799439041",
"title": "SQL Injection in Login Form",
"vulnType": "Injection",
"severity": "Critical",
"cvssv3": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"cvssScore": 9.8,
"status": 1,
"priority": 1
}
]
Get detailed information about a specific finding.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | The audit ID |
finding_id |
string | Yes | The finding ID |
“Show me the details of the SQL injection finding”
“Get the full description and remediation for finding 507f1f77bcf86cd799439041”
Complete finding object with description, observation, remediation, POC, references, and custom fields.
Create a new finding in an audit.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | The audit ID |
title |
string | Yes | Finding title |
vuln_type |
string | No | Vulnerability type |
description |
string | No | Detailed description |
observation |
string | No | Observation/evidence |
remediation |
string | No | Remediation steps |
poc |
string | No | Proof of concept |
cvssv3 |
string | No | CVSS v3 vector string |
severity |
string | No | Severity level |
priority |
integer | No | Priority (1-4) |
remediation_complexity |
integer | No | Complexity (1-3) |
status |
integer | No | Status (0=To Do, 1=Done) |
category |
string | No | Category |
scope |
string | No | Affected scope/asset |
references |
array | No | Reference URLs |
“Create a critical SQL injection finding for the login page in the Acme audit”
“Add a medium-severity XSS vulnerability to audit X with CVSS 6.1”
{
"_id": "507f1f77bcf86cd799439042",
"title": "SQL Injection in Login Form",
"severity": "Critical",
"status": 0
}
Update an existing finding.
Same as create_finding, plus:
| Parameter | Type | Required | Description |
|---|---|---|---|
finding_id |
string | Yes | The finding ID to update |
“Update the SQL injection finding to include the new POC”
“Change the severity of finding X to High”
“Add OWASP reference to the XSS finding”
Delete a finding from an audit.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | The audit ID |
finding_id |
string | Yes | The finding ID to delete |
“Remove the false positive finding from the audit”
⚠️ Warning: This action is irreversible.
Reorder findings in an audit.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | The audit ID |
finding_order |
array | Yes | Array of finding IDs in desired order |
“Reorder findings to put critical ones first”
Move a finding from one audit to another.
| Parameter | Type | Required | Description |
|---|---|---|---|
audit_id |
string | Yes | Source audit ID |
finding_id |
string | Yes | Finding ID to move |
destination_audit_id |
string | Yes | Destination audit ID |
“Move the API authentication finding to the new audit”
Search for findings across all audits.
| Parameter | Type | Required | Description |
|---|---|---|---|
title |
string | No | Search by finding title |
severity |
string | No | Filter by severity (Critical, High, Medium, Low) |
category |
string | No | Filter by category |
status |
string | No | Filter by status |
“Find all SQL injection findings”
“Search for critical vulnerabilities across all audits”
“Show me all authentication-related findings”
[
{
"finding": { ... },
"audit": {
"_id": "507f1f77bcf86cd799439011",
"name": "Acme Corp Pentest",
"client": "Acme Corporation"
}
}
]
Get ALL findings from ALL audits with comprehensive context and enhanced processing in a single request.
This is the most powerful tool for cross-audit analysis. It automatically:
✅ Extracts CWE from customFields (searches for “CWE”, “CWE-ID”, “CWE ID” labels) ✅ Extracts OWASP category from finding categories and customFields ✅ Strips HTML tags from descriptions, observations, and remediation ✅ Builds full team with creator + collaborators (including roles) ✅ Includes complete scope URLs from audit scope ✅ Provides enhanced audit context (language, audit type, dates)
| Parameter | Type | Required | Description |
|---|---|---|---|
include_failed |
boolean | No | Include ‘Failed’ category findings (default: false) |
exclude_categories |
array | No | Categories to exclude from results |
“Give me a complete analysis of all vulnerabilities across all pentests”
“What are the most common CWE classifications this year?”
“Show me all OWASP Top 10 findings with their teams”
“Which vulnerabilities are being revalidated across clients?”
[
{
"_id": "finding_id",
"title": "SQL Injection in Login",
"category": "OWASP A03:2021 - Injection",
"severity": "Critical",
"cvssv3": "9.8",
"priority": 1,
"status": "Confirmed",
"description": "Clean text without HTML tags",
"observation": "Clean text without HTML tags",
"remediation": "Clean text without HTML tags",
"cwe": "CWE-89",
"owasp": "OWASP A03:2021 - Injection",
"revalidation": false,
"references": ["https://..."],
"customFields": [...],
"audit": {
"_id": "audit_id",
"name": "Acme Corp Pentest Q4 2024",
"company": "Acme Corporation",
"client": "security@acme.com",
"date_start": "2024-10-01",
"date_end": "2024-10-31",
"scope": ["https://app.acme.com", "https://api.acme.com"],
"team": [
{"username": "alice", "role": "creator"},
{"username": "bob", "role": "collaborator"},
{"username": "charlie", "role": "collaborator"}
],
"language": "en",
"audit_type": "Web Application Pentest"
}
}
]
CWE Extraction
Automatically finds CWE from customFields:
- Searches for labels: "CWE", "CWE-ID", "CWE ID"
- Returns the value (e.g., "CWE-89", "CWE-79")
- Returns null if not found
OWASP Extraction
Checks multiple sources:
1. Category field (e.g., "OWASP A03:2021")
2. CustomFields with "owasp" in label
3. Returns first match found
HTML Stripping
Removes all HTML tags and decodes entities from:
- description
- observation
- remediation
Ensures clean text for AI analysis and reporting
Full Team Information
Includes complete team with roles:
- Creator (who initiated the audit)
- Collaborators (all team members)
- Username for each member
1. get_vulnerabilities_by_locale → Find matching template
2. create_finding → Create with template data
3. update_finding → Add specific POC and observations
1. get_all_findings_with_context → Get everything
2. Analyze patterns in Claude
3. Generate insights and recommendations
Draft → create_finding (status=0)
Testing → update_finding with observations
Complete → update_finding (status=1)
Report → generate_audit_report
| Severity | CVSS Score | Priority |
|---|---|---|
| Critical | 9.0 - 10.0 | 1 |
| High | 7.0 - 8.9 | 2 |
| Medium | 4.0 - 6.9 | 3 |
| Low | 0.1 - 3.9 | 4 |
| Info | 0.0 | 5 |
Find similar vulnerabilities:
“Have we seen this type of SQL injection in other pentests?”
Remediation tracking:
“Show me all unremediated critical findings”
Client-specific:
“What vulnerabilities have we found for Acme Corp across all engagements?”
Statistics:
“What percentage of our findings are injection-related?”