mcpField
G
geogebra-mcp

geogebra-mcp

ローカル
github.com/haison8x科学・教育01 週間前に更新

geogebra-mcp について

geogebra-mcp は、AI クライアントから GeoGebra Calculator 上の平面図形を作成・編集する MCP サーバーです。状態やエラー、スクリーンショットを確認しながら反復し、図形の検証や依頼に応じた修正を行えます。

主な機能

  1. 01GeoGebra コマンドの実行と診断
  2. 02オブジェクト状態と依存関係の確認
  3. 03キャンバスやウィンドウの撮影
  4. 04オブジェクトを作らず式を評価
  5. 05スタイル編集、削除、取り消し
  6. 06スナップショット保存とファイル出力

活用シーン

  1. 01文章の指示から図形を作成
  2. 02図形の性質を確認して構成を修正
  3. 03既存の図形を依頼に応じて編集
  4. 04PNG または .ggb ファイルに出力

MCP 対応

stdio 経由で GeoGebra 操作用ツール、構成ルールとコマンド一覧のリソース、draw_geometry_problem プロンプトを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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はい実行するコマンドを、実行順に1項目ずつ指定します
stop_on_errorbooleanいいえ最初のコマンドが失敗した時点で停止します(後続のコマンドは通常これに依存します)。デフォルトは true です。

詳細

geogebra-mcp

AI(Claude Desktop、Claude Code、Cursor など)が GeoGebra® Calculator(https://www.geogebra.org/calculator)上で平面図形を直接描画・編集できる MCP サーバーです。

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 としてしか報告しないため、サーバーは独自の診断情報(不明な名前、不明なコマンド、括弧の不整合、既知の注意点)と警告(未定義の結果、予約済みの名前、インデックスを指定していない2点間の交点)を追加します。
  • ウィンドウを閉じるか再読み込みした場合、次のツール呼び出し時にウィンドウが再び開き、最後に確認された図形が復元されます。
  • 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"]
    }
  }
}

その後、クライアントを再起動し、たとえば次のように依頼してください: 「三角形 ABC を円(O)に内接させ、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 のログイン状態を保持します)。1 つのプロファイルにつきサーバーインスタンスは 1 つです。
GGB_URLhttps://www.geogebra.org/calculator開くページ

開発

リリース手順:package.json、.claude-plugin/plugin.json、.claude-plugin/marketplace.json、server.json(2 つの 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 をご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。