Security Recipes

Inteligência de CVE somente leitura, playbooks de remediação e guias de configuração de agentes. Não é um scanner.

Documentação

Esta página cobre a camada de segurança e contexto específica do MCP: papéis de servidor, transportes, padrões somente leitura, acesso a ferramentas com escopo, implantação e revisão de conectores. Para padrões de entrega que não usam MCP, como receitas vendidas, arquivos de regras nativos e injeção em CI, use a arquitetura de integração de agentes de IA.

O MCP permite que um aplicativo de IA se conecte a contexto e ferramentas externas por meio de um protocolo padrão. Para remediação de vulnerabilidades, use-o para dar a um agente as evidências necessárias para corrigir um achado: a receita, dados de avisos, saída do scanner, contexto do repositório e regras de revisão.

Padrão mais seguro: comece somente leitura. Trate ferramentas MCP com capacidade de escrita, implantação ou execução de comandos como uma revisão de segurança separada.

Revisado pela última vez contra a especificação pública do MCP 2026-07-28 e a implementação mcp_server.py deste repositório em 21 de agosto de 2026. Verificado novamente em 23 de agosto de 2026: 2026-07-28 ainda é atual e sem estado. Não há handshake initialize. Cada solicitação carrega versão do protocolo, identidade do cliente e capacidades. Revisões do Streamable HTTP até 2025-11-25 poderiam atribuir Mcp-Session-Id; esta revisão ignora esse cabeçalho e não gera IDs de sessão. 2025-11-25 permanece como uma revisão final anterior. O ID do perfil de conformidade de protocolo existente permanece mcp-authorization-2025-11-25. Isso é um ID de pacote, não uma afirmação de que 2025-11-25 ainda é a especificação atual.

O servidor de receitas FastMCP opcional deste repositório permanece somente leitura. A ponte upstream opcional em mcp_server.py ainda usa como padrão RECIPES_MCP_PROTOCOL_VERSION para 2025-06-18, ainda envia um handshake initialize e ainda armazena Mcp-Session-Id para Streamable HTTP legado. Isso é um padrão de compatibilidade, não uma afirmação de especificação atual. Não altere o padrão para 2026-07-28 sem implementar server/discover e remover initialize.

MCP em um minuto

O Model Context Protocol é um padrão aberto para conectar aplicativos de IA a sistemas externos. A página pública da especificação atual identifica a versão 2026-07-28 como a versão atual do protocolo.

Os principais papéis são:

PapelSignificado
HostO aplicativo de IA em que um usuário trabalha, como um IDE, assistente de desktop ou assistente de navegador.
ClienteO conector dentro desse host que fala MCP.
ServidorO programa ou serviço que expõe contexto e capacidades.

Servidores MCP podem expor:

Recurso do servidorUse paraExemplo de remediação
FerramentasFunções invocadas por modelo com esquemas de entrada.Buscar receitas, buscar um alerta SARIF, consultar uma fonte de avisos aprovada.
RecursosContexto selecionado pelo aplicativo, identificado por URI.Anexar um SBOM de pacote, arquivo de política ou documento de origem.
PromptsFluxos de trabalho reutilizáveis ou modelos de mensagem.Iniciar uma atualização de dependência ou fluxo de triagem SAST com instruções consistentes.

O MCP usa JSON-RPC. Os transportes padrão são stdio e Streamable HTTP. Use Streamable HTTP para servidores hospedados ou acessíveis por navegador. Use stdio quando o cliente inicia um subprocesso local.

Pilha de contexto recomendada

Comece com três camadas. Adicione mais apenas quando o achado exigir.

CamadaPropósitoExemplos
Contexto da receitaDiz ao agente como esta classe de correção deve ser tratada.Índice de receitas security-recipes.ai, página de receita correspondente, SECURITY_RECIPES.md local.
Contexto do achadoExplica a vulnerabilidade ou alerta específico.OSV, deps.dev, dados do GitHub Advisory, Snyk, Semgrep, CodeQL, SARIF, SBOMs.
Contexto do repositórioPermite que o agente inspecione código e evidências.GitHub, GitLab, Azure DevOps, logs de CI, proteções de branch, CODEOWNERS, runbooks.

Um agente não precisa de todos os conectores para cada tarefa. Uma atualização de dependência pode precisar apenas da receita, metadados do pacote, lockfile e CI. Uma remediação SAST pode precisar do alerta SARIF, arquivo de origem afetado, testes relacionados e regra de codificação segura.

Contexto somente leitura

