Skip to main content
Glama

Server Details

Offline methodology engine for authorized penetration testing, CTF, and security research.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cyanheads/pentest-mcp-server
GitHub Stars
1
Server Listing
@cyanheads/pentest-mcp-server

Available Tools

7 tools
pentest_analyze_responsePentest Analyze ResponseA
Read-onlyIdempotent
Inspect

Analyze an HTTP response from authorized probing for information leakage, fingerprinting signals, and related exposure. Structured findings cover version disclosures, stack traces, debug headers, internal paths, authentication patterns, CORS configuration, detection signals, remediation, and associated methodology vectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoFreeform context about the authorized test target — e.g., "login endpoint", "GraphQL API", "file upload handler". Narrows the pattern matching to relevant categories. Max 2,000 characters.
status_codeNoHTTP status code (100–599). Helps classify the response type.
response_bodyNoRaw HTML, JSON, XML, or error response body text. Maximum 10,000 characters.
response_headersNoRaw HTTP response headers, optionally including the status line. Maximum 20,000 characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
summaryNoOne-paragraph summary of findings and associated follow-up actions.
findingsNoStructured findings ordered by severity descending (high first).
fingerprintsNoDetected server, framework, language, database, cloud, and other technology signals.
nextToolSuggestionsNoSuggested tools derived from detected fingerprints and findings.
authorized_use_reminderNoReminder that response analysis is for authorized testing only. Rendered first.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, non-mutating operation. The description adds value by disclosing what the tool produces: structured findings covering specific categories (version disclosures, stack traces, debug headers, internal paths, authentication patterns, CORS configuration, detection signals, remediation, and methodology vectors). This goes beyond the annotations by describing the output structure and scope. No contradiction with annotations.

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?

The description is a single, dense paragraph that front-loads the core purpose ('Analyze an HTTP response from authorized probing') and then lists the finding categories. It's efficient with no filler words. The list of categories is somewhat long but each item adds value by clarifying the tool's scope. Could be slightly more structured (e.g., bullet points) but is acceptable as prose.

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?

The tool has an output schema (not shown in detail but indicated by 'Has output schema: true'), which likely describes the structured findings. The description covers the input parameters (via schema) and the output categories. The description mentions 'remediation' and 'methodology vectors' which are important for a pentest tool. Given the complexity of a security analysis tool, the description is reasonably complete. It could mention that the tool is read-only (though annotations cover that) or provide more detail on how the analysis works, but the current level is adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so all four parameters (context, status_code, response_body, response_headers) are already well-documented in the schema. The description doesn't add parameter-specific semantics beyond what the schema provides. The description mentions 'context' narrows pattern matching, which aligns with the schema's description, but doesn't add new information. Baseline 3 is appropriate given full schema coverage.

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 description clearly states the tool's purpose: analyzing HTTP responses from authorized probing for information leakage, fingerprinting signals, and related exposure. It lists specific categories of findings (version disclosures, stack traces, debug headers, etc.), which distinguishes it from sibling tools like pentest_generate_payloads or pentest_map_techniques. The verb 'analyze' and resource 'HTTP response' are specific and unambiguous.

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 implies usage context: it's for analyzing responses from authorized probing, which suggests it should be used after sending requests. It doesn't explicitly state when not to use it or name alternatives, but the sibling tools are clearly different in function (encoding, payload generation, lookup, mapping). The 'authorized probing' qualifier provides important usage context. However, it doesn't explicitly say 'use this when you have a response to analyze' or contrast with alternatives.

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

pentest_encodePentest EncodeA
Read-onlyIdempotent
Inspect

Transform a payload string through an ordered encoding chain for authorized filter research. Results include the final value, intermediate values, optional decode path and rationale, and detection guidance. All transforms are local; no live probing occurs.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesOrdered list of encodings to apply (1–6 steps). Applied left to right. E.g., ["unicode", "url"] applies Unicode escape first, then URL-encodes the result.
explainNoWhether to include the decode path and bypass rationale.
payloadYesInput payload string to encode. Max 10,000 characters.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
encodedNoFinal encoded payload after all chain steps applied.
originalNoThe input payload.
decode_pathNoStep-by-step explanation of how a decoder (WAF, server, browser) would reverse the encoding chain. Included when explain is true.
detection_noteNoDetection methods for encoded variants, including normalization and behavior signals.
bypass_rationaleNoWhy this encoding combination might bypass common filter patterns. Included when explain is true.
intermediate_stepsNoIntermediate values at each encoding step, for tracing the chain.
authorized_use_reminderNoReminder that encoding transforms are for authorized bypass research only.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint, idempotentHint), the description discloses that all transforms are local and no live probing occurs, which reassures about network safety. It also outlines the output contents (final value, intermediate values, optional decode path, rationale, detection guidance), providing transparency about what the tool returns. No contradictions with annotations.

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

