Mathematica MCP Server について
Mathematica MCP Server は、ローカルの wolframscript を介して Mathematica コードを実行し、数式の導出を検証する MCP サーバーです。ローカルに Mathematica を導入し、MCP クライアントから呼び出したい方に向いています。
主な機能
- 01wolframscript による Mathematica コードの実行
- 02結果の LaTeX または Mathematica 文字列形式での出力
- 03導出の各ステップの検証
- 04標準入出力(stdio)による通信
活用シーン
- 01MCP クライアントからの複雑な数値計算
- 02人間や AI モデルが示した導出過程の検証
MCP 対応
MCP クライアントに対して execute_mathematica と verify_derivation の 2 つのツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mathematica MCP サーバー
このリポジトリには、MCP クライアント(Cursor など)から wolframscript を介して Mathematica コードを実行し、数学的な導出を検証できる Model Context Protocol(MCP)サーバーが含まれています。
概要
このサーバーはブリッジとして機能し、MCP をサポートするアプリケーションがローカルの Mathematica インストールの機能を活用して、次のようなタスクを実行できるようにします。
- 複雑な数学的計算を実行します。
- 人間や AI モデルが提示した数学的な導出手順を検証します。
- 式を LaTeX または Mathematica の文字列表現として生成します。
前提条件
- Mathematica がシステムにインストールされている必要があります。
wolframscriptコマンドラインユーティリティがシステムの PATH から利用できる必要があります。ターミナルでwolframscript -helpを実行して確認できます。- Node.js(
tsconfig.jsonのターゲットES2022から推測すると、v16 以降を推奨します)。
インストール
- リポジトリをクローンします:
git clone <repository-url> cd <repository-directory> - 依存関係をインストールします:
npm install - サーバーをビルドします:
このコマンドは、npm run buildsrc/の TypeScript ソースコードをbuild/ディレクトリ内の JavaScript にコンパイルし、メインスクリプトを実行可能にします。
サーバーの実行
MCP サーバーを起動するには、ターミナルで次のコマンドを実行します。
node build/index.js
サーバーが起動し、標準入出力(stdio)経由で MCP クライアントからの接続を待ち受けます。サーバーを使用する間は、このターミナルウィンドウを開いたままにしてください。
より堅牢なデプロイには、pm2 などのプロセスマネージャーを使用してサーバーをバックグラウンドで実行し、再起動を管理することを検討してください。
MCP クライアントとの連携(例:Cursor、Cline、Claude Desktop)
MCP クライアントは通常、実行中の MCP サーバーを検出して通信します。具体的な設定手順は、クライアントアプリケーションによって異なる場合があります。
一般的な手順:
- Mathematica MCP サーバーを起動します: ターミナルでサーバーが実行中であることを確認します。
node build/index.js - MCP クライアントを設定します: クライアントの設定にサーバーを追加します。多くの場合、JSON 設定ファイルを編集します。クライアント固有の手順については、以下を参照してください。
- MCP クライアントを再起動します: サーバーの起動後、または設定の変更後にクライアントアプリケーションを再起動し、Mathematica サーバーが検出されるようにします。
クライアント固有の設定:
-
Cline: Cline MCP Server Development Protocol によると、通常は設定ファイル(多くの場合、Cline 設定ディレクトリ内の
settings.json)でサーバーを設定します。次のような項目を追加します。{ "mcpServers": { "mathematica-server": { "command": "node", "args": ["/full/path/to/mcp-server-mathematica/build/index.js"], // Replace with the actual absolute path "disabled": false, "autoApprove": [] // Optional: Add tool names to auto-approve } // ... other servers ... } }/full/path/to/mcp-server-mathematica/build/index.jsは、システム上のビルド済みindex.jsファイルの絶対パスに置き換えてください。 -
Cursor: Cursor では、特定の設定ファイルの編集が必要になる場合があります。たとえば
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonなどです(ただし、このパスは変更される可能性があります)。構成は上記の Cline の例と同様です。 -
その他のクライアント(例:Claude Desktop): 使用する MCP クライアントのドキュメントを参照してください。「MCP Servers」「Tool Configuration」「External Tools」などの項目を探してください。設定では通常、コマンド(
node)、サーバースクリプトへのパス(build/index.js)、および必要に応じて環境変数を指定します。
利用可能なツール
サーバーは、MCP クライアントに次のツールを公開します。
1. execute_mathematica
任意の Mathematica コードを実行し、結果を返します。
入力スキーマ:
{
type: "object",
properties: {
code: {
type: "string",
description: "Mathematica code to execute"
},
format: {
type: "string",
description: "Output format (text, latex, or mathematica)",
enum: ["text", "latex", "mathematica"],
default: "text"
}
},
required: ["code"]
}
使用例(クライアントからのリクエスト):
- 自然言語:「Mathematica を使用して、0 から 1 までの x^2 の積分を計算し、LaTeX 形式で出力してください」
- 直接ツール呼び出し:
{ "tool_name": "execute_mathematica", "arguments": { "code": "Integrate[x^2, {x, 0, 1}]", "format": "latex" } }
2. verify_derivation
Simplify[prev == current] を使用して、数式の各ステップが直前のステップから論理的に導かれるかどうかを確認します。
入力スキーマ:
{
type: "object",
properties: {
steps: {
type: "array",
description: "Array of mathematical expressions (as strings) representing steps in a derivation. Requires at least two steps.",
items: {
type: "string"
}
},
format: {
type: "string",
description: "Output format for the verification report (text, latex, or mathematica)",
enum: ["text", "latex", "mathematica"],
default: "text"
}
},
required: ["steps"]
}
使用例(クライアントからのリクエスト):
- 自然言語:「この導出を検証してください:['x^2 - y^2', '(x-y)(x+y)']」
- 直接ツール呼び出し:
{ "tool_name": "verify_derivation", "arguments": { "steps": [ "x^2 - y^2", "(x-y)*(x+y)" ], "format": "text" } }
トラブルシューティング
- サーバーが見つからない/応答しない:
- サーバーがターミナルで実行されていることを確認してください(
node build/index.js)。 wolframscriptがインストールされ、PATH からアクセスできることを確認してください(wolframscript -help)。- MCP クライアントアプリケーションを再起動してください。
- クライアントの MCP 設定を確認してください。
- サーバーがターミナルで実行されていることを確認してください(
- ツールのエラー:
- サーバーのターミナル出力(stderr)で、
wolframscriptのログとエラーメッセージを確認してください。 - 指定された Mathematica の
codeまたはstepsの構文を確認してください。 verify_derivationのsteps配列に少なくとも 2 つの要素があることを確認してください。
- サーバーのターミナル出力(stderr)で、
- Mathematica の問題: Mathematica がライセンス認証され、正常に動作していることを確認してください。
プロジェクト構成
src/:サーバーの TypeScript ソースコード。build/:コンパイル済み JavaScript の出力先(npm run buildによって生成)。package.json:プロジェクトのメタデータと依存関係。tsconfig.json:TypeScript コンパイラーの設定。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。