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:
| Papel | Significado |
|---|---|
| Host | O aplicativo de IA em que um usuário trabalha, como um IDE, assistente de desktop ou assistente de navegador. |
| Cliente | O conector dentro desse host que fala MCP. |
| Servidor | O programa ou serviço que expõe contexto e capacidades. |
Servidores MCP podem expor:
| Recurso do servidor | Use para | Exemplo de remediação |
|---|---|---|
| Ferramentas | Funções invocadas por modelo com esquemas de entrada. | Buscar receitas, buscar um alerta SARIF, consultar uma fonte de avisos aprovada. |
| Recursos | Contexto selecionado pelo aplicativo, identificado por URI. | Anexar um SBOM de pacote, arquivo de política ou documento de origem. |
| Prompts | Fluxos 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.
| Camada | Propósito | Exemplos |
|---|---|---|
| Contexto da receita | Diz 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 achado | Explica a vulnerabilidade ou alerta específico. | OSV, deps.dev, dados do GitHub Advisory, Snyk, Semgrep, CodeQL, SARIF, SBOMs. |
| Contexto do repositório | Permite 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 ferramentas | O que faz | Exemplos |
|---|---|---|
| Metadados e cache do servidor | Inspeciona configuração e atualiza o índice de receitas em memória. | recipes_server_info, recipes_refresh |
| Busca e recuperação de receitas | Busca, lista, obtém e combina receitas a um achado. | recipes_search, recipes_list, recipes_get, recipes_match_finding |
| Qualidade de receitas | Pontua 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 CVE | Busca 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 playbooks | Lista 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 gateway | Retorna pacotes de política gerados para workflow e gateway MCP. | recipes_workflow_control_plane, recipes_mcp_gateway_policy |
| Evidência de agente e contexto seguro | Retorna 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 MCP | Retorna 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úblicos | Busca 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 opcional | Lista 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ção | Endpoint |
|---|---|
| Este repositório rodando via Docker Compose na sua máquina | http://localhost/mcp |
Imagem Docker MCP autônoma mapeada com -p 8123:80 | http://localhost:8123/mcp |
| Uma instância Docker/nginx implantada deste site | https://YOUR-HOST/mcp |
| Um host de site somente estático | Sem 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:
- Chame
recipes_server_infopara confirmar o índice de origem, TTL de cache e contagem de servidores upstream. - Chame
recipes_searchcom uma descrição curta do achado, por exemplolog4j dependency updateoustored xss sanitizer bypass. - Chame
recipes_match_findingcom um CVE, pacote, ecossistema, ID de regra ou palavras-chave. - Chame
recipes_getcom um slug ou caminho retornado para recuperar o registro completo da receita. - Chame
recipes_quality_reportpara 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.jsongerado a ser lido. A matriz legada/recipes-index.jsonainda é 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.
| Fonte | Use para | Configuração mais segura |
|---|---|---|
| API deps.dev | Metadados 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.dev | Consulta 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 GitHub | Repositó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 Semgrep | Consulta 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 MCP | Contexto 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 Labs | Inteligê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 Azure | Recursos do Azure, assinatura e contexto de nuvem. | Use escopo de tenant/assinatura e autenticação Azure de privilégio mínimo. |
| Servidores MCP do Cloudflare | Conta 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álogo | Descoberta 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.
| Modo | Fontes | Notas |
|---|---|---|
| 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 Recipes | recipes_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 aprovado | GitHub, 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:
| Pergunta | Padrã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:
- Adicione a fonte de receitas ou o endpoint MCP do Security Recipes.
- Adicione apenas os servidores MCP necessários para a classe de descoberta.
- Conceda escopos somente leitura primeiro.
- Coloque condições de parada no arquivo de regras nativo do agente.
- 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
| Sintoma | O 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
- Integrar um Agente de IA
- Comparação de Agentes de IA
- Navegador de Receitas
- Remediação de Segurança
- Pacote de Prontidão MCP Hospedado — implantação, transporte, autenticação e prontidão operacional
- Limite de Elicitação MCP — solicitações seguras de entrada do usuário sem expansão oculta de autoridade
- Cobertura de Riscos MCP e Habilidades Agênticas — cobertura em riscos de conector, ferramenta e habilidade
- Limite de Lançamento MCP STDIO — lançamento de processo local, ambiente e limites de comando
- Runbook MCP local