TurboPentest
# @turbopentest/mcp-server
MCP server for [TurboPentest](https://turbopentest.com) — 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.
## Quick start
### 1. Get your API key
Sign up and create an API key at [turbopentest.com/settings/api-keys](https://turbopentest.com/settings/api-keys).
### 2. Verify a domain
Before scanning, verify that you own the target domain at [turbopentest.com/domains](https://turbopentest.com/domains).
### 3. Add the server to your MCP client
**Claude Code** (`.mcp.json` in your project root):
```json
{
"mcpServers": {
"turbopentest": {
"command": "npx",
"args": ["@turbopentest/mcp-server"],
"env": {
"TURBOPENTEST_API_KEY": "tp_live_..."
}
}
}
}
```
**Claude Desktop** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"turbopentest": {
"command": "npx",
"args": ["@turbopentest/mcp-server"],
"env": {
"TURBOPENTEST_API_KEY": "tp_live_..."
}
}
}
}
```
**Cursor** (Settings > MCP Servers > Add):
```json
{
"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):
```toml
[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 effort
```
## White-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 |
|------|-------------|
| `turbopentest_start_pentest` | Launch a pentest against a verified domain. Supports four tiers and optional GitHub repo for white-box scanning. |
| `turbopentest_get_pentest` | Get scan status, progress, findings summary, executive summary, attack surface map, and STRIDE threat model. |
| `turbopentest_list_pentests` | List all pentests with status and finding counts. Filterable by status. |
| `turbopentest_get_findings` | Retrieve structured findings with severity, CVSS, CWE, OWASP category, PoC, remediation steps, and retest commands. Filterable by severity. |
| `turbopentest_download_report` | Download a report in markdown (best for AI), JSON, or PDF format. |
| `turbopentest_get_credits` | Check your credit balance and available scan tiers with pricing. |
| `turbopentest_verify_attestation` | Verify a blockchain-anchored attestation by SHA-256 hash. No API key required — public endpoint. |
| `turbopentest_list_domains` | List your verified domains and their verification status. |
| `turbopentest_workflow_run_pentest` | Returns the `run_pentest` workflow instructions as tool output (for clients without prompts support, e.g. Codex). |
| `turbopentest_workflow_analyze_findings` | Returns the `analyze_findings` workflow instructions as tool output. |
| `turbopentest_workflow_compare_pentests` | Returns the `compare_pentests` workflow instructions as tool output. |
| `turbopentest_workflow_security_posture` | Returns the `security_posture` workflow instructions as tool output. |
**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 |
|--------|------------------|-------------|
| `run_pentest` | `turbopentest_workflow_run_pentest` | Full-lifecycle pentest: domain check → credit verification → launch → progress monitoring → findings summary → report download |
| `analyze_findings` | `turbopentest_workflow_analyze_findings` | Deep-dive analysis of a single pentest's findings, producing a prioritized remediation plan with effort estimates and retest commands |
| `compare_pentests` | `turbopentest_workflow_compare_pentests` | Diff two pentests on the same target — shows what's new, what's been fixed, and what's still unresolved |
| `security_posture` | `turbopentest_workflow_security_posture` | 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 |
|----------|----------|---------|-------------|
| `TURBOPENTEST_API_KEY` | Yes | — | API key from turbopentest.com/settings/api-keys |
| `TURBOPENTEST_API_URL` | No | `https://turbopentest.com/api` | Override the API base URL (for testing) |
## Requirements
- Node.js 18+
- A [TurboPentest](https://turbopentest.com) account with at least one verified domain
## Using with OpenAI Codex
See [docs/CODEX.md](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](https://discord.gg/6eRf5UMvf2)
- **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
TDQS
Scored across 8 tools
Each tool has a distinct purpose with clear boundaries: download_report retrieves reports, get_credits checks balances, get_findings provides vulnerability details, get_pentest gives full test details, list_domains shows domain status, list_pentests lists tests, start_pentest launches tests, and verify_attestation verifies authenticity. No overlap or confusion exists between these functions.
All tools follow a consistent verb_noun pattern using snake_case: download_report, get_credits, get_findings, get_pentest, list_domains, list_pentests, start_pentest, and verify_attestation. This uniformity makes the toolset predictable and easy to navigate.
With 8 tools, the count is well-scoped for a pentesting server, covering essential operations like launching tests, retrieving results, managing domains, and verifying attestations. Each tool earns its place without redundancy or bloat.
The toolset provides complete coverage for the pentesting domain: it supports the full lifecycle from domain verification and test initiation to retrieving findings, reports, and attestation verification. No obvious gaps exist; agents can perform all core workflows seamlessly.