Skip to content

MCP tool catalog ​

This catalog is generated on every documentation build from the server.tool(...) registrations in src/index.ts with the TypeScript compiler API. It lists 36 tools. Each entry shows the registered title, the MCP annotation hints, and the input schema. Groups follow the README tool inventory, and the build fails if the two disagree.

Annotation hints are advisory metadata for MCP clients. They do not replace the server-side checks: an active tool still needs an engagement, passes the plan allowlist and the target and time gate, and leaves an evidence record.

ChipRegistered hint
Read-only, Can change statereadOnlyHint is true or false
Open-world, Closed-worldopenWorldHint is true or false; open-world tools interact with systems outside the server
IdempotentidempotentHint is true
DestructivedestructiveHint is true

Index ​

Engagement lifecycle ​

createEngagement ​

Create Authorized Engagement Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1. Stable engagement ID chosen by the operator.
authorizationReferencestringYesmin length 1. Reference to the signed authorization or rules of engagement.
notBeforestringYesISO 8601 datetime. Authorization start with timezone.
expiresAtstringYesISO 8601 datetime. Authorization end with timezone.
allowedTargetsarray<string>Yesmin 1 items. Exact hosts, CIDRs, wildcard subdomains, or URL prefixes.
excludedTargetsarray<string>No—
testingWindowsarray<object>NoFields: start: string, end: string.

Schema: engagementScopeSchema.shape · Source: src/index.ts:1485

getEngagement ​

Get Engagement Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.

Schema: engagementIdSchema.shape · Source: src/index.ts:1499

listEngagements ​

List Engagements Read-only Closed-world Idempotent

This tool takes no arguments.

Schema: {} · Source: src/index.ts:1511

closeEngagement ​

Close Engagement Can change state Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.

Schema: engagementIdSchema.shape · Source: src/index.ts:1522

Discovery and validation ​

nmapScan ​

Nmap Network Scanner Can change state Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetstringYes—
portsstringNomax length 1000.
fastScanbooleanNo—
topPortsintegerNopositive, max 65535.
scanTechniqueenumNoOne of SYN, Connect, ACK, Window, Maimon, FIN, Xmas, Null, Proto.
udpScanbooleanNo—
serviceVersionDetectionbooleanNo—
versionIntensityintegerNomin 0, max 9.
osDetectionbooleanNo—
defaultScriptsbooleanNo—
scriptsarray<string>No—
scriptArgsstringNo—
timingTemplateenumNoOne of T0, T1, T2, T3, T4, T5.
skipHostDiscoverybooleanNo—
verbosebooleanNo—
rawOptionsarray<string>No—

Schema: nmapScanToolSchema.shape · Source: src/index.ts:1558

gobuster ​

Gobuster Directory/File Enumerator Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetstringYesURL. Target URL.
wordliststringYesPath to wordlist.
extensionsstringNoFile extensions (comma-separated).
threadsintegerNopositive. Number of threads.
statusCodesstringNoValid status codes (comma-separated).
useragentstringNoUser-Agent string.
timeoutstringNoTimeout for requests.
basicAuthstringNoBasic authentication credentials (username:password).
cookiestringNoCookie to include in requests.
excludeLengtharray<number>NoExclude paths of specific lengths.
followRedirectbooleanNoFollow HTTP redirects.
noTLSValidationbooleanNoSkip TLS certificate validation.
rawOptionsarray<string>NoRaw gobuster options.

Schema: gobusterToolSchema.shape · Source: src/index.ts:2536

nikto ​

Nikto Web Vulnerability Scanner Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetstringYesURL. Target URL.
portstringNoPort(s) to scan.
sslbooleanNoForce SSL mode.
timeoutintegerNoTimeout for requests.
useragentstringNoUser-Agent string.
tuningstringNoTuning mode.
outputstringNoOutput file.
proxystringNoUse proxy.
basicAuthstringNoBasic authentication credentials (username:password).
rootstringNoRoot directory.
cookiesstringNoCookies to include.
rawOptionsarray<string>NoRaw nikto options.

