mcpField
G
geogebra-mcp

geogebra-mcp

本地服务
github.com/haison8x科研与教育01 周前更新

关于 geogebra-mcp

geogebra-mcp 是面向 AI 客户端的 MCP 服务,可在 GeoGebra Calculator 中创建和编辑平面几何图形。它通过读取状态、检查截图与错误并迭代修正,支持对图形进行验证和按需修改。

主要功能

  1. 01运行并诊断 GeoGebra 命令
  2. 02读取对象状态与依赖关系
  3. 03截取画布或窗口图像
  4. 04评估表达式而不创建对象
  5. 05编辑样式、删除与撤销
  6. 06保存快照并导出文件

适用场景

  1. 01按文字描述绘制几何图形
  2. 02检查图形属性并修正构造
  3. 03按要求修改已有图形
  4. 04导出 PNG 或 .ggb 文件

MCP 相关

通过 stdio 向 MCP 客户端提供 GeoGebra 绘图工具、构造规则与命令目录资源,以及 draw_geometry_problem 提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"haison8x-geogebra": {
"command": "npx",
"args": [
"-y",
"geogebra-mcp"
],
"env": {
"GGB_BROWSER": "<GGB_BROWSER>",
"GGB_HEADLESS": "<GGB_HEADLESS>",
"GGB_PROFILE_DIR": "<GGB_PROFILE_DIR>",
"GGB_URL": "<GGB_URL>"
}
}
}
}
启动命令npx -y geogebra-mcp
需要配置的环境变量
GGB_BROWSERBrowser channel: chrome or msedge (default: try chrome, msedge, then Playwright Chromium)
GGB_HEADLESSSet to 1 to run without a visible window
GGB_PROFILE_DIRBrowser profile directory (default: ~/.geogebra-mcp/profile)
GGB_URLPage to open

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmgeogebra-mcp0.1.2

工具

11

收录的工具列表 · 更新于 1 周前

参数类型必填说明
commandsarray是要运行的命令,按执行顺序逐项列出
stop_on_errorboolean否在第一个命令失败时停止(后续命令通常依赖于它)。默认为 true。

详细介绍

geogebra-mcp