Conciseness5/5

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

The description is compact, consisting of two sentences that efficiently convey the core action and key details. It front-loads the verb and resource, then lists output features and safety notes without unnecessary elaboration. No filler or redundant phrasing.

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

Completeness5/5

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

Given the schema with full descriptions and annotations indicating read-only and idempotent behavior, the description covers the tool's purpose, output, and safety. It does not delve into edge cases or error handling, but that is acceptable as the output schema likely describes the return format. The description is self-sufficient for an agent to decide when and how to invoke the tool.

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

Parameters3/5

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

The schema already provides detailed descriptions for all three parameters (payload, chain, explain), including examples and constraints. The tool description does not add significant extra meaning to these parameters; it mostly reiterates the output structure. Since schema coverage is 100%, the baseline is 3, and the description does not elevate it further.

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 description clearly states the tool's function: transforming a payload string through an ordered encoding chain. It specifies the verb ('Transform') and the resource ('payload string'), and adds context with 'for authorized filter research.' This distinguishes it from sibling tools like payload generation or response analysis, though it does not explicitly name alternatives.

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 conveys when to use the tool implicitly: when encoding a payload for filter research. It includes a safety note ('All transforms are local; no live probing occurs') that hints at usage boundaries. However, it does not explicitly compare with sibling tools (e.g., 'use pentest_generate_payloads for creation'), leaving some ambiguity about when this tool is preferred over alternatives.

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

pentest_generate_payloadsPentest Generate PayloadsA
Read-onlyIdempotent
Inspect

Generate context-specific payload templates for authorized systems. Each template includes its vulnerability category, context rationale, WAF/IDS detection signature, mitigation, optional WAF research note, and optional encoded variant.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of payload variants to return (1–20, default 5). More variants cover different bypass approaches for the same context.
categoryYesVulnerability category for payload generation.
encodingNoOptional encoding chain applied left to right to each returned template.
waf_profileNoWAF or filter in front of the authorized test target. When a specific WAF is named, bypass variants referencing known public research are included.none
injection_contextYesPrecise injection context. Critical for XSS: an HTML attribute payload differs from a JS string payload. Provide the most specific context for the best results.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
categoryNoRequested payload category.
payloadsNoPayload templates ordered by coverage breadth, each annotated with offense and defense context.
injection_contextNoRequested injection context.
authorized_use_reminderNoReminder that these templates are for authorized testing only.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and deterministic output. The description adds valuable detail about what each template includes (category, rationale, detection signature, mitigation, optional research note and encoded variant), which is beyond annotations and helps agents understand output structure.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the primary action and scope, then briefly enumerates output contents. Every clause earns its place with no redundancy or filler.

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?

Given the tool's complexity (5 parameters, enums, output schema present), the description provides enough context about the returned templates and ties to the 'context rationale' element. It does not explicitly mention parameters like count or encoding, but those are fully documented in the schema, and the output schema is present, so nothing critical is missing.

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

Parameters3/5

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

Schema description coverage is 100%, so the description does not need to elaborate on parameters. It adds no parameter-specific details beyond the schema, and the baseline of 3 is appropriate when schema carries the full load.

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 description clearly states the tool's verb ('Generate') and resource ('context-specific payload templates'), with a scope qualifier ('for authorized systems'). It is easily distinguished from siblings like pentest_analyze_response (analysis) or pentest_encode (encoding), so an agent knows exactly what this tool 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 implicitly frames usage as part of an authorized pentest workflow, but does not explicitly state when to prefer this tool over alternatives such as pentest_guide or pentest_map_techniques. The context is clear, yet exclusions or alternative routing are left to inference.

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

pentest_guidePentest GuideA
Read-onlyIdempotent
Inspect

