Pular para o conteúdo principal

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

FerramentaDescrição
list_reposLista repositórios registrados no servidor MCP (modo multi-repo)
get_file_noteNota completa de um arquivo específico
search_by_criticalityArquivos acima de um threshold de criticidade, ordenados decrescentemente
get_indexÍndice completo ranqueado de todas as notas
get_architecture_contextVisão geral sintetizada — arquivos mais críticos, breakdown por domínio, invariantes
get_impactRaio de impacto de um arquivo — quais arquivos dependem dele (BFS, profundidade configurável)
searchBusca BM25 ranqueada em todos os campos de notas (fuzzy + prefix)
get_domainTodos os arquivos em um domínio específico, ordenados por criticidade
get_business_rulesExtrai regras de negócio, restrições de domínio e padrões de validação de um arquivo
get_governance_contextDocumentos de governança detectados (Docs/, Workflows/, Quality/), estilo, mapeamentos de domínio
get_divergencesDivergê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.

{ "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.