Exposes Spring/SpringBoot vulnerability detection and exploitation capabilities as MCP tools for AI clients (Claude Desktop, Cursor, etc.) with scope-based access control and audit logging.
Server has 6 tools with explicit registration, descriptions, and partial schemas. Naming follows verb_noun convention (list_, spring_, batch_). Descriptions are present (avg ~120 chars) but lack actionable context for LLM selection. Input schemas visible in code but incomplete: most parameters lack type constraints, enums, or validation guidance. Output schemas are structured (JSON objects) but not formally documented in tool definitions. Error handling exists (checkScope validation, audit logging) but lacks recovery guidance. Security model is sound (scope whitelist, exploit gating, audit trail) but not declared in tool metadata.
对多个目标批量执行漏洞检测,返回聚合的结构化结果
列出当前支持的全部 Spring 漏洞模块(ID/名称/类型/严重级别/影响范围/是否可利用)
对已确认的漏洞执行利用(命令执行/文件读取/认证绕过)。仅在服务端显式开启 --enable-exploit 时可用
识别目标是否为 Spring/SpringBoot(favicon 哈希 + Whitelabel 错误页 + Boot JSON 错误体三路信号)
探测 Spring Boot actuator/swagger/druid 等信息泄露端点,返回结构化命中列表
对目标运行全部(或指定 CVE 的)漏洞无害检测,返回结构化判定结果
Input schemas lack type constraints and enums. Parameters like 'threads' (int) and 'cves' (array) have no min/max bounds or validation rules. LLMs will pass unbounded values (threads=999999, empty arrays) without guidance.
Output schemas not formally documented in tool definitions. Handlers return structured types (fingerprintOut, leakScanOut, etc.) but MCP tool registration does not declare output schema. LLMs cannot plan downstream calls or extract fields reliably.
Error responses lack recovery guidance. checkScope() returns 'target X not in whitelist' but does not suggest valid targets or next steps. Handlers do not categorize errors as retryable vs fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Tool descriptions lack WHEN/WHY context. 'Identify if target is Spring/SpringBoot' does not explain when to call this vs spring_vuln_detect, or what to do with the result. LLMs cannot distinguish between similar tools.
spring_exploit tool lacks confirmation/dry-run pattern. Destructive operations (RCE, file read) execute immediately without user confirmation. Agents can trigger unintended exploitation.