Skip to main content
Glama
rev2ret
by rev2ret

πŸ›‘οΈ 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 of printf("%s", variable)).

    • System-level command injection entry points (system()).

    • Basic memory leaks (unmatched malloc vs free statement 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 DllCharacteristics to 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 strings CLI 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-mcp

    • Command: node

    • Args: /path/to/secureaudit-mcp/build/index.js

3. Cursor

In Cursor Settings -> Beta Features -> MCP:

  • Click + Add New MCP Server.

  • Configure:

    • Name: secureaudit-mcp

    • Type: stdio

    • Command: 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 build

2. 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 tools
audit_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute path to the C/C++ source code file to audit.

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute path to the compiled executable or library to analyze.

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
vulnerabilityTypeYesThe name of the vulnerability type (e.g., 'Unsafe Function (strcpy)', 'Format String Vulnerability', 'Command Injection Risk').

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filePathYesAbsolute path to the binary file to extract strings from.
minLengthNoMinimum character length of strings to extract (default is 4).

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 4 tool updatesv1.0.0
    • First observedaudit_source_code
    • First observedcheck_binary_protections
    • First observedremediate_vulnerability
    • First observedsafe_extract_strings

TDQS

A3.7/5.0
Disambiguation5/5

Each tool covers a distinct area of security auditing: source code scanning, binary protection verification, vulnerability remediation, and string extraction. No overlap in purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (audit_source_code, check_binary_protections, remediate_vulnerability, safe_extract_strings).

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A prompt-validation service that checks incoming prompts against security rules, blocking those matching high-severity security or jailbreak patterns while authorizing safe prompts.
    14
    MIT
  • A
    license
    D
    quality
    A
    maintenance
    Skylos 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.
    12
    591
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Local 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.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Security scanning MCP server. Semgrep integration, SARIF parsing, baseline diffing, framework-aware ruleset selection, and automated finding triage.
    16
    1
    MIT

Latest Blog Posts

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