Pular para o conteúdo principal

MCP Server (SbD-ToE)

Quando um agente de código quer aplicar o SbD-ToE, tem duas opções: ou adivinha o manual a partir do que treinou, ou consulta-o numa fonte que devolve respostas estruturadas com identificadores citáveis. O @shiftleftpt/sbd-toe-mcp existe para tornar a segunda opção trivial.

É o servidor Model Context Protocol (MCP) oficial do SbD-ToE. Expõe o manual (capítulos 00–14), a ontologia AppSec Core v1 e os cross-checks normativos publicados através de tools, resources e prompts MCP — para que o Claude, o GitHub Copilot, o Cursor, o Windsurf, o Zed (ou qualquer outro cliente MCP) parem de citar o manual de memória e passem a pedir-lho à fonte, com IDs reais. Em prática: cada CTRL-*, REQ-*, THR-* ou ART-* que o agente refere passa a ser verificável.

AtributoValor
Package@shiftleftpt/sbd-toe-mcp (npm)
RepositórioShiftleftpt/sbd-toe-mcp-poc (GitHub)
Bináriosbd-toe-mcp
RequisitosNode.js ≥ 20.9.0
LicenciamentoApache-2.0 (código/runtime) · CC BY-SA 4.0 (snapshots de manual incluídos)
Transportestdio (compatível com todos os clientes MCP padrão)
Versão actual e content lag

A versão actualmente publicada (@shiftleftpt/sbd-toe-mcp@0.9.0) inclui o canon (capítulos 00–14), a ontologia AppSec Core v1 e os cross-checks normativos CRA, DORA, NIS2, GDPR e ENISA/CSA — todos indexados no KG e citáveis via search_sbd_toe_manual.

Excepção: o cross-check do AI Act (Regulamento (UE) 2024/1689), adicionado ao manual web na release v1.3.0 posterior ao snapshot do servidor, ainda não está indexado. Para perguntas sobre AI Act, consultar directamente o manual web em /sbd-toe/cross-check-normativo/ai-act/intro até nova publicação do MCP.


Para que serve

Há três tipos de momento em que um agente recorre ao SbD-ToE — perceber o que o manual diz, perceber como aplicar o que o manual diz, e configurar-se a si próprio para o fazer bem. O MCP atende cada um com um conjunto distinto de tools:

ModoQuando usarTools-chave
CONSULT"O que o manual diz?", "O que se aplica a este projecto?", "Que controlos estão activos?"consult_security_requirements, search_sbd_toe_manual, map_sbd_toe_applicability, query_sbd_toe_entities
GUIDE"Como implemento isto?", "Como reviso este PR?", "Que threats aplicam aqui?"get_guide_by_role, get_threat_landscape, plan_sbd_toe_repo_governance, map_sbd_toe_review_scope, prepare_sbd_toe_codegen_context
SETUP"Configurar o meu cliente AI para usar o SbD-ToE"generate_sbd_toe_skill, setup_sbd_toe_agent

A linha editorial atravessa todos os modos: o MCP devolve aquilo que o manual diz; o LLM gera o conteúdo final. Isso obriga a uma disciplina de rotulagem — cada afirmação na resposta vem marcada como manual-grounded, observed, inferred ou not verified. É a forma de manter visível o que veio da fonte, o que veio da observação directa, o que foi inferido pelo modelo e o que ainda está por confirmar.


Tools, resources e prompts disponíveis

Tools (operações)

ToolModoPropósito
search_sbd_toe_manualCONSULTPesquisa narrativa/conceptual com citações
consult_security_requirementsCONSULTDeterminístico: requisitos + controlos activos por risk level (com concerns)
map_sbd_toe_applicabilityCONSULTQue capítulos/controlos se aplicam ao projecto
get_sbd_toe_chapter_briefCONSULTResumo estruturado de um capítulo (fases, artefactos, tópicos)
list_sbd_toe_chaptersCONSULTÍndice dos capítulos com aplicabilidade
query_sbd_toe_entitiesCONSULTProcurar controlos (CTRL-*), artefactos (ART-*), práticas
resolve_entitiesCONSULTFiltro de baixo nível sobre a ontologia
get_guide_by_roleGUIDEPráticas por role (developer, appsec-engineer, devops-sre, …) e fase do SDLC
get_threat_landscapeGUIDEThreats relevantes por risk level e concern (com confiança de mitigação)
plan_sbd_toe_repo_governanceGUIDELista artefactos requeridos pelo manual, agrupados por capítulo
map_sbd_toe_review_scopeGUIDEBundles a rever dado um conjunto de ficheiros alterados
prepare_sbd_toe_codegen_contextGUIDEContexto determinístico para codegen / review / test-plan (com citation_map fechado)
inspect_sbd_toe_retrievalDIAGDiagnóstico do retriever
generate_sbd_toe_skillSETUPDevolve o conteúdo canónico da skill a guardar no cliente