Return an authorized-testing methodology for a selected vector and optional target context. The playbook covers reconnaissance, enumeration, exploitation, and post-exploitation phases with objectives, techniques, detection signals, mitigations, common pitfalls, references, and context-derived tool suggestions across 15 vectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
phaseNoMethodology phase selector. "all" returns the complete playbook; a named phase returns only that phase.all
vectorYesAttack vector to retrieve methodology for. Each vector has its own methodology branch covering recon through exploitation. Authorized testing only.
target_contextNoOptional target profile for authorized engagement. Providing this narrows the playbook to what is most relevant for the specific environment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
phasesNoOrdered methodology phases. Contains only the requested phase when phase input is not "all".
vectorNoThe requested attack vector.
owasp_referencesNoRelevant OWASP Testing Guide test case IDs (e.g., "WSTG-INPV-01").
nextToolSuggestionsNoSuggested tools and arguments derived from the playbook.
attack_technique_idsNoRelevant ATT&CK technique IDs for cross-referencing with pentest_lookup_technique.
authorized_use_reminderNoReminder that this methodology applies to authorized testing only. Included in every response.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and idempotentHint=true, so the agent knows this is a non-mutating, repeatable operation. The description adds value by disclosing that the returned content is an 'authorized-testing' playbook that covers phases (recon, enumeration, exploitation, post_exploitation) and includes elements like detection signals, mitigations, and 'context-derived tool suggestions.' This goes beyond the annotations by describing the nature of the output without contradicting them.

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

Conciseness5/5

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

The description is a single, information-dense sentence that front-loads the core action and resource, then enumerates the coverage without redundancy. Every phrase contributes (phases, objectives, techniques, detection signals, mitigations, pitfalls, references, tool suggestions). It is compact yet comprehensive, making efficient use of the word budget.

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

Completeness5/5

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

Given that an output schema exists (as indicated), the description does not need to explain return formats. The description covers all key aspects: the action, the resource, the scope (15 vectors), optional narrowing, and the content of the playbook. For a read-only, idempotent tool with full schema coverage, this is complete. An agent has enough information to invoke it correctly without ambiguity.

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

Parameters3/5

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

The input schema provides full coverage (100%) for all three parameters, including enums and descriptions for vector and phase, and property-level descriptions for the target_context object. The description simply restates the existence of a 'selected vector' and 'optional target context,' adding no new meaning beyond the schema. Given the high schema coverage, a baseline of 3 is appropriate; the description does not compensate or enrich parameter semantics.

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 description clearly states the tool's function: 'Return an authorized-testing methodology for a selected vector and optional target context.' It identifies the specific resource (methodology) and the action (return), and specifies that it covers a full set of phases. This clearly distinguishes it from sibling tools like pentest_generate_payloads or pentest_analyze_response, which have narrowly scoped purposes.

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

Usage Guidelines3/5

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

The description implies its usage context: it is for retrieving a methodology for a vector, optionally narrowed by target context. However, it does not explicitly state when to prefer this tool over its siblings, nor does it name any alternatives. There is no 'when-not-to-use' guidance or comparison to pentest_map_techniques or pentest_lookup_technique. The usage context is inferable but not explicit, so it falls short of a 4.

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

pentest_lookup_groupPentest Lookup GroupA
Read-onlyIdempotent
Inspect

Look up a MITRE ATT&CK threat group or software entry by ID, name, or keyword. Results include ATT&CK identity, aliases, type, description, and associated techniques with procedure-level context from public ATT&CK reporting.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesATT&CK threat group ID (e.g., "G0007"), software ID (e.g., "S0002"), or name/keyword (e.g., "APT28", "Mimikatz", "Lazarus Group"). ID lookup is exact and case-insensitive; name/keyword search returns the best match.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoATT&CK ID (e.g., "G0007" for a group, "S0002" for software).
nameNoPrimary display name (e.g., "APT28", "Mimikatz").
typeNo"group" for intrusion sets (threat actors), "software" for malware and tools.
errorNoPresent when the call failed. Absent on success.
aliasesNoKnown alternate names from ATT&CK.
descriptionNoATT&CK description (truncated to 800 characters).
attack_versionNoATT&CK dataset version used (e.g., "Enterprise v19.1").
techniques_usedNoUp to 20 techniques associated with the group or software, including procedure-level context and technique IDs.
authorized_use_reminderNoReminder that threat group data is for authorized testing and research only. Rendered first.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, covering safety and repeatability. The description adds value by specifying what the result contains (identity, aliases, type, description, techniques with procedure-level context), and it notes the query fallback from exact ID to best-match on name/keyword. There is no contradiction with annotations, and the added behavioral detail is useful beyond the annotations.

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

