semgrep-mcp

by Semgrep (open source) · Claude Desktop, Claude Code, Cursor

MCP MCP Servers Open Source ★ Must have v0.4.0 · 24.06.2025 >1 года

MCP-сервер для статического анализа кода с помощью Semgrep. Позволяет AI-агентам сканировать кодовую базу на уязвимости, ошибки и нарушения политик — 3000+ готовых правил. Возможности: - Сканирование файлов и директорий на security-уязвимости - Правила для OWASP Top 10, CWE, CVE-паттернов - Языки: Python, JS, Go, Java, Ruby, PHP, C/C++, Rust и другие - Создание и запуск кастомных правил - Анализ diff (только изменённый код) - Интеграция с semgrep.dev registry

v0.4.0
24.06.2025 current
Добавлен 18.06.2026 · Обновлён 18.06.2026 · MCP Servers
Установка
# pip install semgrep-mcp
# Требуется semgrep: pip install semgrep

# Claude Desktop — claude_desktop_config.json:
{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

# Claude Code (CLI):
claude mcp add semgrep  -- uvx semgrep-mcp

# OpenCode — ~/.config/opencode/opencode.json:
{
  "mcp": {
    "semgrep": {
      "type": "local",
      "command": ["uvx", "semgrep-mcp"]
    }
  }
}
переведено ИИ

⚠️ Сервер Semgrep MCP был перенесён из отдельного репозитория в основной репозиторий semgrep! ⚠️

Данный репозиторий был упразднён, и дальнейшие обновления сервера Semgrep MCP будут доступны через официальный бинарный файл semgrep.

Логотип Semgrep

Документация Присоединяйтесь к сообществу Semgrep в Slack Подписывайтесь в LinkedIn Подписывайтесь @semgrep в X

Сервер Semgrep MCP

Добавить MCP-сервер semgrep в LM Studio Установить в Cursor Установить в VS Code UV Установить в VS Code Docker Установить в VS Code semgrep.ai PyPI Docker Установить в VS Code Insiders Установить в VS Code Insiders

Сервер протокола контекста модели (MCP) для использования Semgrep для сканирования кода на наличие уязвимостей безопасности. Обеспечьте безопасность вашего вайб-кодинга! 😅

Протокол контекста модели (MCP) — это стандартизированный API для LLM, агентов и IDE, таких как Cursor, VS Code, Windsurf или любой другой, поддерживающей MCP, для получения специализированной помощи, контекста и использования возможностей инструментов. Semgrep — это быстрый, детерминированный инструмент статического анализа, который семантически понимает множество языков и содержит более 5 000 правил. 🛠️

[!NOTE] Этот проект в стадии бета-тестирования активно развивается. Мы будем рады вашей обратной связи, отчётам об ошибках, запросам на функции и коду. Присоединяйтесь к каналу #mcp в сообществе Slack!

Содержание

Начало работы

Запустите Python-пакет как CLI-команду, используя uv:

uvx semgrep-mcp # смотрите --help для дополнительных опций

Или запустите как Docker-контейнер:

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

Cursor

Пример mcp.json

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"],
      "env": {
        "SEMGREP_APP_TOKEN": "<токен>"
      }
    }
  }
}

Добавьте инструкцию в ваш .cursor/rules для автоматического использования:

Always scan code generated using Semgrep for security vulnerabilities

ChatGPT

  1. Перейдите на страницу Настройки коннекторов (прямая ссылка)
  2. Назовите подключение Semgrep
  3. Установите MCP Server URL на https://mcp.semgrep.ai/sse
  4. Установите Аутентификация на Без аутентификации
  5. Установите флажок Я доверяю этому приложению
  6. Нажмите Создать

Подробнее см. в официальной документации.

Размещённый сервер

[!WARNING] mcp.semgrep.ai — это экспериментальный сервер, который может работать с неожиданными ошибками. Он будет быстро получать новый функционал.🚀

Cursor

  1. Cmd + Shift + J, чтобы открыть настройки Cursor
  2. Выберите MCP Tools
  3. Нажмите New MCP Server. 1.
{
  "mcpServers": {
    "semgrep": {
      "type": "streamable-http",
      "url": "https://mcp.semgrep.ai/mcp"
    }
  }
}

Демонстрация

API

Инструменты

