Servidor MCP de Semgrep
Un servidor de Protocolo de Contexto de Modelo (MCP) para usar Semgrep y escanear código en busca de vulnerabilidades de seguridad. ¡Protege tu código vibrante ! 😅
El Protocolo de Contexto de Modelo (MCP) es una API estandarizada para LLM, Agentes e IDE como Cursor, VS Code, Windsurf o cualquier plataforma compatible con MCP, que permite obtener ayuda especializada, obtener contexto y aprovechar el potencial de las herramientas. Semgrep es una herramienta de análisis estático rápida y determinista que comprende semánticamente muchos lenguajes e incluye más de 5000 reglas . 🛠️
[!NOTA] Este proyecto beta está en desarrollo. Nos encantaría recibir tus comentarios, informes de errores, solicitudes de funciones y código. ¡Únete al canal de Slack de la comunidad
#mcp!
Contenido
Related MCP server: Semgrep MCP Server
Empezando
Ejecute el paquete Python como un comando CLI usando uv :
O bien, ejecútelo como un contenedor Docker :
Cursor
Ejemplo mcp.json
Agregue una instrucción a su .cursor/rules para usar automáticamente:
Servidor alojado
[!ADVERTENCIA] Este servidor es experimental y podría fallar. Una vez que la especificación MCP sea compatible con HTTP Streaming y OAuth próximamente, incorporará nuevas funciones. 🚀
mcp.json
Manifestación
API
Herramientas
Permitir que los LLM realicen acciones, realicen cálculos deterministas e interactúen con servicios externos.
Código de escaneo
security_check: Escanear el código en busca de vulnerabilidades de seguridadsemgrep_scan: escanea archivos de código en busca de vulnerabilidades de seguridad con una cadena de configuración determinadasemgrep_scan_with_custom_rule: Escanee archivos de código usando una regla Semgrep personalizada
Entender el código
get_abstract_syntax_tree: Genera el árbol de sintaxis abstracta (AST) del código
Meta
supported_languages: Devuelve la lista de idiomas que Semgrep admitesemgrep_rule_schema: obtiene el último esquema JSON de la regla semgrep
Indicaciones
Indicaciones reutilizables para estandarizar interacciones LLM comunes.
write_custom_semgrep_rule: Devuelve un mensaje para ayudar a escribir una regla de Semgrep
Recursos
Exponer datos y contenidos a los LLM
semgrep://rule/schema: Especificación de la sintaxis YAML de la regla Semgrep utilizando el esquema JSONsemgrep://rule/{rule_id}/yaml: Regla completa de Semgrep en formato YAML del registro de Semgrep
Uso
Este paquete de Python se publica en PyPI como semgrep-mcp y se puede instalar y ejecutar con pip , pipx , uv , poetry o cualquier administrador de paquetes de Python.
Entrada/Salida estándar (stdio)
El transporte stdio permite la comunicación mediante flujos de entrada y salida estándar. Esto resulta especialmente útil para integraciones locales y herramientas de línea de comandos. Consulte la especificación para obtener más detalles.
Pitón
De forma predeterminada, el paquete Python se ejecuta en modo stdio . Dado que utiliza los flujos de entrada y salida estándar, parecerá que la herramienta se bloquea sin salida, pero esto es normal.
Estibador
Este servidor está publicado en el Registro de contenedores de Github ( ghcr.io/semgrep/mcp )
De forma predeterminada, el contenedor Docker está en modo SSE , por lo que deberá incluir -t stdio después del nombre de la imagen y ejecutar con -i para ejecutar en modo interactivo .
Eventos enviados por el servidor (SSE)
El transporte SSE permite la transmisión de servidor a cliente mediante solicitudes HTTP POST para la comunicación cliente-servidor. Consulte la especificación para obtener más detalles.
De forma predeterminada, el servidor escucha en 0.0.0.0:8000/sse las conexiones de los clientes. Para cambiar esto, configure las variables de entorno FASTMCP_* . El servidor debe estar en ejecución para que los clientes se conecten.
Pitón
De forma predeterminada, el paquete Python se ejecutará en modo stdio , por lo que deberá incluir -t sse .
Estibador
Plataforma de seguridad de aplicaciones Semgrep
Opcionalmente, para conectarse a la plataforma Semgrep AppSec:
Iniciar sesión o registrarse
Generar un token desde Configuración
Agregue el token a sus variables de entorno:
CLI (
export SEMGREP_APP_TOKEN=<token>)Docker (
docker run -e SEMGREP_APP_TOKEN=<token>)JSON de configuración de MCP
Si es necesario, contáctanos ensupport@semgrep.com . ☎️
Integraciones
IDE de cursor
Agregue el siguiente bloque JSON a su archivo de configuración global ~/.cursor/mcp.json o específico del proyecto .cursor/mcp.json :

Consulte la documentación del cursor para obtener más información.
Código VS / Copiloto
Haga clic en los botones de instalación en la parte superior de este README para una instalación más rápida.
Configuración manual
Agrega el siguiente bloque JSON a tu archivo de configuración de usuario (JSON) en VS Code. Para ello, presiona Ctrl + Shift + P y escribe Preferences: Open User Settings (JSON) .
Opcionalmente, puede agregarlo a un archivo llamado .vscode/mcp.json en su espacio de trabajo:
Usando Docker
Consulte la documentación de VS Code para obtener más información.
Windsurf
Agregue el siguiente bloque JSON a su archivo ~/.codeium/windsurf/mcp_config.json :
Consulte la documentación de Windsurf para obtener más información.
Escritorio de Claude
Aquí hay un video corto que muestra a Claude Desktop usando este servidor para escribir una regla personalizada.
Agregue el siguiente bloque JSON a su archivo claude_desktop_config.json :
Consulte la documentación antrópica para obtener más información.
OpenAI
Consulte la documentación del SDK de OpenAI Agents para obtener más información.
Clientes personalizados
Ejemplo de cliente SSE de Python
Vea un ejemplo completo en examples/sse_client.py
Algunas bibliotecas cliente requieren laURL : http://localhost:8000/sse y otras solo requieren el HOST : localhost:8000 . Pruebe la URL en un navegador web para confirmar que el servidor esté funcionando y que no haya problemas de red.
Consulte la documentación oficial del SDK para obtener más información.
Contribuir, comunidad y ejecutar desde la fuente
[!NOTA] Nos encantan tus comentarios, informes de errores, solicitudes de funciones y código. ¡Únete al canal de Slack de la comunidad
#mcp!
Consulte CONTRIBUTING.md para obtener más información y detalles sobre cómo ejecutar desde el servidor MCP desde el código fuente.
Herramientas similares 🔍
semgrep-vscode : extensión oficial de VS Code
semgrep-intellij - Complemento IntelliJ
Proyectos comunitarios 🌟
semgrep-rules - La colección oficial de reglas de Semgrep
mcp-server-semgrep - Inspiración original escrita por Szowesgad y stefanskiasan
Registros del servidor MCP
Hecho con ❤️ por el equipo Semgrep