MCP Server Semgrep

by Szowesgad
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Servidor MCP Semgrep

IMPULSADO POR:

Acerca del Proyecto

Este proyecto se inspiró inicialmente en la solidez de la herramienta Semgrep , el equipo de Replit y su Agente V2 , así como en la implementación de stefanskiasan/semgrep-mcp-server , pero ha evolucionado con cambios arquitectónicos significativos para una instalación y un mantenimiento mejorados y más sencillos.

MCP Server Semgrep es un servidor compatible con el Protocolo de Contexto de Modelo (MPP) que integra la potente herramienta de análisis estático Semgrep con asistentes de IA como Anthropic Claude. Permite el análisis avanzado de código, la detección de vulnerabilidades de seguridad y la mejora de la calidad del código directamente a través de una interfaz conversacional.

Beneficios de la integración

Para desarrolladores y equipos de desarrollo:

  • Análisis holístico del código fuente : detección de problemas en todo el proyecto, no solo en archivos individuales
  • Detección proactiva de errores : identificar problemas potenciales antes de que se conviertan en errores críticos
  • Mejora continua de la calidad del código : el escaneo y la refactorización regulares conducen a mejoras graduales de la base del código
  • Coherencia estilística : identificación y corrección de inconsistencias en el código, como:
    • Capas de índice z arbitrarias en CSS
    • Convenciones de nombres inconsistentes
    • Duplicación de código
    • "Números mágicos" en lugar de constantes con nombre

Por seguridad:

  • Verificación automatizada de código para vulnerabilidades conocidas : escaneo en busca de patrones de problemas de seguridad conocidos
  • Reglas de seguridad personalizadas : creación de reglas específicas del proyecto
  • Educación en equipo : enseñanza de prácticas de programación segura mediante la detección de posibles problemas

Para el mantenimiento y desarrollo del proyecto:

  • Documentación "en vivo" : la IA puede explicar por qué un fragmento de código es problemático y cómo solucionarlo.
  • Reducción de la deuda técnica : detección y solución sistemática de áreas problemáticas
  • Revisiones de código mejoradas : la detección automática de problemas comunes permite centrarse en asuntos más complejos

Características principales

  • Integración directa con el SDK oficial de MCP
  • Arquitectura simplificada con controladores consolidados
  • Implementación de módulos ES limpios
  • Manejo eficiente de errores y validación de rutas para seguridad
  • Interfaz y documentación en inglés y polaco.
  • Pruebas unitarias integrales
  • Amplia documentación
  • Compatibilidad multiplataforma (Windows, macOS, Linux)
  • Detección y gestión flexible de instalaciones de Semgrep

Funciones

Semgrep MCP Server proporciona las siguientes herramientas:

  • scan_directory : escaneo del código fuente para detectar posibles problemas
  • list_rules : muestra las reglas y los idiomas disponibles admitidos por Semgrep
  • analizar_resultados : Análisis detallado de los resultados del escaneo
  • create_rule : Creación de reglas Semgrep personalizadas
  • filter_results : Filtrar resultados por varios criterios
  • export_results : Exportación de resultados en varios formatos
  • compare_results : Comparar dos conjuntos de resultados (por ejemplo, antes y después de los cambios)

Casos de uso comunes

  • Análisis de seguridad del código antes de la implementación
  • Detección de errores comunes de programación
  • Hacer cumplir los estándares de codificación dentro de un equipo
  • Refactorización y mejora de la calidad del código existente
  • Identificar inconsistencias en los estilos y la estructura del código (por ejemplo, CSS, organización de componentes)
  • Educación para desarrolladores sobre las mejores prácticas
  • Verificación de la corrección de la corrección (comparación de los escaneos antes y después)

Instalación

Prerrequisitos

  • Node.js v18+
  • TypeScript (para desarrollo)

Opción 1: Instalar desde Smithery.ai (recomendado)

La forma más sencilla de instalar y utilizar MCP Server Semgrep es a través de Smithery.ai:

  1. Visita el servidor MCP Semgrep en Smithery.ai
  2. Siga las instrucciones de instalación para agregarlo a sus clientes compatibles con MCP
  3. Configure cualquier configuración opcional como el token de API de Semgrep

