Security Recipes

Inteligencia de CVE de solo lectura, manuales de remediación y guías de configuración de agentes. No es un escáner.

Documentación

Esta página cubre la capa de seguridad y contexto específica de MCP: roles de servidor, transportes, valores predeterminados de solo lectura, acceso a herramientas con alcance, implementación y revisión de conectores. Para patrones de entrega que no son MCP, como recetas integradas, archivos de reglas nativos e inyección de CI, use la arquitectura de integración de agentes de IA.

MCP permite que una aplicación de IA se conecte a contexto y herramientas externos a través de un protocolo estándar. Para la remediación de vulnerabilidades, úselo para darle a un agente la evidencia que necesita para corregir un hallazgo: la receta, los datos de asesoramiento, la salida del escáner, el contexto del repositorio y las reglas de revisión.

Valor predeterminado más seguro: comience en modo de solo lectura. Trate las herramientas MCP con capacidad de escritura, implementación o ejecución de comandos como una revisión de seguridad separada.

Revisado por última vez contra la especificación pública de MCP 2026-07-28 y la implementación de mcp_server.py de este repositorio el 21 de agosto de 2026. Verificado nuevamente el 23 de agosto de 2026: 2026-07-28 sigue siendo la versión actual y sin estado. No hay protocolo de enlace initialize. Cada solicitud lleva la versión del protocolo, la identidad del cliente y las capacidades. Las revisiones de HTTP transmisible hasta 2025-11-25 podrían asignar Mcp-Session-Id; esta revisión ignora ese encabezado y no genera ID de sesión. 2025-11-25 sigue siendo una revisión final anterior. El ID de perfil de conformidad de protocolo existente sigue siendo mcp-authorization-2025-11-25. Ese es un ID de paquete, no una afirmación de que 2025-11-25 sigue siendo la especificación actual.

El servidor de recetas FastMCP opcional de este repositorio permanece en modo de solo lectura. El puente ascendente opcional en mcp_server.py todavía usa RECIPES_MCP_PROTOCOL_VERSION como valor predeterminado 2025-06-18, todavía envía un protocolo de enlace initialize y todavía almacena Mcp-Session-Id para HTTP transmisible heredado. Ese es un valor predeterminado de compatibilidad, no una afirmación de especificación actual. No cambie el valor predeterminado a 2026-07-28 sin implementar server/discover y eliminar initialize.

MCP en un minuto

El Protocolo de Contexto de Modelo es un estándar abierto para conectar aplicaciones de IA a sistemas externos. La página de especificación pública actual identifica la versión 2026-07-28 como la versión actual del protocolo.

Los roles principales son:

RolSignificado
HostLa aplicación de IA en la que trabaja un usuario, como un IDE, un asistente de escritorio o un asistente de navegador.
ClienteEl conector dentro de ese host que habla MCP.
ServidorEl programa o servicio que expone contexto y capacidades.

Los servidores MCP pueden exponer:

Característica del servidorÚselo paraEjemplo de remediación
HerramientasFunciones invocadas por el modelo con esquemas de entrada.Buscar recetas, obtener una alerta SARIF, consultar una fuente de asesoramiento aprobada.
RecursosContexto seleccionado por la aplicación identificado por URI.Adjuntar un SBOM de paquete, archivo de política o documento fuente.
PromptsFlujos de trabajo reutilizables o plantillas de mensajes.Iniciar un flujo de actualización de dependencias o triaje SAST con instrucciones consistentes.

MCP usa JSON-RPC. Los transportes estándar son stdio y HTTP transmisible. Use HTTP transmisible para servidores alojados o accesibles desde el navegador. Use stdio cuando el cliente inicie un subproceso local.

Pila de contexto recomendada

Comience con tres capas. Agregue más solo cuando el hallazgo lo requiera.

CapaPropósitoEjemplos
Contexto de recetaIndique al agente cómo debe manejarse esta clase de corrección.Índice de recetas de security-recipes.ai, página de receta coincidente, SECURITY_RECIPES.md local.
Contexto de hallazgoExplique la vulnerabilidad o alerta específica.OSV, deps.dev, datos de GitHub Advisory, Snyk, Semgrep, CodeQL, SARIF, SBOM.
Contexto de repositorioPermita que el agente inspeccione código y evidencia.GitHub, GitLab, Azure DevOps, registros de CI, protecciones de rama, CODEOWNERS, runbooks.

