Mcp Server Jsxgraph について
Mcp Server Jsxgraphは、JSXGraphでインタラクティブな数学ビジュアライゼーションを作成するTypeScript製MCPサーバーです。教育、エンジニアリング、科学分野向けに、関数、幾何、曲線、方程式系のツールを提供します。
主な機能
- 01導関数や積分を含む関数グラフの作成
- 02インタラクティブな幾何図の作成
- 03媒介変数曲線とベクトル場の可視化
- 04多項式と二次関数の分析
- 05方程式、不等式、円錐曲線の描画
- 06STDIO、SSE、Streamableトランスポート対応
活用シーン
- 01グラフを使った関数変換の学習
- 02幾何構成と円錐曲線の図示
- 03ベクトル場と媒介変数曲線の探索
- 04数学ビジュアライゼーションツールのMCPクライアント接続
MCP 対応
数学ビジュアライゼーション用ツールをMCPクライアントに公開します。STDIO、SSE、Streamable HTTPに対応し、環境変数で特定のツールを無効化できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
19掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| functions | array | いいえ | プロットする数学関数の配列です。各関数には式と任意のスタイルを指定します。点のみをプロットする場合は空にできます。 |
| points | array | いいえ | グラフにプロットする任意の点です。各点には x と y の両方の座標(数値)が必須です。例:[{x: 0, y: 0, name: "Origin"}, {x: 1, y: 1}] |
| showDerivative | boolean | いいえ | 最初の関数の導関数を表示するかどうか |
| showIntegral | boolean | いいえ | 最初の関数の積分領域を表示するかどうか |
| integralBounds | array | いいえ | 積分領域の範囲 [a, b]。showIntegral が true の場合は必須です |
| tangentAt | number | いいえ | 接線を表示する x 座標 |
| style | object | いいえ | チャートのカスタムスタイル設定です。 |
| style.theme | enum | いいえ | 数学チャートのテーマを設定します。default | dark | light |
| style.backgroundColor | string | いいえ | 数学チャートの背景色(例:'#fff')。 |
| style.grid | boolean | いいえ | グリッド線を表示するかどうか。 |
| style.axis | boolean | いいえ | 軸線を表示するかどうか。 |
| width | number | いいえ | 数学グラフの幅を設定します。デフォルトは 800 です。 |
| height | number | いいえ | 数学グラフの高さを設定します。デフォルトは 600 です。 |
| title | string | いいえ | 数学グラフのタイトルを設定します。 |
| axisXTitle | string | いいえ | X 軸のラベル |
| axisYTitle | string | いいえ | Y 軸のラベル |
| boundingBox | array | いいえ | グラフの境界ボックス。デフォルトは [-10, 10, 10, -10] です。 |
| keepAspectRatio | boolean | いいえ | アスペクト比を維持するかどうか。 |
| showCopyright | boolean | いいえ | JSXGraph の著作権表示を表示するかどうか。 |
| showNavigation | boolean | いいえ | ナビゲーションコントロールを表示するかどうか。 |
| zoom | object | いいえ | グラフのズーム設定。 |
| zoom.enabled | boolean | いいえ | |
| zoom.factorX | number | いいえ | |
| zoom.factorY | number | いいえ | |
| zoom.wheel | boolean | いいえ | |
| zoom.needShift | boolean | いいえ | |
| zoom.min | number | いいえ | |
| zoom.max | number | いいえ | |
| pan | object | いいえ | グラフのパン設定。 |
| pan.enabled | boolean | いいえ | |
| pan.needShift | boolean | いいえ | |
| pan.needTwoFingers | boolean | いいえ |
詳細
MCP Server JSXGraph 
最新の安定バージョン:0.1.2 | NPM パッケージ:mcp-server-jsxgraph
JSXGraph を使用して数学的なビジュアライゼーションを生成する、Model Context Protocol サーバーです。この MCP サーバーは、関数、幾何学、パラメトリック曲線、教育数学向けのインタラクティブな数学チャート生成機能を提供します。
数学的なビジュアライゼーション機能を提供する、TypeScript ベースの MCP サーバーです。MCP ツールを通じてさまざまな種類の数学チャートや図を作成でき、教育数学、工学、科学分野での用途に最適です。
🚀 クイックリファレンス
トランスポートと接続の一覧
| シナリオ | コマンド | リッスンポート | アクセスエンドポイント | 用途 |
|---|---|---|---|---|
| STDIO(デフォルト) | npx -y mcp-server-jsxgraph | N/A | N/A | デスクトップ/IDE クライアント(Claude、Cursor、Cline) |
| SSE(ローカル) | mcp-server-jsxgraph --transport sse | 1122 | http://localhost:1122/sse | Web ストリーミングアプリケーション |
| Streamable(ローカル) | mcp-server-jsxgraph --transport streamable | 1122 | http://localhost:1122/mcp | HTTP ストリーミングクライアント |
| Docker SSE | docker compose up -d(sse サービス) | 1123 | http://localhost:1123/sse | コンテナ化された SSE デプロイ |
| Docker Streamable | docker compose up -d(streamable サービス) | 1122 | http://localhost:1122/mcp | コンテナ化された Streamable デプロイ |
最小限の動作設定
デスクトップクライアント(Claude Desktop、Cursor、Cline):
{
"mcpServers": {
"mcp-server-jsxgraph": {
"command": "npx",
"args": ["-y", "mcp-server-jsxgraph"]
}
}
}
SSE のセルフテスト(ブラウザーで確認):
npx -y mcp-server-jsxgraph --transport sse --port 1122
# Open: http://localhost:1122/sse
📋 目次
✨ 機能
JSXGraph を活用した、インタラクティブな数学グラフィックス向けの 13 種類の数学ビジュアライゼーションツールです。
数学ビジュアライゼーションチャート(JSXGraph)
generate_function_graph:導関数、積分、接線、多数の関数に対応した数学関数のグラフを生成します。generate_parametric_curve:円、リサージュ曲線、らせん、サイクロイドなどの媒介変数表示の曲線を、オプションのアニメーション軌跡付きで生成します。generate_geometry_diagram:点、直線、円、多角形、角、幾何学的な作図を含むインタラクティブな幾何図形を作成します。generate_vector_field:矢印、流線、特異点、大きさのカラー表示を用いて、2D ベクトル場を可視化します。generate_linear_system:実行可能領域と線形計画法による最適化を含め、連立一次方程式と不等式を可視化します。generate_function_transformation:平行移動、拡大・縮小、反射、合成などの関数変換をアニメーションで表示します。generate_quadratic_analysis:頂点、根、対称軸、焦点、準線を含む二次関数の包括的な解析を行います。generate_exponential_logarithm:漸近線、増減の分析、逆関数の関係を含む指数関数と対数関数をプロットします。generate_rational_function:漸近線、穴、定義域の制限、臨界点を含む有理関数と無理関数を可視化します。generate_equation_system:数値解と相図を用いて、線形および非線形の方程式系を解いて可視化します。generate_conic_section:円、楕円、放物線、双曲線などの円錐曲線と、高次多項式を幾何学的性質とともに生成します。generate_polynomial_steps:根、導関数、グラフ表現を用いた、インタラクティブな多項式の段階的解析です。generate_number_line_inequality:単純な不等式(x > 2)、連立不等式(1 < x < 4)、カスタムスタイルに対応した複数の不等式系を、数直線上に可視化します。
🏗️ システムアーキテクチャ
MCP サーバー JSXGraph は、プロトコル処理、数学的解析、ビジュアライゼーションの描画を明確に分離した、階層型アーキテクチャを採用しています。
システムアーキテクチャの概要
graph TB
subgraph "Entry Layer"
CLI["CLI Entry Point<br/>src/index.ts"]
PKG["package.json<br/>Build Configuration"]
end
subgraph "MCP Protocol Layer"
SERVER["MCP Server Core<br/>src/server.ts"]
HANDLERS["Request Handlers<br/>ListToolsRequestSchema<br/>CallToolRequestSchema"]
end
subgraph "Transport Abstractions"
STDIO["Desktop Integration<br/>startStdioMcpServer()"]
SSE["Web Streaming<br/>startSSEMcpServer()"]
HTTP["Cloud Deployment<br/>startHTTPStreamableServer()"]
end
subgraph "Tool Execution Framework"
DISPATCHER["callTool()<br/>Request Dispatcher"]
REGISTRY["Tool Registry<br/>jsxgraph/index.ts"]
ENGINE["MathAnalysisEngine<br/>Mathematical Core"]
end
subgraph "Mathematical Tools"
FUNC["Function Analysis Tools"]
POLY["Polynomial Tools"]
GEO["Geometry Tools"]
NUM["Number Line Tool"]
end
CLI --> SERVER
PKG --> CLI
SERVER --> HANDLERS
HANDLERS --> STDIO
HANDLERS --> SSE
HANDLERS --> HTTP
STDIO --> DISPATCHER
SSE --> DISPATCHER
HTTP --> DISPATCHER
DISPATCHER --> REGISTRY
DISPATCHER --> ENGINE
REGISTRY --> FUNC
REGISTRY --> POLY
REGISTRY --> GEO
REGISTRY --> NUM
コアコンポーネント
MCP プロトコルの実装
- サーバーコア:
@modelcontextprotocol/sdkを通じて Model Context Protocol を実装します。 - リクエスト処理:
ListToolsRequestSchemaとCallToolRequestSchemaに対応しています。 - ツールの検出:環境に応じたフィルタリング機能を備えた動的なツール登録です。
- エラー管理:MCP 準拠のエラーコードを用いた包括的なエラー処理です。
トランスポート層のサポート
| トランスポート | 用途 | エンドポイント | 統合 |
|---|---|---|---|
| STDIO | デスクトップアプリ(Claude、VSCode、Cline、Cursor) | 標準入出力 | MCP クライアントとの直接統合 |
| SSE | Web ストリーミングアプリケーション | http://localhost:1122/sse | サーバー送信イベント |
| HTTP Streamable | クラウドデプロイプラットフォーム | http://localhost:1122/mcp | HTTP ストリーミングプロトコル |
数学的解析エンジン
MathAnalysisEngine は高度な数学計算機能を提供します。
- 関数解析:定義域、値域、切片、極値、漸近線、単調性
- 多項式解析:根の計算、因数分解、端点での挙動の分析
- 不等式の求解:単純不等式、連立不等式、絶対値不等式、論理不等式
- 数値計算法:二分法、数値微分、区間計算
MCP プロトコルの通信フロー
sequenceDiagram
participant Client as MCP Client
participant Server as Server Instance
participant Handler as CallToolRequestSchema Handler
participant Dispatcher as callTool() Function
participant Validator as Zod Schema Validation
participant Engine as MathAnalysisEngine
participant Generator as JSXGraph Code Generator
Client->>Server: CallToolRequest
Server->>Handler: request.params
Handler->>Dispatcher: callTool(name, arguments)
Dispatcher->>Validator: z.object(schema).safeParse(args)
Validator-->>Dispatcher: Validation Result
alt Valid Request
Dispatcher->>Engine: Mathematical Analysis
Engine-->>Dispatcher: Analysis Data
Dispatcher->>Generator: generateJSXGraphCode(config)
Generator-->>Dispatcher: JavaScript Code
Dispatcher-->>Handler: Tool Response
Handler-->>Server: Success Response
Server-->>Client: JSXGraph Visualization
else Invalid Request
Dispatcher-->>Handler: McpError(ErrorCode.InvalidParams)
Handler-->>Server: Error Response
Server-->>Client: Error Message
end
ツール実行フレームワーク
このシステムは、統一された実行フレームワークを通じて、15 種類以上の数学ビジュアライゼーションツールを管理します。
graph LR
subgraph "Tool Registry"
CHARTS["Charts Object<br/>All Tool Definitions"]
ENABLED["getEnabledTools()<br/>Environment Filtering"]
DISABLED["getDisabledTools()<br/>Environment Variables"]
end
subgraph "Type System"
MAP["CHART_TYPE_MAP<br/>Tool Name Mapping"]
JSXSET["JSXGRAPH_CHARTS Set<br/>Type Validation"]
CONFIG["JSXGraphConfig Interface<br/>Common Parameters"]
end
subgraph "Code Generation"
CONTAINER["Dynamic Container IDs<br/>jxgbox_[type]_[timestamp]"]
GENERATOR["generateJSXGraphCode()<br/>HTML Generation"]
SPECIAL["Special Handling<br/>polynomial-steps<br/>number-line"]
end
CHARTS --> ENABLED
ENABLED --> MAP
MAP --> JSXSET
JSXSET --> CONFIG
CONFIG --> CONTAINER
CONTAINER --> GENERATOR
GENERATOR --> SPECIAL
数学ツールのカテゴリ
| カテゴリ | ツール | 主な機能 |
|---|---|---|
| 関数解析 | generate_function_graphgenerate_function_transformationgenerate_function_properties | 関数グラフ、変換、導関数と積分を含む包括的な解析 |
| 多項式解析 | generate_polynomial_completegenerate_polynomial_stepsgenerate_quadratic_analysis | 多項式の因数分解、根の探索、段階的な解析 |
| 幾何学と応用分野 | generate_geometry_diagramgenerate_parametric_curvegenerate_vector_fieldgenerate_conic_section | 対話型の幾何学、媒介変数曲線、ベクトル場の可視化 |
| 方程式系 | generate_linear_systemgenerate_equation_systemgenerate_exponential_logarithmgenerate_rational_function | 線形・非線形の方程式系、指数関数、対数関数 |
| 専用ツール | generate_number_line_inequality | 区間表記を用いた不等式の拡張可視化 |
技術スタック
graph TD
subgraph "Core Framework"
TS["TypeScript"]
NODE["Node.js Runtime"]
end
subgraph "MCP Integration"
SDK["@modelcontextprotocol/sdk"]
PROTO["MCP Protocol Implementation"]
end
subgraph "Mathematical Libraries"
JSX["JSXGraph"]
ZOD["Zod Schema Validation"]
MATH["Mathematical Analysis Engine"]
end
subgraph "Development Tools"
VITEST["Vitest Testing Framework"]
BIOME["Biome Linting & Formatting"]
BUILD["TypeScript Build System"]
end
TS --> NODE
SDK --> PROTO
JSX --> MATH
ZOD --> MATH
VITEST --> BUILD
BIOME --> BUILD
NODE --> SDK
PROTO --> JSX
MATH --> VITEST
🤖 使用方法
デスクトップアプリケーション
Claude Desktop、VSCode、Cline、Cherry Studio、Cursor などのデスクトップ MCP クライアントでは、標準の STDIO 設定を使用します(上記のクイックリファレンスを参照してください)。
クロスプラットフォーム設定(推奨):
{
"mcpServers": {
"mcp-server-jsxgraph": {
"command": "npx",
"args": ["-y", "mcp-server-jsxgraph"]
}
}
}
Windows 固有の設定(npx が直接動作しない場合):
{
"mcpServers": {
"mcp-server-jsxgraph": {
"command": "cmd",
"args": ["/c", "npx", "-y", "mcp-server-jsxgraph"]
}
}
}
🚰 SSE または Streamable トランスポートで実行する
直接実行する
パッケージをグローバルにインストールします。
npm install -g mcp-server-jsxgraph
使用するトランスポートオプションを指定してサーバーを実行します。
# For SSE transport (default endpoint: /sse)
mcp-server-jsxgraph --transport sse
# For Streamable transport with custom endpoint
mcp-server-jsxgraph --transport streamable
その後、次の URL でサーバーにアクセスできます。
- SSE トランスポート:
http://localhost:1122/sse - Streamable トランスポート:
http://localhost:1122/mcp
Docker でデプロイする
docker ディレクトリに移動します。
cd docker
docker-compose を使用してデプロイします。
docker compose up -d
その後、次の URL でサーバーにアクセスできます。
- SSE トランスポート:
http://localhost:1123/sse - Streamable トランスポート:
http://localhost:1122/mcp
🎮 CLI オプション
MCP サーバーの実行時には、次の CLI オプションも使用できます。-h を指定して CLI を実行すると、コマンドオプションを確認できます。
MCP Server JSXGraph CLI
Options:
--transport, -t Specify the transport protocol: "stdio", "sse", or "streamable" (default: "stdio")
--port, -p Specify the port for SSE or streamable transport (default: 1122)
--endpoint, -e Specify the endpoint for the transport:
- For SSE: default is "/sse"
- For streamable: default is "/mcp"
--help, -h Show this help message
⚙️ 環境変数
| 変数 | 説明 | デフォルト | 例 |
|---|---|---|---|
DISABLED_TOOLS | 無効にするツール名のカンマ区切りリスト | - | generate_function_graph,generate_parametric_curve |
🎛️ ツールのフィルタリング
DISABLED_TOOLS 環境変数を使用して、特定の数学的可視化ツールを無効にできます。特定のツールで MCP クライアントとの互換性に問題がある場合や、利用可能な機能を制限したい場合に便利です。
{
"mcpServers": {
"mcp-server-jsxgraph": {
"command": "npx",
"args": [
"-y",
"mcp-server-jsxgraph"
],
"env": {
"DISABLED_TOOLS": "generate_function_graph,generate_parametric_curve"
}
}
}
}
フィルタリングに使用できるツール名:
generate_function_graphgenerate_parametric_curvegenerate_geometry_diagramgenerate_vector_fieldgenerate_linear_systemgenerate_function_transformationgenerate_quadratic_analysisgenerate_exponential_logarithmgenerate_rational_functiongenerate_equation_systemgenerate_conic_sectiongenerate_polynomial_steps
🔒 互換性と安定性の保証
ユーザー空間を破壊しないというコミットメント:
- 公開済みの CLI パラメーターとデフォルトの動作は、マイナーバージョン間で安定性を保ちます
- 既存のトランスポートエンドポイント(
/sse、/mcp)は変更しません - パッケージ名
mcp-server-jsxgraphは変更しません - 新機能には新しいフラグやエンドポイントを使用し、既存の動作はそのまま維持します
- 削除前に、非推奨の警告とともに 2〜3 回のマイナーバージョン移行期間を設けます
現在の安定版 API:
- NPM パッケージ:
[email protected] - CLI 引数:
--transport、--port、--endpoint - STDIO トランスポート:デスクトップクライアントのデフォルトの動作
- SSE エンドポイント:指定したポートの
/sse - Streamable エンドポイント:指定したポートの
/mcp - 環境変数:
DISABLED_TOOLS
🔨 開発
依存関係をインストールします。
npm install
サーバーをビルドします。
npm run build
MCP サーバーを起動します。
npm run start
📄 License
MIT@dxd214.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。