Skip to main content
Glama

MCP-сервер Semgrep

ПРИ ПОДДЕРЖКЕ:

POWERED BY

О проекте

MCP Server Semgrep Logo Этот проект был изначально вдохновлен надежностью инструмента Semgrep, командой Replit и их Agent V2, а также реализацией от stefanskiasan/semgrep-mcp-server, но развился благодаря значительным архитектурным изменениям для более простой установки и обслуживания.

MCP-сервер Semgrep — это сервер, совместимый с Model Context Protocol, который интегрирует мощный инструмент статического анализа Semgrep с ИИ-ассистентами, такими как Anthropic Claude. Он позволяет выполнять расширенный анализ кода, обнаруживать уязвимости безопасности и улучшать качество кода непосредственно через диалоговый интерфейс.

Related MCP server: Semgrep MCP Server

Преимущества интеграции

Для разработчиков и команд разработки:

  • Комплексный анализ исходного кода — обнаружение проблем во всем проекте, а не только в отдельных файлах

  • Проактивное обнаружение ошибок — выявление потенциальных проблем до того, как они станут критическими багами

  • Непрерывное улучшение качества кода — регулярное сканирование и рефакторинг ведут к постепенному улучшению кодовой базы

  • Стилистическая согласованность — выявление и исправление несоответствий в коде, таких как:

    • Произвольные слои z-index в CSS

    • Несогласованные соглашения об именовании

    • Дублирование кода

    • «Магические числа» вместо именованных констант

Для безопасности:

  • Автоматизированная проверка кода на известные уязвимости — сканирование на наличие известных шаблонов проблем безопасности

  • Настраиваемые правила безопасности — создание правил, специфичных для проекта

  • Обучение команды — обучение методам безопасного программирования через обнаружение потенциальных проблем

Для поддержки и развития проекта:

  • «Живая» документация — ИИ может объяснить, почему фрагмент кода является проблемным и как его исправить

  • Сокращение технического долга — систематическое обнаружение и исправление проблемных областей

  • Улучшенные код-ревью — автоматическое обнаружение распространенных проблем позволяет сосредоточиться на более сложных вопросах

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

  • Прямая интеграция с официальным MCP SDK

  • Упрощенная архитектура с консолидированными обработчиками

  • Чистая реализация на ES Modules

  • Эффективная обработка ошибок и проверка путей для безопасности

  • Интерфейс и документация на английском и польском языках

  • Комплексные модульные тесты

  • Обширная документация

  • Кроссплатформенная совместимость (Windows, macOS, Linux)

  • Гибкое обнаружение и управление установкой Semgrep

Функции

Semgrep MCP Server предоставляет следующие инструменты:

  • scan_directory: Сканирование исходного кода на наличие потенциальных проблем

  • list_rules: Отображение доступных правил и языков, поддерживаемых Semgrep

  • analyze_results: Детальный анализ результатов сканирования

  • create_rule: Создание пользовательских правил Semgrep

  • filter_results: Фильтрация результатов по различным критериям

  • export_results: Экспорт результатов в различных форматах

  • compare_results: Сравнение двух наборов результатов (например, до и после изменений)

Типичные сценарии использования

  • Анализ безопасности кода перед развертыванием

  • Обнаружение распространенных ошибок программирования

  • Обеспечение соблюдения стандартов кодирования в команде

  • Рефакторинг и улучшение качества существующего кода

  • Выявление несоответствий в стилях и структуре кода (например, CSS, организация компонентов)

  • Обучение разработчиков передовым методам

  • Проверка корректности исправлений (сравнение сканирований до/после)

Установка

Предварительные требования

  • Node.js v18+

  • TypeScript (для разработки)

Вариант 1: Установка из Smithery.ai (рекомендуется)

Самый простой способ установить и использовать MCP-сервер Semgrep — через Smithery.ai:

  1. Посетите MCP Server Semgrep на Smithery.ai

  2. Следуйте инструкциям по установке, чтобы добавить его в свои MCP-совместимые клиенты

  3. Настройте любые дополнительные параметры, такие как токен API Semgrep и разрешенные корневые директории проекта

Это рекомендуемый метод для Claude Desktop и других MCP-клиентов, так как он автоматически обрабатывает все зависимости и конфигурацию.

Вариант 2: Установка из реестра NPM

# Using npm
npm install -g mcp-server-semgrep

# Using pnpm
pnpm add -g mcp-server-semgrep

# Using yarn
yarn global add mcp-server-semgrep

Пакет также доступен в других реестрах:

Вариант 3: Установка из GitHub

# Using npm
npm install -g git+https://github.com/VetCoders/mcp-server-semgrep.git

# Using pnpm
pnpm add -g git+https://github.com/VetCoders/mcp-server-semgrep.git

# Using yarn
yarn global add git+https://github.com/VetCoders/mcp-server-semgrep.git

Вариант 4: Настройка локальной разработки

  1. Клонируйте репозиторий:

git clone https://github.com/VetCoders/mcp-server-semgrep.git
cd mcp-server-semgrep
  1. Установите зависимости (поддерживаются все основные менеджеры пакетов):

# Using pnpm (recommended)
pnpm install

# Using npm
npm install

# Using yarn
yarn install
  1. Соберите проект:

# Using pnpm
pnpm run build

# Using npm
npm run build

# Using yarn
yarn build

Примечание: Процесс установки автоматически проверит наличие Semgrep. Если Semgrep не найден, вы получите инструкции по его установке.

Контракт корневой директории рабочего пространства

