geogebra-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GGB_URL | No | Page to open. | https://www.geogebra.org/calculator |
| GGB_BROWSER | No | Browser channel: chrome or msedge. Leave empty to try chrome, msedge, then Playwright Chromium. | |
| GGB_HEADLESS | No | 1 to run without a window (required in containers), 0 to show the GeoGebra window. | 1 |
| GGB_PROFILE_DIR | No | Browser profile directory (keeps the GeoGebra login). Default: .geogebra-mcp/profile in the home directory. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ggb_run_commandsA | Run GeoGebra commands on the live figure, in order (English command names, e.g. "A = (-1, 6)", "M = Midpoint(B, C)", "ShowLabel(a, false)", "SetVisibleInView(h, 1, false)", "Delete(P)"). Assigning to an existing name REDEFINES that object and its dependents update. Returns, per command: ok, created/removed objects, warnings (undefined objects, names not created) and, for failures, hints about the likely cause. |
| ggb_get_stateA | List the objects currently in the figure: name, type, definition, value, point coordinates, visibility, dependsOn (parents) and usedBy (objects that would change or be deleted with it). Always call this before fixing a figure: the user may have edited it by hand. |
| ggb_screenshotA | Return a PNG image of the drawing area so you can check the figure visually (overlapping labels, figure off-screen, wrong shape). Set full_window to capture the whole GeoGebra window including the algebra panel. |
| ggb_evaluateA | Evaluate GeoGebra expressions against the current figure WITHOUT adding objects, to verify the construction. Examples: "Angle(B, A, C)", "Distance(B, M) == Distance(M, C)", "AreCollinear(A, H, O)", "AreParallel(Line(A, D), Line(B, C))", "Radius(omega)", "Area(poly1)". |
| ggb_set_styleC | Change how objects look: color, visibility, label, caption (text shown instead of the name), thickness, line style, point size, fill, fixed. |
| ggb_deleteA | Delete objects. WARNING: everything that depends on them is deleted too (see usedBy in ggb_get_state). To change an object, redefine it with ggb_run_commands instead. |
| ggb_clearA | Remove every object to start a new figure (can be reverted with ggb_undo). |
| ggb_undoA | Revert the last change(s) made through this server (run_commands, set_style, delete, clear, snapshot restore). |
| ggb_snapshotB | Save the current figure under a name, restore a saved one, or list saved names. Snapshots live while the server runs. |
| ggb_fit_viewA | Zoom/pan so every visible point and circle fits in the drawing area (1:1 axis ratio). Optionally show/hide axes and grid. |
| ggb_exportB | Save the figure to a local file: "ggb" (GeoGebra file, can be opened again in GeoGebra) or "png" (image). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| draw_geometry_problem | Draw the figure of a plane-geometry problem on GeoGebra, verify it, and fix mistakes |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| rules | How to build clean, literal geometry figures with GeoGebra commands |
| commands | Catalog of geometry commands with their syntax |
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose: ggb_run_commands mutates the figure while ggb_evaluate only reads, ggb_delete removes specific objects while ggb_clear wipes all, and ggb_snapshot (in-memory) is clearly separated from ggb_export (file). Overlaps are explicitly called out and resolved in the descriptions.
All tools use the ggb_ prefix with snake_case, mostly verb_noun (ggb_run_commands, ggb_get_state, ggb_set_style, ggb_fit_view). The few single-verb names (ggb_delete, ggb_undo, ggb_clear) are natural and consistent with the convention.
11 tools is well within the ideal 3-15 range and each tool earns its place by covering a distinct facet of figure manipulation. Nothing feels redundant or padded.
The surface covers execution, inspection, visual check, evaluation, styling, deletion, undo, snapshots, view fitting, export, and clearing—a strong lifecycle. Minor gaps exist (no import/load of an existing .ggb file, though snapshot restore partially covers this), but core workflows are complete.