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
- Empezando
- Manifestación
- API
- Uso
- Plataforma de seguridad de aplicaciones Semgrep
- Integraciones
- Contribución, comunidad y ejecución desde el código fuente
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
- CLI (
[!TIP] Si es necesario, contáctanos en support@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
[!TIP] Algunas bibliotecas cliente requieren la
URL
: http://localhost:8000/sse y otras solo requieren elHOST
:localhost:8000
. Pruebe laURL
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
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Un servidor MCP que proporciona una interfaz integral para Semgrep, permitiendo a los usuarios escanear código en busca de vulnerabilidades de seguridad, crear reglas personalizadas y analizar los resultados del escaneo a través del Protocolo de contexto de modelo.
- Contenido
- Empezando
- Manifestación
- API
- Uso
- Plataforma de seguridad de aplicaciones Semgrep
- Integraciones
- Contribuir, comunidad y ejecutar desde la fuente
Related Resources
Related MCP Servers
- -securityAlicense-qualityMCP Server simplifies the implementation of the Model Context Protocol by providing a user-friendly API to create custom tools and manage server workflows efficiently.Last updated -43TypeScriptMIT License
- -securityAlicense-qualityEnables integration of Semgrep in development environments via the MCP protocol, supporting static code analysis, rule management, and scan result operations.Last updated -1JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server for querying the CVE-Search API. This server provides comprehensive access to CVE-Search, browse vendor and product、get CVE per CVE-ID、get the last updated CVEs.Last updated -615PythonMIT License
- -securityAlicense-qualityA server implementation that exposes grep functionality through the Model Context Protocol, allowing MCP-compatible clients to search for patterns in files using regular expressions.Last updated -1PythonGPL 3.0