Skip to main content
Glama
kkk1259

code-audit-mcp

by kkk1259

Code Audit MCP Server

Автоматизированный инструмент аудита кода на основе больших языковых моделей (LLM) и протокола контекста моделей (MCP).

Возможности

  • Семантический анализ кода: разбор AST, вывод типов, taint-разметка

  • Трассировка цепочек вызовов: отслеживание потоков данных между файлами/модулями

  • Верификация уязвимостей: автоматическая генерация PoC и выполнение проверки

  • Поддержка множества языков: PHP, Python, Java, JavaScript/TypeScript

Related MCP server: deep-code-security

Быстрый старт

Требования к окружению

  • Node.js >= 18.0

  • TypeScript >= 5.0

  • Cursor / Windsurf (IDE с поддержкой MCP)

Установка

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

Настройка

Настройка MCP Server в Cursor:

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

Примеры использования

Аудит SQL-инъекций

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

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

Поиск уязвимостей десериализации

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

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

Список инструментов

Инструмент

Функция

Параметры

parse_ast

разбор AST исходного кода

file: путь к файлу

find_callers

поиск вызывающих функций

funcName: имя функции, maxDepth: максимальная глубина

trace_dataflow

отслеживание потоков данных

source: источник, sink: приёмник

generate_poc

генерация PoC уязвимости

vulnType: тип уязвимости, params: параметры

Структура проекта

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

Лучшие практики

✅ Что делать

  • Проводите аудит по модулям, не загружайте сразу весь проект

  • Сначала запустите статические инструменты для поиска подозрительных мест, затем используйте AI для углублённого анализа

  • Подготовьте отдельный Prompt для каждого типа уязвимостей

  • Перед аудитом дайте AI понять структуру проекта (точки входа, маршруты, база данных)

  • Проверяйте отчёты AI вручную, особенно «высокоопасные» находки

  • Сохраняйте историю аудита для итеративной оптимизации Prompt

❌ Чего не делать

  • Не доверяйте слепо отчётам AI, ложные срабатывания неизбежны

  • Не описывайте в Prompt слишком сложную логику аудита

  • Не пропускайте этап верификации уязвимостей

  • Не используйте облачные API для чувствительных проектов (используйте локальные модели)

  • Не игнорируйте уязвимости бизнес-логики (AI с ними справляется хуже)

Ожидаемые результаты

Тип уязвимости

Полнота

Точность

Инъекционные уязвимости

80%+

75%+

Десериализация

Обнаружение POP-цепочек превосходит ручной анализ

-

Логические уязвимости

По-прежнему требует преимущественно ручного аудита

-

Общая эффективность: повышение в 3-5 раз (с учётом времени ручной проверки)

Лицензия

MIT License

Связанные статьи

Вклад

Приветствуются ваши Issue и PR!

Контакты

Related MCP Connectors

Related MCP Servers