一个 MCP 服务,可让 AI(Claude Desktop、Claude Code、Cursor,……)直接在 GeoGebra® Calculator 上绘制和编辑平面几何图形(https://www.geogebra.org/calculator)。

与 GeoGebra AutoDraw AI 扩展的复制粘贴工作流不同,这里的 AI 会循环操作:运行命令、读取错误和图形状态、验证性质、查看截图并自行修正图形;也可以根据要求编辑图形(“H 必须是从 A 向下作的垂足”)。

演示:AI 绘制内接于圆 (O) 的三角形 ABC,并作出高 AH 和中线 AM,然后拖动 A,图形随之变化

使用 GeoGebra® 制作 — https://www.geogebra.org

非官方项目,与 GeoGebra GmbH 无关,也未获得其认可。请参阅许可与 GeoGebra。

工作原理

AI client ──MCP (stdio)──► geogebra-mcp ──Playwright──► Chrome window: geogebra.org/calculator
                                                            └─ window.ggbApplet (GeoGebra JS API)
  • 首次调用工具时,服务会在 GeoGebra Calculator 中打开一个 Chrome(或 Edge)窗口。用户可以观看图形绘制过程,也可以手动拖动和编辑图形。
  • 工具通过 page.evaluate 在页面中调用 GeoGebra JS API(ggbApplet)——不会模拟点击。
  • 命令通过 asyncEvalCommandGetLabels 运行,该函数会按需加载 GeoGebra 模块,因此证明器和脚本命令(AreCollinear、Incircle、TriangleCenter、ClosestPoint(line, point)……)都能使用。
  • GeoGebra 只会用 null 表示命令失败,因此服务会自行提供诊断信息(未知名称、未知命令、括号不匹配、已知问题)和警告(结果未定义、保留名称、两点交点未指定索引)。
  • 如果窗口被关闭或重新加载,下次调用工具时会重新打开窗口,并恢复最后已知的图形。
  • 由于 ggbApplet.undo() 不会撤销 API 命令,因此撤销由服务管理(XML 历史记录)。

工具

工具用途
ggb_run_commands按顺序运行命令;返回每条命令的结果、创建/移除的对象、警告和失败提示。给已有名称赋值会重新定义该对象。
ggb_get_state获取对象的类型、定义、值、坐标、可见性、dependsOn / usedBy。
ggb_screenshot获取绘图区(或整个窗口)的 PNG 截图,用于目视检查。
ggb_evaluate计算表达式而不添加对象(Angle(B, A, C)、AreCollinear(A, H, O)……)。
ggb_set_style设置颜色、可见性、标签、标题、粗细、线条样式、点大小、填充和固定状态。
ggb_delete删除对象(及其依赖对象)。
ggb_clear开始绘制新图形。
ggb_undo撤销通过服务进行的更改。
ggb_snapshot保存/恢复/列出具名版本。
ggb_fit_view将所有可见点和圆适配到视图中(1:1 比例),并切换坐标轴/网格。
ggb_export保存为 .ggb 或 .png。

此外还有:资源 geogebra://rules(作图规则)、资源 geogebra://commands(命令目录)、提示词 draw_geometry_problem。

设置

要求:Node.js ≥ 20,以及 Google Chrome 或 Microsoft Edge(否则运行 npx playwright install chromium)。

Claude Code(插件)
claude plugin marketplace add haison8x/geogebra-mcp
claude plugin install geogebra-mcp@geogebra-tools

之后,该服务会在 /mcp 中显示为 plugin:geogebra-mcp:geogebra。之后可使用 claude plugin update geogebra-mcp@geogebra-tools 更新。

Claude Code(不使用插件)
claude mcp add geogebra -- npx -y geogebra-mcp
Claude Desktop、Cursor 和其他 MCP 客户端

编辑 claude_desktop_config.json(设置 → 开发者 → 编辑配置),或编辑客户端的 MCP 配置:

{
  "mcpServers": {
    "geogebra": {
      "command": "npx",
      "args": ["-y", "geogebra-mcp"]
    }
  }
}

然后重启客户端,并尝试提出例如以下请求:“绘制内接于圆 (O) 的三角形 ABC,作高 AH,M 为 BC 的中点。”

从源代码运行
git clone https://github.com/haison8x/geogebra-mcp.git
cd geogebra-mcp
npm install
npm run build
claude mcp add geogebra -- node /path/to/geogebra-mcp/dist/index.js
配置(环境变量)
变量默认值含义
GGB_BROWSERtry chrome, msedge, then Playwright Chromium浏览器通道
GGB_HEADLESS0设为 1 可在无窗口模式下运行(用于测试)
GGB_PROFILE_DIR~/.geogebra-mcp/profile浏览器配置文件(保留 GeoGebra 登录状态)。每个配置文件对应一个服务实例。
GGB_URLhttps://www.geogebra.org/calculator要打开的页面

开发

发布:更新 package.json、.claude-plugin/plugin.json、.claude-plugin/marketplace.json、server.json(两个 version 字段)中的版本,以及 .mcp.json 中固定的版本。然后推送、运行 npm publish、mcp-publisher publish,并创建 GitHub 发布版本。

npm run build
npm run smoke              # end-to-end test through a real MCP client (headless)
npm run smoke -- --headed  # same, with a visible window

注意事项

  • 快照和撤销历史记录在服务运行期间保存在内存中。

许可证与 GeoGebra

  • 本仓库中的代码采用 MIT 许可证(LICENSE)。该许可证不涵盖 GeoGebra。
  • GeoGebra® 是 GeoGebra GmbH 的注册商标。本项目独立开发,不包含任何 GeoGebra 软件;它会驱动你在 geogebra.org 上使用自己的浏览器,因此你对 GeoGebra 的使用受 GeoGebra 许可证约束。
  • GeoGebra 可免费用于非商业用途。商业用途(付费材料、培训、服务……)需要获得 GeoGebra 的许可([email protected])。
  • 分享使用此工具制作的图形、图像或 .ggb 文件时,请保留署名“Made with GeoGebra®”及指向 https://www.geogebra.org 的链接。

详情请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。