A Model Context Protocol (MCP) server that empowers AI agents to audit C/C++ source code security and parse compiled PE/ELF binary headers for compiler mitigations.
SecureAudit-MCP has clear, well-structured tool definitions with proper schemas and descriptions. All 4 tools are explicitly registered with inputSchema objects containing type, properties, and required fields. Descriptions are substantive (100-200 chars), explaining WHAT each tool does and WHEN to use it. However, critical gaps prevent a higher score: (1) No output schemas documented, LLMs cannot predict return structure; (2) No error handling guidance, tools fail silently without recovery hints; (3) Parameters lack validation constraints (e.g., filePath should validate existence, minLength should have min/max bounds); (4) No tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only; (5) remediate_vulnerability accepts free-form vulnerabilityType string with no enum constraint, inviting hallucinated values. Naming is strong (verb_noun pattern, clear intent), but parameter descriptions are minimal.
Scans C/C++ source code files for critical secure coding issues such as stack buffer overflows, gets/strcpy usage, format string exploits, command injections, and memory leaks.
Parses compiled binary files (Windows PE .exe/.dll or Linux ELF executables) to verify active defensive compiler protections including ASLR, DEP/NX, SafeSEH, and PIE.
Provides pre-compiled secure remediation templates and code blocks to safely replace vulnerable C/C++ segments.
Safely extracts print-printable ASCII strings from local binary files (mimicking the Linux 'strings' utility) to look for indicators, secrets, or hardcoded URLs.
No output schemas documented. LLMs cannot predict return structure (fields, types, pagination). Tools return JSON strings but no schema tells the agent what to expect.
remediate_vulnerability accepts free-form vulnerabilityType string with no enum constraint. Should enumerate valid types (e.g., 'Unsafe Function (strcpy)', 'Format String Vulnerability', 'Command Injection Risk', 'Buffer Overflow', 'Memory Leak') to prevent hallucinated values.
No error handling guidance. Tools fail silently (e.g., file not found, permission denied) without telling the LLM what to do next. Should return actionable errors like 'File not found at /path/to/file. Verify the path exists and is readable.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
minLength parameter in safe_extract_strings lacks min/max bounds. Should declare 'minimum: 1, maximum: 256' to prevent absurd values (e.g., minLength=999999).
No tool annotations despite all tools being read-only. Should add 'readOnlyHint: true' to each tool definition so agents know these calls are safe to retry without side effects.