Этот сервер читает и записывает файлы только внутри явно разрешенных корневых директорий рабочего пространства.

  • По умолчанию разрешенным корнем является рабочая директория процесса (process.cwd()).

  • Для Claude Desktop, Smithery или любого запускающего устройства, которое не запускает сервер внутри корня вашего проекта, установите MCP_SERVER_SEMGREP_ALLOWED_ROOTS в одну или несколько абсолютных директорий.

  • Используйте разделитель путей вашей платформы для нескольких корней: : на macOS/Linux, ; на Windows.

Режимы аутентификации

Этот сервер не реализует собственную обработку учетных записей Semgrep. Он вызывает установленный CLI semgrep и полагается на обычное поведение аутентификации Semgrep.

  • Локальный терминал и локальные запуски разработки часто могут использовать существующую сессию semgrep login из текущей учетной записи ОС.

  • Управляемые запуски, такие как Claude Desktop, Smithery, контейнеры или CI, должны предпочитать явный SEMGREP_APP_TOKEN для детерминированного поведения.

  • SEMGREP_APP_TOKEN остается самым безопасным вариантом, когда вам нужна переносимая конфигурация между машинами или раннерами.

Варианты установки Semgrep

Semgrep можно установить несколькими способами:

  • Через менеджеры пакетов:

# Using pnpm
pnpm add -g semgrep

# Using npm
npm install -g semgrep

# Using yarn
yarn global add semgrep
  • Python pip:

pip install semgrep
  • Homebrew (macOS):

brew install semgrep
  • Linux:

sudo apt-get install semgrep
# or
curl -sSL https://install.semgrep.dev | sh
  • Windows:

pip install semgrep

Интеграция с Claude Desktop

Существует два способа интеграции MCP-сервера Semgrep с Claude Desktop:

Метод 1: Установка через Smithery.ai (рекомендуется)

  1. Посетите MCP Server Semgrep на Smithery.ai

  2. Нажмите "Install in Claude Desktop"

  3. Следуйте инструкциям на экране

Метод 2: Ручная настройка

  1. Установите Claude Desktop

  2. Обновите файл конфигурации Claude Desktop (claude_desktop_config.json) и добавьте это в раздел серверов.

Для локальных запусков, запущенных под учетной записью пользователя, которая уже аутентифицирована с помощью semgrep login, CLI Semgrep может повторно использовать этот логин. Для управляемых или общих сред мы по-прежнему рекомендуем явно устанавливать SEMGREP_APP_TOKEN:

{
  "mcpServers": {
    "semgrep": {
      "command": "node",
      "args": [
        "/your_path/mcp-server-semgrep/build/index.js"
      ],
      "env": {
        "SEMGREP_APP_TOKEN": "your_semgrep_app_token",
        "MCP_SERVER_SEMGREP_ALLOWED_ROOTS": "/Users/you/projects"
      }
    }
  }
}
  1. Запустите Claude Desktop и начните задавать вопросы об анализе кода.

Если вы хотите сканировать более одного рабочего пространства, установите MCP_SERVER_SEMGREP_ALLOWED_ROOTS в список абсолютных путей, разделенных разделителем вашей платформы.

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

Сканирование проекта

Could you scan my source code in the /projects/my-application directory for potential security issues? That directory is already included in MCP_SERVER_SEMGREP_ALLOWED_ROOTS.

Анализ согласованности стилей

Analyze the z-index values in the project's CSS files and identify inconsistencies and potential layer conflicts.

Создание пользовательского правила

Create a Semgrep rule that detects improper use of input sanitization functions.

Фильтрация результатов

Show me only scan results related to SQL injection vulnerabilities.

Выявление проблемных шаблонов

Find all "magic numbers" in the code and suggest replacing them with named constants.

Создание пользовательских правил

Вы можете создавать пользовательские правила для конкретных нужд вашего проекта. Вот примеры правил, которые вы можете создать:

Правило для обнаружения несогласованных z-index:

rules:
  - id: inconsistent-z-index
    pattern: z-index: $Z
    message: "Z-index $Z may not comply with the project's layering system"
    languages: [css, scss]
    severity: WARNING

Правило для обнаружения устаревших импортов:

rules:
  - id: deprecated-import
    pattern: import $X from 'old-library'
    message: "You're using a deprecated library. Consider using 'new-library'"
    languages: [javascript, typescript]
    severity: WARNING

Разработка

Тестирование

pnpm test

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

├── src/
│   └── index.ts          # Main entry point and all handler implementations
├── scripts/
│   └── check-semgrep.js  # Semgrep detection and installation helper
├── build/                # Compiled JavaScript (after build)
└── tests/                # Unit tests

Дополнительная документация

Подробную информацию об использовании инструмента можно найти в:

  • USAGE.md - Подробные инструкции по использованию

  • README_PL.md - Документация на польском языке

  • examples/ - Примеры интересных и практических правил Semgrep - "Зал ужасов кода"

Лицензия

Этот проект лицензирован по лицензии MIT - подробности см. в файле LICENSE.

Разработано

  • Maciej Gad - ветеринар, который полгода назад не мог найти bash

  • Klaudiusz - индивидуальное эфирное существо и отдельный экземпляр Claude Sonnet 3.5-3.7 от Anthropic, живущий где-то в циклах GPU в Калифорнии, США

Путь от новичка в CLI до разработчика инструментов MCP

🤖 Разработано с максимальной помощью Claude Code и MCP Tools

Благодарности

  • stefanskiasan за первоначальное вдохновение

  • Anthropic за Claude и протокол MCP

  • Semgrep за их превосходный инструмент статического анализа

Install Server
A
license - permissive license
B
quality
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/VetCoders/mcp-server-semgrep'

If you have feedback or need assistance with the MCP directory API, please join our Discord server