@gebrai/gebrai v1.1.0
GeoGebra MCP Tool
A Model Context Protocol (MCP) server that enables AI models to interact with GeoGebra's mathematical software suite for creating interactive mathematical visualizations and dynamic constructions.
šÆ Overview
The GeoGebra MCP Tool bridges the gap between AI reasoning capabilities and mathematical visualization, allowing AI assistants to:
- Create geometric constructions (points, lines, circles, polygons)
- Plot mathematical functions and graphs
- Perform algebraic computations with visual representation
- Generate interactive mathematical demonstrations
- Export visualizations in various formats
š Quick Start Examples
- NPX (Recommended):
# Start the server
npx @gebrai/gebrai
# Or with custom log level
npx @gebrai/gebrai --log-level debug
- Connect to Claude Desktop - Add to your Claude configuration:
{
"mcpServers": {
"geogebra": {
"command": "npx",
"args": ["@gebrai/gebrai"]
}
}
}
- Start Creating - Ask Claude to create mathematical visualizations!
Need help? Check our Getting Started Guide for detailed instructions.
š¦ Installation Options
NPX (No Installation)
npx @gebrai/gebrai
ā
No installation required
ā
Always uses latest version
ā
Perfect for testing
Global Installation
npm install -g @gebrai/gebrai
ā
Faster startup after installation
ā
Works offline
ā
Consistent version
Local Development
git clone <repository-url>
cd gebrai && npm install
ā
Full source code access
ā
Customization possible
ā
Development workflow
š ļø CLI Usage
The GeoGebra MCP Tool provides a command-line interface with the following options:
Usage:
npx @gebrai/gebrai [options]
gebrai [options] # if installed globally
geogebra-mcp [options] # alternative command
Options:
-h, --help Show help message
-v, --version Show version information
--log-level LEVEL Set log level (error, warn, info, debug) [default: info]
--port PORT Set server port [default: stdin/stdout for MCP]
Examples:
npx @gebrai/gebrai # Start MCP server
npx @gebrai/gebrai --log-level debug # Start with debug logging
npx @gebrai/gebrai --help # Show help
Prerequisites
- Node.js 18.0.0 or higher
- npm or yarn package manager
Installation
- Clone the repository:
git clone <repository-url>
cd gebrai
- Install dependencies:
npm install
- Build the project:
npm run build
- Start the server:
npm start
Development Mode
For development with hot reload:
npm run dev
š ļø Development
Project Structure
gebrai/
āāā src/
ā āāā index.ts # Main entry point
ā āāā server.ts # MCP server implementation
ā āāā types/
ā ā āāā mcp.ts # MCP protocol types
ā āāā tools/
ā ā āāā index.ts # Tool registry and example tools
ā āāā utils/
ā āāā logger.ts # Logging utility
ā āāā errors.ts # Error handling
āāā tests/
ā āāā setup.ts # Test configuration
ā āāā server.test.ts # Server tests
āāā package.json
āāā tsconfig.json
āāā README.md
Available Scripts
npm run dev
- Start development server with hot reloadnpm run build
- Build the TypeScript projectnpm start
- Start the production servernpm test
- Run the test suitenpm run test:watch
- Run tests in watch modenpm run test:coverage
- Run tests with coverage reportnpm run lint
- Run ESLintnpm run lint:fix
- Fix ESLint issues automatically
Testing
The project includes a comprehensive test suite using Jest:
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverage
š Documentation
For comprehensive documentation, visit our complete documentation which includes:
š Core Documentation
- API Reference - Complete tool documentation with examples
- Getting Started Guide - Step-by-step setup and first usage
- Integration Guide - Platform integration instructions
- Troubleshooting - Common issues and solutions
- FAQ - Frequently asked questions
š§ Tool Categories
- Basic Tools - Core MCP functionality (ping, echo, server_info)
- GeoGebra Tools - 25+ mathematical construction tools
- Educational Tools - Pre-built educational templates
- Performance Tools - Monitoring and optimization
š Educational Resources
- Use Cases - Real-world educational scenarios
- Teacher Guide - Pedagogical guidance
- Classroom Examples - Ready-to-use lessons
š Tutorials & Examples
- Basic Usage - Your first mathematical constructions
- Mathematical Constructions - Geometry and algebra
- Function Plotting - Creating mathematical functions
- Code Examples - Working examples by complexity
š Tool Overview
The GeoGebra MCP Tool provides 40+ tools across four categories:
Category | Tools | Description | Performance |
---|---|---|---|
Basic | 3 tools | Core MCP functionality | < 100ms |
GeoGebra | 25+ tools | Mathematical constructions | < 2000ms |
Educational | 10+ tools | Classroom activities | < 2000ms |
Performance | 5 tools | Monitoring & optimization | < 500ms |
Example Tools
- Mathematical:
geogebra_create_point
,geogebra_plot_function
,geogebra_export_png
- Educational:
geogebra_list_educational_templates
,geogebra_create_lesson_plan
- Performance:
performance_get_stats
,performance_warm_up_pool
š§ Configuration
Environment Variables
PORT
- Server port (default: 3000)LOG_LEVEL
- Logging level: error, warn, info, debug (default: info)NODE_ENV
- Environment: development, production, test
Example .env
file
PORT=3000
LOG_LEVEL=info
NODE_ENV=development
šļø Architecture
Core Components
MCP Server (
src/server.ts
)- Handles JSON-RPC 2.0 protocol
- Routes requests to appropriate handlers
- Manages server lifecycle
Tool Registry (
src/tools/index.ts
)- Manages available tools
- Handles tool execution
- Provides tool discovery
Error Handling (
src/utils/errors.ts
)- Standardized error responses
- JSON-RPC error codes
- Comprehensive error logging
Logging (
src/utils/logger.ts
)- Structured logging with Winston
- Configurable log levels
- Development and production modes
Design Principles
- Type Safety: Full TypeScript implementation with strict mode
- Error Handling: Comprehensive error handling and validation
- Modularity: Clean separation of concerns
- Testability: Extensive test coverage
- Extensibility: Easy to add new tools and features
š¤ Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-tool
- Make your changes and add tests
- Ensure all tests pass:
npm test
- Commit your changes:
git commit -m 'Add new tool'
- Push to the branch:
git push origin feature/new-tool
- Submit a pull request
Development Guidelines
- Follow TypeScript best practices
- Add tests for new functionality
- Update documentation as needed
- Use conventional commit messages
- Ensure code passes linting
š Related Projects
š Support
For questions, issues, or contributions, please:
- Check the Issues page
- Create a new issue if needed
- Join our community discussions