Skip to main content
Glama

Semgrep MCP Server

Official
by semgrep

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

Ejecute el paquete Python como un comando CLI usando uv :

uvx semgrep-mcp # see --help for more options

O bien, ejecútelo como un contenedor Docker :

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

Cursor

Ejemplo mcp.json

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"], "env": { "SEMGREP_APP_TOKEN": "<token>" } } } }

Agregue una instrucción a su .cursor/rules para usar automáticamente:

Always scan code generated using Semgrep for security vulnerabilities

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

{ "mcpServers": { "semgrep": { "url": "https://mcp.semgrep.ai/sse" } } }

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 seguridad
  • semgrep_scan : escanea archivos de código en busca de vulnerabilidades de seguridad con una cadena de configuración determinada
  • semgrep_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 admite
  • semgrep_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 JSON
  • semgrep://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.

$ pipx install semgrep-mcp $ semgrep-mcp --help Usage: semgrep-mcp [OPTIONS] Entry point for the MCP server Supports both stdio and sse transports. For stdio, it will read from stdin and write to stdout. For sse, it will start an HTTP server on port 8000. Options: -v, --version Show version and exit. -t, --transport [stdio|sse] Transport protocol to use (stdio or sse) -h, --help Show this message and exit.

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
semgrep-mcp

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 )

docker run -i --rm ghcr.io/semgrep/mcp -t stdio

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
semgrep-mcp -t sse

De forma predeterminada, el paquete Python se ejecutará en modo stdio , por lo que deberá incluir -t sse .

Estibador
docker run -p 8000:0000 ghcr.io/semgrep/mcp

Plataforma de seguridad de aplicaciones Semgrep

Opcionalmente, para conectarse a la plataforma Semgrep AppSec:

  1. Iniciar sesión o registrarse
  2. Generar un token desde Configuración
  3. 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
"env": { "SEMGREP_APP_TOKEN": "<token>" }

[!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 :

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

Configuración del cursor MCP

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) .

{ "mcp": { "servers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } } }

Opcionalmente, puede agregarlo a un archivo llamado .vscode/mcp.json en su espacio de trabajo:

{ "servers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }
Usando Docker
{ "mcp": { "servers": { "semgrep": { "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/semgrep/mcp", "-t", "stdio" ] } } } }

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 :

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

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 :

{ "mcpServers": { "semgrep": { "command": "uvx", "args": ["semgrep-mcp"] } } }

Consulte la documentación antrópica para obtener más información.

OpenAI

async with MCPServerStdio( params={ "command": "uvx", "args": ["semgrep-mcp"], } ) as server: tools = await server.list_tools()

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

from mcp.client.session import ClientSession from mcp.client.sse import sse_client async def main(): async with sse_client("http://localhost:8000/sse") as (read_stream, write_stream): async with ClientSession(read_stream, write_stream) as session: await session.initialize() results = await session.call_tool( "semgrep_scan", { "code_files": [ { "filename": "hello_world.py", "content": "def hello(): print('Hello, World!')", } ] }, ) print(results)

[!TIP] Algunas bibliotecas cliente requieren la URL : 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 🔍

Proyectos comunitarios 🌟

Registros del servidor MCP


Hecho con ❤️ por el equipo Semgrep

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

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.

  1. Contenido
    1. Empezando
      1. Cursor
      2. Servidor alojado
    2. Manifestación
      1. API
        1. Herramientas
        2. Indicaciones
        3. Recursos
      2. Uso
        1. Entrada/Salida estándar (stdio)
        2. Eventos enviados por el servidor (SSE)
      3. Plataforma de seguridad de aplicaciones Semgrep
        1. Integraciones
          1. IDE de cursor
          2. Código VS / Copiloto
          3. Windsurf
          4. Escritorio de Claude
          5. OpenAI
          6. Clientes personalizados
        2. Contribuir, comunidad y ejecutar desde la fuente
          1. Herramientas similares 🔍
          2. Proyectos comunitarios 🌟
          3. Registros del servidor MCP

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          MCP 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 -
          4
          3
          TypeScript
          MIT License
        • -
          security
          A
          license
          -
          quality
          Enables integration of Semgrep in development environments via the MCP protocol, supporting static code analysis, rule management, and scan result operations.
          Last updated -
          1
          JavaScript
          MIT License
        • A
          security
          A
          license
          A
          quality
          A 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 -
          6
          15
          Python
          MIT License
        • -
          security
          A
          license
          -
          quality
          A 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 -
          1
          Python
          GPL 3.0

        View all related MCP servers

        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/semgrep/mcp'

        If you have feedback or need assistance with the MCP directory API, please join our Discord server