Contexto somente leitura significa que o agente pode recuperar evidências, mas a camada de contexto não lhe dá autoridade de mutação. O agente pode buscar receitas, obter um achado do scanner, ler um aviso, inspecionar um arquivo do repositório ou coletar status de CI. Ele não deve criar tickets, enviar branches, editar segredos, rotacionar chaves, implantar, descartar alertas ou gravar de volta em sistemas de origem pelo mesmo conector.

Essa divisão importa porque a coleta de contexto é de alto volume e baixo risco, enquanto a mutação é onde erros de autorização se tornam duradouros. Mantenha o perfil MCP padrão somente leitura e roteie ferramentas com capacidade de escrita por um caminho de aprovação separado.

Para uma execução de remediação, um pacote de contexto somente leitura geralmente inclui:

  • a receita selecionada e suas condições de parada;
  • o achado, alerta, CVE, GHSA, pacote, regra ou par origem/destino específico;
  • arquivos de origem afetados, manifests, lockfiles, SBOMs, SARIF e logs de CI;
  • política relevante de propriedade e revisão, como CODEOWNERS ou proteção de branch;
  • requisitos de evidência gerada que o PR deve satisfazer.

Se um fluxo de trabalho realmente precisar de mutação, divida o fluxo: use MCP somente leitura para coletar contexto primeiro e depois peça uma concessão de escrita mais restrita, vinculada a uma ação, um repositório, um branch, um ticket ou uma rota de saída. A etapa de revisão deve ser capaz de ver qual concessão foi usada e por quê.

Servidor MCP Security Recipes

Este repositório inclui um servidor FastMCP opcional em mcp_server.py. É um servidor de conhecimento somente leitura para security-recipes.ai.

Ele expõe ferramentas MCP que permitem que clientes compatíveis:

Grupo de ferramentasO que fazExemplos
Metadados e cache do servidorInspeciona configuração e atualiza o índice de receitas em memória.recipes_server_info, recipes_refresh
Busca e recuperação de receitasBusca, lista, obtém e combina receitas a um achado.recipes_search, recipes_list, recipes_get, recipes_match_finding
Qualidade de receitasPontua receitas de descoberta e nomeia entradas ausentes, orientação de seleção, contratos de saída, verificação ou guardrails.recipes_quality_report
Inteligência do catálogo CVEBusca o catálogo contínuo Médio/Alto/Crítico e obtém um registro normalizado mais seu plano de mudança agêntica.recipes_cve_catalog_info, recipes_cve_search, recipes_cve_get
Planejamento de playbooksLista os 75 playbooks publicados e retorna um plano inicial limitado para um achado.recipes_playbooks_list, recipes_playbook_get, recipes_playbook_plan
Política de controle e gatewayRetorna pacotes de política gerados para workflow e gateway MCP.recipes_workflow_control_plane, recipes_mcp_gateway_policy
Evidência de agente e contexto seguroRetorna pacotes gerados de confiança, identidade, entitlement, telemetria, incidentes e garantia.recipes_agentic_assurance_pack, recipes_agent_identity_ledger, recipes_secure_context_trust_pack
Evidência de governança MCPRetorna pacotes de intake de conectores, autorização, elicitação, limite stdio, risco de ferramentas e drift.recipes_mcp_connector_intake_pack, recipes_mcp_authorization_conformance_pack, recipes_mcp_tool_risk_contract
Descoberta de servidores MCP públicosBusca e inspeciona o catálogo integrado de servidores MCP documentados oficialmente listados nesta página.recipes_mcp_servers_list, recipes_mcp_server_get
Ponte upstream opcionalLista servidores MCP upstream configurados, inspeciona ferramentas, chama ferramentas permitidas e coleta contexto limitado.recipes_mcp_upstream_servers, recipes_mcp_upstream_tools, recipes_mcp_upstream_call, recipes_mcp_upstream_context

A lista exata de ferramentas está disponível na visualização tools/list do seu cliente MCP. Este repositório define atualmente 75 ferramentas recipes_*. Uma verificação falha se essa contagem publicada divergir dos registros @mcp.tool() em mcp_server.py.

recipes_cve_get é limitado por evidências. Siga uma substituição Markdown estável quando existir. Trate um plano composto como um guardrail, não um piso específico de produto. Quando um registro do catálogo tem enriquecimento de IA completo e específico e nenhuma substituição estável, a ferramenta anexa esse enriquecimento como recommended_recipe.ai_enrichment com role: evidence-qualified-guidance e not_a_stable_override: true. Não é um piso nomeado e não altera recommended_source de composed-agentic-plan. Rascunhos de CVE em desenvolvimento permanecem noindex e não são substituições de catálogo; texto de versão residual ou uma próxima tag adivinhada nunca é uma correção nomeada. O catálogo do branch publica atualmente 35 páginas CVE indexáveis por busca (33 estáveis, 2 qualificadas por IA). O MCP de produção ainda serve a última imagem implantada até que este branch seja mesclado.