Un agente no necesita todos los conectores para cada tarea. Una actualización de dependencias puede necesitar solo la receta, los metadatos del paquete, el archivo de bloqueo y el CI. Una remediación SAST puede necesitar la alerta SARIF, el archivo fuente afectado, las pruebas relacionadas y la regla de codificación segura.

Contexto de solo lectura

El contexto de solo lectura significa que el agente puede recuperar evidencia, pero la capa de contexto no le otorga autoridad de mutación. El agente puede buscar recetas, obtener un hallazgo del escáner, leer un asesoramiento, inspeccionar un archivo del repositorio o recopilar el estado del CI. No debe crear tickets, enviar ramas, editar secretos, rotar claves, implementar, descartar alertas ni escribir de vuelta en los sistemas fuente a través del mismo conector.

Esa división importa porque la recopilación de contexto es de alto volumen y bajo riesgo, mientras que la mutación es donde los errores de autorización se vuelven duraderos. Mantenga el perfil MCP predeterminado en solo lectura y enrute las herramientas con capacidad de escritura a través de una ruta de aprobación separada.

Para una ejecución de remediación, un paquete de contexto de solo lectura generalmente incluye:

  • la receta seleccionada y sus condiciones de detención;
  • el hallazgo, alerta, CVE, GHSA, paquete, regla o par fuente/destino específico;
  • archivos fuente afectados, manifiestos, archivos de bloqueo, SBOM, SARIF y registros de CI;
  • política de propiedad y revisión relevante, como CODEOWNERS o protección de rama;
  • requisitos de evidencia generada que el PR debe cumplir.

Si un flujo de trabajo realmente necesita mutación, divida el flujo: use MCP de solo lectura para recopilar contexto primero, luego solicite una concesión de escritura más limitada vinculada a una acción, un repositorio, una rama, un ticket o una ruta de salida. El paso de revisión debe poder ver qué concesión se usó y por qué.

Servidor MCP de Security Recipes

Este repositorio incluye un servidor FastMCP opcional en mcp_server.py. Es un servidor de conocimiento de solo lectura para security-recipes.ai.

Expone herramientas MCP que permiten a los clientes compatibles:

Grupo de herramientasQué haceEjemplos
Metadatos y caché del servidorInspeccionar configuración y actualizar el índice de recetas en memoria.recipes_server_info, recipes_refresh
Búsqueda y recuperación de recetasBuscar, listar, obtener y hacer coincidir recetas con un hallazgo.recipes_search, recipes_list, recipes_get, recipes_match_finding
Calidad de recetasCalificar recetas de descubrimiento y nombrar entradas faltantes, guía de selección, contratos de salida, verificación o salvaguardas.recipes_quality_report
Inteligencia del catálogo CVEBuscar en el catálogo rotativo Medio/Alto/Crítico y obtener un registro normalizado más su plan de cambio agéntico.recipes_cve_catalog_info, recipes_cve_search, recipes_cve_get
Planificación de playbooksListar los 75 playbooks publicados y devolver un plan de inicio limitado para un hallazgo.recipes_playbooks_list, recipes_playbook_get, recipes_playbook_plan
Política de control y puerta de enlaceDevolver paquetes de política generados para flujos de trabajo y puerta de enlace MCP.recipes_workflow_control_plane, recipes_mcp_gateway_policy
Evidencia de agente y contexto seguroDevolver paquetes generados de confianza, identidad, derechos, telemetría, incidentes y aseguramiento.recipes_agentic_assurance_pack, recipes_agent_identity_ledger, recipes_secure_context_trust_pack
Evidencia de gobernanza MCPDevolver paquetes de ingesta de conectores, autorización, elicitación, límite stdio, riesgo de herramientas y deriva.recipes_mcp_connector_intake_pack, recipes_mcp_authorization_conformance_pack, recipes_mcp_tool_risk_contract
Descubrimiento de servidores MCP públicosBuscar e inspeccionar el catálogo incluido de servidores MCP documentados oficialmente listados en esta página.recipes_mcp_servers_list, recipes_mcp_server_get
Puente ascendente opcionalListar servidores MCP ascendentes configurados, inspeccionar herramientas, llamar herramientas permitidas y recopilar contexto limitado.recipes_mcp_upstream_servers, recipes_mcp_upstream_tools, recipes_mcp_upstream_call, recipes_mcp_upstream_context

