Security vulnerability scanner for SAP BTP app packages
Four tools with basic descriptions and partial schemas. All tools have descriptions (10-60 chars), but most are terse and lack actionable context for LLM selection. Input schemas are present but incomplete: parameters lack type definitions in visible code (inferred from function signatures). No output schemas documented. Error handling is minimal, tools return JSON strings without structured error guidance. No parameter validation hints, no enum constraints, no dependency documentation. Naming is verb-forward (scan_*, list_*, explain_*) but descriptions don't explain WHEN to use each tool or what distinguishes them.
Get full remediation details for a specific rule ID.
List available BTP security rules. category: xsuaa|mta|cap|all
Run BTP rules against a single file (xs-security.json, mta.yaml, .cds).
Scan a BTP project directory for CVEs, secrets, and BTP misconfigurations.
No output schemas documented. Tools return JSON strings; LLMs cannot infer response structure for downstream chaining.
Parameter descriptions are terse (10-30 chars) and lack actionable context. 'Path to the project directory to scan' does not explain when to use scan_project vs scan_file, or what file types are supported.
No enum constraints on 'threshold' (scan_project) or 'category' (list_rules). LLMs may hallucinate invalid values like 'URGENT' or 'security' instead of valid options.
Error handling returns bare JSON with 'error' field (explain_finding). No recovery guidance, LLM cannot determine if error is retryable or user-fixable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
scan_project accepts 'trivy_path' and 'gitleaks_path' as parameters. These are tool paths, not user-facing inputs, should be injected server-side via environment or config, not exposed as parameters.