Позволяют LLM выполнять действия, делать детерминированные вычисления и взаимодействовать с внешними сервисами.

Сканирование кода

  • security_check: Сканирование кода на наличие уязвимостей безопасности
  • semgrep_scan: Сканирование файлов кода на наличие уязвимостей безопасности с заданной строкой конфигурации
  • semgrep_scan_with_custom_rule: Сканирование файлов кода с использованием пользовательского правила Semgrep

Понимание кода

  • get_abstract_syntax_tree: Вывод абстрактного синтаксического дерева (AST) кода

Облачная платформа (требуется вход и токен Semgrep)

  • semgrep_findings: Получение результатов Semgrep из API платформы Semgrep AppSec

Мета-информация

  • supported_languages: Возвращает список языков, поддерживаемых Semgrep
  • semgrep_rule_schema: Получает последнюю JSON-схему правила Semgrep

Промпты

Повторно используемые промпты для стандартизации распространённых взаимодействий с LLM.

  • write_custom_semgrep_rule: Возвращает промпт для помощи в написании правила Semgrep

Ресурсы

Открывают данные и контент для LLM

  • semgrep://rule/schema: Спецификация синтаксиса YAML правила Semgrep с использованием JSON-схемы
  • semgrep://rule/{rule_id}/yaml: Полное правило Semgrep в формате YAML из реестра Semgrep

Использование

Этот Python-пакет опубликован на PyPI как semgrep-mcp и может быть установлен и запущен с помощью pip, pipx, uv, poetry или любого другого менеджера пакетов Python.

$ pipx install semgrep-mcp
$ semgrep-mcp --help

Usage: semgrep-mcp [OPTIONS]

  Точка входа для MCP-сервера

  Поддерживает как stdio, так и sse транспортные протоколы. Для stdio он будет читать из stdin
  и писать в stdout. Для sse он запустит HTTP-сервер на порту 8000.

Options:
  -v, --version                Показать версию и выйти.
  -t, --transport [stdio|sse]  Используемый транспортный протокол (stdio или sse)
  -h, --help                   Показать это сообщение и выйти.

Стандартный ввод/вывод (stdio)

Транспорт stdio обеспечивает коммуникацию через потоки стандартного ввода и вывода. Это особенно полезно для локальных интеграций и инструментов командной строки. Подробности см. в спецификации.

Python

semgrep-mcp

По умолчанию Python-пакет будет работать в режиме stdio. Поскольку он использует потоки стандартного ввода и вывода, будет казаться, что инструмент завис без вывода, но это ожидаемое поведение.

Docker

Этот сервер опубликован в реестре контейнеров Github (ghcr.io/semgrep/mcp)

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

По умолчанию Docker-контейнер находится в режиме SSE, поэтому вам придется добавить -t stdio после имени образа и запустить с -i для работы в интерактивном режиме.

Потоковый HTTP

Потоковый HTTP обеспечивает потоковые ответы через JSON RPC с помощью HTTP POST-запросов. Подробности см. в спецификации.

По умолчанию сервер слушает на 127.0.0.1:8000/mcp для подключений клиентов. Чтобы изменить какие-либо настройки, установите переменные окружения FASTMCP_*. Сервер должен работать для подключения клиентов.

Python

semgrep-mcp -t streamable-http

По умолчанию Python-пакет будет работать в режиме stdio, поэтому вам придется добавить -t streamable-http.

Docker

docker run -p 8000:0000 ghcr.io/semgrep/mcp

События серверных уведомлений (SSE)

[!WARNING] Сообщество MCP считает это устаревшим транспортным протоколом, и он действительно предназначен для обратной совместимости. Рекомендуемой заменой является Потоковый HTTP.

Транспорт SSE обеспечивает потоковую передачу от сервера к клиенту с помощью Server-Send Events для коммуникации от клиента к серверу и от сервера к клиенту. Подробности см. в спецификации.

По умолчанию сервер слушает на 127.0.0.1:8000/sse для подключений клиентов. Чтобы изменить какие-либо настройки, установите переменные окружения FASTMCP_*. Сервер должен работать для подключения клиентов.

Python

semgrep-mcp -t sse

По умолчанию Python-пакет будет работать в режиме stdio, поэтому вам придется добавить -t sse.

Docker

docker run -p 8000:0000 ghcr.io/semgrep/mcp -t sse