La lista exacta de herramientas está disponible a través de la vista tools/list de su cliente MCP. Este repositorio define actualmente 75 herramientas recipes_*. Una verificación falla si este recuento publicado se desvía de los registros @mcp.tool() en mcp_server.py.

recipes_cve_get está limitado por evidencia. Siga una anulación de Markdown estable cuando exista. Trate un plan compuesto como una salvaguarda, no como un piso específico del producto. Cuando un registro del catálogo tiene enriquecimiento de IA completo y específico y no hay una anulación estable, la herramienta adjunta ese enriquecimiento como recommended_recipe.ai_enrichment con role: evidence-qualified-guidance y not_a_stable_override: true. No es un piso con nombre y no cambia recommended_source de composed-agentic-plan. Los borradores de CVE en desarrollo permanecen sin indexar y no son anulaciones del catálogo; el texto de versión sobrante o una etiqueta siguiente adivinada nunca es una corrección con nombre. El catálogo de rama publica actualmente 35 páginas CVE indexables por búsqueda (33 estables, 2 calificadas por IA). La producción MCP aún sirve la última imagen implementada hasta que esta rama se fusione.

El servidor MCP incluye el directorio de servidores públicos documentado a continuación como datos de descubrimiento validados. Un cliente MCP puede llamar a recipes_mcp_servers_list para buscarlo por proveedor o capacidad (por ejemplo, cloud observability) y luego llamar a recipes_mcp_server_get para obtener la URL de configuración oficial, las expectativas de autenticación y el valor predeterminado más seguro. La inclusión en el catálogo no conecta, instala, autentica ni respalda un servidor de terceros; los operadores aún deben revisar y configurar cualquier servidor ascendente por separado.

Qué no es

El servidor MCP de Security Recipes no es un escáner, un creador de tickets, un sistema de implementación ni un ejecutor de comandos de propósito general. Su trabajo predeterminado es recuperar recetas y evidencia generada. Si agrega servidores MCP ascendentes, mantenga ese puente en solo lectura a menos que una revisión separada apruebe la mutación.

¿Qué endpoint debo usar?

SituaciónEndpoint
Este repositorio ejecutándose a través de Docker Compose en su máquinahttp://localhost/mcp
Imagen MCP Docker independiente mapeada con -p 8123:80http://localhost:8123/mcp
Una instancia implementada de Docker/nginx de este sitiohttps://YOUR-HOST/mcp
Un host de sitio solo estáticoSin endpoint MCP; ejecute el servidor MCP por separado.

Abrir /mcp en un navegador normal puede mostrar un error de método MCP o HTTP. Eso es esperado. Los clientes MCP se conectan enviando mensajes JSON-RPC a través del transporte seleccionado.

¿Ejecutando en CI en lugar de un cliente de chat? La Acción de GitHub de Seguridad de Salud se conecta a este servidor MCP automáticamente y convierte el contexto de recetas en verificaciones de salud de solicitudes de extracción activables.

Configurar este servidor MCP de Security Recipes

Use los valores a continuación para la página que está viendo ahora. Se actualizan desde el host actual del navegador, por lo que un puerto Docker local como 127.0.0.1:18080, una ejecución localhost simple y el sitio alojado security-recipes.ai producen la URL de cliente correcta y los metadatos públicos.

Detección de host

Preparando detalles del endpoint MCP para esta implementación.

dinámico

URL de cliente MCP ...

Fuente de recetas ...

Lista de permitidos de fuentes ...

JSON de cliente MCP

{}

Entorno de Docker Compose

RECIPES_MCP_SOURCE_INDEX_URL=...

mcp-server.toml\ independiente

source_index_url = "..."

Comandos de verificación de salud

docker compose ps