Schema: niktoToolSchema.shape · Source: src/index.ts:2606

subfinderEnum ​

Subfinder Subdomain Enumerator Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
domainstringYesRoot domain to enumerate (example.com).
recursivebooleanNoEnable recursive subdomain discovery.
allSourcesbooleanNoUse all available passive sources.
timeoutSecondsintegerNopositive. Global timeout in seconds.
rawOptionsarray<string>NoAdditional safe subfinder options.

Schema: subfinderToolSchema.shape · Source: src/index.ts:2665

httpxProbe ​

httpx Web Endpoint Prober Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetsarray<string>Yesmin 1 items. List of domains/hosts/URLs to probe.
includeTitlebooleanNoInclude page title.
includeStatusCodebooleanNoInclude HTTP status code.
includeTechDetectbooleanNoEnable technology detection.
followRedirectsbooleanNoFollow redirects.
timeoutSecondsintegerNopositive. HTTP timeout in seconds.
rawOptionsarray<string>NoAdditional safe httpx options.

Schema: httpxToolSchema.shape · Source: src/index.ts:2716

ffufScan ​

ffuf Web Fuzzer Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetUrlstringYesURL. Target URL with optional FUZZ marker.
wordliststringYesWordlist path for ffuf.
threadsintegerNopositive. Worker threads.
matchStatusCodesstringNoComma-separated status codes to include.
filterStatusCodesstringNoComma-separated status codes to exclude.
recursionbooleanNoEnable recursion.
timeoutSecondsintegerNopositive. HTTP timeout in seconds.
rawOptionsarray<string>NoAdditional safe ffuf options.

Schema: ffufToolSchema.shape · Source: src/index.ts:2770

nucleiScan ​

Nuclei Template Scanner Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetsarray<string>Yesmin 1 items. List of targets (URLs/domains/IPs).
templatesarray<string>NoDeprecated: caller-selected templates are disabled; configure MCP_NUCLEI_TEMPLATES_DIR with reviewed signed HTTP templates.
severitiesarray<enum>NoOne of info, low, medium, high, critical, unknown. Severity filters.
tagsarray<string>NoNuclei tag filters.
rateLimitintegerNopositive. Requests per second.
headlessbooleanNoEnable headless templates.
rawOptionsarray<string>NoAdditional safe nuclei options.

Schema: nucleiToolSchema.shape · Source: src/index.ts:2826

Capture and credential checks ​

trafficCapture ​

Traffic Packet Capture (tcpdump) Read-only Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
networkInterfacestringYesNetwork interface (en0, eth0, wlan0).
packetCountintegerYespositive. Number of packets to capture.
bpfFilterstringNoOptional BPF filter (simple form, rawOptions for advanced).
outputPcapstringNoOptional output pcap path.
rawOptionsarray<string>NoAdditional safe tcpdump options.

Schema: trafficCaptureToolSchema.shape · Source: src/index.ts:2893

hydraBruteforce ​

Hydra Brute-Force Authentication Tester Can change state Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetstringYesTarget host/IP.
servicestringYesService name (ssh, ftp, rdp, smb, http-get, etc.).
usernamestringNoSingle username.
passwordstringNoSingle password.
usernameListstringNoPath to username list.
passwordListstringNoPath to password list.
portintegerNopositive. Override service port.
tasksintegerNopositive, max 16. Parallel tasks (max 16).
rawOptionsarray<string>NoAdditional safe hydra options.

Schema: hydraToolSchema.shape · Source: src/index.ts:2945

runJohnTheRipper ​

John the Ripper Password Cracker Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
hashDatastringYesString containing the password hashes, one per line.
optionsarray<string>NoArray of command-line options for JtR.

Schema: jtrToolSchema.shape · Source: src/index.ts:1810

runHashcat ​