O servidor MCP inclui o diretório de servidores públicos documentado abaixo como dados de descoberta validados. Um cliente MCP pode chamar recipes_mcp_servers_list para buscar por provedor ou capacidade (por exemplo, cloud observability) e depois chamar recipes_mcp_server_get para obter a URL oficial de configuração, expectativas de autenticação e padrão mais seguro. A inclusão no catálogo não conecta, instala, autentica ou endossa um servidor de terceiros; operadores ainda devem revisar e configurar qualquer upstream separadamente.

O que não é

O servidor MCP Security Recipes não é um scanner, gravador de tickets, sistema de implantação ou executor de comandos de propósito geral. Seu trabalho padrão é recuperar receitas e evidências geradas. Se você adicionar servidores MCP upstream, mantenha essa ponte somente leitura, a menos que uma revisão separada aprove mutação.

Qual endpoint devo usar?

SituaçãoEndpoint
Este repositório rodando via Docker Compose na sua máquinahttp://localhost/mcp
Imagem Docker MCP autônoma mapeada com -p 8123:80http://localhost:8123/mcp
Uma instância Docker/nginx implantada deste sitehttps://YOUR-HOST/mcp
Um host de site somente estáticoSem endpoint MCP; execute o servidor MCP separadamente.

Abrir /mcp em um navegador normal pode mostrar um erro de método MCP ou HTTP. Isso é esperado. Clientes MCP se conectam enviando mensagens JSON-RPC pelo transporte selecionado.

Rodando em CI em vez de um cliente de chat? A Security Health GitHub Action conecta-se a este servidor MCP automaticamente e transforma o contexto da receita em verificações de saúde de pull request alternáveis.

Configurar este servidor MCP Security Recipes

Use os valores abaixo para a página que você está vendo agora. Eles são atualizados a partir do host atual do navegador, então uma porta Docker local como 127.0.0.1:18080, uma execução localhost simples e o site hospedado security-recipes.ai produzem a URL correta do cliente e metadados públicos.

Detectando host

Preparando detalhes do endpoint MCP para esta implantação.

dinâmico

URL do cliente MCP ...

Feed de receitas ...

Lista de permissões de origem ...

JSON do cliente MCP

{}

Ambiente Docker Compose

RECIPES_MCP_SOURCE_INDEX_URL=...

mcp-server.toml\ autônomo

source_index_url = "..."

Comandos de verificação de saúde

docker compose ps

Para Docker Compose, mantenha RECIPES_MCP_SOURCE_INDEX_URL no feed interno http://security-recipes/api/recipes.json. Isso permite que o contêiner MCP leia as receitas exatas construídas a partir deste checkout, mesmo antes de um domínio público ou certificado TLS estar pronto. Para um servidor MCP autônomo, aponte source_index_url para o feed público de receitas mostrado acima.

Configuração local rápida

Execute o site e o servidor MCP juntos:

docker compose up -d --build

Depois conecte um cliente MCP a:

http://localhost/mcp

Para clientes que aceitam configuração JSON, adapte esta forma ao formato de configuração do próprio cliente:

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

Se você quiser executar apenas a imagem MCP:

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

Depois use:

http://localhost:8123/mcp

Se um cliente suportar apenas servidores stdio locais, execute o servidor Python com RECIPES_MCP_TRANSPORT=stdio e não publique uma porta HTTP.

Primeiras chamadas de ferramenta para tentar

Depois que o cliente conectar, comece com chamadas de leitura de baixo risco:

  1. Chame recipes_server_info para confirmar o índice de origem, TTL de cache e contagem de servidores upstream.
  2. Chame recipes_search com uma descrição curta do achado, por exemplo log4j dependency update ou stored xss sanitizer bypass.
  3. Chame recipes_match_finding com um CVE, pacote, ecossistema, ID de regra ou palavras-chave.
  4. Chame recipes_get com um slug ou caminho retornado para recuperar o registro completo da receita.
  5. Chame recipes_quality_report para inspecionar níveis de qualidade e lacunas de melhoria antes de promover receitas para fluxos de trabalho automatizados.

Use facetas e limites de qualidade quando o agente souber a forma do trabalho:

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