Conciseness5/5

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

The description is two concise sentences, front-loaded with the core action and resource, then clarifying the accepted input formats and the nature of results. Every sentence earns its place, and there is no redundant repetition of the tool name or schema details.

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

Completeness5/5

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

For a single-parameter lookup tool with no nested objects and an output schema present (as per context signals), the description covers the purpose, input formats, and return content. The agent has everything needed to decide when to invoke it and what to expect, and the annotations cover side effects. Nothing essential is missing.

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 coverage is 100% for the single 'query' parameter, so the schema already documents the parameter fully. The description adds extra semantic nuance: ID lookup is exact and case-insensitive, while name/keyword search returns the best match. This exceeds the baseline for high schema coverage and helps the agent understand query behavior without opening the schema.

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 description states a specific action ('Look up') with a clear resource ('MITRE ATT&CK threat group or software entry') and the input modes ('ID, name, or keyword'). It differentiates from the sibling pentest_lookup_technique by focusing on groups/software rather than techniques, and it enumerates the returned fields, so an agent can tell exactly what the tool does.

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 clearly implies when to use this tool: when looking up threat groups or software entries from ATT&CK. It implicitly distinguishes from pentest_lookup_technique by the resource type, but it does not explicitly state 'use this for groups/software, not techniques' or mention any exclusions. Given the sibling names, the context is clear enough without explicit exclusion.

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

pentest_lookup_techniquePentest Lookup TechniqueA
Read-onlyIdempotent
Inspect

Look up a MITRE ATT&CK technique by exact ID or keyword. Results include tactics, platforms, description, detection data, public procedure examples, mitigations, related sub-techniques, and dataset version.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesATT&CK technique ID (e.g., "T1190", "T1059.001") or keyword describing the technique (e.g., "sql injection", "pass the hash", "web shell upload"). ID lookup is exact; keyword lookup returns the best match plus related techniques.
include_subtechniquesNoInclude sub-techniques in the result. Set to false when only the parent technique summary is needed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoTechnique name.
errorNoPresent when the call failed. Absent on success.
tacticsNoATT&CK tactics this technique belongs to (e.g., "Initial Access", "Execution").
detectionNoATT&CK detection context for the technique.
platformsNoTarget platforms (e.g., "Windows", "Linux", "Web Application").
descriptionNoATT&CK description of the technique.
mitigationsNoRecommended mitigations from ATT&CK.
technique_idNoATT&CK technique ID (e.g., "T1190").
attack_versionNoATT&CK dataset version used (e.g., "Enterprise v19.1").
sub_techniquesNoSub-techniques of this parent technique. Empty when querying a sub-technique itself, or when include_subtechniques is false.
procedure_examplesNoReal-world usage examples from ATT&CK public reporting.
authorized_use_reminderNoReminder that technique data is for authorized testing and research only. Rendered first.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already establish read-only and idempotent behavior. The description adds a brief summary of the result contents (tactics, platforms, detection data, etc.), but since an output schema exists, this enumeration adds only moderate value beyond the structured annotations.

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?

The description is a single front-loaded sentence that hits the action first and then lists the result fields. The enumeration is somewhat long, but each item is meaningful and contributes to a complete overview.

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

Completeness5/5

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

Given the tool's simplicity, fully documented schema, existing output schema, and read-only idempotent annotations, the definition is complete for an agent to invoke it correctly. Nothing essential for making the call is missing.

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

Parameters3/5

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

Schema description coverage is 100%, with rich detail on the query parameter (examples, exact vs. best-match behavior) and include_subtechniques (default and when to disable). The description itself adds no parameter-level meaning beyond what the schema already provides.

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?

States a specific verb ('look up'), a distinct resource ('MITRE ATT&CK technique'), and the two accepted input modes ('exact ID or keyword'). This clearly distinguishes it from the sibling pentest_lookup_group without requiring the agent to open either schema.

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