Para Docker Compose, mantenga RECIPES_MCP_SOURCE_INDEX_URL en la fuente interna http://security-recipes/api/recipes.json. Eso permite que el contenedor MCP lea las recetas exactas construidas desde este checkout, incluso antes de que un dominio público o certificado TLS esté listo. Para un servidor MCP independiente, apunte source_index_url a la fuente de recetas pública que se muestra arriba.

Configuración local rápida

Ejecute el sitio y el servidor MCP juntos:

docker compose up -d --build

Luego conecte un cliente MCP a:

http://localhost/mcp

Para clientes que aceptan configuración JSON, adapte esta forma al propio formato de configuración del cliente:

{
  "mcpServers": {
    "security-recipes": {
      "transport": "streamable-http",
      "url": "http://localhost/mcp"
    }
  }
}

Si desea ejecutar solo la imagen MCP:

docker build -f Dockerfile.mcp-server -t security-recipes-mcp .
docker run --rm -p 8123:80 security-recipes-mcp

Luego use:

http://localhost:8123/mcp

Si un cliente solo admite servidores stdio locales, ejecute el servidor Python con RECIPES_MCP_TRANSPORT=stdio y no publique un puerto HTTP.

Primeras llamadas de herramientas para probar

Después de que el cliente se conecte, comience con llamadas de lectura de bajo riesgo:

  1. Llame a recipes_server_info para confirmar el índice fuente, el TTL de caché y el recuento de servidores ascendentes.
  2. Llame a recipes_search con una descripción breve del hallazgo, por ejemplo log4j dependency update o stored xss sanitizer bypass.
  3. Llame a recipes_match_finding con un CVE, paquete, ecosistema, ID de regla o palabras clave.
  4. Llame a recipes_get con un slug o ruta devuelta para recuperar el registro completo de la receta.
  5. Llame a recipes_quality_report para inspeccionar los niveles de calidad y las brechas de mejora antes de promover recetas a flujos de trabajo automatizados.

Use facetas y umbrales de calidad cuando el agente conozca la forma del trabajo:

{
  "query": "SSDF repository evidence",
  "facets": ["compliance", "audit"],
  "min_quality": 70,
  "limit": 3
}

Los filtros de faceta alinean la selección de recetas con el resultado previsto: remediation para trabajo de parches, risk para explotabilidad e impacto, audit para mapeo de evidencia, compliance para preparación de estándares y code-hygiene para limpieza o endurecimiento de código fuente. min_quality permite a los agentes preferir recetas con entradas más sólidas, contratos de salida, verificación, salvaguardas y contexto relacionado.

Para mantener la biblioteca de recetas en sí, llama a:

{
  "facet": "compliance",
  "limit": 10
}

contra recipes_quality_report. La respuesta lista las recetas por debajo de la preparación de clase mundial y nombra las señales de calidad faltantes que se deben agregar a continuación.

Si eso funciona, agrega herramientas de paquetes de evidencia solo cuando el flujo de trabajo las necesite.

Configuración personalizada

Copia la plantilla antes de cambiar el comportamiento del servidor:

Copy-Item mcp-server.toml.example mcp-server.toml

Móntala en el contenedor:

