TurboPentest
This server lets you launch and manage AI-powered penetration tests, review vulnerabilities, and generate reports with blockchain attestation.
Launch pentests against verified domains across four tiers (recon, standard, deep, blitz), optionally with a GitHub repo for white-box scanning (SAST, secret detection, SCA).
Check scan status, progress, findings summary, executive summary, attack surface map, and STRIDE threat model for a pentest.
List past pentests with status and finding counts, filterable by status.
Retrieve structured findings with severity, CVSS, CWE, PoC, remediation, and retest commands, filterable by severity.
Download reports in markdown, JSON, or PDF format.
Check your credit balance and available scan tiers with pricing.
Verify blockchain-anchored attestations by hash (public, no API key required).
List your verified domains and their verification status.
Access guided workflows as tools (e.g., run_pentest, analyze_findings, compare_pentests, security_posture) for clients that don't support MCP prompts.
Allows for white-box scanning by integrating GitHub repositories into penetration test workflows for source code analysis.
@turbopentest/mcp-server
MCP server for TurboPentest — launch AI-powered penetration tests, review vulnerability findings, and generate security reports, all without leaving your coding assistant.
What it does
Ask your AI assistant to run a pentest, check progress, and walk you through remediation — the server handles all the API calls. Every completed scan is anchored to the blockchain, giving you a tamper-proof attestation you can share with customers or auditors.
Related MCP server: redteam-mcp
Quick start
1. Get your API key
Sign up and create an API key at turbopentest.com/settings/api-keys.
2. Verify a domain
Before scanning, verify that you own the target domain at turbopentest.com/domains.
3. Add the server to your MCP client
Claude Code (.mcp.json in your project root):
{
"mcpServers": {
"turbopentest": {
"command": "npx",
"args": ["@turbopentest/mcp-server"],
"env": {
"TURBOPENTEST_API_KEY": "tp_live_..."
}
}
}
}Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"turbopentest": {
"command": "npx",
"args": ["@turbopentest/mcp-server"],
"env": {
"TURBOPENTEST_API_KEY": "tp_live_..."
}
}
}
}Cursor (Settings > MCP Servers > Add):
{
"command": "npx",
"args": ["@turbopentest/mcp-server"],
"env": {
"TURBOPENTEST_API_KEY": "tp_live_..."
}
}OpenAI Codex CLI (~/.codex/config.toml, or run codex mcp add turbopentest -- npx @turbopentest/mcp-server and set the env var when prompted):
[mcp_servers.turbopentest]
command = "npx"
args = ["@turbopentest/mcp-server"]
[mcp_servers.turbopentest.env]
TURBOPENTEST_API_KEY = "tp_live_..."Then run /mcp inside Codex to confirm turbopentest is listed. Codex's MCP
client doesn't support the "prompts" primitive, so the four guided workflows
are also exposed as plain tools (turbopentest_workflow_*, see below) and
described in this repo's AGENTS.md, which Codex reads automatically.
Example session
You: "Run a standard pentest on staging.example.com"
Claude: Checks domain is verified, confirms credit balance,
calls start_pentest → "Started tp_abc123, 4 agents, ~1 hour"
You: "Any findings yet?"
Claude: Calls get_pentest → "62% complete — 3 findings (1 high, 2 medium)"
You: "Show me the high severity ones"
Claude: Calls get_findings(severity: "high") →
[1] HIGH: SQL Injection in /api/search
CVSS: 8.6 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)
CWE: CWE-89
PoC: POST /api/search?q=' OR 1=1--
Remediation: Use parameterized queries...
Retest: sqlmap -u "https://staging.example.com/api/search" ...
You: "Give me a prioritized remediation plan"
Claude: Uses the analyze_findings prompt → produces a full markdown
remediation plan grouped by severity and effortWhite-box scanning
Pass a GitHub repository URL to start_pentest to enable white-box mode. In addition to black-box testing, the scan will include:
SAST — static code analysis for common vulnerability patterns
Secret detection — leaked API keys, credentials, and tokens in source
SCA — dependency audit for known CVEs
You: "Pentest staging.example.com, the repo is github.com/myorg/myapp"Tools
Tool | Description |
| Launch a pentest against a verified domain. Supports four tiers and optional GitHub repo for white-box scanning. |
| Get scan status, progress, findings summary, executive summary, attack surface map, and STRIDE threat model. |
| List all pentests with status and finding counts. Filterable by status. |
| Retrieve structured findings with severity, CVSS, CWE, OWASP category, PoC, remediation steps, and retest commands. Filterable by severity. |
| Download a report in markdown (best for AI), JSON, or PDF format. |
| Check your credit balance and available scan tiers with pricing. |
| Verify a blockchain-anchored attestation by SHA-256 hash. No API key required — public endpoint. |
| List your verified domains and their verification status. |
| Returns the |
| Returns the |
| Returns the |
| Returns the |
Security note: turbopentest_start_pentest checks domain verification
itself before calling the API — it will refuse (isError: true) to launch
against a target whose domain isn't verified on your account, rather than
relying solely on the agent to check first.
Prompts
Built-in prompts guide your AI assistant through multi-step workflows. Invoke them by name in any MCP client that supports prompts (Claude Code, Claude Desktop, Cursor). In clients that only support tools (Codex), use the matching turbopentest_workflow_* tool above instead — the text is identical.
Prompt | Equivalent tool | Description |
|
| Full-lifecycle pentest: domain check → credit verification → launch → progress monitoring → findings summary → report download |
|
| Deep-dive analysis of a single pentest's findings, producing a prioritized remediation plan with effort estimates and retest commands |
|
| Diff two pentests on the same target — shows what's new, what's been fixed, and what's still unresolved |
|
| Executive briefing across your 5 most recent pentests: risk trends, highest-risk targets, and top 3 recommended actions |
Scan tiers
Tier | Agents | Duration | Price |
Recon | 1 | ~30 min | $49 |
Standard | 4 | ~1 hour | $99 |
Deep | 10 | ~2 hours | $299 |
Blitz | 20 | ~4 hours | $699 |
Default tier is standard. Use recon for a quick surface sweep or blitz for maximum coverage on critical assets.
Blockchain attestation
Every completed pentest is anchored on-chain as a tamper-proof attestation. The SHA-256 hash is included in the report and can be independently verified — by you, your customers, or auditors — with no API key required:
You: "Verify attestation abc123def456..."turbopentest_verify_attestation returns the scan metadata (tier, agents, duration, risk score, findings summary) alongside the blockchain proof (chain ID, transaction hash, block number, merkle root).
Configuration
Variable | Required | Default | Description |
| Yes | — | API key from turbopentest.com/settings/api-keys |
| No |
| Override the API base URL (for testing) |
Requirements
Node.js 18+
A TurboPentest account with at least one verified domain
Using with OpenAI Codex
See docs/CODEX.md for the full Codex guide — configuration,
the tool list, the authorization model, and why the guided workflows are
exposed as turbopentest_workflow_* tools instead of MCP prompts.
Privacy & support
Privacy policy: https://turbopentest.com/privacy
Subprocessors: https://turbopentest.com/subprocessors
Support: open a case at https://turbopentest.com/support (typically answered within a few hours on business days) or join the Discord
Bugs in this MCP server: https://github.com/integsec/turbopentest-mcp/issues
Your API key is sent only to turbopentest.com/api as a bearer token over
HTTPS. It is never logged and never transmitted anywhere else. Customer pentest
content is not used to train public AI models.
License
MIT
Available Tools
12 toolsturbopentest_download_reportDownload Pentest ReportARead-only
Download a full penetration test report in the specified format. The scan must have status 'complete' before a report can be generated. Use format 'markdown' for AI-readable analysis, 'json' for structured programmatic data, or 'pdf' for a professionally formatted document suitable for stakeholders.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | The output format for the report. 'markdown': human and AI-readable text — best for analysis and summarization. 'json': structured data with all fields — best for programmatic processing. 'pdf': professionally formatted document — best for sharing with stakeholders (returns a download URL). | |
| pentest_id | Yes | The unique identifier (UUID) of the completed penetration test to generate a report for. Returned by turbopentest_start_pentest or turbopentest_list_pentests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's marginal job is to add the state prerequisite, which it does ('must have status complete before a report can be generated'). That is useful non-obvious behavior; the only minor gap is not stating whether download is synchronous or costs credits, but with annotations covering the safety profile this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, then the precondition, then the format decision guidance — no filler and every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 2-parameter read-only tool with full schema coverage and safety annotations, the description covers the key gating condition and format choice. It could note the asynchronous nature or that pdf yields a URL rather than inline content, but the schema already carries that detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the format enum is already fully documented in the schema, including the pdf-returns-URL detail. The description repeats the format guidance rather than adding new syntax or constraints, so it lands at the baseline for a well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (download) and resource (full penetration test report) plus the format dimension, which clearly distinguishes it from siblings like turbopentest_get_findings or turbopentest_get_pentest that return raw scan data rather than a formatted report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete precondition — the scan must have status 'complete' — which tells the agent when the call will succeed, and it explains which format to pick for which use case. It stops short of explicitly naming alternatives, but the gating condition and format routing are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_get_creditsGet Credit BalanceARead-only
Check your current credit balance, usage breakdown by tier, and available scan tiers with pricing. Credits are consumed when launching penetration tests — each tier costs one credit of the matching type. Call this before turbopentest_start_pentest to verify you have sufficient credits for the desired tier.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a safe read-only, non-destructive, closed-world operation, and the description adds valuable domain context: credits are consumed on launch and each tier costs one credit of the matching type. This economics model is genuinely useful and not in the structured fields. Slightly short of a 5 because it doesn't mention whether the call itself costs anything or whether balances are cached/stale.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with actionable information: what you get, then when to call it. The credit-consumption clause earns its place because it explains the precondition's rationale; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description enumerates the return contents (balance, per-tier usage, available tiers with pricing), and the only sibling it interacts with is named. For a zero-param read tool, an agent has everything needed to call it and use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document and the baseline of 4 applies. The description correctly focuses its language on return-value contents rather than inventing parameter behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('check') and precisely enumerates the resources returned: credit balance, usage breakdown by tier, and available scan tiers with pricing. This is clearly distinguishable from siblings like start_pentest or get_pentest, which deal with actual scans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to call it ('before turbopentest_start_pentest') and why ('to verify you have sufficient credits for the desired tier'). The alternative — just launching the test — is implicitly excluded by this precondition, leaving nothing to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_get_findingsGet Vulnerability FindingsARead-only
Retrieve structured vulnerability findings for a completed penetration test. Each finding includes severity, CVSS score, CWE classification, detailed description, proof of concept, remediation steps, and a retest command. Returns up to 20 findings at a time — use the severity filter to focus on specific risk levels. Use turbopentest_download_report for a complete exportable report.
| Name | Required | Description | Default |
|---|---|---|---|
| severity | No | Filter findings by severity level. 'critical': exploitable vulnerabilities with severe business impact. 'high': significant vulnerabilities requiring prompt remediation. 'medium': moderate-risk issues that should be addressed. 'low': minor issues with limited impact. 'info': informational observations and hardening suggestions. | |
| pentest_id | Yes | The unique identifier (UUID) of the penetration test to retrieve findings for. Returned by turbopentest_start_pentest or turbopentest_list_pentests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive and closed-world, so safety needs no repeating. The description adds the useful 'up to 20 findings at a time' cap but never explains how to retrieve the rest — and the schema has no pagination, offset or cursor parameter, so the limit disclosure creates a question it does not answer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action and returning payload before the limit and the alternative. The field enumeration is slightly long but earns its place since there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description responsibly enumerates what a finding contains (severity, CVSS, CWE, PoC, remediation). The one real gap is the unexplained 20-item cap versus an absent pagination parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both pentest_id and the severity enum are fully documented, including per-level definitions. The description only restates the severity filter's purpose, adding no format, default or combined-filter guidance beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (retrieve), resource (vulnerability findings) and scope (a completed penetration test). That scope distinguishes it from sibling tools that start or analyze tests, and the enumerated field list makes the payload concrete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete routing cues: use the severity filter to focus on risk levels, and use turbopentest_download_report for a full exportable report. It does not mention when to prefer turbopentest_workflow_analyze_findings instead, which is the closest ambiguous sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_get_pentestGet Penetration Test DetailsARead-only
Retrieve full details for a specific penetration test by its ID. Returns current status, scan progress percentage, findings summary by severity, executive summary, attack surface map, and STRIDE threat model. Use this to monitor a running scan or review completed results. For detailed vulnerability data, follow up with turbopentest_get_findings.
| Name | Required | Description | Default |
|---|---|---|---|
| pentest_id | Yes | The unique identifier (UUID) of the penetration test. Returned by turbopentest_start_pentest or turbopentest_list_pentests. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds useful behavioral context by listing the returned sections and noting progress percentage is available, which tells the agent this is safe to poll during a run. It does not discuss response size or rate limits for polling, keeping it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: purpose, payload contents, then usage and routing. The payload enumeration is front-loaded and every clause carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must describe return values — and it does so by naming the key sections (status, progress, findings summary, executive summary, attack surface, STRIDE). Combined with the follow-up pointer to get_findings, an agent has everything needed to call and interpret it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage on the single pentest_id parameter, the schema already explains the UUID format and where to obtain it. The description adds no syntax or format detail beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Retrieve full details for a specific penetration test by its ID') and enumerates what the response contains (status, progress, severity summary, attack surface, STRIDE model). This clearly separates it from turbopentest_get_findings, which is named as the drill-down sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives two usage contexts ('monitor a running scan or review completed results') and routes the agent to turbopentest_get_findings for detailed vulnerability data. It stops short of stating when not to use it (e.g., listing many tests via turbopentest_list_pentests), but the routing guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_list_domainsList Verified DomainsARead-only
List all domains in your account with their verification status and expiry dates. A domain must have status 'verified' before it can be used as a target in turbopentest_start_pentest. To verify a new domain, add a DNS TXT record via the TurboPentest dashboard at turbopentest.com/domains.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine context beyond that: what fields come back and the account-level scope. It omits any note on result size or pagination, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the tool returns, followed by the prerequisite and the out-of-band verification path. Nothing is redundant with the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool with no output schema, the description covers the returned fields, the account scope, and the downstream dependency on turbopentest_start_pentest. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4 and the input schema is trivially complete. No param guidance is needed in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (domains) and names exactly what is returned: verification status and expiry dates. No sibling tool covers domains, so there is no ambiguity with turbopentest_get_pentest or turbopentest_get_findings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: a domain must be 'verified' to be used with turbopentest_start_pentest, and points out that verification is done out-of-band via the dashboard DNS TXT record. It does not state a 'when not to use' case, but there is no competing tool to exclude.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_list_pentestsList Penetration TestsARead-only
List all your penetration tests with their status and finding counts, ordered newest first. Use this to find pentest IDs, check which scans are running, or review past results. Supports filtering by status and limiting result count. Use turbopentest_get_pentest with a specific ID for full details.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of penetration tests to return, between 1 and 100. Defaults to 10. | |
| status | No | Filter results by scan status. 'queued': waiting to start. 'scanning': currently running. 'complete': finished successfully. 'failed': terminated with an error. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, destructive=false, and closed-world, so the safety profile is covered. The description adds useful context beyond that: default ordering is newest-first and each record includes status and finding counts, which tells the agent what the response looks like even without an output schema. It stops short of stating pagination behavior or whether results are scoped to the caller's account, leaving a small gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core behavior, then use cases, then the sibling alternative. Every sentence carries distinct information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only list tool with full schema coverage and no output schema, the description supplies return contents and default ordering, which is what the agent needs. Nothing required to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both the limit range and every status enum value. The description only restates that filtering by status and limiting results are supported, adding no syntax or behavioral detail beyond the schema. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all your penetration tests') plus the return contents (status, finding counts) and ordering (newest first). It also distinguishes itself from turbopentest_get_pentest, which returns full details for a single ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives three concrete use cases (find pentest IDs, check running scans, review past results) and explicitly names the alternative turbopentest_get_pentest with the condition that selects it. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_start_pentestStart Penetration TestA
Launch an AI-powered penetration test against a target URL. The target domain must be verified first — this tool checks turbopentest_list_domains itself and will refuse (isError) to launch against an unverified domain, so there is no need to bypass this check. Requires an available credit matching the selected tier — use turbopentest_get_credits to check balance. Returns a pentest ID that can be used with turbopentest_get_pentest to monitor progress.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Scan tier that determines scope and depth. 'recon': 1 agent, ~30 min — quick surface-level reconnaissance. 'standard': 4 agents, ~1 hr — balanced coverage for most targets (default). 'deep': 10 agents, ~2 hrs — thorough testing for production applications. 'blitz': 20 agents, ~4 hrs — maximum coverage for critical assets. | standard |
| repo_url | No | Optional GitHub repository URL (e.g. 'https://github.com/org/repo') to enable white-box scanning. When provided, the scan includes SAST (static analysis), secret detection, and SCA (dependency audit) in addition to black-box testing. | |
| target_url | Yes | The full URL of the target to scan, including protocol (e.g. 'https://example.com'). The domain must be verified in your TurboPentest account before scanning. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, destructive=false, openWorld=true; the description adds real behavioral detail beyond that — the tool self-checks domain verification and returns isError rather than launching, and it consumes a credit tied to the tier. It does not describe what happens after launch beyond returning an ID, but that is low risk for a non-destructive, open-world operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action, then preconditions, then the return value. The aside 'so there is no need to bypass this check' is slightly redundant once the refusal behavior is stated, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the action, both hard preconditions, the failure mode, and the returned handle for monitoring — everything needed to call it correctly with no output schema present. Minor gaps are the lack of any cost magnitude or concurrency limit, which the tier enum partly offsets.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema does not: the tier selection determines which credit is consumed, tying a parameter to a real precondition. The repo_url white-box behavior is already in the schema, so no credit there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Launch an AI-powered penetration test against a target URL') plus the scope implied by the tier enum. It is clearly distinguishable from siblings like turbopentest_workflow_run_pentest or turbopentest_list_pentests because it launches a new scan rather than reading or orchestrating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear preconditions: the domain must be verified and a credit must be available, and it points at turbopentest_get_credits and turbopentest_get_pentest for the surrounding steps. It stops short of contrasting against turbopentest_workflow_run_pentest, so an agent must infer which launch path applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_verify_attestationVerify Pentest AttestationARead-only
Verify a blockchain-anchored penetration test attestation by its SHA-256 hash. Returns scan metadata (tier, agents, duration, risk score, finding summary) and blockchain proof (chain ID, transaction hash, block number, merkle root) if anchored. This is a public endpoint — no API key is required. Use this to independently confirm that a pentest was performed and its results are tamper-proof.
| Name | Required | Description | Default |
|---|---|---|---|
| hash | Yes | The SHA-256 attestation hash to verify. This hash is included in completed pentest reports and can be shared publicly for third-party verification. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, and non-destructive. The description adds valuable context beyond them: it is a public unauthenticated endpoint and returns metadata plus blockchain proof only if anchored. It could mention rate limits or behavior for unknown hashes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core action followed by return contents and public-access note. No wasted phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool without an output schema, the description covers input semantics, return contents, authentication requirements, and the anchoring condition. An agent has enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single hash parameter is fully documented in the schema as the SHA-256 attestation hash included in reports. The description only restates that it is a SHA-256 hash, adding no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Verify a blockchain-anchored penetration test attestation by its SHA-256 hash') and clearly distinguishes this lookup/verification action from sibling workflows like get_pentest or download_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains the use case ('independently confirm that a pentest was performed and its results are tamper-proof') and notes it is public with no API key. It lacks explicit when-not-to-use guidance or named alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_workflow_analyze_findingsWorkflow: Analyze FindingsARead-only
Returns step-by-step instructions for producing a prioritized remediation plan from a completed pentest's findings. Use this in MCP clients (like Codex) that don't support the 'analyze_findings' MCP prompt directly.
| Name | Required | Description | Default |
|---|---|---|---|
| pentest_id | Yes | The pentest ID (UUID) to analyze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful context by clarifying the tool returns instructions rather than performing the analysis, and explains why it exists as a prompt workaround. It doesn't describe the shape of the returned instructions, but that's a minor gap given annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core behavior, with the client-compatibility guidance following. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only workflow tool with full schema coverage and no output schema, the description tells the agent exactly what it will get back (instructions) and why it exists. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single pentest_id parameter is fully documented in the schema. The description adds a semantic constraint beyond the schema by tying the input to a 'completed' pentest, implying the ID must reference a finished engagement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: returns step-by-step instructions for producing a prioritized remediation plan from a pentest's findings. An agent can distinguish this from data-retrieval siblings like turbopentest_get_findings, which return raw findings rather than workflow instructions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Names a clear triggering condition: use it in MCP clients such as Codex that don't support the 'analyze_findings' prompt directly. The alternative (the native prompt) is identified, though it doesn't state when to prefer raw get_findings data instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_workflow_compare_pentestsWorkflow: Compare PentestsARead-only
Returns step-by-step instructions for diffing two pentests on the same target to show what's new, fixed, and persistent. Use this in MCP clients (like Codex) that don't support the 'compare_pentests' MCP prompt directly.
| Name | Required | Description | Default |
|---|---|---|---|
| current_id | Yes | The later pentest ID (UUID) to compare against baseline | |
| baseline_id | Yes | The earlier pentest ID (UUID) to use as baseline |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds important context by clarifying that this tool returns instructions rather than performing the comparison itself, which is behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the tool's output behavior, and then gives the client compatibility condition. Every sentence contributes useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter, read-only workflow helper with full schema coverage and no output schema, the description is mostly complete. It explains what is returned and when to use the tool, though it could say more about the shape of the returned instructions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both baseline_id and current_id documented as earlier and later pentest UUIDs. The description adds only that the pentests should be on the same target and implies baseline/current ordering; it does not add syntax or format details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it returns step-by-step instructions for diffing two pentests on the same target. It also clarifies that the output shows what's new, fixed, and persistent, distinguishing this workflow helper from direct pentest retrieval tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this in MCP clients like Codex that don't support the 'compare_pentests' MCP prompt directly. That gives a clear condition, though it does not name any sibling tool alternatives or exclusion cases beyond the unsupported prompt.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_workflow_run_pentestWorkflow: Run PentestARead-only
Returns step-by-step instructions for running a full-lifecycle pentest against a target: domain verification, credit check, launch, progress monitoring, findings summary, and report offer. Use this in MCP clients (like Codex) that don't support the 'run_pentest' MCP prompt directly.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Tier: recon (1 agent, 30min), standard (4 agents, 1hr), deep (10 agents, 2hr), blitz (20 agents, 4hr) | standard |
| target_url | Yes | The target URL to test (must be a verified domain) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered and the description is consistent with it (it returns instructions, not actions). It adds useful context beyond that: the step sequence including a credit check and domain-verification gate implies prerequisites and potential cost. It does not disclose the shape of the returned instructions or behavior when the target domain is unverified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero padding. The purpose and the full lifecycle scope come first, and the client-compatibility condition is placed last where it belongs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter workflow-guidance tool with a fully documented schema and no output schema, this is nearly complete: it says what it returns, what the sequence covers, and when to prefer it. A brief note on what the instructions reference (e.g. that they call the start_pentest/get_findings tools) would close the last gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the tier enum is fully documented in the schema (agent counts and durations), so the baseline of 3 applies. The description adds only 'against a target' and echoes the verified-domain requirement that the schema already states. No extra meaning about tier selection trade-offs is provided in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Returns step-by-step instructions') and enumerates the lifecycle it covers: domain verification, credit check, launch, progress monitoring, findings summary, report offer. It also makes clear it is a guidance tool rather than an executor, which separates it from turbopentest_start_pentest. It stops short of explicitly naming that sibling as the alternative, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit when-to-use condition and a counterfactual: use this in MCP clients (like Codex) that don't support the 'run_pentest' MCP prompt. That routes the agent meaningfully. It doesn't address when an agent should instead call turbopentest_start_pentest / get_pentest / get_findings directly, which are the obvious sibling alternatives for a client that does support multi-step calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
turbopentest_workflow_security_postureWorkflow: Security PostureARead-only
Returns step-by-step instructions for producing an executive security posture briefing across the 5 most recent pentests. Use this in MCP clients (like Codex) that don't support the 'security_posture' MCP prompt directly.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, read-only, non-destructive, closed-world operation. The description adds important behavioral context by clarifying that it returns step-by-step instructions rather than performing the briefing or pentest itself, and that the scope is the 5 most recent pentests. It does not detail the instruction format or whether fewer than five pentests changes the output, but the key behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted language. It front-loads the primary purpose and then provides the client-compatibility condition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter workflow-instruction tool with no output schema, the description is nearly complete: it states what is returned, the scope of pentests, and the client condition. A minor gap is that it does not describe the structure or limitations of the returned instructions, but the essential information for correct invocation is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter semantics for the description to compensate for. The baseline for a zero-parameter tool is 4, and the description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it returns step-by-step instructions for producing an executive security posture briefing across the 5 most recent pentests. This clearly distinguishes the tool from data-fetching and pentest-execution siblings by emphasizing that it generates guidance rather than running analysis itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this in MCP clients that don't support the 'security_posture' MCP prompt directly, which gives a clear usage condition and implies the prompt is the alternative when supported. It does not explicitly state when not to use the tool or mention sibling workflow tools as alternatives, but the context is clear.
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.
20 tool updates
v0.3.0- Removed
download_report - Removed
get_credits - Removed
get_findings - Removed
get_pentest - Removed
list_domains - Removed
list_pentests - Removed
start_pentest - Added
turbopentest_download_report - Added
turbopentest_get_credits - Added
turbopentest_get_findings - Added
turbopentest_get_pentest - Added
turbopentest_list_domains - Added
turbopentest_list_pentests - Added
turbopentest_start_pentest - Added
turbopentest_verify_attestation - Added
turbopentest_workflow_analyze_findings - Added
turbopentest_workflow_compare_pentests - Added
turbopentest_workflow_run_pentest - Added
turbopentest_workflow_security_posture - Removed
verify_attestation
8 tool updates
v0.1.5- First observed
download_report - First observed
get_credits - First observed
get_findings - First observed
get_pentest - First observed
list_domains - First observed
list_pentests - First observed
start_pentest - First observed
verify_attestation
TDQS
Scored across 12 tools
The four workflow_* tools return instructions rather than performing actions, and are clearly distinguished from the actual action tools (start_pentest, get_findings) by their descriptions. Minor overlap risk exists — an agent could confuse workflow_run_pentest with start_pentest, or workflow_analyze_findings with get_findings — but the descriptions explicitly clarify each tool's role.
All names use snake_case with a consistent turbopentest_ prefix followed by verb_noun (get_credits, list_domains, start_pentest, get_pentest, get_findings, download_report). The workflow_* group inserts a noun segment before the verb, which is a minor deviation but is internally consistent across all four tools.
Twelve tools is well within a comfortable range and each tool maps to a distinct operation in the pentest lifecycle. No redundant or filler tools are present.
The surface covers credits, domain listing, launching, listing, monitoring, findings retrieval, reporting, and attestation verification — a strong full-lifecycle flow. Minor gaps exist: domain addition/verification must be done via the dashboard, and there is no tool to cancel or delete a running pentest, but these are workable.
Maintenance
Related MCP Connectors
MCP server for Pentest-Tools.com: run scans, manage findings and reports via your preffered LLM.
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
MEOK MCP Hardening MCP — automated security red-team for any MCP server. Maps OWASP LLM Top 10
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceAn MCP server that integrates various penetration testing tools, enabling security professionals to perform reconnaissance, vulnerability scanning, and API testing through natural language commands in compatible LLM clients like Claude Desktop.7-
- FlicenseNot gradedqualityCmaintenanceA penetration testing MCP server that runs 20 hacking tools inside a Kali Linux Docker container, enabling AI assistants to execute security scans and attacks via natural language.2-
- AlicenseNot gradedqualityCmaintenanceMCP server that connects an LLM via Ollama to security tools for autonomous or guided penetration testing from a terminal interface.14GPL 3.0
- AlicenseNot gradedqualityBmaintenanceAI-powered penetration testing framework that can operate as an MCP server, enabling automated security assessments through natural language commands.2MIT