Usage Guidelines2/5

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

The description provides no explicit when-to-use or when-not-to-use guidance, nor does it reference any sibling tool. The only usage hint appears inside the include_subtechniques parameter schema, not in the description itself.

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

pentest_map_techniquesPentest Map TechniquesA
Read-onlyIdempotent
Inspect

Rank ATT&CK techniques and OWASP test cases against an authorized target profile of technology stack, exposed services, authentication type, and operating system. Results include profile-specific relevance, detection opportunities, mitigations, and associated methodology vectors.

ParametersJSON Schema
NameRequiredDescriptionDefault
osNoTarget operating system. Narrows to OS-specific techniques.
limitNoMaximum number of techniques to return (1–50, default 15). Higher values give broader coverage; lower values focus on highest-relevance items.
stackNoTechnology stack components (e.g., ["Node.js", "Express", "PostgreSQL", "Redis"]). Each element matched against technique platform and procedure examples.
servicesNoExposed services and interfaces (e.g., ["REST API", "GraphQL", "file upload", "admin panel"]). Narrows technique relevance.
auth_typeNoAuthentication mechanism in use. Surfaces auth-specific attack techniques.

Output Schema

ParametersJSON Schema
NameRequiredDescription
capNoThe limit applied to ranked_techniques.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of ranked techniques returned.
truncatedNoTrue when ranked_techniques was capped by limit.
attack_versionNoATT&CK dataset version used for technique data.
profile_summaryNoOne-sentence normalized summary of the supplied target profile.
owasp_test_casesNoRelevant OWASP Testing Guide test cases for the profile (up to 10).
ranked_techniquesNoTechniques ordered by relevance_score descending.
authorized_use_reminderNoReminder that technique mapping is for authorized testing engagements only. Rendered first.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare this as a read-only, idempotent operation, so the description does not need to repeat safety traits. It adds useful behavioral context by explaining the output includes relevance, detection opportunities, mitigations, and methodology vectors, though some of this is redundant with the existing output schema. It does not clarify whether this is a local knowledge-base ranking rather than a live scan, but the 'authorized target profile' framing partially signals a planning-oriented operation.

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?

The description is two sentences with no filler, front-loading the verb, resource, and target context. The phrase 'associated methodology vectors' is somewhat vague and imprecise, which keeps it from being perfectly concise, but overall every sentence earns its place.

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?

Given the output schema exists and input schema fully documents parameters, the description covers the essential invocation context well. It does not mention behavior when no profile parameters are provided, but because all parameters are optional and the schema documents defaults, this is a minor omission rather than a critical gap.

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

Parameters3/5

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

Schema description coverage is 100%, and the schema already documents every parameter including defaults and enum constraints. The description restates four of the five profile dimensions (stack, services, auth_type, os) but adds no new semantic detail beyond what the schema provides, matching the baseline for high schema coverage.

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 description names a specific verb ('Rank') and a precise resource ('ATT&CK techniques and OWASP test cases'), then scopes it to a target profile composed of concrete dimensions. This clearly separates it from siblings like pentest_lookup_technique and pentest_generate_payloads by indicating a multi-technique prioritization operation rather than a single lookup or payload construction.

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?