Resources (URIs sbd://toe/*)

Resource URIConteúdo
sbd://toe/agent-guideGuia operacional completo (LER PRIMEIRO) — modos, roteamento, padrões epistémicos
sbd://toe/index-compactMapa compacto JSON do manual
sbd://toe/chapter-applicability/{riskLevel}Capítulos activos/condicionais/excluídos por risk level
sbd://toe/ontologyOntologia YAML — domain_mapping, regras de inferência, concerns
sbd://toe/grounded-codegen-guideGuia agente para prepare_sbd_toe_codegen_context (workflow + disciplina de output)
sbd://toe/versionNome / versão / descrição do servidor a correr

Prompts

PromptQuando
setup_sbd_toe_agent(riskLevel, projectRole)Setup de sessão — capítulos activos + regras específicas do risk level
ask_sbd_toe_manual(question)Q&A directo grounded

Vocabulário controlado

O servidor expõe valores fechados para parâmetros — usar fora destes valores não devolve resultados.

Risk levels:

NívelÂmbito
L1Baixo risco — interno, sem dados sensíveis
L2Médio risco — APIs públicas, dados de utilizador (desbloqueia capítulos 06 e 11)
L3Alto risco — PII, sistemas regulados (desbloqueia adicionalmente o capítulo 13)

Concerns (vocabulário ontológico, lowercase exacto):

auth · logging · validation · api · config · integrity · distribution · ide · requirements · architecture · iac · encryption

Roles canónicos (aceitam aliases):

developer · appsec-engineer · arquitetos-software · devops-sre · qa · security-champion · product-owner · scrum-master · operacoes · grc-compliance · gestao-executiva · auditores · fornecedores-terceiros

São os 13 papéis canónicos do manual (Papéis e Responsabilidades). O servidor aceita aliases comuns (ex.: appsecappsec-engineer, devops/sredevops-sre, cisogestao-executiva, compliancegrc-compliance) e resolve-os sempre para um destes 13.


Convenções de identificadores

  • Artefactos: ART-<chapterId>-<name> — listar via get_sbd_toe_chapter_brief
  • Controlos: CTRL-<chapter>-<number> — pesquisar via query_sbd_toe_entities
  • Em modo prepare_sbd_toe_codegen_context, o citation_map devolvido é o mundo fechado de IDs válidos para a tarefa — IDs fora do citation_map não existem para efeitos de grounding.

Padrão epistémico exigido

Toda a resposta gerada com base no MCP deve rotular cada afirmação:

RótuloSignificado
manual-groundedRecuperado via MCP — citar chapterId ou ID de controlo
observedDirectamente visível no repositório/codebase
inferredConclusão lógica a partir de factos grounded ou observed — marcar explicitamente
not verifiedNão confirmado — nunca apresentar como facto

Em particular, o servidor nunca deve ser usado para declarar conformidade regulamentar com base em código gerado: o overlay regulamentar serve como cross-check, não como sinal de conformidade.


Próximos passos

  1. Quickstart — pôr a correr em 60 segundos (Claude Code, Cursor).
  2. Instalação por cliente — Claude Code, Claude Desktop, Cursor, VS Code (Copilot), Windsurf, Zed.
  3. Skills e agentes — onde guardar a skill e como inicializar a sessão.
  4. Tools reference e resources / prompts — API completa.
  5. Casos de uso — receitas prontas: auditoria de PR, codegen grounded, threat modeling, bootstrap de governança, onboarding, cross-check normativo.
  6. Padrões avançados · Disciplina epistémica · Troubleshooting / FAQ · Versionamento / roadmap.