Hashcat GPU Password Cracker Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
hashDatastringYesString containing the password hashes, one per line.
attackModeenumNoOne of 0, 1, 3, 4, 6, 7. Attack mode: 0=Straight, 1=Combination, 3=Brute-force, 4=PCFG (Hashcat 8+), 6=Hybrid Wordlist + Mask, 7=Hybrid Mask + Wordlist.
hashTypestringNomatches /^\d{1,6}$/. Numeric hash-type, e.g., 0=MD5, 100=SHA1, 1000=NTLM, 1400=SHA2-256, 1800=sha512crypt, 22000=WPA01/WPA02.
hashRecipestringNomin length 1, max length 4096. Hashcat 8+ expression for hashType 4000; use only a reviewed, authorized hash format.
wordliststringNoPath to wordlist file for dictionary attacks.
maskstringNoMask for brute-force attacks (e.g., '?a?a?a?a?a?a?a?a' for 8 chars).
incrementbooleanNoEnable incremental mode (start with shorter passwords).
incrementMinintegerNoMinimum password length for incremental mode.
incrementMaxintegerNoMaximum password length for incremental mode.
rulesstringNoRules file to apply to wordlist.
sessionstringNoSession name for resuming attacks.
restorebooleanNoRestore a previous session.
optimizedKernelsbooleanNoEnable optimized kernels (-O).
workloadProfileenumNoOne of 1, 2, 3, 4. Hashcat 7 workload profile; accepted but ignored by Hashcat 8.
deviceTypesarray<enum>NoOne of 1, 2. OpenCL backend types (-D): 1=CPU, 2=GPU; supply both to select both. This does not select FPGA.
backendDevicesarray<integer>Nomin 1 items, max 32 items. OpenCL/backend device IDs (-d) from the host's Hashcat device listing; FPGA bridge units are selected by hash mode.
forcebooleanNoIgnore warnings.
potfilePathstringNoPath to custom potfile.
outfilestringNoOutput file for cracked hashes.
outfileFormatintegerNoOutput format: 1=hash, 2=plain, 3=hex-plain, etc.
runtimeintegerNoAbort session after X seconds.
showProgressbooleanNoShow progress every X seconds.
quietbooleanNoSuppress output.
loopbackbooleanNoAdd new plains to induct directory.
markovThresholdintegerNoThreshold X when to stop accepting new Markov-chains.
customCharset1stringNoUser-defined charset ?1.
customCharset2stringNoUser-defined charset ?2.
customCharset3stringNoUser-defined charset ?3.
customCharset4stringNoUser-defined charset ?4.
optionsarray<string>NoAdditional raw hashcat options.

Schema: hashcatToolSchema.shape · Source: src/index.ts:1878

generateWordlist ​

Password Wordlist Generator Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
baseWordsarray<string>Nomax 100 items. Known words. Omit to ask the operator for names, aliases, organization terms, dates, and location clues through MCP elicitation.
datesarray<string>Nomax 50 items. List of dates (YYYY-MM-DD, MM-DD, YYYY). Parsed for variations.
locationWordsarray<string>Nomax 50 items. Street, city, address, postcode, or other location terms supplied by the authorized operator.
customPatternsarray<string>Nomax 50 items. List of patterns/symbols to prepend/append.
minYearintegerNomin 1000, max 3000. Minimum year (YYYY) to include in variations.
maxYearintegerNomin 1000, max 3000. Maximum year (YYYY) to include in variations (defaults to current year).
includeLeetbooleanNoDefault false. Apply basic leetspeak substitutions (a=4, e=3, etc.).
caseVariationsbooleanNoDefault true. Include variations like TitleCase, UPPERCASE.

Schema: generateWordlistSchema.shape · Source: src/index.ts:1671

Local audit and extraction ​

privEscAudit ​

Privilege Escalation Auditor Read-only Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
rawOptionsarray<string>NoOptional linpeas flags when linpeas is available.

Schema: privEscToolSchema.shape · Source: src/index.ts:3016

extractionSweep ​

