Skip to main content
Glama
123pc
by 123pc

GeoGebra MCP Server

让 Claude Code、Codex 和其他 MCP 客户端操控 GeoGebra——绘制几何构造、函数图像、3D 图形、动态机构,保存 .ggb,导出 .png。默认使用 Web Runtime,无需安装 GeoGebra 桌面版。

本项目不是要替代 GeoGebra,而是把 GeoGebra 变成 AI 可以可靠调用的数学可视化后端。


能做什么

场景

示例

函数图像

f(x)=sin(x), g(x)=cos(x), 交点, 切线

平面几何

三角形, 外接圆, 角平分线, 轨迹, 位似变换

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 MCP

agent 会根据 AGENTS.mdskills/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 codex

2. 手动安装

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_installcdp_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=9222

PowerShell:

$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=9222

Linux:

geogebra-classic --remote-debugging-port=9222

5. 配置 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_status

检查 GeoGebra 连接状态

geogebra_version

查看 MCP Server 版本

geogebra_help

获取命令/机构/动画参考(topic="commands"|"mechanisms"|"animation"

命令执行

工具

推荐度

说明

geogebra_run_commands

推荐

结构化数组执行,适合 AI 客户端

geogebra_create_construction

推荐

结构化对象执行,带样式和动画

geogebra_exec

备选

单条命令执行

geogebra_batch

兼容

JSON 字符串批量执行,兼容旧客户端

geogebra_draw_mechanism

兼容

JSON 字符串机构绘制,兼容旧客户端

视图与外观

工具

说明

geogebra_new_construction

清空当前构造

geogebra_set_view

设置视图:G(几何)、AG(代数+几何)、3DT(表格)

geogebra_set_appearance

颜色、线宽、点大小、标签可见性

geogebra_animate

启动/停止滑块动画,设置速度

geogebra_get_objects

获取当前构造对象列表(用于自验收)

输出

工具

说明

geogebra_save

保存为 .ggb 文件

geogebra_export_png

导出当前视图为 .png


给 AI 的调用流程

AI 在处理绘图请求时应遵循以下步骤:

  1. 确认输出路径 — 如果用户没指定保存位置,先问「文件保存在哪里?」

  2. 检查连接geogebra_status

  3. 未连接时提示 — Web Runtime 会自动启动 Chromium;Desktop 后端需告知用户双击 start_geogebra.bat 启动 GeoGebra

  4. 设置视图geogebra_set_view

  5. 清空画布(如需) — geogebra_new_construction

  6. 发送命令 — 用 geogebra_run_commandsgeogebra_create_construction

  7. 自验收geogebra_get_objects,确认对象数 >= 3

  8. 动画(如需) — geogebra_set_appearance 使滑块可见 + geogebra_animate 自动播放

  9. 保存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

用途

skills/geogebra-master

教 AI 像 GeoGebra 专家一样作图——强制滑块可见、自动播放动画、自验收

skills/use-geogebra-mcp

教 AI 部署、配置、诊断本 MCP,以及离线 bundle 的使用

skills/geogebra-setup

教 AI 一键安装和配置本 MCP(python scripts/setup_geogebra_mcp.py


环境变量

变量

默认值

说明

GEOGEBRA_BACKEND

auto

后端选择:auto(优先 Web)、webdesktop

GEOGEBRA_WEB_HEADLESS

1

Web Runtime 无头模式:1=是,0=显示浏览器窗口

GEOGEBRA_WEB_WIDTH

1200

Web Runtime 视口宽度

GEOGEBRA_WEB_HEIGHT

800

Web Runtime 视口高度

GEOGEBRA_WEB_BUNDLE

cdn

Web Runtime 资源加载方式:cdn(在线)或 local(离线 bundle)

GEOGEBRA_WEB_BUNDLE_PATH

平台默认

离线 bundle 缓存目录(覆盖默认路径)

GEOGEBRA_CDP_PORT

9222

Desktop 后端 CDP 远程调试端口

GEOGEBRA_RESTART_EXISTING

0

Desktop 后端:设为 1 允许自动重启已有的 GeoGebra


常见问题

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 步)。

动画不动

检查三点:

  1. 是否创建了角度滑块(alpha=30 deg

  2. 运动点是否依赖滑块(A=O+(2*cos(alpha),2*sin(alpha))

  3. 是否调用了 geogebra_set_appearance 使滑块可见 + geogebra_animate(label="alpha", animate=true)

  4. 使用 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 pullnpm installpip 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 tools
geogebra_animateA

设置动画——让滑块控制的机构动起来。

Args: label: 滑块标签, 如 "α" animate: 是否启动动画 speed: 速度 (0.1-10)

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
animateNo
speedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)"]'

ParametersJSON Schema
NameRequiredDescriptionDefault
commands_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
designYes
output_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ──

  1. New construction (automatic)

  2. Execute commands in order

  3. Apply styles (colors, thickness, point sizes)

  4. Start animation on the angle slider

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
design_jsonYes
output_dirNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ──

  1. ALWAYS create an angle slider (eg α=30°) FIRST before dependent points

  2. Dependent points use cos(α), sin(α) — they move when α animates

  3. For linkages, define fixed pivots → slider → dependent points → segments

  4. Intersect() with index 1 or 2 picks WHICH intersection to use

  5. After all commands, call geogebra_animate() to start motion

Args: command: GeoGebra command string (see reference above)

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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)

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes
scaleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

获取当前构造中所有对象的名称列表。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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"=全部

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoall

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 构造,清除当前所有对象。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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"

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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: 是否显示标签

ParametersJSON Schema
NameRequiredDescriptionDefault
labelYes
color_rNo
color_gNo
color_bNo
thicknessNo
point_sizeNo
visibleNo
label_visibleNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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"=代数+几何

ParametersJSON Schema
NameRequiredDescriptionDefault
perspectiveNoG

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 连接状态和当前构造信息。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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 版本号。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 15 tool updatesv0.1.0
    • First observedgeogebra_animate
    • First observedgeogebra_batch
    • First observedgeogebra_create_construction
    • First observedgeogebra_draw_mechanism
    • First observedgeogebra_exec
    • First observedgeogebra_export_png
    • First observedgeogebra_get_objects
    • First observedgeogebra_help
    • First observedgeogebra_new_construction
    • First observedgeogebra_run_commands
    • First observedgeogebra_save
    • First observedgeogebra_set_appearance
    • First observedgeogebra_set_view
    • First observedgeogebra_status
    • First observedgeogebra_version

TDQS

A3.6/5.0
Disambiguation3/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessResponsive

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

Related MCP Servers

  • F
    license
    C
    quality
    D
    maintenance
    Exposes 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.
    51
    2
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Browser-based geometry processing server that enables AI agents to create geometry, run analysis and operators, inspect results, and take screenshots via MCP.
    84
    5
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables to control FreeCAD from Claude Desktop through MCP, allowing CAD operations like creating and editing objects, taking screenshots, and executing Python code.
    11
    1
    MIT

Latest Blog Posts

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