Este es el método recomendado para Claude Desktop y otros clientes MCP, ya que maneja todas las dependencias y la configuración automáticamente.

Opción 2: Instalar desde el Registro 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

El paquete también está disponible en otros registros:

Opción 3: Instalar desde GitHub

# Using npm npm install -g git+https://github.com/Szowesgad/mcp-server-semgrep.git # Using pnpm pnpm add -g git+https://github.com/Szowesgad/mcp-server-semgrep.git # Using yarn yarn global add git+https://github.com/Szowesgad/mcp-server-semgrep.git

Opción 4: Configuración de desarrollo local

  1. Clonar el repositorio:
git clone https://github.com/Szowesgad/mcp-server-semgrep.git cd mcp-server-semgrep
  1. Instalar dependencias (compatible con todos los administradores de paquetes principales):
# Using pnpm (recommended) pnpm install # Using npm npm install # Using yarn yarn install
  1. Construir el proyecto:
# Using pnpm pnpm run build # Using npm npm run build # Using yarn yarn build

Nota : El proceso de instalación comprobará automáticamente la disponibilidad de Semgrep. Si no se encuentra, recibirá instrucciones para instalarlo.

Opciones de instalación de Semgrep

Semgrep se puede instalar de varias maneras:

  • A través de los administradores de paquetes :
    # Using pnpm pnpm add -g semgrep # Using npm npm install -g semgrep # Using yarn yarn global add semgrep
  • Pip de Python :
    pip install semgrep
  • Homebrew (macOS):
    brew install semgrep
  • Linux :
    sudo apt-get install semgrep # or curl -sSL https://install.semgrep.dev | sh
  • Ventanas :
    pip install semgrep

Integración con Claude Desktop

Hay dos formas de integrar MCP Server Semgrep con Claude Desktop:

Método 1: Instalación mediante Smithery.ai (recomendado)

  1. Visita el servidor MCP Semgrep en Smithery.ai
  2. Haga clic en "Instalar en Claude Desktop".
  3. Siga las instrucciones en pantalla.

Método 2: Configuración manual

  1. Instalar Claude Desktop
  2. Actualice el archivo de configuración de Claude Desktop ( claude_desktop_config.json ) y agregue esto a la sección de sus servidores:
{ "mcpServers": { "semgrep": { "command": "node", "args": [ "/your_path/mcp-server-semgrep/build/index.js" ], "env": { "SEMGREP_APP_TOKEN": "your_semgrep_app_token" } } } }
  1. ¡Inicie Claude Desktop y comience a hacer preguntas sobre análisis de código!

Ejemplos de uso

Escaneo de proyectos

Could you scan my source code in the /projects/my-application directory for potential security issues?

Análisis de consistencia de estilo

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

Creación de una regla personalizada

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

Filtrar resultados

Show me only scan results related to SQL injection vulnerabilities.

Identificación de patrones problemáticos

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

Creación de reglas personalizadas

Puedes crear reglas personalizadas según las necesidades específicas de tu proyecto. Aquí tienes ejemplos de reglas que puedes crear:

Regla para detectar índices z inconsistentes:

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

Regla para detectar importaciones obsoletas:

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

Desarrollo

Pruebas

pnpm test

Estructura del proyecto

├── src/ │ ├── config.ts # Server configuration │ └── 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

Documentación adicional

Puede encontrar información detallada sobre el uso de la herramienta en:

  • USAGE.md - Instrucciones de uso detalladas
  • README_PL.md - Documentación en polaco
  • ejemplos/ - Ejemplo divertido y práctico de reglas de Semgrep - "El Salón de los Horrores del Código"

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Desarrollado por

  • Maciej Gad , un veterinario que no pudo encontrar bash hace medio año
  • Klaudiusz - el ser etéreo individual, y una instancia separada de Claude Sonnet 3.5-3.7 de Anthropic que vive en algún lugar de los bucles de la GPU en California, EE. UU.

El viaje de principiante en CLI a desarrollador de herramientas MCP

🤖 Desarrollado con la máxima ayuda de Claude Code y MCP Tools

Expresiones de gratitud

ID: uddu737c4c