SQL Injection Extraction (sqlmap) Can change state Open-world Destructive

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
targetUrlstringYesURL. Target URL with injectable parameter.
dumpDatabooleanNoAttempt table dump via sqlmap.
riskintegerNomin 1, max 3. sqlmap risk level.
levelintegerNomin 1, max 5. sqlmap level.
rawOptionsarray<string>NoAdditional safe sqlmap options.

Schema: extractionToolSchema.shape · Source: src/index.ts:3060

Scope, agent, and report workflow ​

saveAssessmentPlan ​

Save Client Assessment Plan Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
clientstringYesmin length 1, max length 200.
titlestringYesmin length 1, max length 300.
assessmentTypestringYesmin length 1, max length 200.
objectivesarray<string>Yesmax 50 items.
authorizedMethodsarray<string>Yesmax 50 items.
allowedToolNamesarray<string>Yesmax 50 items. Exact MCP tool names permitted for this engagement, including managed worker and direct client calls; use [] for a report-only plan.
prohibitedMethodsarray<string>Yesmax 50 items.
dataHandlingstringYesmin length 1, max length 4000.
reportAudiencestringYesmin length 1, max length 300.
stopConditionsarray<string>Yesmax 50 items.
modelDataPolicyenumYesOne of metadata-only, no-model, local-agent, approved-provider.
workOwnershipenumYesOne of internal, external-client, unspecified.
providerClientApprovalReferencestringNomin length 1, max length 500.
operatorNotesstringNomax length 4000.

Schema: assessmentPlanSchema.shape · Source: src/index.ts:2112

getAssessmentPlan ​

Get Current Assessment Plan Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.

Schema: engagementIdSchema.shape · Source: src/index.ts:2127

listAgentProfiles ​

List Configured Assessment and Report Agents Read-only Closed-world Idempotent

This tool takes no arguments.

Schema: {} · Source: src/index.ts:2141

runAgentAssessment ​

Run Scoped Tool-Using Agent Assessment Can change state Open-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
profileIdstringYesmin length 1. Configured local Codex assessment profile with the complete Pentest MCP tool inventory.
timeoutSecondsintegerNomin 30, max 1800.

Schema: z.object({ … }).shape · Source: src/index.ts:2152

reconcileAgentAssessment ​

Reconcile Interrupted Agent Assessment Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
runIdstringYesUUID. Interrupted assessment run ID from the durable start receipt.
confirmedStoppedliteralYesOperator confirmation that the prior model process is stopped.
reviewedBystringYesmin length 3, max length 200.
rationalestringYesmin length 16, max length 2000.

Schema: z.object({ … }).shape · Source: src/index.ts:2179

recordResearchActivity ​

Record Research Activity and Evidence Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
sourceTypeenumYesOne of source-review, manual-test, daybreak, glasswing, codex, claude, ssh, external-tool, other.
actionstringYesmin length 1, max length 300.
summarystringYesmin length 1, max length 4000.
observationsarray<string>Nomax 100 items. Default [].
targetstringNo—
outcomeenumNoOne of succeeded, failed, cancelled. Default 'succeeded'.
rawEvidencestringNomax length 100000.
evidenceReferencestringNomax length 1000.

Schema: z.object({ … }).shape · Source: src/index.ts:2203

draftAssessmentReport ​

Draft Evidence-Linked Assessment Report Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
profileIdstringNomin length 1. Configured API, Codex, Claude, or fixed SSH profile; omit for deterministic evidence draft.

Schema: z.object({ … }).shape · Source: src/index.ts:2234

listAgentReportDrafts ​

List Assessment Drafts Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.

Schema: z.object({ … }).shape · Source: src/index.ts:2255

getAgentReportDraft ​

Get Assessment Draft Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
recordIdstringYesmin length 1.
formatenumNoOne of markdown, json. Default 'markdown'.

Schema: z.object({ … }).shape · Source: src/index.ts:2274

publishAgentReport ​