It provides clear situational context: use when you need profile-specific ranking of attack techniques and test cases against a target's stack, services, auth type, and OS. It does not explicitly name alternatives or state when not to use it, but the described use case is unambiguous enough for an agent to select it correctly.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updates
    • Changedpentest_analyze_response16 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / response_body / description
        Previous value: -"Response body text. Paste raw HTML, JSON, XML, or error text. Truncate to the first 10,000 characters for very large responses — the first portion carries most leakage signals."New value: +"Raw HTML, JSON, XML, or error response body text. Maximum 10,000 characters."
      • changedInput schema / properties / response_headers / description
        Previous value: -"Raw HTTP response headers (paste from Burp, curl -v, or similar). Include the status line if available. Max 20,000 characters."New value: +"Raw HTTP response headers, optionally including the status line. Maximum 20,000 characters."
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "authorized_use_reminder",
        +      "findings",
        +      "fingerprints",
        +      "summary",
        +      "nextToolSuggestions"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `no_input`: Neither response_headers nor response_body was provided. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "no_input"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / findings / items / properties / detection / description
        Previous value: -"How a defender or SIEM would detect exploitation of this finding."New value: +"Observable signals associated with exploitation of this finding."
      • changedOutput schema / properties / fingerprints / description
        Previous value: -"Technology fingerprinting summary for use in target_context when calling pentest_guide or pentest_map_techniques."New value: +"Detected server, framework, language, database, cloud, and other technology signals."
      • changedOutput schema / properties / nextToolSuggestions / description
        Previous value: -"Suggested next tool calls — typically pentest_guide with fingerprint-populated stack, or pentest_generate_payloads for directly exploitable findings."New value: +"Suggested tools derived from detected fingerprints and findings."
      • changedOutput schema / properties / nextToolSuggestions / items / description
        Previous value: -"A suggested follow-up tool call with pre-filled arguments."New value: +"A suggested tool with arguments derived from the analysis."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / args / description
        Previous value: -"Pre-filled arguments derived from detected fingerprints and findings. Pass directly to the suggested tool."New value: +"Arguments derived from detected fingerprints and findings."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / reason / description
        Previous value: -"Why this tool is the logical next step given the analysis findings."New value: +"Relationship between the analysis findings and the suggested tool."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / toolName / description
        Previous value: -"Tool name to call next (e.g., \"pentest_guide\")."New value: +"Suggested tool name (e.g., \"pentest_guide\")."
      • changedOutput schema / properties / summary / description
        Previous value: -"One-paragraph summary of findings and recommended next steps for the authorized tester."New value: +"One-paragraph summary of findings and associated follow-up actions."
      • removedOutput schema / required
        Removed value: -[
        -  "authorized_use_reminder",
        -  "findings",
        -  "fingerprints",
        -  "summary",
        -  "nextToolSuggestions"
        -]
    • Changedpentest_encode8 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / explain / description
        Previous value: -"Include step-by-step decode explanation. Set to false for raw transform output only."New value: +"Whether to include the decode path and bypass rationale."
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "authorized_use_reminder",
        +      "original",
        +      "encoded",
        +      "intermediate_steps",
        +      "detection_note"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / detection_note / description
        Previous value: -"How defenders detect encoded payload variants — decoding normalizers, entropy analysis, behavioral detection. Always included to maintain the dual offense/defense framing."New value: +"Detection methods for encoded variants, including normalization and behavior signals."
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `encoding_error`: An encoding step produced invalid output (e.g., base64 on invalid input). Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "encoding_error"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "authorized_use_reminder",
        -  "original",
        -  "encoded",
        -  "intermediate_steps",
        -  "detection_note"
        -]
    • Changedpentest_generate_payloads9 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / encoding / description
        Previous value: -"Apply an encoding chain to payloads at generation time. Applied in order (left to right). Use pentest_encode for more control over per-payload encoding."New value: +"Optional encoding chain applied left to right to each returned template."
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "category",
        +      "injection_context",
        +      "authorized_use_reminder",
        +      "payloads"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode.",
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / payloads / items / properties / detection_signature / description
        Previous value: -"Signature a WAF or IDS might match (e.g., specific keywords, patterns). Useful for blue team rule-writing."New value: +"Signature a WAF or IDS might match, such as keywords or patterns."
      • changedOutput schema / properties / payloads / items / properties / mitigation / description
        Previous value: -"How the target application should validate or encode input to prevent this class of payload."New value: +"Input validation or encoding control that prevents this payload class."
      • removedOutput schema / required
        Removed value: -[
        -  "category",
        -  "injection_context",
        -  "authorized_use_reminder",
        -  "payloads"
        -]
    • Changedpentest_guide16 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedInput schema / properties / phase / description
        Previous value: -"Restrict output to a specific phase. Use \"all\" for a complete playbook. Use a specific phase when working through a step-by-step flow."New value: +"Methodology phase selector. \"all\" returns the complete playbook; a named phase returns only that phase."
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "vector",
        +      "authorized_use_reminder",
        +      "phases",
        +      "owasp_references",
        +      "attack_technique_ids",
        +      "nextToolSuggestions"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode.",
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / nextToolSuggestions / description
        Previous value: -"Suggested follow-up tool calls with arguments pre-populated from the playbook findings."New value: +"Suggested tools and arguments derived from the playbook."
      • changedOutput schema / properties / nextToolSuggestions / items / description
        Previous value: -"A follow-up tool call with pre-filled arguments derived from the playbook."New value: +"A suggested tool with arguments derived from the playbook."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / args / description
        Previous value: -"Pre-filled arguments from the methodology context. Pass directly to the tool."New value: +"Arguments derived from the methodology context."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / reason / description
        Previous value: -"Why this tool is the logical next step."New value: +"Relationship between the playbook and the suggested tool."
      • changedOutput schema / properties / nextToolSuggestions / items / properties / toolName / description
        Previous value: -"Tool name to call next (e.g., \"pentest_generate_payloads\")."New value: +"Suggested tool name (e.g., \"pentest_generate_payloads\")."
      • changedOutput schema / properties / phases / items / properties / objectives / description
        Previous value: -"What the tester is trying to discover or accomplish in this phase."New value: +"Discovery or execution objectives for this phase."
      • changedOutput schema / properties / phases / items / properties / techniques / items / properties / detection / description
        Previous value: -"How defenders detect this technique (log sources, signatures, anomalies)."New value: +"Observable logs, signatures, and anomalies for this technique."
      • changedOutput schema / properties / phases / items / properties / techniques / items / properties / mitigation / description
        Previous value: -"How the target system should be configured to prevent or reduce impact."New value: +"Configuration or control that prevents or reduces impact."
      • changedOutput schema / properties / phases / items / properties / tools_commonly_used / description
        Previous value: -"Commonly used tools for this phase (tool names, not instructions to install or use without authorization)."New value: +"Named tools commonly associated with this phase."
      • removedOutput schema / required
        Removed value: -[
        -  "vector",
        -  "authorized_use_reminder",
        -  "phases",
        -  "owasp_references",
        -  "attack_technique_ids",
        -  "nextToolSuggestions"
        -]
    • Changedpentest_lookup_group8 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "authorized_use_reminder",
        +      "id",
        +      "name",
        +      "aliases",
        +      "type",
        +      "description",
        +      "techniques_used",
        +      "attack_version"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / attack_version / description
        Previous value: -"ATT&CK dataset version used (e.g., \"Enterprise v19.1\"). Included so callers know the data vintage."New value: +"ATT&CK dataset version used (e.g., \"Enterprise v19.1\")."
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No group or software entry matched the query. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "no_match"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / techniques_used / description
        Previous value: -"Techniques this group or software is known to use, with procedure-level context from public ATT&CK reporting (up to 20 entries). Use pentest_lookup_technique with each technique_id for full technique details including detection and mitigations."New value: +"Up to 20 techniques associated with the group or software, including procedure-level context and technique IDs."
      • removedOutput schema / required
        Removed value: -[
        -  "authorized_use_reminder",
        -  "id",
        -  "name",
        -  "aliases",
        -  "type",
        -  "description",
        -  "techniques_used",
        -  "attack_version"
        -]
    • Changedpentest_lookup_technique10 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "authorized_use_reminder",
        +      "technique_id",
        +      "name",
        +      "tactics",
        +      "description",
        +      "platforms",
        +      "detection",
        +      "mitigations",
        +      "procedure_examples",
        +      "sub_techniques",
        +      "attack_version"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / attack_version / description
        Previous value: -"ATT&CK dataset version used (e.g., \"Enterprise v19.1\"). Included so callers know the data vintage."New value: +"ATT&CK dataset version used (e.g., \"Enterprise v19.1\")."
      • changedOutput schema / properties / detection / description
        Previous value: -"Detection context — directly useful for blue team detection coverage."New value: +"ATT&CK detection context for the technique."
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `no_match`: No technique matched the query. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "no_match"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / procedure_examples / description
        Previous value: -"Real-world usage examples from ATT&CK public reporting. Useful for understanding adversary application of the technique."New value: +"Real-world usage examples from ATT&CK public reporting."
      • changedOutput schema / properties / sub_techniques / items / description
        Previous value: -"A sub-technique summary. Use pentest_lookup_technique with the sub-technique ID for full details."New value: +"A sub-technique ID, name, and brief description."
      • removedOutput schema / required
        Removed value: -[
        -  "authorized_use_reminder",
        -  "technique_id",
        -  "name",
        -  "tactics",
        -  "description",
        -  "platforms",
        -  "detection",
        -  "mitigations",
        -  "procedure_examples",
        -  "sub_techniques",
        -  "attack_version"
        -]
    • Changedpentest_map_techniques13 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "authorized_use_reminder",
        +      "ranked_techniques",
        +      "owasp_test_cases",
        +      "profile_summary",
        +      "attack_version",
        +      "truncated",
        +      "shown",
        +      "cap"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "The limit applied to ranked_techniques.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `no_profile`: No profile fields were provided. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "no_profile"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / profile_summary / description
        Previous value: -"One-sentence summary of the target profile as interpreted by the ranking algorithm."New value: +"One-sentence normalized summary of the supplied target profile."
      • changedOutput schema / properties / ranked_techniques / items / properties / detection_opportunity / description
        Previous value: -"Primary detection opportunity for defenders (truncated to 200 chars)."New value: +"Primary observable detection opportunity (truncated to 200 characters)."
      • changedOutput schema / properties / ranked_techniques / items / properties / pentest_guide_vector / description
        Previous value: -"Pentest_guide vector name for follow-up methodology. Absent when no direct mapping exists."New value: +"Associated pentest_guide methodology vector. Absent when no direct mapping exists."
      • changedOutput schema / properties / ranked_techniques / items / properties / relevance_score / description
        Previous value: -"Relevance score based on profile match factors: 1 point per matching platform, 2 per matching service, 2 for auth type match. Higher = more applicable to this profile."New value: +"Relative relevance to the supplied target profile; higher scores indicate stronger matches."
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Number of ranked techniques returned.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when ranked_techniques was capped by limit.",
        +  "type": "boolean"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "authorized_use_reminder",
        -  "ranked_techniques",
        -  "owasp_test_cases",
        -  "profile_summary",
        -  "attack_version"
        -]
  2. 2 tool updates
    • Changedpentest_generate_payloads1 field changed
      • changedInput schema / properties / waf_profile / enum
        Previous value: -[
        -  "cloudflare",
        -  "aws_waf",
        -  "modsecurity_crs",
        -  "imperva",
        -  "akamai",
        -  "none",
        -  "unknown"
        -]New value: +[
        +  "cloudflare",
        +  "aws_waf",
        +  "modsecurity_crs",
        +  "imperva",
        +  "akamai",
        +  "f5_bigip_asm",
        +  "nginx_modsecurity",
        +  "fortinet_fortiwaf",
        +  "none",
        +  "unknown"
        +]
    • Addedpentest_lookup_group
  3. 6 tool updates
    • First observedpentest_analyze_response
    • First observedpentest_encode
    • First observedpentest_generate_payloads
    • First observedpentest_guide
    • First observedpentest_lookup_technique
    • First observedpentest_map_techniques

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables automated penetration testing workflow planning using Beam Search and Monte Carlo Tree Search algorithms to generate step-by-step attack paths, score vulnerabilities, and recommend tools for reconnaissance, exploitation, and privilege escalation tasks.
    38
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables automated bug bounty hunting and security research with tools for reconnaissance, web vulnerability scanning, API testing, binary analysis, and mobile app analysis through an MCP interface.
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    An automated penetration testing framework that enables intelligent security assessments through reconnaissance, vulnerability scanning, and controlled exploitation. Features AI-driven workflow management with comprehensive reporting for authorized security testing.
    25
    27
    9
    7
    BSD 3-Clause
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: response analysis, payload encoding, payload generation, methodology guidance, ATT&CK group lookup, ATT&CK technique lookup, and technique mapping. There is no meaningful overlap or ambiguity between tool boundaries.

Naming Consistency4/5

All tools share the pentest_ prefix and most follow a verb_noun pattern such as analyze_response, generate_payloads, and lookup_technique. However, pentest_encode and pentest_guide are verb-only, creating a minor inconsistency in the naming convention.

Tool Count5/5

Seven tools is a well-scoped size for a pentest assistance server. Each tool covers a distinct capability without unnecessary duplication or bloat.

Completeness4/5

The tool set covers the main pentest workflow areas: response analysis, payload generation/encoding, methodology guidance, and ATT&CK reference/mapping. Minor gaps exist, such as no explicit reporting or active scanning tool, but the surface is coherent and usable for its apparent purpose.