シンボリック代数MCPサーバー
Sympy-MCPは、LLMが自律的に記号数学とコンピュータ代数を実行できるようにするモデルコンテキストプロトコル(CMP)サーバーです。Sympy-MCPは、数式や方程式を操作するためのSymPyコア機能の多数のツールをMCPクライアントに公開します。
なぜ?
言語モデルは記号操作が全くダメです。変数を幻覚的に解釈したり、ランダムな定数をでっち上げたり、項を並べ替えたりと、とにかくめちゃくちゃなことをします。しかし、記号操作に特化したコンピュータ代数システムがあるので、ツール呼び出しを使って一連の変換を調整し、記号カーネルがすべての重労働を担うようにすることができます。
LLM を使用して Mathematica または Python コードを生成することは確かに可能ですが、LLM をエージェントまたはオンザフライ計算機として使用する場合は、MCP サーバーを使用してシンボリック ツールを直接公開する方がよいでしょう。
サーバーは、代数方程式の解、積分と微分、ベクトル計算、一般相対性理論のテンソル計算、常微分方程式と偏微分方程式の両方を含む記号数学機能のサブセットを公開します。
たとえば、自然言語で微分方程式を解くように要求することができます。
強制項を持つ減衰調和振動子を解きます。これは、微分方程式によって記述される質量-バネ-ダンパー システムです。ここで、m は質量、c は減衰係数、k はバネ定数、F(t) は外力です。
$$ m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F(t) $$
あるいは一般相対性理論に関わるもの:
反ド・ジッター時空の逆計量$g^{\mu\nu}$を使用してリッチテンソル$R_{\mu\nu}$のトレースを計算し、その定数スカラー曲率$R$を決定します。
Related MCP server: Calculator MCP Server
使用法
まず紫外線が必要です。
自作-
brew install uvCurl -
curl -LsSf https://astral.sh/uv/install.sh | sh
次に、次のコマンドを使用してサーバーをインストールして実行します。
Claudeデスクトップアプリでサーバーが利用可能になっているはずです。他のクライアントについては、以下をご覧ください。
単一のコマンドで実行できる完全なスタンドアロンバージョンが必要な場合は、以下をご利用ください。ただし、これはGithubから任意のコードを実行しているため、ご注意ください。
一般相対性理論の計算を行う場合は、 einsteinpyライブラリをインストールする必要があります。
利用可能なツール
sympy-mcp サーバーは、記号数学用の次のツールを提供します。
道具 | ツールID | 説明 |
変数の導入 |
| 指定された仮定を持つ変数を導入し、それを保存します |
複数の変数 |
| 指定された仮定に基づいて複数の変数を同時に導入する |
式パーサー |
| 利用可能なローカル変数を使用して式文字列を解析し、保存します。 |
LaTeXプリンター |
| 保存された式を変数の仮定とともにLaTeX形式で出力します。 |
代数ソルバー |
| 与えられた変数について、与えられたドメインで方程式を代数的に解く |
線形ソルバー |
| 線形方程式を解く |
非線形ソルバー |
| 非線形方程式系を解く |
関数変数 |
| 微分方程式で使用する関数変数を導入する |
ODE ソルバー |
| 常微分方程式を解く |
PDE ソルバー |
| 偏微分方程式を解く |
標準メートル法 |
| 定義済みの時空メトリック(例:シュワルツシルト、カー、ミンコフスキー)を作成します。 |
メトリック検索 |
| 利用可能な定義済みメトリックを検索します |
テンソル計算機 |
| 計量からテンソルを計算します(リッチ、アインシュタイン、ワイルテンソル) |
カスタムメトリック |
| 提供されたコンポーネントとシンボルからカスタム計量テンソルを作成します |
テンソルLaTeX |
| 保存されたテンソル式をLaTeX形式で出力します。 |
簡素化者 |
| SymPyの正規化関数を使用して数式を簡略化します |
代替 |
| 変数を別の式の式に置き換えます |
統合 |
| 変数に関して式を積分する |
差別化 |
| 変数に関して式を微分する |
座標 |
| ベクトル計算演算用の3D座標系を作成します |
ベクトル場 |
| 指定された座標系にベクトル場を作成します |
カール |
| ベクトル場の回転を計算する |
発散 |
| ベクトル場の発散を計算する |
勾配 |
| スカラー場の勾配を計算する |
単位換算 |
| 数量を指定された目標単位に変換します |
単位簡略化器 |
| 単位付きの量を簡略化する |
マトリックスクリエイター |
| 提供されたデータからSymPy行列を作成する |
行列式 |
| 行列の行列式を計算します |
逆行列 |
| 逆行列を計算します |
固有値 |
| 行列の固有値を計算します |
固有ベクトル |
| 行列の固有ベクトルを計算する |
デフォルトでは、変数は仮定に基づいて事前定義されます(SymPyのsymbols()関数の動作に似ています)。特に指定がない限り、変数は複素体$\mathbb{C}$上の複素可換項であるという仮定がデフォルトで適用されます。
財産 | 価値 |
| 真実 |
| 真実 |
| 真実 |
| 間違い |
クロードデスクトップセットアップ
通常、 mcp installコマンドはclaude_desktop_config.jsonファイルにサーバーを自動的に追加します。追加されない場合は、設定ファイルを見つけて以下の行を追加してください。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
mcpServersオブジェクトに以下を追加し、 /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py server.py を sympy-mcp server.pyファイルへの絶対パスに置き換えます。
カーソルの設定
~/.cursor/mcp.jsonに次の内容を追加します。ここで、 ABSOLUTE_PATH_TO_SYMPY_MCP sympy-mcp server.py ファイルへのパスです。
VS Code のセットアップ
VS Code および VS Code Insiders は、エージェントモードで MCP をサポートするようになりました。VS Code の場合は、設定でChat > Agent: Enableを有効にする必要があります。
ワンクリックセットアップ:
または、 settings.json (グローバル) に手動で設定を追加します。
サーバー設定の上にある「開始」をクリックし、Python または数学ファイルを開いて、チャットでエージェント モードに切り替え、「integrate x^2」や「solve x^2 = 1」などのコマンドを試して開始します。
クラインセットアップ
Clineで使用するには、まず「使用方法」セクションのコマンドを使用して MCP サーバーを手動で起動する必要があります。MCP サーバーが起動したら、Cline を開き、上部の「MCP サーバー」を選択してください。
次に、「リモート サーバー」を選択し、以下を追加します。
サーバー名:
sympy-mcpサーバーURL:
http://127.0.0.1:8081/sse
5ireのセットアップ
バックエンドで複数のモデル (o3、o4-mini、DeepSeek-R1 など) をサポートする別の MCP クライアントは 5ire です。
5ireでセットアップするには、5ire を開いて「ツール」->「新規」に移動し、次の構成を設定します。
ツールキー:
sympy-mcp名前: SymPy MCP
コマンド:
/opt/homebrew/bin/uv run --with einsteinpy --with mcp[cli] --with pydantic --with sympy mcp run /ABSOLUTE_PATH_TO/server.py
/ABSOLUTE_PATH_TO/server.pyを、sympy-mcp server.py ファイルへの実際のパスに置き換えます。
コンテナ内で実行
Docker を使用してローカルでサーバーを構築および実行できます。
あるいは、GitHub Container Registry から事前にビルドされたイメージをプルすることもできます。
Claude Desktop が Docker コンテナを起動するように構成するには、 claude_desktop_config.jsonファイルを編集します。
または、GitHub から事前に構築されたコンテナを使用するには:
この設定は、Claude Desktop に必要に応じて Docker コンテナを起動するように指示します。この設定で Claude Desktop を使用する前に、必ず Docker イメージをビルド ( docker build -t sympy-mcp . ) してください。
uv コマンドを docker run コマンドに変更すると、他のインストール方法も Docker で動作するように適応できます。
例題1:微分方程式
この MCP サーバーを使用した AI アシスタントとの会話でツール呼び出しがどのように機能するかの例を次に示します。
ユーザー: 強制項を持つ減衰調和振動子を解きます。これは、微分方程式によって記述される質量-バネ-ダンパー システムです。ここで、m は質量、c は減衰係数、k はバネ定数、F(t) は外力です。
$$ m\frac{d^2x}{dt^2} + c\frac{dx}{dt} + kx = F(t) $$
アシスタント: (内部ツール呼び出し) 変数を導入するためのintro_many :
アシスタント: (内部ツール呼び出し) x(t)を定義するintroduce_function :
アシスタント: (内部ツール呼び出し) 微分方程式を作成するためのintroduce_expression :
アシスタント: (内部ツール呼び出し) print_latex_expression使用して方程式をきれいに表示します。
結果:
$$ c \frac{d}{dt} x{\left(t \right)} + kx{\left(t \right)} + m \frac{d^{2}}{dt^{2}} x{\left(t \right)} = F{\left(t \right)} $$
アシスタント: (内部ツール呼び出し) F(t)を定義するintroduce_function :
アシスタント: (内部ツール呼び出し) 微分方程式を解くdsolve_ode :
結果:
$$ x{\left(t \right)} = C_{1} e^{\frac{t \left(- c + \sqrt{c^{2} - 4 km}\right)}{2 m}} + C_{2} e^{- \frac{t \left(c + \sqrt{c^{2} - 4 km}\right)}{2 m}} + \cdots $$
相互作用の例2:一般相対性理論
ユーザー: 反ド・ジッター時空の逆計量$g^{\mu\nu}$を使用してリッチテンソル$R_{\mu\nu}$のトレースを計算し、その定数スカラー曲率$R$を決定します。
アシスタント: (内部ツール呼び出し) create_predefined_metric Anti-de Sitter メトリックを作成します。
アシスタント: (内部ツール呼び出し) Ricci テンソルを計算するcalculate_tensor :
アシスタント: (内部ツール呼び出し) Ricci テンソルを表示するためのprint_latex_tensor :
結果:
$$ \left[\begin{matrix}3 & 0 & 0 & 0\\0 & - 3 \cos^{2}{\left(t \right)} & 0 & 0\\0 & 0 & - 3 \cos^{2}{\left(t \right)} \sinh^{2}{\left(\chi \right)} & 0\\0 & 0 & 0 & - 3 \sin^{2}{\left(\theta \right)} \cos^{2}{\left(t \right)} \sinh^{2}{\left(\chi \right)}\end{matrix}\right] $$
アシスタント: (内部ツール呼び出し) Ricci スカラーを計算するcalculate_tensor :
アシスタント: (内部ツール呼び出し) Ricci スカラーを表示するためのprint_latex_tensor :
結果:
$$ -12 $$
セキュリティ免責事項
このサーバーはあなたのコンピュータ上で動作し、言語モデルにPythonロジックの実行権限を与えます。特に、数式を解析するためにSympyのparse_expr使用していますが、これは内部でevalを使用しているため、実質的に任意のコード実行を許してしまいます。サーバーを実行することで、Claudeが生成したコードを信頼することになります。Dockerイメージで実行すると多少安全ですが、実行前にコードを確認することをお勧めします。
ライセンス
著作権 2025 Stephen Diehl。
このプロジェクトはApache 2.0ライセンスに基づいてライセンスされています。詳細はLICENSEファイルをご覧ください。