Skip to main content
Glama
GusDawn123

cpp-analysis-mcp

by GusDawn123

cpp-analysis-mcp

Un servidor MCP que permite a los agentes de codificación de IA probar código C++ de verdad, en lugar de solo leerlo.

El problema

Algunos errores de C++ son invisibles en el código fuente. Esto parece correcto:

void deposit(int amt) {
    balance += amt;   // no lock
}

Ejecútalo desde 100 hilos y pierde actualizaciones. El error vive en la sincronización, no en el texto, por lo que una IA que solo lea el archivo lo considerará limpio.

Las herramientas que detectan estos errores ya existen y son excelentes. Son solo programas de línea de comandos a los que ningún asistente de IA está conectado. Este proyecto es esa conexión.

Related MCP server: cpp-semantic-graph

Qué hace

Ocho herramientas, tres preguntas:

Pregunta

Herramientas

Costo

¿Algo parece incorrecto?

static_check_file / _snippet

segundos

¿Está realmente mal?

sanitize_file / _project / _snippet

minutos

¿Dónde es lento?

profile_file / _project

minutos

El agente comienza de forma económica y solo escala cuando es necesario. La octava herramienta, capabilities, informa de lo que esta máquina puede ejecutar realmente.

En el interior: ThreadSanitizer para carreras de datos, AddressSanitizer para corrupción de memoria, LeakSanitizer para fugas, UBSan para comportamiento indefinido, clang-tidy y -Wthread-safety en tiempo de compilación, y perf para perfilado.

Soporte de plataforma

Linux

macOS

Windows

ASan, UBSan, static checks

sí

sí

sí

TSan, LSan

sí

sí

sí, mediante WSL

Profiler (perf)

sí

aún no

sí, mediante WSL

En Windows, el servidor encuentra una distribución WSL por sí mismo y enruta las herramientas exclusivas de Linux a través de ella. Sigues pasando rutas C:\ normales. Cuando algo no puede ejecutarse, el servidor lo dice claramente y nombra el comando que lo solucionaría.

Configuración

Necesitas Python 3.11+, uv y un compilador de C++ (clang o gcc).

git clone https://github.com/GusDawn123/cpp-analysis-mcp
cd cpp-analysis-mcp
uv sync

Luego regístralo con tu agente. Para Claude Code:

claude mcp add cpp-analysis -- uv run --directory <path-to-repo> cpp-analysis-mcp

Para cualquier otro cliente MCP, añade el mismo comando a su archivo de configuración:

{ "mcpServers": { "cpp-analysis": {
    "command": "uv",
    "args": ["run", "--directory", "<path-to-repo>", "cpp-analysis-mcp"]
}}}

La primera puesta en marcha tarda un minuto. El servidor compila y ejecuta un pequeño programa con errores para cada análisis para demostrar que la herramienta realmente funciona en tu máquina, y luego guarda en caché los resultados.

Por qué puedes confiar en un resultado vacío

El servidor nunca se fía de la palabra de una herramienta. Al iniciarse, planta un error real (una carrera de datos, una fuga, un desbordamiento) y exige que cada detector lo detecte. Un detector que permanece en silencio ante un error conocido se informa como no disponible, con el motivo y el comando de instalación que lo soluciona.

Así que un informe vacío significa que un detector que funciona de forma demostrable aquí no ha visto nada. Esa diferencia importa, porque una herramienta rota silenciosamente se ve exactamente igual que un código limpio.

Arquitectura

your AI agent (Claude Code, Cursor, anything that speaks MCP)
        |
    server.py        eight tools, no logic of its own
        |
    pipelines/       the recipes: check, sanitize, profile
        |
   +----------+-------------+
   |          |             |
 build/    process.py    parsers/
 compiles  runs tools    raw tool output in,
 the code  safely, with  clean findings out
   |       timeouts
   |
   +-- platforms/    what Linux, macOS, and Windows each need
   +-- toolchains/   what clang and gcc each need
   +-- wsl.py        Windows borrowing Linux for what it lacks

Las reglas de capas se aplican mediante pruebas que analizan el árbol de fuentes, por lo que no pueden degradarse: server.py no contiene flujo de control, solo process.py puede lanzar un subproceso, los analizadores nunca tocan un archivo, y exactamente un módulo puede preguntar qué máquina es esta.

Pruebas

507 pruebas unitarias se ejecutan en cualquier lugar, sin necesidad de compilador. Las pruebas de integración compilan y ejecutan fixtures con errores plantados, y las salidas golden capturadas en Linux, macOS y Windows mantienen honestos a todos los analizadores.

make test

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that exposes LLDB debugging capabilities, enabling AI-assisted interactive debugging of C/C++ applications through 40 specialized tools.
    39 PyPI
    4
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Builds a semantic knowledge graph of C++ code and exposes 9 MCP tools for AI assistants to search classes, functions, inheritance, callers, callees, overrides, and more.
    3
    -
  • F
    license
    B
    quality
    C
    maintenance
    Enables AI agents to perform comprehensive, zero-infrastructure codebase analysis through 24 MCP tools, covering security, quality, architecture, type safety, git history, and dead code detection with high precision and local privacy.
    45
    -