docker run --rm -p 8123:80 \`
  -v "${PWD}/mcp-server.toml:/app/mcp-server.toml:ro" \`
  security-recipes-mcp

Usa mcp-server.toml para cambiar:

  • source_index_url: el feed de agente /api/recipes.json generado que se debe leer. El arreglo heredado /recipes-index.json todavía se acepta.
  • allowed_source_hosts: la lista de permitidos de hosts para ese índice.
  • las rutas de archivo de paquetes de evidencia generados.
  • la ruta del catálogo público de servidores MCP incluido.
  • TTL de caché, tiempo de espera de solicitud y límites de resultados.
  • servidores MCP ascendentes opcionales.

Mantén las credenciales fuera del archivo TOML. Coloca los secretos en variables de entorno.

Contexto MCP ascendente opcional

No hay servidores MCP ascendentes configurados por defecto. Eso evita que la implementación pública/sitio retenga credenciales de clientes o gaste tokens de terceros. Cuando agregues un ascendente, el puente opcional de este repositorio sigue siendo un cliente heredado de doble era: usa por defecto el protocolo 2025-06-18, envía initialize y almacena Mcp-Session-Id. Eso coincide con servidores Streamable HTTP más antiguos. No es un cliente 2026-07-28.

Para una implementación empresarial, agrega una entrada [[upstream_mcp_servers]] por cada endpoint HTTP o Streamable HTTP aprobado:

[[upstream_mcp_servers]]
id = "github"
label = "GitHub MCP Server"
description = "Repository, issue, PR, Actions, and code-security context."
url = "https://YOUR-GITHUB-MCP-ENDPOINT/mcp"
auth_token_env = "GITHUB_TOKEN"
allowed_tools = ["search_repositories", "get_issue", "get_pull_request"]
context_tool = "search_repositories"
context_query_argument = "query"
max_response_chars = 12000

Luego pasa el token en tiempo de ejecución:

docker run --rm -p 8123:80 \`
  -e GITHUB_TOKEN="$env:GITHUB_TOKEN" \`
  -v "${PWD}/mcp-server.toml:/app/mcp-server.toml:ro" \`
  security-recipes-mcp

Solo se llaman directamente ascendentes HTTP o Streamable HTTP. Si un conector ascendente es solo stdio, ejecútalo detrás de una puerta de enlace interna revisada antes de adjuntarlo a este servidor.

Para producción, prefiere allowed_tools explícito. No confíes en heurísticas de nombres de herramientas para conectores que puedan acceder a código privado, recursos en la nube, datos de clientes, tickets, implementaciones, secretos o terminales.

Fuentes de contexto público y de producto

No toda fuente útil necesita ser un servidor MCP. Usa la fuente segura más simple que proporcione la evidencia.

FuenteÚsala paraConfiguración más segura
API de deps.devMetadatos de paquetes, señales de gráfico de dependencias, alias de avisos y contexto de versiones.Sin token de deps.dev. Usa coordenadas de paquetes o URL de paquetes derivadas de SBOM.
API de OSV.devBúsqueda de vulnerabilidades de código abierto por URL de paquete, ecosistema, versión, commit o consulta por lotes.Sin token de OSV. Limita las consultas a los paquetes en el hallazgo.
APIs de GitHub o Servidor MCP de GitHubRepositorio, issue, pull request, Actions, Dependabot, escaneo de secretos, escaneo de código y contexto de avisos.Usa primero permisos de lectura con alcance de repositorio. Habilita la mutación por separado.
MCP de documentación de Semgrep e integraciones de SemgrepConsulta de documentación de Semgrep, guía de SAST/SCA/secretos y triaje de hallazgos.La documentación pública puede ser sin token; los hallazgos de la organización requieren autenticación de Semgrep.
Integraciones de Snyk Studio / Snyk MCPContexto de vulnerabilidades respaldado por Snyk, consejos de corrección y flujos de trabajo de seguridad agénticos.Requieren autenticación de tenant, org y API/plataforma apropiada para la integración.
Servidores MCP de AWS LabsInteligencia en la nube, documentación, inspección de cuentas/recursos e investigación específica de servicios.Usa alcance de cuenta, región y rol. Revisa cada herramienta con capacidad de escritura.
Servidor MCP de AzureRecursos de Azure, suscripción y contexto en la nube.Usa alcance de tenant/suscripción y autenticación de Azure con privilegios mínimos.
Servidores MCP de CloudflareCuenta de Cloudflare, zona, Workers, observabilidad y contexto de documentación.Usa permisos con alcance de cuenta y revisa las herramientas que cambian zonas.
Toolkit y Catálogo MCP de DockerDescubrimiento de servidores curado, puertas de enlace y ejecución MCP contenerizada.Revisa cada servidor del catálogo antes de promocionarlo.

No instales servidores MCP aleatorios solo porque mencionen seguridad. Revisa la fuente, la procedencia del paquete, los alcances de tokens, el acceso a la red, las descripciones de herramientas, la cadencia de actualizaciones y si el conector puede escribir o ejecutar comandos.

API de recetas y soporte MCP

El sitio expone recetas a través de feeds JSON estáticos y el servidor MCP opcional de solo lectura. Usa esas superficies para permitir que agentes aprobados busquen, recuperen y emparejen recetas sin agregar un chatbot alojado en el sitio.

ModoFuentesNotas
Feed de recetas estático/api/recipes.json y /recipes-index.json.Mejor para fetch directo, inyección en CI, instantáneas locales y sincronización simple de catálogos.
Servidor MCP de Security Recipesrecipes_search, recipes_get, recipes_match_finding y herramientas relacionadas de solo lectura.Mejor cuando un agente compatible con MCP debe buscar recetas en tiempo de ejecución usando facetas, umbrales de calidad y metadatos de hallazgos.
Contexto MCP ascendente aprobadoGitHub, Semgrep, Snyk, AWS, Azure, Cloudflare, Docker o puertas de enlace internas aprobados por la organización.Mantén el contexto ascendente con alcance, revisado y de solo lectura a menos que un flujo de trabajo separado apruebe explícitamente escrituras.

Los servidores MCP stdio locales deben ejecutarse en el cliente MCP nativo del host del agente. Envuelve solo conectores revisados detrás de una puerta de enlace HTTP aprobada cuando los clientes de navegador o alojados necesiten acceso.

Política de conectores

Antes de agregar cualquier servidor MCP a un flujo de trabajo de remediación, responde estas preguntas:

PreguntaValor predeterminado más seguro
¿Este hallazgo necesita el conector?No, a menos que la tarea falle sin él.
¿Alguna herramienta expuesta puede escribir, eliminar, implementar, ejecutar o enviar mensajes?Deshabilita o aísla hasta que se revise.
¿Qué alcances de tokens se requieren?Solo lectura, con alcance de repositorio, con alcance de tenant y con límite de tiempo cuando sea posible.
¿La salida de la herramienta podría incluir secretos, datos de clientes, código privado o hallazgos sensibles?Mantenla interna y con políticas de acceso.
¿Las descripciones y versiones de herramientas están fijadas?Fija versiones y revisa los cambios en la lista de herramientas antes de promocionar.
¿Las llamadas se registran?Prefiere puertas de enlace que registren nombre de herramienta, clase de entrada, clase de salida, actor e ID de ejecución.

Patrón de configuración por agente

Cada configuración de cliente es diferente, pero la forma segura es la misma:

  1. Agrega la fuente de recetas o el endpoint MCP de Security Recipes.
  2. Agrega solo los servidores MCP necesarios para la clase de hallazgo.
  3. Otorga primero alcances de solo lectura.
  4. Coloca condiciones de detención en el archivo de reglas nativo del agente.
  5. Prueba con un hallazgo de bajo riesgo antes de usar el conector en un backlog.

Ejemplo de texto de tarea:

Use the matching security-recipes.ai recipe.
Read advisory and repository context from approved read-only MCP connectors.
Do not use write-capable MCP tools.
Make one PR or stop with a triage note.

Solución de problemas

SíntomaQué verificar
El cliente no puede conectarse a http://localhost/mcp.Confirma que docker compose ps muestra tanto security-recipes como mcp-server en ejecución.
/mcp se abre con un error en el navegador.Esto puede ser normal. Prueba con un cliente MCP o el Inspector MCP.
El registro del servidor dice transport 'stdio'.Establece RECIPES_MCP_TRANSPORT=streamable-http para clientes HTTP y reconstruye/reinicia el contenedor.
Las herramientas no pueden encontrar recetas.Verifica recipes_server_info, source_index_url, allowed_source_hosts y si la URL del índice es accesible.
Faltan herramientas ascendentes.Llama a recipes_mcp_upstream_servers, luego a recipes_mcp_upstream_tools. Confirma la URL ascendente, la variable de entorno del token y allowed_tools.
Un cliente solo admite stdio.Ejecuta python mcp_server.py con RECIPES_MCP_TRANSPORT=stdio, o usa un cliente/puerta de enlace que admita Streamable HTTP.

Cuándo no usar MCP

Omite MCP cuando un archivo local o un adjunto de tarea sea suficiente. Una alerta de escáner copiada en un issue, un archivo de receta incluido y el comando de prueba del repositorio pueden ser mejores para un pequeño ajuste de dependencia.

Usa MCP cuando el agente necesite contexto estructurado fresco: metadatos de avisos, resultados de escaneo de código, evidencia SBOM, estado de CI, datos de propiedad o un catálogo grande de recetas que sería incómodo pegar en cada tarea.

Ver también