Semgrep MCP Server

Semgrep MCP Server

Сервер Semgrep MCP интегрирует мощные возможности статического анализа кода Semgrep в экосистему Model Context Protocol, позволяя LLM, агентам и IDE сканировать, понимать и взаимодействовать с кодом для поиска уязвимостей и получения полезной информации о коде через стандартизированный интерфейс.

Author: semgrep


Просмотреть протокол

Что такое сервер Semgrep MCP?

Сервер Semgrep MCP - это специализированный сервер MCP, который открывает инструменты статического анализа Semgrep как вызываемые действия (инструменты), доступные LLM, агентам и приложениям, поддерживающим стандарт MCP. Он позволяет бесшовное и автоматизированное сканирование кода на наличие уязвимостей, его понимание и управление правилами непосредственно из таких сред, как IDE (Cursor, VS Code), чат-боты (ChatGPT) и фреймворки агентов.

Как настроить сервер Semgrep MCP

  • Установите пакет Python:
    Используйте pipx или ваш предпочтительный инструмент Python:
    pipx install semgrep-mcp
  • Настройте сервер:
    Запустите через CLI, используя uvx semgrep-mcp, или как контейнер Docker:
    docker run -i --rm ghcr.io/semgrep/mcp -t stdio
  • Интегрируйте с вашей средой:
    • Для IDE, таких как Cursor или VS Code, отредактируйте файл конфигурации MCP (например, .cursor/mcp.json, .vscode/mcp.json), добавив
      {
        "mcpServers": {
          "semgrep": {
            "command": "uvx",
            "args": ["semgrep-mcp"]
          }
        }
      }
      
    • Для подключений в облаке установите URL сервера MCP на https://mcp.semgrep.ai/mcp или используйте SSE на https://mcp.semgrep.ai/sse для обратной совместимости.
    • Интеграция с платформой AppSec:
      Создайте токен API AppSec для Semgrep, затем добавьте его как переменную окружения:
      export SEMGREP_APP_TOKEN=<token>
      Для Docker добавьте с -e SEMGREP_APP_TOKEN=<token>.

Как использовать сервер Semgrep MCP

  1. Запустите сервер с использованием вашего предпочтительного транспорта (stdio, streamable-http или SSE).
  2. Подключитесь через вашу IDE или фреймворк LLM, поддерживающий MCP, убедившись, что он настроен для доступа к вашему локальному или удаленному экземпляру сервера.
  3. Вызовите инструменты такие как сканирование кода или генерацию AST напрямую из подключенного интерфейса (например, спросите ваш LLM: “Сканируйте этот код на наличие уязвимостей с помощью Semgrep”).
  4. Получите практические результаты — LLM, агенты и пользователи получают детализированный вывод о проблемах с кодом, находках или инсайтах, бесшовно интегрированных в ваш процесс разработки.

Ключевые особенности

  • Мгновенное сканирование уязвимостей кода с использованием Semgrep напрямую из LLM или инструментов.
  • Некоторые варианты развертывания: Локальный CLI, Docker и облачные конечные точки.
  • Широкая интеграция: Подключение к IDE (Cursor, VS Code, Claude Desktop), чат-ботам (ChatGPT) и SDK агентам.
  • Обнаружение и выполнение инструментов: Динамически перечисляйте и вызывайте инструменты Semgrep через конечные точки MCP.
  • Доступ к инсайтам по коду: Извлекайте абстрактные синтаксические деревья, списки поддерживаемых языков и схемы правил.
  • Использование пользовательских правил: Анализируйте код с помощью пользовательских правил Semgrep для более сложных сценариев.
  • Безопасная аутентификация и интеграция с платформой AppSec для управляемых корпоративных сред.

Сценарии использования

  • Автоматизированный код-ревью: Внедряйте сканирование Semgrep в реальном времени в AI-агенты, участвующие в ревью Pull Request, генерации кода или предложениях в IDE.
  • Автоматизация аудита безопасности: Включите рабочие процессы безопасности, в которых LLM/агенты автоматически или по запросу сканируют проектные файлы на наличие уязвимостей.
  • Создание правил с поддержкой LLM: Используйте LLM для помощи в создании, проверке и применении пользовательских правил Semgrep к кодовым базам.
  • Улучшение DevSecOps пайплайна: Добавьте сканирования Semgrep на основе MCP в CI/CD или среды разработчиков для немедленной реакции с полезными отзывами.
  • Интерактивное обучение и объяснение: Используйте абстрактное синтаксическое дерево и инструменты prompt для преподавания или объяснения семантики кода в учебных инструментах или чат-ботах.

Часто задаваемые вопросы

Q1: Какие языки программирования поддерживает сервер Semgrep MCP?
Сервер поддерживает все языки, доступные в upstream Semgrep, такие как Python, JavaScript, Go, Java и другие. Используйте инструмент supported_languages, чтобы получить текущий список.

Q2: Могу ли я использовать сервер Semgrep MCP без облачной учетной записи или токена?
Да, основные инструменты сканирования и понимания кода работают локально без аутентификации. Для расширенных функций, связанных с платформой Semgrep AppSec (например, облачные находки), требуется токен API.

Q3: Какие протоколы связи поддерживаются?
Сервер Semgrep MCP поддерживает stdio (для CLI/локально), streamable HTTP (рекомендуется для новых интеграций) и события, отправляемые сервером (для обеспечения совместимости с предыдущими версиями).

Q4: Как подключить сервер Semgrep MCP к ChatGPT или VS Code?
Установите URL сервера MCP в вашем коннекторе или настройках редактора (например, https://mcp.semgrep.ai/sse для ChatGPT или обновите .vscode/mcp.json для VS Code).

Q5: Могут ли LLM автоматически создавать и использовать пользовательские правила Semgrep?
Да, с использованием предоставленных инструментов, таких как semgrep_scan_with_custom_rule и генераторы prompt, LLM/агенты могут динамически писать и применять новые правила.