Filtros de facetas alinham a seleção de receitas com o resultado pretendido: remediation para trabalho de patch, risk para explorabilidade e impacto, audit para mapeamento de evidências, compliance para prontidão de padrões e code-hygiene para limpeza ou endurecimento de código-fonte. min_quality permite que agentes prefiram receitas com entradas mais fortes, contratos de saída, verificação, salvaguardas e contexto relacionado.

Para manter a própria biblioteca de receitas, chame:

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

contra recipes_quality_report. A resposta lista receitas abaixo da prontidão de classe mundial e nomeia os sinais de qualidade ausentes a serem adicionados em seguida.

Se isso funcionar, adicione ferramentas de pacote de evidências somente quando o fluxo de trabalho precisar delas.

Configuração personalizada

Copie o modelo antes de alterar o comportamento do servidor:

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

Monte-o no contêiner:

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

Use mcp-server.toml para alterar:

  • source_index_url: o feed de agente /api/recipes.json gerado a ser lido. A matriz legada /recipes-index.json ainda é aceita.
  • allowed_source_hosts: a lista de permissões de host para esse índice.
  • caminhos de arquivos de pacote de evidências gerados.
  • o caminho do catálogo público de servidores MCP empacotado.
  • TTL de cache, tempo limite de solicitação e limites de resultados.
  • servidores MCP upstream opcionais.

Mantenha credenciais fora do arquivo TOML. Coloque segredos em variáveis de ambiente.

Contexto MCP upstream opcional

Nenhum servidor MCP upstream é configurado por padrão. Isso mantém a implantação pública/site sem reter credenciais de clientes ou gastar tokens de terceiros. Quando você adicionar um upstream, a ponte opcional deste repositório ainda é um cliente legado de dupla era: ela usa como padrão o protocolo 2025-06-18, envia initialize e armazena Mcp-Session-Id. Isso corresponde a servidores Streamable HTTP mais antigos. Não é um cliente 2026-07-28.

Para uma implantação empresarial, adicione uma entrada [[upstream_mcp_servers]] por endpoint HTTP ou Streamable HTTP aprovado:

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

Em seguida, passe o token em tempo de execução:

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

Somente upstreams HTTP ou Streamable HTTP são chamados diretamente. Se um conector upstream for somente stdio, execute-o atrás de um gateway interno revisado antes de anexá-lo a este servidor.

Para produção, prefira allowed_tools explícito. Não confie em heurísticas de nomes de ferramentas para conectores que podem acessar código privado, recursos de nuvem, dados de clientes, tickets, implantações, segredos ou terminais.

Fontes de contexto públicas e de produto

Nem toda fonte útil precisa ser um servidor MCP. Use a fonte segura mais simples que forneça as evidências.

FonteUse paraConfiguração mais segura
API deps.devMetadados de pacotes, sinais de grafo de dependências, aliases de avisos e contexto de versões.Sem token deps.dev. Use coordenadas de pacote ou URLs de pacotes derivadas de SBOM.
API OSV.devConsulta de vulnerabilidades de código aberto por URL de pacote, ecossistema, versão, commit ou consulta em lote.Sem token OSV. Limite consultas aos pacotes na descoberta.
APIs do GitHub ou Servidor MCP do GitHubRepositório, issue, pull request, Actions, Dependabot, varredura de segredos, varredura de código e contexto de avisos.Use permissões de leitura com escopo de repositório primeiro. Habilite mutação separadamente.
Docs MCP do Semgrep e integrações SemgrepConsulta de documentação do Semgrep, orientação SAST/SCA/segredos e triagem de descobertas.Documentos públicos podem ser sem token; descobertas da organização exigem autenticação Semgrep.
Integrações Snyk Studio / Snyk MCPContexto de vulnerabilidades com suporte Snyk, conselhos de correção e fluxos de trabalho de segurança agênticos.Exigem autenticação de tenant, org e API/plataforma apropriada à integração.
Servidores MCP do AWS LabsInteligência de nuvem, documentação, inspeção de contas/recursos e investigação específica de serviços.Use escopo de conta, região e função. Revise toda ferramenta com capacidade de escrita.
Servidor MCP do AzureRecursos do Azure, assinatura e contexto de nuvem.Use escopo de tenant/assinatura e autenticação Azure de privilégio mínimo.
Servidores MCP do CloudflareConta Cloudflare, zona, Workers, observabilidade e contexto de documentação.Use permissões com escopo de conta e revise ferramentas que alteram zonas.
Docker MCP Toolkit e CatálogoDescoberta de servidores curados, gateway e execução MCP conteinerizada.Revise cada servidor do catálogo antes da promoção.