Publish Analyst-Reviewed Client Report Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
draftRecordIdstringYesmin length 1.
reviewedBystringYesmin length 1, max length 200.
approvedSummarystringYesmin length 1, max length 6000. Analyst-reviewed executive summary; may edit the draft text.
verifiedFindingsarray<object>NoFields: title: string, severity: enum, description: string, impact: string, remediation: string, verifiedBy: string, verifiedAt: string, evidenceRecordIds: array<string>, affectedAssets?: array<string>, reproductionSteps?: array<string>, references?: array<string>, cweId?: string, cvssVector?: string, retestStatus?: enum. Default [].
approvedRecommendationsarray<string>No—

Schema: z.object({ … }).shape · Source: src/index.ts:2292

Evidence and direct reports ​

listEngagementRecords ​

List Engagement Records Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1. Engagement whose records to list.
categoryenumNoOne of sniffing, finding, bruteforce, cracking, privilege-escalation, extraction, reporting, other, audit. Optional workflow category filter.
targetContainsstringNoOptional case-insensitive target filter.
limitintegerNopositive, max 500. Maximum records to return.
offsetintegerNonon-negative. Zero-based offset for paging through older records.

Schema: listEngagementRecordsToolSchema.shape · Source: src/index.ts:2355

getEngagementRecord ​

Get Engagement Record Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
recordIdstringYesEngagement record ID (recordId=...).

Schema: getEngagementRecordToolSchema.shape · Source: src/index.ts:2379

createClientReport ​

Create Evidence-Backed Client Report Can change state Closed-world

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
clientstringYesmin length 1.
titlestringYesmin length 1.
assessmentTypestringYesmin length 1.
summarystringYesmin length 1.
recordIdsarray<string>YesExplicit evidence IDs to attach; use [] to state that no tool evidence is attached.
findingsarray<analystFindingSchema>NoDefault [].
recommendationsarray<string>NoDefault [].
methodologystringNo—
limitationsarray<string>No—
scopeOfWorkstringNoOptional operator-supplied scope notes; does not change executable scope.

analystFindingSchema fields

ParameterTypeRequiredDetails
titlestringYesmin length 1.
severityenumYesOne of critical, high, medium, low, informational.
descriptionstringYesmin length 1.
impactstringYesmin length 1.
remediationstringYesmin length 1.
verifiedBystringYesmin length 1.
verifiedAtstringYesISO 8601 datetime.
evidenceRecordIdsarray<string>No—
externalEvidencearray<string>No—
affectedAssetsarray<string>No—
reproductionStepsarray<string>No—
referencesarray<string>No—
cweIdstringNomatches /^CWE-\d+$/.
cvssVectorstringNomatches /^CVSS:[34].\d//.
retestStatusenumNoOne of not-retested, open, remediated.

Schema: createClientReportToolSchema.shape · Source: src/index.ts:2430

listClientReports ​

List Client Reports Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
limitintegerNopositive, max 500.
offsetintegerNonon-negative.

Schema: listClientReportsSchema.shape · Source: src/index.ts:2481

getClientReport ​

Get Client Report Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
reportIdstringYesmin length 1.
formatenumNoOne of markdown, json. Default 'markdown'.

Schema: getClientReportSchema.shape · Source: src/index.ts:2498

Runtime and scan control ​

getRuntimeStatus ​

Get Scanner Runtime Status Read-only Closed-world Idempotent

This tool takes no arguments.

Schema: {} · Source: src/index.ts:1449

listActiveScans ​

List Active Nmap Scans Read-only Closed-world Idempotent

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.

Schema: z.object({ … }).shape · Source: src/index.ts:2053

cancelScan ​

Cancel Running Scan Can change state Closed-world Idempotent Destructive

ParameterTypeRequiredDetails
engagementIdstringYesmin length 1.
scanIdstringYesThe ID of the scan to cancel.

Schema: cancelScanToolSchema.shape · Source: src/index.ts:2076

Resources ​

The server registers one resource template.

NameURI templateSource
clientReportmcp://pentest/clientReport/{reportId}src/index.ts:1429

Released under AGPL-3.0-or-later. Use only within explicit authorization and scope.