GeoGebra MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GeoGebra MCP Serverdraw a right triangle with legs 3 and 4"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GeoGebra MCP Server
让 Claude Code、Codex 和其他 MCP 客户端操控 GeoGebra——绘制几何构造、函数图像、3D 图形、动态机构,保存 .ggb,导出 .png。默认使用 Web Runtime,无需安装 GeoGebra 桌面版。
本项目不是要替代 GeoGebra,而是把 GeoGebra 变成 AI 可以可靠调用的数学可视化后端。
能做什么
场景 | 示例 |
函数图像 |
|
平面几何 | 三角形, 外接圆, 角平分线, 轨迹, 位似变换 |
3D 图形 | 空间曲线, 平面, 球面, 多面体 |
机构简图 | 曲柄摇杆, 曲柄滑块, 四连杆, 缩放机构 |
数据图表 | 条形图, 直方图, 回归曲线 |
动态动画 | 滑块驱动旋转, 轨迹追踪, 自动播放 |
Related MCP server: Math MCP Server
架构
环境要求
Python 3.10+
Node.js v16+ 和 npm
支持 MCP stdio 的 AI 客户端(Claude Code / Codex / …)
首次使用 Web Runtime 需要网络访问 GeoGebra CDN;Puppeteer 会自动下载 Chromium
Windows、macOS、Linux 均可使用。
**可选:**如需使用桌面版后端(
GEOGEBRA_BACKEND=desktop),则需要 GeoGebra Classic 6。
默认 Web Runtime
GeoGebra Classic 6 桌面版不再是必需的。 默认情况下,MCP Server 会自动启动 Chromium,加载 GeoGebra 网页版,通过 GeoGebra Apps API 控制绘图。用户无需安装或配置任何 GeoGebra 桌面软件。
GEOGEBRA_BACKEND=auto # 默认:优先 Web,失败时回落 desktop
GEOGEBRA_BACKEND=web # 仅使用 Web Runtime
GEOGEBRA_BACKEND=desktop # 仅使用 Classic 6 CDP 桌面版
GEOGEBRA_WEB_HEADLESS=1 # 无头模式(默认);=0 显示浏览器窗口
GEOGEBRA_WEB_BUNDLE=cdn # 默认:从 GeoGebra CDN 加载;=local 使用离线 bundle首次使用 Puppeteer 会自动下载 Chromium。
离线模式使用 GeoGebra 官方 web bundle。发布包含该 bundle 的软件包前,请查阅 GeoGebra 许可证。
离线 Web Runtime
下载 GeoGebra Math Apps Bundle 到本地缓存,实现完全离线运行:
# 下载离线 bundle
python scripts/setup_geogebra_web_bundle.py
# 验证 bundle 完整性
python scripts/setup_geogebra_web_bundle.py --check使用离线模式:
# Windows
$env:GEOGEBRA_BACKEND="web"
$env:GEOGEBRA_WEB_BUNDLE="local"
geogebra-mcp-doctor
# macOS / Linux
GEOGEBRA_BACKEND=web GEOGEBRA_WEB_BUNDLE=local geogebra-mcp-doctor适合学校机房、离线机器或网络受限环境。普通用户无需下载 bundle,默认 CDN 模式即可。
快速开始
1. 自然语言自动安装(推荐)
仿照 MATLAB Agentic Toolkit 的方式,普通用户可以不手动编辑 MCP JSON/TOML。
git clone https://github.com/123pc/Geogebra_mcp.git
cd Geogebra_mcp然后在这个目录里启动 Claude Code、Codex 或其他 agent,对它说:
Set up GeoGebra MCPagent 会根据 AGENTS.md 和 skills/geogebra-setup 的指导运行:
python scripts/setup_geogebra_mcp.py这个脚本会自动完成:
安装 Node 依赖:
npm install安装 Python 包:
python -m pip install -e .写入 Claude Code 全局 MCP 配置
写入 Codex 全局 MCP 配置
注册本仓库提供的 skills
运行
geogebra-mcp-doctor做环境诊断
完成后重启 agent,并在任意项目目录中验证:
Use GeoGebra MCP to check status and draw a triangle.如果只想配置某一个客户端:
python scripts/setup_geogebra_mcp.py --agent claude
python scripts/setup_geogebra_mcp.py --agent codex2. 手动安装
git clone https://github.com/123pc/Geogebra_mcp.git
cd Geogebra_mcp
npm install # Node 依赖(puppeteer,含 Chromium)
python -m pip install -e . # Python 依赖 + 暴露 CLI 命令
npm install不可省略——Node 守护进程依赖puppeteer(自动管理 Chromium 浏览器)。
也可运行python install_wizard.py进行交互式安装向导。
3. 环境诊断
geogebra-mcp-doctor
# 如果命令不在 PATH 中,改用:
python -m geogebra_mcp.doctor预期输出(Web Runtime 默认):
[OK] python: 3.13.5
[OK] node: v22.17.1
[OK] npm
[OK] daemon_js: .../geogebra_mcp/geogebra_daemon.js
[OK] package_json: .../geogebra_mcp/package.json
[OK] backend: auto
[OK] web_assets: .../geogebra_mcp
[OK] puppeteer: installed
[SKIP] geogebra_install: not required for backend=auto
[SKIP] cdp_port: not required for backend=auto
geogebra_install和cdp_port被跳过是正常的——Web Runtime 不需要 GeoGebra 桌面版。
4. 可选:Desktop 后端(GeoGebra Classic 6 CDP)
仅当设置 GEOGEBRA_BACKEND=desktop 时才需要以下步骤。Web Runtime 用户可跳过。
每次使用前需要以调试模式启动 GeoGebra Classic 6:
Windows: 双击 start_geogebra.bat,或在终端中执行:
CMD:
for /d %v in ("%LOCALAPPDATA%\GeoGebra_6\app-*") do start "" "%~fv\GeoGebra.exe" --remote-debugging-port=9222PowerShell:
$ggb = Get-ChildItem "$env:LOCALAPPDATA\GeoGebra_6\app-*\GeoGebra.exe" | Sort-Object -Descending | Select-Object -First 1; Start-Process $ggb.FullName "--remote-debugging-port=9222"macOS:
open -a "GeoGebra Classic 6" --args --remote-debugging-port=9222Linux:
geogebra-classic --remote-debugging-port=92225. 配置 AI 客户端
推荐:运行自动配置脚本(无需手动编辑 JSON):
python scripts/setup_geogebra_mcp.py该脚本自动完成:安装依赖 → 写入 MCP 配置 → 注册 skills → 运行诊断。--agent claude 仅配置 Claude Code,--agent codex 仅配置 Codex。
手动配置: 在你的 MCP 配置文件中加入:
{
"mcpServers": {
"geogebra": {
"command": "python",
"args": ["-m", "geogebra_mcp.server"]
}
}
}
python -m geogebra_mcp.server在任何目录都能运行,不依赖仓库路径。pip install -e .后也可直接用geogebra-mcp-server(如果 Scripts 目录在 PATH 中)。
Claude Code 用户还需在 settings.json 中添加:
{ "enabledMcpjsonServers": ["geogebra"] }重启客户端后生效。
MCP 工具
连接与状态
工具 | 说明 |
| 检查 GeoGebra 连接状态 |
| 查看 MCP Server 版本 |
| 获取命令/机构/动画参考( |
命令执行
工具 | 推荐度 | 说明 |
| 推荐 | 结构化数组执行,适合 AI 客户端 |
| 推荐 | 结构化对象执行,带样式和动画 |
| 备选 | 单条命令执行 |
| 兼容 | JSON 字符串批量执行,兼容旧客户端 |
| 兼容 | JSON 字符串机构绘制,兼容旧客户端 |
视图与外观
工具 | 说明 |
| 清空当前构造 |
| 设置视图: |
| 颜色、线宽、点大小、标签可见性 |
| 启动/停止滑块动画,设置速度 |
| 获取当前构造对象列表(用于自验收) |
输出
工具 | 说明 |
| 保存为 |
| 导出当前视图为 |
给 AI 的调用流程
AI 在处理绘图请求时应遵循以下步骤:
确认输出路径 — 如果用户没指定保存位置,先问「文件保存在哪里?」
检查连接 —
geogebra_status未连接时提示 — Web Runtime 会自动启动 Chromium;Desktop 后端需告知用户双击
start_geogebra.bat启动 GeoGebra设置视图 —
geogebra_set_view清空画布(如需) —
geogebra_new_construction发送命令 — 用
geogebra_run_commands或geogebra_create_construction自验收 —
geogebra_get_objects,确认对象数 >= 3动画(如需) —
geogebra_set_appearance使滑块可见 +geogebra_animate自动播放保存 —
geogebra_save
示例
用自然语言
"画 y=sin(x) 和 y=cos(x),标出交点,导出到 D:/output/sin_cos.png"
曲柄摇杆机构
{
"name": "crank_rocker",
"design": {
"perspective": "G",
"commands": [
"O1=(0,0)", "O2=(6,0)", "alpha=30 deg",
"A=O1+(2*cos(alpha),2*sin(alpha))",
"c1=Circle(A,5)", "c2=Circle(O2,4)",
"B=Intersect(c1,c2,1)",
"crank=Segment(O1,A)", "coupler=Segment(A,B)",
"rocker=Segment(B,O2)", "ground=Segment(O1,O2)"
],
"styles": [
{"label":"alpha","visible":true,"label_visible":true},
{"label":"crank","color":[1,0,0],"thickness":6},
{"label":"coupler","color":[0,0.2,1],"thickness":6},
{"label":"rocker","color":[0,0.7,0.2],"thickness":6},
{"label":"ground","color":[0,0,0],"thickness":5}
],
"animate": "alpha",
"speed": 0.5
},
"output_dir": "D:/output"
}推荐使用 ASCII 标签(
alpha而非α),避免不同客户端间的编码问题。
Skills
仓库附带三套 skill,教 AI 更稳定地使用本 MCP:
Skill | 用途 |
| 教 AI 像 GeoGebra 专家一样作图——强制滑块可见、自动播放动画、自验收 |
| 教 AI 部署、配置、诊断本 MCP,以及离线 bundle 的使用 |
| 教 AI 一键安装和配置本 MCP( |
环境变量
变量 | 默认值 | 说明 |
|
| 后端选择: |
|
| Web Runtime 无头模式: |
|
| Web Runtime 视口宽度 |
|
| Web Runtime 视口高度 |
|
| Web Runtime 资源加载方式: |
| 平台默认 | 离线 bundle 缓存目录(覆盖默认路径) |
|
| Desktop 后端 CDP 远程调试端口 |
|
| Desktop 后端:设为 |
常见问题
connected: false
Web Runtime(默认): 检查网络是否能访问 GeoGebra CDN,Puppeteer/Chromium 是否已安装。运行 node scripts/smoke_web_runtime.js 进行诊断。如果 CDN 不可达(如学校机房、离线环境),下载离线 bundle 后设置 GEOGEBRA_WEB_BUNDLE=local 即可(见离线 Web Runtime)。
Desktop 后端(GEOGEBRA_BACKEND=desktop): GeoGebra 未以调试模式运行。确保已用 --remote-debugging-port=9222 启动(见快速开始第 4 步)。
动画不动
检查三点:
是否创建了角度滑块(
alpha=30 deg)运动点是否依赖滑块(
A=O+(2*cos(alpha),2*sin(alpha)))是否调用了
geogebra_set_appearance使滑块可见 +geogebra_animate(label="alpha", animate=true)使用
geogebra_create_construction可自动处理以上步骤
AI 画的图和实际不符 / 空白
让 AI 调用 geogebra_get_objects 自验收。如果对象数为 0,AI 应重试而非声称"完成"。
已经打开的 GeoGebra 能接管吗?
**Desktop 后端:**不能。必须关闭后以 --remote-debugging-port=9222 重新启动。Web Runtime 不受此限制,它会自动启动独立的 Chromium 实例。
能在 macOS / Linux 上用吗?
可以。三平台均已适配。
为什么要用 alpha 而非 α?
希腊字母在部分客户端、终端或 JSON 日志中可能出现编码异常。推荐默认使用 ASCII 名称以提高普适性。
更新
在项目目录下运行:
python update.py该脚本自动执行 git pull → npm install → pip install -e . → 同步 MCP 配置和 skills,无需重新 clone。
开发
# 运行测试
python -m pytest -q # Python (64 tests)
node tests/test_daemon_protocol.js # Node (27 tests)
# Web Runtime 冒烟测试
node scripts/smoke_web_runtime.js # CDN 模式
GEOGEBRA_WEB_BUNDLE=local node scripts/smoke_web_runtime.js # 离线模式
# 离线 bundle 管理
python scripts/setup_geogebra_web_bundle.py # 下载
python scripts/setup_geogebra_web_bundle.py --check # 验证
# 构建 wheel
python -m build --wheel贡献
欢迎所有形式的贡献!
在 Issues 中报告 bug 或提出功能建议
提交 Pull Request 改进代码、文档或 skill
测试并适配更多 AI 客户端(Codex、DeepSeek TUI 等)
分享你用它绘制的有趣构造
当前适配状态
客户端 | 状态 |
Claude Code | 已测试 |
Codex | 适配中 |
DeepSeek TUI | 计划中 |
其他 MCP 客户端 | 欢迎测试反馈 |
许可证
MIT © 2026 GeoGebra MCP contributors
Available Tools
15 toolsgeogebra_animateA
设置动画——让滑块控制的机构动起来。
Args: label: 滑块标签, 如 "α" animate: 是否启动动画 speed: 速度 (0.1-10)
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | ||
| animate | No | ||
| speed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavior. It only states the tool animates a mechanism controlled by a slider but does not describe side effects, required setup (e.g., existing construction with a slider), error handling, or what happens when the label is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a one-line purpose statement followed by clear parameter descriptions. No fluff or redundant information. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage and no annotations, the description adequately explains the parameters but misses broader context such as prerequisites (e.g., an existing mechanism with a slider) and how the animation interacts with other GeoGebra operations. The presence of an output schema partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning for all three parameters: label as slider tag (e.g., 'α'), animate as whether to start animation, and speed as speed in range 0.1-10. This goes beyond the schema which only provides titles and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '设置动画——让滑块控制的机构动起来' (Set animation - make the mechanism controlled by the slider move). The verb '设置动画' and the specific resource '滑块控制的机构' distinguish it from sibling tools like geogebra_draw_mechanism.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, conditions for effective use, or situations where other tools (e.g., geogebra_exec, geogebra_run_commands) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_batchB
在 GeoGebra 中批量执行多条命令。适合一次性构建完整机构。
Args: commands_json: JSON 数组格式的命令列表, 如 '["A=(0,0)","B=(6,0)","Segment(A,B)"]'
| Name | Required | Description | Default |
|---|---|---|---|
| commands_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It does not mention whether batch execution clears the existing construction or appends to it, nor does it discuss side effects, state changes, or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two short paragraphs. The first sentence states the core purpose, and the second provides parameter details. Every sentence is necessary and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (1 parameter) and presence of an output schema (though not shown), the description covers the input well. However, it omits important behavioral context (e.g., whether it clears state) and does not describe the output format, relying on the output schema. This is adequate but not fully complete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the commands_json parameter (0% coverage). The description compensates by explaining it expects a JSON array of commands and provides a concrete example, which adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it executes multiple commands in batch for building a complete mechanism. It distinguishes from siblings like geogebra_exec (likely single command) by emphasizing batch execution, but could be more explicit about the contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions suitability for building a complete mechanism, but lacks explicit guidance on when to use this tool versus alternatives (e.g., geogebra_exec or geogebra_run_commands). No when-not-to-use or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_create_constructionA
Create a construction from a structured design dict. Preferred over geogebra_draw_mechanism for AI clients — no JSON string wrapping needed.
design dict format: {"perspective":"G", "animate":"α", "speed":0.5, "commands":["O1=(0,0)","O2=(6,0)","α=45°",...], "styles":[{"label":"A","color":[1,0,0],"point_size":5},...]}
Auto-behavior (no manual steps needed):
Auxiliary circles named c1, c2, c3... are automatically hidden.
The animation slider is auto-made visible and set to play.
Construction must use 'c1', 'c2' etc. for circles to be auto-hidden.
Args: name: Output filename stem design: Dict with perspective, commands, styles, animate, and speed output_dir: Output directory (default: cwd)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| design | Yes | ||
| output_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
In the absence of annotations, the description carries full responsibility. It details important auto-behaviors such as automatic hiding of auxiliary circles, visibility and playback of animation slider, and naming conventions. However, it does not disclose potential side effects like file overwriting, error conditions, or whether the tool requires authentication, leaving gaps in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with bullet points for auto-behaviors and a formatted example. Every sentence adds value, and the information is front-loaded with the core purpose and key advantage. No redundant or unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity with 3 parameters and a nested object, the description covers the core usage, format, and automatic behaviors. An output schema exists, so the absence of return value explanation is acceptable. However, it misses mention of error handling, dependencies (e.g., GeoGebra installation), and validation specifics, which would make it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It provides a clear example of the design dict format, explaining keys like perspective, commands, styles, animate, and speed. It also describes the name parameter as an output filename stem and output_dir as a directory. While helpful, it could offer more detail on styles structure and command string syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a construction from a structured design dict', identifying the action and the resource. It explicitly distinguishes itself from the sibling geogebra_draw_mechanism by noting the advantage of no JSON string wrapping, making the purpose and differentiation unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states it is 'Preferred over geogebra_draw_mechanism for AI clients', providing clear context for when to use it. However, it does not explicitly exclude other siblings like geogebra_run_commands or geogebra_new_construction, so while the guidance is strong, it is not exhaustive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_draw_mechanismA
Create a complete mechanism: new construction → commands → styles → save .ggb + PNG. Use geogebra_batch for commands instead of this tool unless you need one-step save.
── MECHANISM TEMPLATES ──
Crank-Rocker (曲柄摇杆): O1=(0,0) O2=(d,0) α=angle° crank_len=r coupler_len=L rocker_len=R A = O1 + (rcos(α), rsin(α)) c1 = Circle(A, L) c2 = Circle(O2, R) B = Intersect(c1, c2, 1) Segment(O1, A) Segment(A, B) Segment(B, O2) Animate: StartAnimation(α) Style: thick segments, colored points
Slider-Crank (曲柄滑块): O=(0,0) α=angle° r=crank L=coupler A = O + (rcos(α), rsin(α)) c = Circle(A, L) guide = Line((0,-r), (10,-r)) B = Intersect(c, guide, 1) Segment(O, A) Segment(A, B) Circle(B, 0.1) Animate: StartAnimation(α)
Double-Crank / Drag-Link: O1=(0,0) O2=(d,0) α=angle° r1,r2=crank lengths L=coupler A = O1 + (r1cos(α), r1sin(α)) B = O2 + (r2cos(α+offset), r2sin(α+offset)) Segment(O1,A) Segment(A,B) Segment(B,O2) Animate: StartAnimation(α)
Four-Bar Linkage (general): Same as crank-rocker but adjust lengths. Valid if shortest+longest ≤ sum of other two.
── design_json FORMAT ── { "perspective": "G", "animate": "α", "speed": 0.5, "commands": ["O1=(0,0)", "O2=(6,0)", "α=45°", ...], "styles": [ {"label": "A", "color": [1,0,0], "point_size": 5}, {"label": "Segment(O1,A)", "thickness": 5}, {"label": "O1", "point_size": 6, "color": [0,0,0]} ] }
── WORKFLOW ──
New construction (automatic)
Execute commands in order
Apply styles (colors, thickness, point sizes)
Start animation on the angle slider
Auto-zoom and save .ggb + .png
Args: name: Mechanism name (used for filename) design_json: JSON string with design (see format above) output_dir: Output directory (default: current working directory)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| design_json | Yes | ||
| output_dir | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly describes the behavioral steps: new construction, command execution, style application, animation start, auto-zoom, and saving as .ggb and .png. This provides sufficient transparency for an agent, though some potential issues (e.g., error handling) are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured with clear sections: general description, templates, JSON format, and workflow. It is front-loaded with purpose. While it could be trimmed slightly, the structure aids readability and earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, no output schema in input but description mentions output files), the description covers workflow, templates, and differentiation. It lacks mention of error handling or prerequisites, but overall is sufficiently complete for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description compensates richly. It explains each parameter: 'name' for filename, 'design_json' with a full JSON format and templates, and 'output_dir' with default. The extensive examples and structure add critical meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Create a complete mechanism: new construction → commands → styles → save .ggb + PNG', clearly stating the tool's purpose. It also distinguishes from sibling 'geogebra_batch' by specifying when to use this tool instead, fulfilling the differentiation criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use geogebra_batch for commands instead of this tool unless you need one-step save.' It also outlines a detailed workflow. However, it does not cover scenarios where the tool should not be used beyond that, so it is not fully comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_execA
Execute a GeoGebra command. To make a mechanism MOVE (animate), you MUST create an angle slider and define points that depend on it.
── COMMAND REFERENCE ──
POINTS: A = (x, y) — free point A = (3, 4) M = Midpoint(A, B) — midpoint P = Point(c, 0.5) — point on curve c at parameter 0..1
ANGLE SLIDER (the KEY to animation): α = 30° — creates an angle slider. ALWAYS start with this β = 60° — for mechanisms needing a second angle These become sliders. Use StartAnimation(α) to drive motion.
DEPENDENT POINTS (formulas using the angle): A = O1 + (rcos(α), rsin(α)) A = (rcos(α), rsin(α)) — same when O1 is origin X = (acos(α), bsin(α)) — ellipse motion These points MOVE when α changes. This is how animation works.
LINES & SEGMENTS: Line(A, B) — infinite line through A,B Segment(A, B) — segment between A,B Ray(A, B) — ray from A through B PerpendicularLine(A, l)— line through A ⟂ l ParallelLine(A, l) — line through A ∥ l
CIRCLES & ARCS: Circle(O, r) — circle center O radius r Circle(O, A) — circle center O through point A c = Circle(O1, 2) — name it 'c' to reuse
INTERSECTIONS (critical for mechanisms): P = Intersect(c1, c2) — all intersections P = Intersect(c1, c2, 1) — FIRST intersection (use 1 or 2) P = Intersect(c1, c2, 2) — SECOND intersection P = Intersect(Segment(A,B), c) — segment-circle intersection
ANGLES: Angle(A, O, B) — ∠AOB in degrees
SLIDER (numeric): r = 2 — creates a numeric slider if value is a plain number r = Slider(0, 5, 0.1) — explicit slider(min, max, step)
TRANSFORMATIONS: Rotate(A, α, O) — rotate A around O by angle α Dilate(A, s, O) — dilate A from O by factor s Translate(A, v) — translate A by vector v
ANIMATION: StartAnimation(α) — start the slider α animating StartAnimation() — start all sliders StopAnimation() — stop all animations SetAnimationSpeed(α, s) — set speed (0.1–10) After building the mechanism, always call StartAnimation(angle_label) and then geogebra_animate() for speed control.
MISC: ZoomIn(1) — zoom ZoomOut(1) — un-zoom Pan(x, y) — pan view
── CRITICAL RULES ──
ALWAYS create an angle slider (eg α=30°) FIRST before dependent points
Dependent points use cos(α), sin(α) — they move when α animates
For linkages, define fixed pivots → slider → dependent points → segments
Intersect() with index 1 or 2 picks WHICH intersection to use
After all commands, call geogebra_animate() to start motion
Args: command: GeoGebra command string (see reference above)
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Thoroughly describes how commands affect the construction, including critical rules for animation. Without annotations, the description fully bears the burden; it covers side effects (creation of objects) but does not discuss error handling or permissions, which is acceptable for a command execution tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy but well-organized into sections with headings and bullet points. It front-loads the main purpose and critical rules. A bit verbose, but structure earns a high score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description's lack of return value documentation is acceptable. It covers the tool's usage comprehensively, including examples and critical rules. Missing error behavior notes, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% coverage, but the description provides an extensive command reference that fully explains the 'command' parameter's semantics, listing valid commands and their syntax. This fully compensates for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool executes a single GeoGebra command. The extensive command reference and critical rules make the purpose unambiguous and distinguish it from siblings like geogebra_animate or geogebra_run_commands.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear workflow instructions: create angle slider first, define dependent points, then call geogebra_animate. Implicitly distinguishes from siblings by focusing on single command execution, but lacks explicit alternatives comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_export_pngB
导出当前 GeoGebra 视图为 PNG 截图。
Args: filepath: 保存路径, 如 "D:/tool/screenshot.png" scale: 缩放因子 (1-4, 默认2)
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes | ||
| scale | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the scale factor range (1-4) but omits details such as whether files are overwritten, authentication requirements, or side effects on the current view.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for purpose followed by a brief Args section. Every part serves a purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown), so return values are covered. However, the description lacks details on error handling (e.g., existing file, invalid path) and does not confirm that the export is synchronous or blocking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning for 'filepath' (save path with example) and 'scale' (factor with range and default). However, it does not detail filepath restrictions or behavior for invalid scale values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states '导出当前 GeoGebra 视图为 PNG 截图' (Export current GeoGebra view as PNG screenshot), providing a specific verb (export) and resource (view as PNG). It distinguishes this tool from siblings like geogebra_animate or geogebra_create_construction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There are no usage contexts, prerequisites, or exclusions mentioned, leaving the agent to infer applicability from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_get_objectsA
获取当前构造中所有对象的名称列表。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies a read-only, non-destructive operation. It is transparent about the action and resource, though it does not detail behavior for empty constructions or return format (output schema likely covers that).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that efficiently conveys the tool's purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the zero-parameter input and presence of an output schema (as indicated in context signals), the description is complete for this simple tool. No additional details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the description does not need to add parameter meaning. Baseline 4 applies as schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the list of names of all objects in the current construction, using the verb '获取' and specifying the resource. This distinguishes it from sibling tools like geogebra_animate or geogebra_create_construction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or scenarios where other tools would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_helpA
获取 GeoGebra 命令和机构设计的帮助。在构建机构之前先调用此工具。
Args: topic: "commands"=命令参考, "mechanisms"=机构模板, "animation"=动画, "all"=全部
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It implies a read-only help operation but doesn't explicitly state side effects or confirm non-destructiveness. The behavioral transparency is adequate but not enhanced beyond the implicit purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: a clear purpose statement and a usage guideline, followed by parameter details. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers purpose, usage, and parameters adequately. It lacks detail on the output format (e.g., text or list), but this is minor for a help tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds full meaning to the 'topic' parameter by listing possible values and their semantics (commands, mechanisms, animation, all). The schema has 0% description coverage and no enum, so the description entirely compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides help for GeoGebra commands and mechanism design, distinguishing it from execution tools like geogebra_create_construction. It specifies the resource (commands and mechanism design) and the action (get help).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises calling this tool before building a mechanism ('在构建机构之前先调用此工具'), providing clear usage context. It doesn't explicitly exclude alternatives, but given sibling tools, the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_new_constructionA
新建空白 GeoGebra 构造,清除当前所有对象。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states that current objects are cleared, which is a key behavioral trait. Since no annotations are provided, this carries the full burden. However, it does not mention whether unsaved work is lost or if confirmation is required, so it is not fully comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the key action. Every word is necessary and there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description covers the main behavior (create blank, clear objects). It could mention what happens to the current construction (e.g., unsaved changes), but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description naturally adds value by clarifying the tool's effect. Baseline 4 is appropriate as the description provides context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new blank GeoGebra construction, clear all current objects.' It uses specific verb+resource and distinguishes from sibling tools like geogebra_create_construction by explicitly mentioning blank start and clearing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a fresh start is needed (clear all objects), but it does not explicitly state when to use this tool versus alternatives such as geogebra_create_construction or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_run_commandsA
Execute multiple GeoGebra commands from a structured list. Preferred over geogebra_batch for AI clients — no JSON string wrapping needed.
Args: commands: Ordered GeoGebra commands, e.g. ["A=(0,0)", "B=(6,0)", "Segment(A,B)"]
| Name | Required | Description | Default |
|---|---|---|---|
| commands | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'execute', but does not disclose whether the operation is destructive, requires certain permissions, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise three-line description that is front-loaded with purpose and usage guidance. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic purpose and provides a usage hint, but lacks behavioral details (e.g., side effects, preconditions) which would help given the tool modifies constructions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. Provides an example of command format, but does not specify valid command syntax or constraints beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes multiple GeoGebra commands from a structured list. It differentiates from sibling geogebra_batch by noting it is preferred for AI clients without JSON wrapping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states preference over geogebra_batch for AI clients, giving a clear usage context. However, it does not cover when to use other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_saveB
保存当前 GeoGebra 构造为 .ggb 文件。
Args: filepath: 保存路径, 如 "D:/tool/my_mechanism.ggb"
| Name | Required | Description | Default |
|---|---|---|---|
| filepath | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behaviors. It does not mention overwrite behavior, permissions, or what happens to unsaved changes. The only behavioral detail is the file format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and to the point, with no superfluous text. However, it could be slightly more structured (e.g., using bullet points for parameters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple save operation with one parameter and an existing output schema (not shown), the description is adequate but lacks details on return behavior or error conditions. It does not fully compensate for missing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It explains filepath as the save path with a concrete example ("D:/tool/my_mechanism.ggb"), adding value beyond the schema's type-only definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: saving the current GeoGebra construction as a .ggb file. It specifies the verb (save), resource (current construction), and format (.ggb). This distinguishes it from siblings like export_png or animate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as export_png for images. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_set_appearanceB
设置对象外观(颜色、线宽、点大小、可见性)。
Args: label: 对象标签名 color_r/g/b: RGB 颜色 0-1 (-1 不修改) thickness: 线宽 1-13 point_size: 点大小 1-9 visible: 是否可见 label_visible: 是否显示标签
| Name | Required | Description | Default |
|---|---|---|---|
| label | Yes | ||
| color_r | No | ||
| color_g | No | ||
| color_b | No | ||
| thickness | No | ||
| point_size | No | ||
| visible | No | ||
| label_visible | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as side effects, permission requirements, or reversibility. It only states what the tool does without additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the purpose, and lists arguments efficiently. However, it could be better structured with bullet points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no annotations, and an output schema that is not described, the description lacks completeness. It does not explain return values or provide enough context for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning for parameters like color_r/g/b (range 0-1, -1 meaning no change) and ranges for thickness and point_size. However, not all parameters are explained equally.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets object appearance (color, line width, point size, visibility). It is specific about the resource (object appearance) and verb (set), and distinguishes from siblings like geogebra_set_view which sets view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_set_viewA
设置 GeoGebra 视图模式。
Args: perspective: "G"=几何, "A"=代数, "T"=表格, "3D"=三维, "AG"=代数+几何
| Name | Required | Description | Default |
|---|---|---|---|
| perspective | No | G |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description does not disclose non-obvious behaviors (e.g., whether view changes are permanent, require authentication, or affect existing objects). Only parameter values are explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence for the action and one line for parameter semantics. Front-loaded with the action, no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with an output schema (which likely covers return values), the description is largely complete. It lacks minor contextual details like persistence or app scope, but suffices for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no enum or description for the parameter (0% coverage), but the description lists all valid values with their meanings (e.g., 'G'=几何). This fully compensates for the schema gap and enables correct tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('设置 GeoGebra 视图模式' - Set GeoGebra view mode) and the parameter purpose. It clearly distinguishes from sibling tools like geogebra_set_appearance, but does not elaborate on the scope of the view change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as geogebra_set_appearance or geogebra_create_construction. The description lacks context for proper selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_statusA
检查 GeoGebra 连接状态和当前构造信息。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states the tool checks status and construction info. It does not disclose behavioral traits such as being read-only, requiring a running GeoGebra instance, or having no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is concise and front-loaded. While it could benefit from more structure, it contains no waste and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists to describe return values, the description is adequate for the low complexity. It covers the core purpose without needing to elaborate on returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 0 parameters, so schema coverage is trivially 100%. Baseline for no parameters is 4, and the description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks GeoGebra connection status and current construction information. It uses a specific verb ('检查') and resource ('连接状态和当前构造信息'), and is distinct from siblings like geogebra_version which returns version info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings. For example, it doesn't mention that this should be called before other operations to verify connectivity, nor does it differentiate from geogebra_get_objects for construction details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
geogebra_versionA
返回 MCP Server 版本号。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the basic behavior (return version) but does not mention any side effects, network calls, or authorization requirements. For a read-only version tool, this may be sufficient but not highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose. No wasted words. It is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the existence of an output schema, the description is complete. It tells the agent exactly what the tool does, which is sufficient for a simple version retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter information. Baseline for 0 parameters is 4, and the description correctly leaves it at that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Returns the MCP Server version number.' It uses a specific verb ('returns') and resource ('version number'), effectively distinguishing it from sibling tools like geogebra_animate or geogebra_exec.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives, but the simplicity of returning a version makes it obvious. No mention of when-not-to-use or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
15 tool updates
v0.1.0- First observed
geogebra_animate - First observed
geogebra_batch - First observed
geogebra_create_construction - First observed
geogebra_draw_mechanism - First observed
geogebra_exec - First observed
geogebra_export_png - First observed
geogebra_get_objects - First observed
geogebra_help - First observed
geogebra_new_construction - First observed
geogebra_run_commands - First observed
geogebra_save - First observed
geogebra_set_appearance - First observed
geogebra_set_view - First observed
geogebra_status - First observed
geogebra_version
TDQS
Multiple tools (geogebra_batch, geogebra_create_construction, geogebra_draw_mechanism, geogebra_exec, geogebra_run_commands) overlap in executing commands, though descriptions guide preferred usage. This can cause confusion for agents.
All tools share the 'geogebra_' prefix and mostly follow verb_noun pattern (e.g., create_construction, export_png). Some are single verbs (animate, exec, status), which is a minor inconsistency.
15 tools is well-scoped for the domain of creating and animating GeoGebra constructions. Each tool serves a clear purpose without redundancy or excessive specialization.
Covers core workflows: creation, command execution, styling, animation, saving, and export. Minor gaps include no delete/undo tool and limited object querying beyond names.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Educational MCP server with 17 math/stats tools, visualizations, and persistent workspace
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Give any MCP-compatible AI assistant a builder for live, hosted web tools and workflows.
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to GeoGebra's mathematical computation, geometry construction, and visualization capabilities. Enables mathematical calculations, CAS operations, geometric constructions, and exporting results as PNG or PDF images.11-
- FlicenseCqualityDmaintenanceExposes a broad mathematics toolkit including symbolic algebra, calculus, numerical methods, linear algebra, statistics, discrete math, graph theory, rendering, and optional GPU acceleration via MCP tools for use with Claude Desktop and other MCP hosts.512-
- AlicenseNot gradedqualityDmaintenanceBrowser-based geometry processing server that enables AI agents to create geometry, run analysis and operators, inspect results, and take screenshots via MCP.845MIT
- AlicenseAqualityDmaintenanceEnables to control FreeCAD from Claude Desktop through MCP, allowing CAD operations like creating and editing objects, taking screenshots, and executing Python code.111MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/123pc/Geogebra_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server