Skip to main content
Glama
kkk1259

code-audit-mcp

by kkk1259

Code Audit MCP Server

Herramienta de auditoría de código automatizada basada en grandes modelos de lenguaje (LLM) y en el protocolo de contexto del modelo (MCP).

Características

  • Análisis semántico del código: parseo de AST, inferencia de tipos, marcado de taint

  • Rastreo de cadenas de llamadas: trazado del flujo de datos entre archivos y módulos

  • Verificación de vulnerabilidades: generación automática de PoC y ejecución de la verificación

  • Soporte de múltiples lenguajes: PHP, Python, Java, JavaScript/TypeScript

Related MCP server: deep-code-security

Inicio rápido

Requisitos del entorno

  • Node.js >= 18.0

  • TypeScript >= 5.0

  • Cursor / Windsurf (IDE compatible con MCP)

Instalación

git clone https://github.com/kkk1259/code-audit-mcp.git
cd code-audit-mcp
npm install
npm run build

Configuración

Configura el servidor MCP en Cursor:

// .cursor/mcp.json
{
  "mcpServers": {
    "code-audit": {
      "command": "node",
      "args": ["./dist/server.js"],
      "env": {
        "PROJECT_ROOT": "/path/to/your/project"
      }
    }
  }
}

Ejemplos de uso

Auditoría de inyección SQL

用户: 请审计这个项目的SQL注入漏洞

AI: 我将使用MCP工具进行系统性审计。
    首先,识别所有用户输入源和SQL执行点...

Descubrimiento de vulnerabilidades de deserialización

用户: 检查是否存在反序列化漏洞

AI: 我将分析项目中的unserialize调用,并追踪POP链...

Lista de herramientas

Herramienta

Función

Parámetros

parse_ast

Analiza el AST del código fuente

file: ruta del archivo

find_callers

Busca los llamadores de la función

funcName: nombre de la función, maxDepth: profundidad máxima

trace_dataflow

Rastrea el flujo de datos

source: origen, sink: sumidero

generate_poc

Genera el PoC de la vulnerabilidad

vulnType: tipo de vulnerabilidad, params: parámetros

Estructura del proyecto

code-audit-mcp/
├── src/
│   ├── server.ts          # MCP Server入口
│   ├── tools/
│   │   ├── parser.ts      # AST解析
│   │   ├── callgraph.ts   # 调用链追踪
│   │   ├── verifier.ts    # 漏洞验证
│   │   └── poc.ts         # PoC生成
│   ├── rules/
│   │   ├── php.json       # PHP安全规则
│   │   ├── python.json    # Python安全规则
│   │   └── java.json      # Java安全规则
│   └── utils/
│       ├── taint.ts       # 污点分析
│       └── sanitizer.ts   # 过滤函数识别
├── prompts/
│   ├── audit-system.md    # 系统Prompt
│   └── vuln-types/        # 各漏洞类型Prompt
├── tests/
├── package.json
└── README.md

Mejores prácticas

✅ Qué hacer

  • Audita por módulos; no alimentes el proyecto completo de una sola vez

  • Primero ejecuta herramientas estáticas para obtener puntos sospechosos y luego usa la IA para un análisis en profundidad

  • Prepara un prompt específico para cada tipo de vulnerabilidad

  • Antes de auditar, permite que la IA conozca la estructura del proyecto (puntos de entrada, rutas, base de datos)

  • Revisa manualmente los informes de la IA, especialmente los descubrimientos de "alto riesgo"

  • Guarda el historial de auditoría para iterar y optimizar los prompts

❌ Qué no hacer

  • No confíes ciegamente en los informes de la IA; los falsos positivos son inevitables

  • No describas una lógica de auditoría demasiado compleja en el prompt

  • No omitas el paso de verificación de vulnerabilidades

  • No uses APIs en la nube con proyectos sensibles (utiliza modelos locales)

  • No ignores las vulnerabilidades de lógica de negocio (la IA es más débil en esto)

Resultados esperados

Tipo de vulnerabilidad

Recall

Precisión

Vulnerabilidades de inyección

80%+

75%+

Deserialización

Capacidad de descubrimiento de cadenas POP superior a la humana

-

Vulnerabilidades de lógica

Requiere principalmente auditoría manual

-

Eficiencia general: de 3 a 5 veces mayor (incluido el tiempo de revisión manual).

Licencia

MIT License

Artículos relacionados

Contribuciones

¡Bienvenidos Issues y PRs!

Contacto

Related MCP Connectors

Related MCP Servers