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

Demo: the AI builds triangle ABC inscribed in (O) with altitude AH and median AM, then A is dragged and the figure follows

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 de page.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

FerramentaFinalidade
ggb_run_commandsExecutar comandos em ordem; resultado por comando, objetos criados/removidos, avisos, dicas de falha. Atribuir a um nome existente o redefine.
ggb_get_stateObjetos com tipo, definição, valor, coordenadas, visibilidade, dependsOn / usedBy.
ggb_screenshotPNG da área de desenho (ou da janela inteira) para verificação visual.
ggb_evaluateAvaliar expressões sem adicionar objetos (Angle(B, A, C), AreCollinear(A, H, O)…).
ggb_set_styleCor, visibilidade, rótulo, legenda, espessura, estilo de linha, tamanho do ponto, preenchimento, fixo.
ggb_deleteExcluir objetos (e seus dependentes).
ggb_clearIniciar uma nova figura.
ggb_undoReverter alterações feitas por meio do servidor.
ggb_snapshotSalvar / restaurar / listar versões nomeadas.
ggb_fit_viewAjustar todos os pontos e círculos visíveis na visualização (proporção 1:1), alternar eixos/grade.
ggb_exportSalvar 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ávelPadrãoSignificado
GGB_BROWSERtente chrome, msedge, depois Playwright ChromiumCanal do navegador
GGB_HEADLESS01 para executar sem janela (testes)
GGB_PROFILE_DIR~/.geogebra-mcp/profilePerfil do navegador (mantém o login do GeoGebra). Uma instância do servidor por perfil.
GGB_URLhttps://www.geogebra.org/calculatorPá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.