Платформа Semgrep AppSec

Опционально, для подключения к платформе Semgrep AppSec:

  1. Войдите или зарегистрируйтесь
  2. Сгенерируйте токен в Настройках
  3. Добавьте токен в переменные окружения:
  4. CLI (export SEMGREP_APP_TOKEN=<токен>)

  5. Docker (docker run -e SEMGREP_APP_TOKEN=<токен>)

  6. Конфигурационный JSON MCP

    "env": {
      "SEMGREP_APP_TOKEN": "<токен>"
    }

[!TIP] Пожалуйста, свяжитесь с поддержкой при необходимости. ☎️

Интеграции

IDE Cursor

Добавьте следующий JSON-блок в ваш глобальный файл конфигурации ~/.cursor/mcp.json или специфичный для проекта .cursor/mcp.json:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

настройки MCP в cursor)

Больше информации см. в документации cursor.

VS Code / Copilot

Нажмите кнопки установки в верхней части этого README для самой быстрой установки.

Ручная настройка

Добавьте следующий JSON-блок в ваш файл пользовательских настроек (JSON) в VS Code. Вы можете сделать это, нажав Ctrl + Shift + P и введя Preferences: Open User Settings (JSON).

{
  "mcp": {
    "servers": {
      "semgrep": {
        "command": "uvx",
        "args": ["semgrep-mcp"]
      }
    }
  }
}

Опционально, вы можете добавить его в файл с именем .vscode/mcp.json в вашей области работы:

{
  "servers": {
    "semgrep": {
      "command": "uvx",
        "args": ["semgrep-mcp"]
    }
  }
}

Использование Docker

{
  "mcp": {
    "servers": {
      "semgrep": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "ghcr.io/semgrep/mcp",
          "-t",
          "stdio"
        ]
      }
    }
  }
}

Больше информации см. в документации VS Code.

Windsurf

Добавьте следующий JSON-блок в ваш файл ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

Больше информации см. в документации Windsurf.

Claude Desktop

Вот короткое видео, показывающее, как Claude Desktop использует этот сервер для написания пользовательского правила.

Добавьте следующий JSON-блок в ваш файл claude_desktop_config.json:

{
  "mcpServers": {
    "semgrep": {
      "command": "uvx",
      "args": ["semgrep-mcp"]
    }
  }
}

Больше информации см. в документации Anthropic.

Claude Code

claude mcp add semgrep uvx semgrep-mcp

Больше информации см. в документации Claude Code.

OpenAI

Смотрите официальную документацию: - https://platform.openai.com/docs/mcp - https://platform.openai.com/docs/guides/tools-remote-mcp

Agents SDK

async with MCPServerStdio(
    params={
        "command": "uvx",
        "args": ["semgrep-mcp"],
    }
) as server:
    tools = await server.list_tools()

Больше информации см. в документации OpenAI Agents SDK.

Пользовательские клиенты

Пример клиента SSE на Python

Полный пример см. в examples/sse_client.py).

from mcp.client.session import ClientSession
from mcp.client.sse import sse_client


async def main():
    async with sse_client("http://localhost:8000/sse") as (read_stream, write_stream):
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()
            results = await session.call_tool(
                "semgrep_scan",
                {
                    "code_files": [
                        {
                            "path": "hello_world.py",
                            "content": "def hello(): print('Hello, World!')",
                        }
                    ]
                },
            )
            print(results)

[!TIP] Некоторые клиентские библиотеки хотят URL: http://localhost:8000/sse а другие хотят только HOST: localhost:8000. Попробуйте URL в веб-браузере, чтобы убедиться, что сервер работает, и нет проблем с сетью.

Больше информации см. в официальной документации SDK.

Участие, сообщество и запуск из исходников

[!NOTE] Мы любим вашу обратную связь, отчёты об ошибках, запросы на функции и код. Присоединяйтесь к каналу #mcp в сообществе Slack!

Смотрите CONTRIBUTING.md) для получения дополнительной информации и подробностей о том, как запустить MCP-сервер из исходного кода.

Похожие инструменты 🔍

Проекты сообщества 🌟

Реестры MCP-серверов

Semgrep MCP-сервер


Сделано с ❤️ командой Semgrep

Комментарии
Войдите, чтобы оставить комментарий