Não instale servidores MCP aleatórios porque mencionam segurança. Revise fonte, proveniência do pacote, escopos de token, acesso de rede, descrições de ferramentas, cadência de atualização e se o conector pode escrever ou executar comandos.

API de receitas e suporte MCP

O site expõe receitas por meio de feeds JSON estáticos e do servidor MCP somente leitura opcional. Use essas superfícies para permitir que agentes aprovados pesquisem, recuperem e correspondam receitas sem adicionar um chatbot hospedado no site.

ModoFontesNotas
Feed de receitas estático/api/recipes.json e /recipes-index.json.Melhor para busca direta, injeção em CI, snapshots locais e sincronização simples de catálogo.
Servidor MCP Security Recipesrecipes_search, recipes_get, recipes_match_finding e ferramentas somente leitura relacionadas.Melhor quando um agente compatível com MCP deve pesquisar receitas em tempo de execução usando facetas, limites de qualidade e metadados de descobertas.
Contexto MCP upstream aprovadoGitHub, Semgrep, Snyk, AWS, Azure, Cloudflare, Docker ou gateways internos aprovados pela organização.Mantenha o contexto upstream com escopo, revisado e somente leitura, a menos que um fluxo de trabalho separado aprove explicitamente escritas.

Servidores MCP stdio locais devem ser executados no cliente MCP nativo do host do agente. Envolva apenas conectores revisados atrás de um gateway HTTP aprovado quando clientes de navegador ou hospedados precisarem de acesso.

Política de conectores

Antes de adicionar qualquer servidor MCP a um fluxo de trabalho de remediação, responda a estas perguntas:

PerguntaPadrão mais seguro
Esta descoberta precisa do conector?Não, a menos que a tarefa falhe sem ele.
Alguma ferramenta exposta pode escrever, excluir, implantar, executar ou enviar mensagens?Desative ou isole até revisar.
Quais escopos de token são necessários?Somente leitura, com escopo de repositório, com escopo de tenant e com limite de tempo quando possível.
A saída da ferramenta pode incluir segredos, dados de clientes, código privado ou descobertas sensíveis?Mantenha interno e com política de acesso.
As descrições e versões das ferramentas estão fixadas?Fixe versões e revise mudanças na lista de ferramentas antes da promoção.
As chamadas são registradas?Prefira gateways que registrem nome da ferramenta, classe de entrada, classe de saída, ator e ID de execução.

Padrão de configuração por agente

Cada configuração de cliente é diferente, mas a forma segura é a mesma:

  1. Adicione a fonte de receitas ou o endpoint MCP do Security Recipes.
  2. Adicione apenas os servidores MCP necessários para a classe de descoberta.
  3. Conceda escopos somente leitura primeiro.
  4. Coloque condições de parada no arquivo de regras nativo do agente.
  5. Teste com uma descoberta de baixo risco antes de usar o conector em um backlog.

Exemplo de texto de tarefa:

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.

Solução de problemas

SintomaO que verificar
O cliente não consegue conectar a http://localhost/mcp.Confirme que docker compose ps mostra security-recipes e mcp-server em execução.
/mcp abre com erro no navegador.Isso pode ser normal. Teste com um cliente MCP ou o MCP Inspector.
O log do servidor diz transport 'stdio'.Defina RECIPES_MCP_TRANSPORT=streamable-http para clientes HTTP e reconstrua/reinicie o contêiner.
As ferramentas não encontram receitas.Verifique recipes_server_info, source_index_url, allowed_source_hosts e se a URL do índice está acessível.
Ferramentas upstream estão ausentes.Chame recipes_mcp_upstream_servers e depois recipes_mcp_upstream_tools. Confirme a URL upstream, a variável de ambiente do token e allowed_tools.
Um cliente suporta apenas stdio.Execute python mcp_server.py com RECIPES_MCP_TRANSPORT=stdio, ou use um cliente/gateway que suporte Streamable HTTP.

Quando não usar MCP

Pule MCP quando um arquivo local ou anexo de tarefa for suficiente. Um alerta de scanner copiado em uma issue, um arquivo de receita fornecido e o comando de teste do repositório podem ser melhores para um pequeno ajuste de dependência.

Use MCP quando o agente precisar de contexto estruturado atualizado: metadados de avisos, resultados de varredura de código, evidências de SBOM, status de CI, dados de propriedade ou um grande catálogo de receitas que seria inconveniente colar em cada tarefa.

Veja também