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.
Related MCP server: Semgrep MCP Server
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:
Siga las instrucciones de instalación para agregarlo a sus clientes compatibles con MCP
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-semgrepEl 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.gitOpción 4: Configuración de desarrollo local
Clonar el repositorio:
git clone https://github.com/Szowesgad/mcp-server-semgrep.git
cd mcp-server-semgrepInstalar dependencias (compatible con todos los administradores de paquetes principales):
# Using pnpm (recommended)
pnpm install
# Using npm
npm install
# Using yarn
yarn installConstruir el proyecto:
# Using pnpm
pnpm run build
# Using npm
npm run build
# Using yarn
yarn buildNota : 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 semgrepPip de Python :
pip install semgrepHomebrew (macOS):
brew install semgrepLinux :
sudo apt-get install semgrep # or curl -sSL https://install.semgrep.dev | shVentanas :
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)
Haga clic en "Instalar en Claude Desktop".
Siga las instrucciones en pantalla.
Método 2: Configuración manual
Instalar Claude Desktop
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"
}
}
}
}¡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: WARNINGRegla 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: WARNINGDesarrollo
Pruebas
pnpm testEstructura 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 testsDocumentació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
bashhace medio añoKlaudiusz - 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
stefanskiasan por la inspiración original
Antrópico para Claude y el protocolo MCP
Semgrep por su excelente herramienta de análisis estático