@turbopentest/mcp-server 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -106
- package/dist/server.js +1 -1
- package/dist/tools/download-report.js +1 -1
- package/dist/tools/download-report.js.map +1 -1
- package/dist/tools/get-credits.js +1 -1
- package/dist/tools/get-credits.js.map +1 -1
- package/dist/tools/get-findings.js +1 -1
- package/dist/tools/get-findings.js.map +1 -1
- package/dist/tools/get-pentest.js +2 -2
- package/dist/tools/get-pentest.js.map +1 -1
- package/dist/tools/list-domains.js +1 -1
- package/dist/tools/list-domains.js.map +1 -1
- package/dist/tools/list-pentests.js +3 -3
- package/dist/tools/list-pentests.js.map +1 -1
- package/dist/tools/start-pentest.js +4 -4
- package/dist/tools/start-pentest.js.map +1 -1
- package/package.json +46 -46
package/README.md
CHANGED
|
@@ -1,106 +1,106 @@
|
|
|
1
|
-
# @turbopentest/mcp-server
|
|
2
|
-
|
|
3
|
-
MCP server for [TurboPentest](https://turbopentest.com) — run AI-powered penetration tests and review findings from your coding assistant.
|
|
4
|
-
|
|
5
|
-
## Setup
|
|
6
|
-
|
|
7
|
-
### 1. Get your API key
|
|
8
|
-
|
|
9
|
-
Create an API key at [turbopentest.com/settings/api-keys](https://turbopentest.com/settings/api-keys).
|
|
10
|
-
|
|
11
|
-
### 2. Add to your MCP client
|
|
12
|
-
|
|
13
|
-
**Claude Desktop** (`claude_desktop_config.json`):
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
"mcpServers": {
|
|
18
|
-
"turbopentest": {
|
|
19
|
-
"command": "npx",
|
|
20
|
-
"args": ["@turbopentest/mcp-server"],
|
|
21
|
-
"env": {
|
|
22
|
-
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
**Claude Code** (`.mcp.json` in your project root):
|
|
30
|
-
|
|
31
|
-
```json
|
|
32
|
-
{
|
|
33
|
-
"mcpServers": {
|
|
34
|
-
"turbopentest": {
|
|
35
|
-
"command": "npx",
|
|
36
|
-
"args": ["@turbopentest/mcp-server"],
|
|
37
|
-
"env": {
|
|
38
|
-
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
**Cursor** (Settings > MCP Servers > Add):
|
|
46
|
-
|
|
47
|
-
```json
|
|
48
|
-
{
|
|
49
|
-
"command": "npx",
|
|
50
|
-
"args": ["@turbopentest/mcp-server"],
|
|
51
|
-
"env": {
|
|
52
|
-
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## Tools
|
|
58
|
-
|
|
59
|
-
| Tool
|
|
60
|
-
|
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
64
|
-
| `
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
67
|
-
| `
|
|
68
|
-
| `
|
|
69
|
-
|
|
70
|
-
## Scan Tiers
|
|
71
|
-
|
|
72
|
-
| Tier | Agents | Duration | Price |
|
|
73
|
-
| -------- | ------ | -------- | ----- |
|
|
74
|
-
| Recon | 1 | 30 min | $49 |
|
|
75
|
-
| Standard | 4 | 1 hour | $99 |
|
|
76
|
-
| Deep | 10 | 2 hours | $299 |
|
|
77
|
-
| Blitz | 20 | 4 hours | $699 |
|
|
78
|
-
|
|
79
|
-
## Example
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
You: "Run a pentest on staging.example.com"
|
|
83
|
-
Claude: Calls
|
|
84
|
-
|
|
85
|
-
You: "How's it going?"
|
|
86
|
-
Claude: Calls
|
|
87
|
-
|
|
88
|
-
You: "Show me the high severity findings"
|
|
89
|
-
Claude: Calls
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## Configuration
|
|
93
|
-
|
|
94
|
-
| Environment Variable | Description | Default |
|
|
95
|
-
| ---------------------- | ------------------------------------ | ------------------------------ |
|
|
96
|
-
| `TURBOPENTEST_API_KEY` | Your TurboPentest API key (required) | — |
|
|
97
|
-
| `TURBOPENTEST_API_URL` | Custom API base URL (for testing) | `https://turbopentest.com/api` |
|
|
98
|
-
|
|
99
|
-
## Requirements
|
|
100
|
-
|
|
101
|
-
- Node.js 18+
|
|
102
|
-
- A [TurboPentest](https://turbopentest.com) account with API access
|
|
103
|
-
|
|
104
|
-
## License
|
|
105
|
-
|
|
106
|
-
MIT
|
|
1
|
+
# @turbopentest/mcp-server
|
|
2
|
+
|
|
3
|
+
MCP server for [TurboPentest](https://turbopentest.com) — run AI-powered penetration tests and review findings from your coding assistant.
|
|
4
|
+
|
|
5
|
+
## Setup
|
|
6
|
+
|
|
7
|
+
### 1. Get your API key
|
|
8
|
+
|
|
9
|
+
Create an API key at [turbopentest.com/settings/api-keys](https://turbopentest.com/settings/api-keys).
|
|
10
|
+
|
|
11
|
+
### 2. Add to your MCP client
|
|
12
|
+
|
|
13
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"mcpServers": {
|
|
18
|
+
"turbopentest": {
|
|
19
|
+
"command": "npx",
|
|
20
|
+
"args": ["@turbopentest/mcp-server"],
|
|
21
|
+
"env": {
|
|
22
|
+
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
**Claude Code** (`.mcp.json` in your project root):
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"mcpServers": {
|
|
34
|
+
"turbopentest": {
|
|
35
|
+
"command": "npx",
|
|
36
|
+
"args": ["@turbopentest/mcp-server"],
|
|
37
|
+
"env": {
|
|
38
|
+
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
**Cursor** (Settings > MCP Servers > Add):
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
{
|
|
49
|
+
"command": "npx",
|
|
50
|
+
"args": ["@turbopentest/mcp-server"],
|
|
51
|
+
"env": {
|
|
52
|
+
"TURBOPENTEST_API_KEY": "tp_live_..."
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Tools
|
|
58
|
+
|
|
59
|
+
| Tool | Description |
|
|
60
|
+
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
61
|
+
| `turbopentest_start_pentest` | Launch a pentest against a verified domain. Supports recon/standard/deep/blitz tiers and optional GitHub repo for white-box scanning. |
|
|
62
|
+
| `turbopentest_get_pentest` | Get full pentest details: status, progress, findings summary, executive summary, attack surface map, STRIDE threat model. |
|
|
63
|
+
| `turbopentest_list_pentests` | List all your pentests with status and finding counts. Filter by status, limit results. |
|
|
64
|
+
| `turbopentest_get_findings` | Get structured vulnerability findings with severity, CVSS, CWE, PoC, remediation, and retest commands. Filter by severity. |
|
|
65
|
+
| `turbopentest_download_report` | Download a pentest report as markdown (best for AI), JSON, or PDF. |
|
|
66
|
+
| `turbopentest_get_credits` | Check your credit balance and available scan tiers with pricing. |
|
|
67
|
+
| `turbopentest_verify_attestation` | Verify a blockchain-anchored pentest attestation by hash (public, no API key required). |
|
|
68
|
+
| `turbopentest_list_domains` | List your verified domains and their verification status. |
|
|
69
|
+
|
|
70
|
+
## Scan Tiers
|
|
71
|
+
|
|
72
|
+
| Tier | Agents | Duration | Price |
|
|
73
|
+
| -------- | ------ | -------- | ----- |
|
|
74
|
+
| Recon | 1 | 30 min | $49 |
|
|
75
|
+
| Standard | 4 | 1 hour | $99 |
|
|
76
|
+
| Deep | 10 | 2 hours | $299 |
|
|
77
|
+
| Blitz | 20 | 4 hours | $699 |
|
|
78
|
+
|
|
79
|
+
## Example
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
You: "Run a pentest on staging.example.com"
|
|
83
|
+
Claude: Calls turbopentest_start_pentest → "Started pentest tp_abc123, 4 agents, ~1 hour"
|
|
84
|
+
|
|
85
|
+
You: "How's it going?"
|
|
86
|
+
Claude: Calls turbopentest_get_pentest → "60% complete, 3 findings so far (1 high, 2 medium)"
|
|
87
|
+
|
|
88
|
+
You: "Show me the high severity findings"
|
|
89
|
+
Claude: Calls turbopentest_get_findings(severity: "high") → Shows SQL injection details with PoC and remediation
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Configuration
|
|
93
|
+
|
|
94
|
+
| Environment Variable | Description | Default |
|
|
95
|
+
| ---------------------- | ------------------------------------ | ------------------------------ |
|
|
96
|
+
| `TURBOPENTEST_API_KEY` | Your TurboPentest API key (required) | — |
|
|
97
|
+
| `TURBOPENTEST_API_URL` | Custom API base URL (for testing) | `https://turbopentest.com/api` |
|
|
98
|
+
|
|
99
|
+
## Requirements
|
|
100
|
+
|
|
101
|
+
- Node.js 18+
|
|
102
|
+
- A [TurboPentest](https://turbopentest.com) account with API access
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
MIT
|
package/dist/server.js
CHANGED
|
@@ -10,7 +10,7 @@ import { registerListDomains } from "./tools/list-domains.js";
|
|
|
10
10
|
export function createServer(client) {
|
|
11
11
|
const server = new McpServer({
|
|
12
12
|
name: "turbopentest",
|
|
13
|
-
version: "0.1.
|
|
13
|
+
version: "0.1.8",
|
|
14
14
|
});
|
|
15
15
|
registerStartPentest(server, client);
|
|
16
16
|
registerGetPentest(server, client);
|
|
@@ -16,7 +16,7 @@ export function registerDownloadReport(server, client) {
|
|
|
16
16
|
.string()
|
|
17
17
|
.uuid()
|
|
18
18
|
.describe("The unique identifier (UUID) of the completed penetration test to generate a report for. " +
|
|
19
|
-
"Returned by
|
|
19
|
+
"Returned by turbopentest_start_pentest or turbopentest_list_pentests."),
|
|
20
20
|
format: z
|
|
21
21
|
.enum(["json", "markdown", "pdf"])
|
|
22
22
|
.describe("The output format for the report. " +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-report.js","sourceRoot":"","sources":["../../src/tools/download-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAA0B;IAClF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,mEAAmE;YACnE,yEAAyE;YACzE,2FAA2F;YAC3F,6EAA6E;QAC/E,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CACP,2FAA2F;gBACzF,
|
|
1
|
+
{"version":3,"file":"download-report.js","sourceRoot":"","sources":["../../src/tools/download-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,MAA0B;IAClF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,mEAAmE;YACnE,yEAAyE;YACzE,2FAA2F;YAC3F,6EAA6E;QAC/E,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CACP,2FAA2F;gBACzF,uEAAuE,CAC1E;YACH,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;iBACjC,QAAQ,CACP,oCAAoC;gBAClC,gFAAgF;gBAChF,8EAA8E;gBAC9E,yGAAyG,CAC5G;SACJ,CAAC;KACH,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAE1D,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EACF,0BAA0B,UAAU,kCAAkC;gCACtE,yCAAyC,UAAU,wBAAwB;gCAC3E,4FAA4F;yBAC/F;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;gBACtB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;yBACtC;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,WAAW;YACX,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAgB,EAAE,CAAC;aAC7D,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA8B,OAAO,EAAE,EAAE,CAAC;gBACnF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@ export function registerGetCredits(server, client) {
|
|
|
4
4
|
title: "Get Credit Balance",
|
|
5
5
|
description: "Check your current credit balance, usage breakdown by tier, and available scan tiers with pricing. " +
|
|
6
6
|
"Credits are consumed when launching penetration tests — each tier costs one credit of the matching type. " +
|
|
7
|
-
"Call this before
|
|
7
|
+
"Call this before turbopentest_start_pentest to verify you have sufficient credits for the desired tier.",
|
|
8
8
|
annotations: {
|
|
9
9
|
readOnlyHint: true,
|
|
10
10
|
destructiveHint: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-credits.js","sourceRoot":"","sources":["../../src/tools/get-credits.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAA0B;IAC9E,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,qGAAqG;YACrG,2GAA2G;YAC3G,
|
|
1
|
+
{"version":3,"file":"get-credits.js","sourceRoot":"","sources":["../../src/tools/get-credits.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export function registerGetFindings(server, client) {
|
|
|
42
42
|
.string()
|
|
43
43
|
.uuid()
|
|
44
44
|
.describe("The unique identifier (UUID) of the penetration test to retrieve findings for. " +
|
|
45
|
-
"Returned by
|
|
45
|
+
"Returned by turbopentest_start_pentest or turbopentest_list_pentests."),
|
|
46
46
|
severity: z
|
|
47
47
|
.enum(["critical", "high", "medium", "low", "info"])
|
|
48
48
|
.optional()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-findings.js","sourceRoot":"","sources":["../../src/tools/get-findings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,SAAS,aAAa,CAAC,CAAU,EAAE,KAAa;IAC9C,MAAM,KAAK,GAAG;QACZ,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,KAAK,EAAE;QACxD,aAAa,CAAC,CAAC,UAAU,EAAE;KAC5B,CAAC;IAEF,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClG,IAAI,CAAC,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC;IACjE,IAAI,CAAC,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;IAElE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAA0B;IAC/E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,4BAA4B;QACnC,WAAW,EACT,+EAA+E;YAC/E,wFAAwF;YACxF,6DAA6D;YAC7D,kGAAkG;YAClG,oEAAoE;QACtE,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CACP,iFAAiF;gBAC/E,
|
|
1
|
+
{"version":3,"file":"get-findings.js","sourceRoot":"","sources":["../../src/tools/get-findings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export function registerGetPentest(server, client) {
|
|
3
|
-
server.registerTool("
|
|
3
|
+
server.registerTool("turbopentest_get_pentest", {
|
|
4
4
|
title: "Get Penetration Test Details",
|
|
5
5
|
description: "Retrieve full details for a specific penetration test by its ID. " +
|
|
6
6
|
"Returns current status, scan progress percentage, findings summary by severity, " +
|
|
@@ -17,7 +17,7 @@ export function registerGetPentest(server, client) {
|
|
|
17
17
|
.string()
|
|
18
18
|
.uuid()
|
|
19
19
|
.describe("The unique identifier (UUID) of the penetration test. " +
|
|
20
|
-
"Returned by
|
|
20
|
+
"Returned by turbopentest_start_pentest or turbopentest_list_pentests."),
|
|
21
21
|
}),
|
|
22
22
|
}, async ({ pentest_id }) => {
|
|
23
23
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-pentest.js","sourceRoot":"","sources":["../../src/tools/get-pentest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAA0B;IAC9E,MAAM,CAAC,YAAY,CACjB,
|
|
1
|
+
{"version":3,"file":"get-pentest.js","sourceRoot":"","sources":["../../src/tools/get-pentest.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ export function registerListDomains(server, client) {
|
|
|
3
3
|
server.registerTool("turbopentest_list_domains", {
|
|
4
4
|
title: "List Verified Domains",
|
|
5
5
|
description: "List all domains in your account with their verification status and expiry dates. " +
|
|
6
|
-
"A domain must have status 'verified' before it can be used as a target in
|
|
6
|
+
"A domain must have status 'verified' before it can be used as a target in turbopentest_start_pentest. " +
|
|
7
7
|
"To verify a new domain, add a DNS TXT record via the TurboPentest dashboard at turbopentest.com/domains.",
|
|
8
8
|
annotations: {
|
|
9
9
|
readOnlyHint: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-domains.js","sourceRoot":"","sources":["../../src/tools/list-domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAA0B;IAC/E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,oFAAoF;YACpF,
|
|
1
|
+
{"version":3,"file":"list-domains.js","sourceRoot":"","sources":["../../src/tools/list-domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAA0B;IAC/E,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;QACE,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EACT,oFAAoF;YACpF,wGAAwG;YACxG,0GAA0G;QAC5G,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;KAC1B,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;YAE3C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EACF,uBAAuB;gCACvB,uEAAuE;yBAC1E;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,GAAG,CAAC,YAAY,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC;YAElD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,CAAC,CAAC,UAAU;oBAC3B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS;wBACtB,CAAC,CAAC,SAAS;wBACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACf,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAE5D,KAAK,CAAC,IAAI,CACR,KAAK,CAAC,CAAC,MAAM,EAAE,EACf,gBAAgB,QAAQ,EAAE,EAC1B,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,EACrC,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAC7B,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAC7B,EAAE,CACH,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC/C;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2BAA2B,OAAO,EAAE,EAAE,CAAC;gBAChF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export function registerListPentests(server, client) {
|
|
3
|
-
server.registerTool("
|
|
3
|
+
server.registerTool("turbopentest_list_pentests", {
|
|
4
4
|
title: "List Penetration Tests",
|
|
5
5
|
description: "List all your penetration tests with their status and finding counts, ordered newest first. " +
|
|
6
6
|
"Use this to find pentest IDs, check which scans are running, or review past results. " +
|
|
7
7
|
"Supports filtering by status and limiting result count. " +
|
|
8
|
-
"Use
|
|
8
|
+
"Use turbopentest_get_pentest with a specific ID for full details.",
|
|
9
9
|
annotations: {
|
|
10
10
|
readOnlyHint: true,
|
|
11
11
|
destructiveHint: false,
|
|
@@ -42,7 +42,7 @@ export function registerListPentests(server, client) {
|
|
|
42
42
|
type: "text",
|
|
43
43
|
text: status
|
|
44
44
|
? `No pentests found with status "${status}".`
|
|
45
|
-
: "No pentests found. Use
|
|
45
|
+
: "No pentests found. Use turbopentest_start_pentest to launch one.",
|
|
46
46
|
},
|
|
47
47
|
],
|
|
48
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-pentests.js","sourceRoot":"","sources":["../../src/tools/list-pentests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAA0B;IAChF,MAAM,CAAC,YAAY,CACjB,
|
|
1
|
+
{"version":3,"file":"list-pentests.js","sourceRoot":"","sources":["../../src/tools/list-pentests.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
export function registerStartPentest(server, client) {
|
|
3
|
-
server.registerTool("
|
|
3
|
+
server.registerTool("turbopentest_start_pentest", {
|
|
4
4
|
title: "Start Penetration Test",
|
|
5
5
|
description: "Launch an AI-powered penetration test against a target URL. " +
|
|
6
6
|
"The target domain must be verified first — use turbopentest_list_domains to check. " +
|
|
7
7
|
"Requires an available credit matching the selected tier — use turbopentest_get_credits to check balance. " +
|
|
8
|
-
"Returns a pentest ID that can be used with
|
|
8
|
+
"Returns a pentest ID that can be used with turbopentest_get_pentest to monitor progress.",
|
|
9
9
|
annotations: {
|
|
10
10
|
readOnlyHint: false,
|
|
11
11
|
destructiveHint: false,
|
|
@@ -47,7 +47,7 @@ export function registerStartPentest(server, client) {
|
|
|
47
47
|
"",
|
|
48
48
|
...(multi.scans ?? []).map((s) => ` - ${s.targetUrl} (ID: ${s.id})`),
|
|
49
49
|
"",
|
|
50
|
-
"Use
|
|
50
|
+
"Use turbopentest_get_pentest with each scan ID to check status.",
|
|
51
51
|
];
|
|
52
52
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
53
53
|
}
|
|
@@ -70,7 +70,7 @@ export function registerStartPentest(server, client) {
|
|
|
70
70
|
` Duration: ${info.duration}`,
|
|
71
71
|
scan.repoUrl ? ` Repo: ${scan.repoUrl}` : null,
|
|
72
72
|
"",
|
|
73
|
-
`Use
|
|
73
|
+
`Use turbopentest_get_pentest("${scan.id}") to check progress.`,
|
|
74
74
|
];
|
|
75
75
|
return {
|
|
76
76
|
content: [{ type: "text", text: lines.filter(Boolean).join("\n") }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-pentest.js","sourceRoot":"","sources":["../../src/tools/start-pentest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAA0B;IAChF,MAAM,CAAC,YAAY,CACjB,
|
|
1
|
+
{"version":3,"file":"start-pentest.js","sourceRoot":"","sources":["../../src/tools/start-pentest.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@turbopentest/mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "MCP server for TurboPentest — AI-powered penetration testing from your coding assistant",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"turbopentest-mcp": "dist/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist"
|
|
12
|
-
],
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
15
|
-
"dev": "tsx src/index.ts",
|
|
16
|
-
"prepublishOnly": "npm run build"
|
|
17
|
-
},
|
|
18
|
-
"keywords": [
|
|
19
|
-
"mcp",
|
|
20
|
-
"model-context-protocol",
|
|
21
|
-
"pentest",
|
|
22
|
-
"security",
|
|
23
|
-
"turbopentest",
|
|
24
|
-
"ai"
|
|
25
|
-
],
|
|
26
|
-
"author": "IntegSec Inc.",
|
|
27
|
-
"license": "MIT",
|
|
28
|
-
"mcpName": "io.github.integsec/turbopentest",
|
|
29
|
-
"repository": {
|
|
30
|
-
"type": "git",
|
|
31
|
-
"url": "https://github.com/integsec/turbopentest-mcp.git"
|
|
32
|
-
},
|
|
33
|
-
"homepage": "https://turbopentest.com",
|
|
34
|
-
"engines": {
|
|
35
|
-
"node": ">=18.0.0"
|
|
36
|
-
},
|
|
37
|
-
"dependencies": {
|
|
38
|
-
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
39
|
-
"zod": "^4.3.6"
|
|
40
|
-
},
|
|
41
|
-
"devDependencies": {
|
|
42
|
-
"@types/node": "^25.3.5",
|
|
43
|
-
"tsx": "^4.19.0",
|
|
44
|
-
"typescript": "^5.7.0"
|
|
45
|
-
}
|
|
46
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@turbopentest/mcp-server",
|
|
3
|
+
"version": "0.1.8",
|
|
4
|
+
"description": "MCP server for TurboPentest — AI-powered penetration testing from your coding assistant",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"turbopentest-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"scripts": {
|
|
14
|
+
"build": "tsc",
|
|
15
|
+
"dev": "tsx src/index.ts",
|
|
16
|
+
"prepublishOnly": "npm run build"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"mcp",
|
|
20
|
+
"model-context-protocol",
|
|
21
|
+
"pentest",
|
|
22
|
+
"security",
|
|
23
|
+
"turbopentest",
|
|
24
|
+
"ai"
|
|
25
|
+
],
|
|
26
|
+
"author": "IntegSec Inc.",
|
|
27
|
+
"license": "MIT",
|
|
28
|
+
"mcpName": "io.github.integsec/turbopentest",
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "https://github.com/integsec/turbopentest-mcp.git"
|
|
32
|
+
},
|
|
33
|
+
"homepage": "https://turbopentest.com",
|
|
34
|
+
"engines": {
|
|
35
|
+
"node": ">=18.0.0"
|
|
36
|
+
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
39
|
+
"zod": "^4.3.6"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/node": "^25.3.5",
|
|
43
|
+
"tsx": "^4.19.0",
|
|
44
|
+
"typescript": "^5.7.0"
|
|
45
|
+
}
|
|
46
|
+
}
|