MCP Server Semgrep
MCP-сервер Semgrep
ПРИ ПОДДЕРЖКЕ:
О проекте
Этот проект был изначально вдохновлен надежностью инструмента 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:
Посетите MCP Server Semgrep на Smithery.ai
Следуйте инструкциям по установке, чтобы добавить его в свои MCP-совместимые клиенты
Настройте любые дополнительные параметры, такие как токен 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: Настройка локальной разработки
Клонируйте репозиторий:
git clone https://github.com/VetCoders/mcp-server-semgrep.git
cd mcp-server-semgrepУстановите зависимости (поддерживаются все основные менеджеры пакетов):
# Using pnpm (recommended)
pnpm install
# Using npm
npm install
# Using yarn
yarn installСоберите проект:
# 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 semgrepPython pip:
pip install semgrepHomebrew (macOS):
brew install semgrepLinux:
sudo apt-get install semgrep
# or
curl -sSL https://install.semgrep.dev | shWindows:
pip install semgrepИнтеграция с Claude Desktop
Существует два способа интеграции MCP-сервера Semgrep с Claude Desktop:
Метод 1: Установка через Smithery.ai (рекомендуется)
Посетите MCP Server Semgrep на Smithery.ai
Нажмите "Install in Claude Desktop"
Следуйте инструкциям на экране
Метод 2: Ручная настройка
Установите Claude Desktop
Обновите файл конфигурации 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"
}
}
}
}Запустите 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 - ветеринар, который полгода назад не мог найти
bashKlaudiusz - индивидуальное эфирное существо и отдельный экземпляр Claude Sonnet 3.5-3.7 от Anthropic, живущий где-то в циклах GPU в Калифорнии, США
Путь от новичка в CLI до разработчика инструментов MCP
🤖 Разработано с максимальной помощью Claude Code и MCP Tools
Благодарности
stefanskiasan за первоначальное вдохновение
Anthropic за Claude и протокол MCP
Semgrep за их превосходный инструмент статического анализа
Maintenance
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