Geometry Drawing MCP
Permite que a IA desenhe, verifique e corrija figuras de geometria plana ao vivo na Calculadora GeoGebra em uma janela visível que você pode arrastar. Inclui dicas de erro, verificações de propriedades (ângulos, colinearidade), capturas de tela, desfazer e instantâneos.
Documentação
geogebra-mcp
Um servidor MCP que permite que uma IA (Claude Desktop, Claude Code, Cursor, …) desenhe e edite figuras de geometria plana diretamente no GeoGebra Calculator (https://www.geogebra.org/calculator).
Diferente do fluxo de copiar/colar da extensão GeoGebra AutoDraw AI, a IA aqui trabalha em um loop: ela executa comandos, lê erros e o estado da figura, verifica propriedades, olha uma captura de tela e corrige a própria figura — e pode editar a figura sob solicitação ("H deve ser o pé da altura a partir de A").

Como funciona
AI client ──MCP (stdio)──► geogebra-mcp ──Playwright──► Chrome window: geogebra.org/calculator
└─ window.ggbApplet (GeoGebra JS API)
- Na primeira chamada de ferramenta, o servidor abre uma janela do Chrome (ou Edge) no GeoGebra Calculator. O usuário observa a figura sendo desenhada e pode arrastar/editar manualmente.
- As ferramentas chamam a API JS do GeoGebra (
ggbApplet) dentro da página por meio depage.evaluate— sem cliques simulados. - Os comandos são executados por meio de
asyncEvalCommandGetLabels, que carrega os módulos do GeoGebra de forma preguiçosa, para que comandos de prover/script (AreCollinear,Incircle,TriangleCenter,ClosestPoint(line, point)…) funcionem. - O GeoGebra reporta um comando falho apenas como
null, então o servidor adiciona seus próprios diagnósticos (nomes desconhecidos, comandos desconhecidos, parênteses desbalanceados, armadilhas conhecidas) e avisos (resultados indefinidos, nomes reservados, interseções de dois pontos sem índice). - Se a janela for fechada ou recarregada, a próxima chamada de ferramenta a reabre e restaura a última figura conhecida.
- O desfazer é gerenciado pelo servidor (histórico XML), porque
ggbApplet.undo()não reverte comandos da API.
Ferramentas
| Ferramenta | Finalidade |
|---|---|
ggb_run_commands | Executar comandos em ordem; resultado por comando, objetos criados/removidos, avisos, dicas de falha. Atribuir a um nome existente o redefine. |
ggb_get_state | Objetos com tipo, definição, valor, coordenadas, visibilidade, dependsOn / usedBy. |
ggb_screenshot | PNG da área de desenho (ou da janela inteira) para verificação visual. |
ggb_evaluate | Avaliar expressões sem adicionar objetos (Angle(B, A, C), AreCollinear(A, H, O)…). |
ggb_set_style | Cor, visibilidade, rótulo, legenda, espessura, estilo de linha, tamanho do ponto, preenchimento, fixo. |
ggb_delete | Excluir objetos (e seus dependentes). |
ggb_clear | Iniciar uma nova figura. |
ggb_undo | Reverter alterações feitas por meio do servidor. |
ggb_snapshot | Salvar / restaurar / listar versões nomeadas. |
ggb_fit_view | Ajustar todos os pontos e círculos visíveis na visualização (proporção 1:1), alternar eixos/grade. |
ggb_export | Salvar como .ggb ou .png. |
Também: recurso geogebra://rules (regras de construção), recurso geogebra://commands (catálogo de comandos), prompt draw_geometry_problem.
Configuração
Requisitos: Node.js ≥ 20 e Google Chrome ou Microsoft Edge (caso contrário, execute npx playwright install chromium).
Claude Code (plugin)
claude plugin marketplace add haison8x/geogebra-mcp
claude plugin install geogebra-mcp@geogebra-tools
O servidor então aparece em /mcp como plugin:geogebra-mcp:geogebra. Atualize depois com claude plugin update geogebra-mcp@geogebra-tools.
Claude Code (sem o plugin)
claude mcp add geogebra -- npx -y geogebra-mcp
Claude Desktop, Cursor e outros clientes MCP
Edite claude_desktop_config.json (Configurações → Desenvolvedor → Editar Config), ou a configuração MCP do seu cliente:
{
"mcpServers": {
"geogebra": {
"command": "npx",
"args": ["-y", "geogebra-mcp"]
}
}
}
Em seguida, reinicie o cliente e peça, por exemplo: "Vẽ tam giác ABC nội tiếp đường tròn (O), đường cao AH, M là trung điểm BC."
A partir do código-fonte
git clone https://github.com/haison8x/geogebra-mcp.git
cd geogebra-mcp
npm install
npm run build
claude mcp add geogebra -- node /path/to/geogebra-mcp/dist/index.js
Configuração (variáveis de ambiente)
| Variável | Padrão | Significado |
|---|---|---|
GGB_BROWSER | tente chrome, msedge, depois Playwright Chromium | Canal do navegador |
GGB_HEADLESS | 0 | 1 para executar sem janela (testes) |
GGB_PROFILE_DIR | ~/.geogebra-mcp/profile | Perfil do navegador (mantém o login do GeoGebra). Uma instância do servidor por perfil. |
GGB_URL | https://www.geogebra.org/calculator | Página a abrir |
Desenvolvimento
Lançamento: aumente a versão em package.json, .claude-plugin/plugin.json, .claude-plugin/marketplace.json, server.json (ambos os campos version) e a versão fixada em .mcp.json. Depois, envie, npm publish, mcp-publisher publish e crie um lançamento no GitHub.
npm run build
npm run smoke # end-to-end test through a real MCP client (headless)
npm run smoke -- --headed # same, with a visible window
Notas
- O GeoGebra é gratuito para uso não comercial; verifique a licença do GeoGebra antes de qualquer uso comercial desta automação.
- Capturas de tela e histórico de desfazer ficam na memória enquanto o servidor está em execução.