secureaudit-mcp
π‘οΈ SecureAudit-MCP
A Model Context Protocol (MCP) Server for C/C++ Static Code Auditing & Compiled PE/ELF Binary Security Parsing.
Equip your AI Coding Agents (Claude Code, Cursor, Cline) with safe, low-level binary analysis and secure static code scanning tools.
π Why SecureAudit-MCP?
AI Coding Assistants and Agentic loops are incredible at writing code, but they lack local system capabilities to check low-level binary compilation properties or perform deep static secure auditing.
SecureAudit-MCP solves this by standardizing tools under the Model Context Protocol (MCP). By registering this server, your AI agent gains native, sandboxed commands to inspect C/C++ source code files for severe logic and library errors (like buffer overflows, format vulnerabilities, and command injections), parse local executables (Windows PE / Linux ELF) for binary hardening features (ASLR, DEP/NX, PIE), and extract printable ASCII strings securely.
Related MCP server: mcp-skylos
π οΈ Features & Tools
1. audit_source_code
Purpose: Performs lightweight static analysis scans on C/C++ source files.
Checks:
Unsafe standard library functions (
strcpy,gets,sprintf,scanf).Heap overflow risks (like signed multiplications inside
malloc).Format string vulnerabilities (
printf(variable)instead ofprintf("%s", variable)).System-level command injection entry points (
system()).Basic memory leaks (unmatched
mallocvsfreestatement loops).
2. check_binary_protections
Purpose: Safely reads raw binary headers (first 1024 bytes) to check for defensive security compile flags.
Capabilities:
Identifies formatting magic signatures (PE for Windows executables, ELF for Linux).
Evaluates architecture sizes (32-bit vs 64-bit).
In PE optional headers, parses
DllCharacteristicsto check for ASLR (Dynamic Base), DEP/NX (Data Execution Prevention), and SafeSEH.In ELF headers, parses ELF type to identify PIE (Position Independent Executable) compiling.
3. safe_extract_strings
Purpose: Securely parses ASCII string constants from compiled binaries (acting as a safe, local implementation of the standard Linux
stringsCLI utility) to identify indicator hashes, embedded secrets, or hardcoded URLs.
4. remediate_vulnerability
Purpose: Supplies pre-compiled secure remediation blocks and structured replacement code templates for all identified vulnerabilities.
π¨ Architecture Flow
βββββββββββββββββββ βββββββββββββββββββ ββββββββββββββββββ
β AI Agent Clientβ ββββββββββ> β SecureAudit-MCP β ββββββββββ> β Target Code / β
β (Claude/Cline) β <ββββββββββ β (TypeScript SDK)β <ββββββββββ β Binary File β
βββββββββββββββββββ JSON-RPC βββββββββββββββββββ File Read ββββββββββββββββββπ Integration & Client Setup
Since this is a standard Model Context Protocol (MCP) server, it connects seamlessly with all major supporting IDEs and CLI agents.
1. Claude Desktop
Add this configuration snippet to your Claude Desktop configuration file (typically located at %APPDATA%\Claude\claude_desktop_config.json on Windows or ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"secureaudit-mcp": {
"command": "node",
"args": [
"/path/to/secureaudit-mcp/build/index.js"
]
}
}
}2. Cline (VS Code Extension)
In your Cline settings, select the MCP Servers panel:
Click Create/Add MCP Server.
Configure:
Name:
secureaudit-mcpCommand:
nodeArgs:
/path/to/secureaudit-mcp/build/index.js
3. Cursor
In Cursor Settings -> Beta Features -> MCP:
Click + Add New MCP Server.
Configure:
Name:
secureaudit-mcpType:
stdioCommand:
node /path/to/secureaudit-mcp/build/index.js
π» Local Quickstart & Development
1. Install & Build
Run the following commands inside the repository root to compile TypeScript files:
npm install
npm run build2. Run Tools against the Demo Suite
This repository includes a pre-packaged vulnerable C file inside /demo/vulnerable.c containing various security vulnerabilities for testing purposes.
Your MCP agent will be able to scan this file automatically. To inspect the tool definitions manually using the MCP developer command-line inspector (optional):
npx @modelcontextprotocol/inspector node build/index.jsπ License
MIT License. Free to use and distribute under open-source terms.
Available Tools
4 toolsaudit_source_codeA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the C/C++ source code file to audit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It states the tool scans for issues, implying a read-only analysis, but does not disclose if it modifies files, requires network access, or has other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the tool's purpose and scope without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks information about output (e.g., does it return a list of issues, a report?) and does not mention any prerequisites or side effects. Since there is no output schema, the description should clarify what the tool delivers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for the only parameter 'filePath'. The tool description adds context about the scan's focus but does not enhance parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scans C/C++ source files for specific secure coding issues like buffer overflows and memory leaks. The tool name 'audit_source_code' and examples differentiate it from siblings that handle binaries, remediation, or string extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use on C/C++ source files but provides no explicit guidance on when to use vs. alternatives or when not to use. Siblings suggest different scopes, but the description could be clearer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_binary_protectionsA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the compiled executable or library to analyze. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It describes a read-only parsing operation (no modification mentioned) but does not explicitly state that it is non-destructive or require special permissions. The lack of side-effect disclosure is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence (18 words) that conveys all essential information without redundancy. Every word is meaningful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately explains what the tool does and what protections it checks. However, it does not hint at the return format (e.g., a report), which would have increased completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter (filePath) is fully described in the schema (100% coverage). The tool description adds no additional meaning beyond noting the file types (PE/ELF), which is already implied by the schema description. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action (parses and verifies) and resource (compiled binary files, Windows PE or Linux ELF). It lists specific protections (ASLR, DEP/NX, SafeSEH, PIE), distinguishing it from sibling tools that handle source code auditing, vulnerability remediation, or string extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for checking binary protections but does not explicitly state when to use it over alternatives or provide exclusions. No guidance on prerequisites or context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remediate_vulnerabilityB
Provides pre-compiled secure remediation templates and code blocks to safely replace vulnerable C/C++ segments.
| Name | Required | Description | Default |
|---|---|---|---|
| vulnerabilityType | Yes | The name of the vulnerability type (e.g., 'Unsafe Function (strcpy)', 'Format String Vulnerability', 'Command Injection Risk'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states what is provided without disclosing side effects, input restrictions, or output behavior. Lacks detail on whether it modifies code or just presents templates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, concise and front-loaded with purpose. Could be improved with additional details, but no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description does not specify the format of the output or how to apply the remediation. Incomplete for a tool that is likely used in a multi-step remediation workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description; the tool description adds context about the overall purpose but does not enhance understanding of the parameter itself beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'provides' and identifies resource 'secure remediation templates and code blocks' for replacing vulnerable C/C++ segments. It clearly distinguishes from sibling tools which focus on auditing, checking, and extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Implicitly it should be used after identification of a vulnerability, but no mention of prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
safe_extract_stringsB
Safely extracts print-printable ASCII strings from local binary files (mimicking the Linux 'strings' utility) to look for indicators, secrets, or hardcoded URLs.
| Name | Required | Description | Default |
|---|---|---|---|
| filePath | Yes | Absolute path to the binary file to extract strings from. | |
| minLength | No | Minimum character length of strings to extract (default is 4). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Safely extracts' implying non-destructive behavior, but omits details about authentication, error handling, performance, or side effects (e.g., file permissions).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that conveys the action, scope, and purpose without unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately explains what the tool does and its analogue, but lacks details about return values (no output schema), error conditions, or limitations. For a simple extraction tool, this is minimally adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema: it mentions 'print-printable ASCII strings' but does not clarify the character set or filtering specifics not already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool extracts print-printable ASCII strings from local binary files, mimicking the Linux 'strings' utility, and specifies the purpose (look for indicators, secrets, hardcoded URLs). This distinguishes it from sibling tools like audit_source_code or check_binary_protections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives (e.g., audit_source_code). It mentions mimicking Linux 'strings' but does not clarify when extracting strings is preferred over other binary analysis tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
audit_source_code - First observed
check_binary_protections - First observed
remediate_vulnerability - First observed
safe_extract_strings
TDQS
Each tool covers a distinct area of security auditing: source code scanning, binary protection verification, vulnerability remediation, and string extraction. No overlap in purposes.
All tool names follow a consistent verb_noun pattern in snake_case (audit_source_code, check_binary_protections, remediate_vulnerability, safe_extract_strings).
Four tools is well-scoped for a security auditing server, covering the main stages of analysis, remediation, and information gathering without being excessive or insufficient.
The tool set covers source code auditing, binary protection checks, remediation, and string extraction. Minor gaps such as dynamic analysis or report generation are present, but core workflows are effectively supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Security scanner for MCP servers. Detect vulnerabilities, prompt injection, and tool poisoning.
MCP server for static security analysis of Android source code
Scan any public GitHub MCP-server repo for security issues. 37 MCP-specific L1 rules, 8 languages.
Scan any MCP server for tool-poisoning, security, auth & license. Trust score before install.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA prompt-validation service that checks incoming prompts against security rules, blocking those matching high-severity security or jailbreak patterns while authorizing safe prompts.14MIT
- AlicenseDqualityAmaintenanceSkylos MCP server exposes static analysis as tools for AI coding agents β scan any Python, TypeScript, or Go codebase for dead code, security vulnerabilities, and quality issues directly from Claude, Cursor, or any MCP-compatible client. Returns findings with file paths, line numbers, and severity so agents can auto-fix issues in context.12591Apache 2.0
- FlicenseNot gradedqualityCmaintenanceLocal MCP server that scans code for security issues (secrets, dependencies, configurations, risky patterns) and integrates with GitHub Copilot in VS Code for automated pre-commit reviews.-
- AlicenseNot gradedqualityDmaintenanceSecurity scanning MCP server. Semgrep integration, SARIF parsing, baseline diffing, framework-aware ruleset selection, and automated finding triage.161MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rev2ret/SecureAudit-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server