Servidor MCP
O braito expõe suas notas como ferramentas para assistentes de IA via Model Context Protocol (JSON-RPC 2.0 via stdio).
Iniciar o servidor
bun src/cli/index.ts mcp --root /caminho/para/seu/projeto
# Gerar notas se não existirem e depois iniciar
bun src/cli/index.ts mcp --root /caminho/para/seu/projeto --auto-generate
# Servir notas de múltiplos repositórios em um único servidor MCP (polyrepo)
bun src/cli/index.ts mcp --roots "api=/caminho/api,web=/caminho/web,infra=/caminho/infra"
Quando --roots é usado, cada chamada de ferramenta deve incluir o argumento repo para desambiguar (chame list_repos primeiro para descobrir os aliases). Com apenas um repo registrado (via --root ou uma única entrada em --roots), repo é opcional.
Conectar a um assistente de IA
Adicione o braito à configuração do seu cliente MCP:
Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"braito": {
"command": "bun",
"args": [
"/caminho/para/braito/src/cli/index.ts",
"mcp",
"--root",
"/caminho/para/seu/projeto"
]
}
}
}
Claude Code (~/.claude/config.json):
{
"mcpServers": {
"braito": {
"command": "bun",
"args": [
"/caminho/para/braito/src/cli/index.ts",
"mcp",
"--root",
"/caminho/para/seu/projeto"
]
}
}
}
:::
O servidor MCP também pode rodar fora de uma IDE — qualquer cliente que fale JSON-RPC 2.0 via stdio pode se conectar.
Ferramentas disponíveis
| Ferramenta | Descrição |
|---|---|
list_repos | Lista repositórios registrados no servidor MCP (modo multi-repo) |
get_file_note | Nota completa de um arquivo específico |
search_by_criticality | Arquivos acima de um threshold de criticidade, ordenados decrescentemente |
get_index | Índice completo ranqueado de todas as notas |
get_architecture_context | Visão geral sintetizada — arquivos mais críticos, breakdown por domínio, invariantes |
get_impact | Raio de impacto de um arquivo — quais arquivos dependem dele (BFS, profundidade configurável) |
search | Busca BM25 ranqueada em todos os campos de notas (fuzzy + prefix) |
get_domain | Todos os arquivos em um domínio específico, ordenados por criticidade |
get_business_rules | Extrai regras de negócio, restrições de domínio e padrões de validação de um arquivo |
get_governance_context | Documentos de governança detectados (Docs/, Workflows/, Quality/), estilo, mapeamentos de domínio |
get_divergences | Divergências estruturais entre docs de governança e o código — arquivos ausentes, dependências proibidas, domínios não declarados, hotspots não documentados |
Detalhes das ferramentas
get_file_note
{ "tool": "get_file_note", "arguments": { "path": "src/core/llm/synthesizeFileNote.ts" } }
Retorna o JSON completo do AiFileNote para o arquivo especificado.
get_impact
{ "tool": "get_impact", "arguments": { "path": "src/core/types/ai-note.ts", "depth": 3 } }
Retorna { file, totalAffected, dependents: [{ relativePath, criticalityScore, domain, level }] } via BFS do grafo de dependências reversas.
search
{ "tool": "search", "arguments": { "query": "timeout LLM" } }
Busca em todos os arrays observed[], inferred[] e evidence[].detail de todas as notas. Retorna resultados ranqueados.
get_domain
{ "tool": "get_domain", "arguments": { "domain": "llm" } }
Retorna { domain, fileCount, avgCriticality, files } — todos os arquivos cujo caminho contém o nome do domínio, ordenados por score decrescente.