Caju para assistentes de IA
caju mcp é um servidor Model Context Protocol embutido no comando caju. Claude Code, Claude Desktop, Cursor e outros assistentes usam o compilador por meio de ferramentas com resultados estruturados: leem a referência da linguagem, consultam a biblioteca padrão e verificam, executam e testam código.
$ claude mcp add caju -- caju mcpCLI ou MCP: medido
As mesmas três tarefas, feitas pelo Claude Code só com o comando caju num shell, ou só com as ferramentas MCP. Mesmo modelo, mesmo prompt, um diretório vazio com os arquivos da tarefa; cada resultado conferido depois.
Ele lê antes de escrever
Com MCP, toda execução começou com caju_reference e caju_docs e depois escreveu o programa uma vez. A maioria dos programas saiu certa na primeira tentativa.
Sem ele, o compilador é o manual
Com a CLI, o assistente aprendeu Caju pelas mensagens de erro: caju --help, depois pequenos programas de teste, uma construção por vez, reescrevendo após cada erro. Uma execução atingiu o limite de 40 turnos ainda sondando a sintaxe.
Os erros apontam a correção
Um diagnóstico com linha, coluna e etapa leva o assistente direto à linha a mudar, em vez de ler texto e adivinhar.
Ele foi atrás do servidor
Numa primeira rodada em que caju mcp não estava bloqueado, as execuções com CLI o encontraram no caju --help e falaram JSON-RPC com ele pelo shell para ler a referência.
Duas execuções por tarefa e modo, um modelo e tarefas pequenas: a direção é clara, as proporções exatas não. As execuções com CLI não podiam usar outros comandos do shell. Programas, resumo dos logs e método em bench/mcp do repositório da linguagem. bench/mcp/RESULTS.md
Uma sessão real
Um assistente (Claude Sonnet 5.5) convertendo um programa em estilo Go para Caju com as ferramentas MCP. É uma das execuções da comparação abaixo, resumida, no inglês original.
main.caju was written in Go style, but it must be a valid program in the Caju programming language. Rewrite it so that it prints exactly "CASHEW, MANGO" and "total: 16.00".
Cinco ferramentas
Checar, rodar e testar respondem em JSON, então o assistente nunca interpreta a saída de texto do compilador. As ferramentas do grafo de código respondem com uma linha curta por símbolo, em vez de arquivos inteiros: o grafo fica na memória do servidor e responde em cerca de 2 ms.
Verifica os tipos sem gerar código. Cada erro vem com arquivo, linha, coluna e etapa (sintaxe, tipo, link...).
{ "files": {
"main.caju": "x := 1\nx = \"a\"\n"
} }{ "ok": false, "diagnostics": [ {
"file": "main.caju", "line": 2, "col": 5, "stage": "type",
"message": "\"x\" (line 1) is int, but got str"
} ] }Configuração
Ele vem com o comando caju: não há mais nada para instalar.
claude mcp add caju -- caju mcp{
"mcpServers": {
"caju": { "command": "caju", "args": ["mcp"] }
}
}Use o caminho completo do caju (~/.local/bin/caju com o instalador) se o cliente não enxergar o seu PATH. O servidor lê mensagens JSON-RPC da entrada padrão, uma por linha.
Por que uma linguagem nova precisa disso
Um assistente nunca viu Caju durante o treinamento, e Caju se parece o bastante com Go para ser escrita como Go. O servidor dá a ele a referência real, os nomes reais da biblioteca e a posição exata de cada erro, então ele para de adivinhar.