GeoGebra MCP Server
A Model Context Protocol (MCP) server that provides access to GeoGebra's computation and drawing capabilities through a standardized interface.
Features
Computation Tools
- eval_command: Execute GeoGebra commands
- eval_command_cas: Computer Algebra System calculations
- math_calculation: Mathematical expression evaluation
- geometry_construction: Geometric constructions and property calculations
Drawing & Export Tools
- export_png: Export constructions as PNG images
- export_pdf: Export constructions as PDF documents
- set_xml: Load constructions from XML
- get_xml: Get current construction as XML
- refresh_views: Refresh all views
Installation
- Install dependencies:
cd mcp-geogebra
npm install
- Make the server executable:
chmod +x src/index.js
Configuration
Add to your MCP client configuration (e.g., for Claude Code):
{
"mcpServers": {
"geogebra": {
"command": "node",
"args": ["/path/to/mcp-geogebra/src/index.js"],
"env": {
"GEOGEBRA_BASE_URL": "http://localhost:3000"
}
}
}
}
Usage Examples
Basic Math Calculation
// Calculate integral of x^2 from 0 to 1
{
"name": "math_calculation",
"arguments": {
"expression": "Integral(x^2, 0, 1)"
}
}
CAS Calculation
// Solve quadratic equation
{
"name": "eval_command_cas",
"arguments": {
"command": "Solve(x^2 - 4 = 0, x)",
"rounding": "2"
}
}
Geometry Construction
// Create triangle and get area
{
"name": "geometry_construction",
"arguments": {
"construction": "A=(0,0); B=(4,0); C=(0,3); poly1=Polygon(A,B,C)",
"properties": ["area", "perimeter"]
}
}
Export Image
// Export as high-quality PNG
{
"name": "export_png",
"arguments": {
"exportScale": 2.0,
"transparent": true,
"dpi": 600
}
}
API Reference
eval_command
Execute a GeoGebra command.
Parameters:
command(string): GeoGebra command to execute
Example: "f(x)=x^2; Integral(f,0,1)"
eval_command_cas
Execute CAS command with precision control.
Parameters:
command(string): CAS commandrounding(string): Rounding precision (default: "2")
Example: "Solve(x^3 - 2x + 1 = 0, x)"
export_png
Export construction as PNG image.
Parameters:
exportScale(number): Scale factor (default: 1.0)transparent(boolean): Transparent background (default: false)dpi(number): Resolution (default: 300)greyscale(boolean): Greyscale output (default: false)
export_pdf
Export construction as PDF document.
Parameters:
scale(number): Scale factor (default: 1.0)filename(string): Output filenamedpi(number): Resolution (default: 72)
math_calculation
Evaluate mathematical expressions.
Parameters:
expression(string): Math expressionvariables(object): Variable values
Example:
{
"expression": "a^2 + b^2",
"variables": {"a": 3, "b": 4}
}
geometry_construction
Create geometric constructions and get properties.
Parameters:
construction(string): Construction commandsproperties(array): Properties to calculate
Supported properties: area, perimeter, coordinates
Environment Variables
GEOGEBRA_BASE_URL: Base URL of GeoGebra server (default: http://localhost:3000)
Development
Project Structure
mcp-geogebra/
├── src/
│ ├── index.js # Main server entry point
│ ├── tools.js # Tool definitions
│ └── geogebra-client.js # GeoGebra API client
├── package.json
└── README.md
Adding New Tools
- Define tool in
src/tools.js - Add handler method in
src/index.js - Implement client method in
src/geogebra-client.js
Testing
Run the server directly:
npm start
License
MIT License