Symbolic Algebra MCP Server

by sdiehl
Integrations
  • Enables containerized deployment of the MCP server through Docker images

  • Provides access to the server through GitHub Container Registry for easy deployment

  • Provides LaTeX rendering of mathematical expressions and tensors for clear visualization of symbolic mathematics

シンボリック代数MCPサーバー

Sympy-MCPは、LLMが自律的に記号数学とコンピュータ代数を実行できるようにするモデルコンテキストプロトコル(CMP)サーバーです。Sympy-MCPは、数式や方程式を操作するためのSymPyコア機能の多数のツールをMCPクライアントに公開します。

なぜ?

言語モデルは記号操作が全くダメです。変数を幻覚的に解釈したり、ランダムな定数をでっち上げたり、項を並べ替えたりと、とにかくめちゃくちゃなことをします。しかし、記号操作に特化したコンピュータ代数システムがあるので、ツール呼び出しを使って一連の変換を調整し、記号カーネルがすべての重労働を担うようにすることができます。

LLM を使用して Mathematica または Python コードを生成することは確かに可能ですが、LLM をエージェントまたはオンザフライ計算機として使用する場合は、MCP サーバーを使用してシンボリック ツールを直接公開する方がよいでしょう。

サーバーは、代数方程式の解、積分と微分、ベクトル計算、一般相対性理論のテンソル計算、常微分方程式と偏微分方程式の両方を含む記号数学機能のサブセットを公開します。

たとえば、自然言語で微分方程式を解くように要求することができます。

強制項を持つ減衰調和振動子を解きます。これは、微分方程式によって記述される質量-バネ-ダンパー システムです。ここで、m は質量、c は減衰係数、k はバネ定数、F(t) は外力です。

Loading...

あるいは一般相対性理論に関わるもの:

反ド・ジッター時空の逆計量$g^{\mu\nu}$を使用してリッチテンソル$R_{\mu\nu}$のトレースを計算し、その定数スカラー曲率$R$を決定します。

使用法

まず紫外線が必要です。

  • 自作- brew install uv
  • Curl - curl -LsSf https://astral.sh/uv/install.sh | sh

次に、次のコマンドを使用してサーバーをインストールして実行します。

# Setup the project git clone https://github.com/sdiehl/sympy-mcp.git cd sympy-mcp uv sync # Install the server to Claude Desktop uv run mcp install server.py # Run the server uv run mcp run server.py

Claudeデスクトップアプリでサーバーが利用可能になっているはずです。他のクライアントについては、以下をご覧ください。

単一のコマンドで実行できる完全なスタンドアロンバージョンが必要な場合は、以下をご利用ください。ただし、これはGithubから任意のコードを実行しているため、ご注意ください。

uv run --with https://github.com/sdiehl/sympy-mcp/releases/download/0.1/sympy_mcp-0.1.0-py3-none-any.whl python server.py

一般相対性理論の計算を行う場合は、 einsteinpyライブラリをインストールする必要があります。

uv sync --group relativity

利用可能なツール

sympy-mcp サーバーは、記号数学用の次のツールを提供します。

道具ツールID説明
変数の導入intro指定された仮定を持つ変数を導入し、それを保存します
複数の変数intro_many指定された仮定に基づいて複数の変数を同時に導入する
式パーサーintroduce_expression利用可能なローカル変数を使用して式文字列を解析し、保存します。
LaTeXプリンターprint_latex_expression保存された式を変数の仮定とともにLaTeX形式で出力します。
代数ソルバーsolve_algebraically与えられた変数について、与えられたドメインで方程式を代数的に解く
線形ソルバーsolve_linear_system線形方程式を解く
非線形ソルバーsolve_nonlinear_system非線形方程式系を解く
関数変数introduce_function微分方程式で使用する関数変数を導入する
ODE ソルバーdsolve_ode常微分方程式を解く
PDE ソルバーpdsolve_pde偏微分方程式を解く
標準メートル法create_predefined_metric定義済みの時空メトリック(例:シュワルツシルト、カー、ミンコフスキー)を作成します。
メトリック検索search_predefined_metrics利用可能な定義済みメトリックを検索します
テンソル計算機calculate_tensor計量からテンソルを計算します(リッチ、アインシュタイン、ワイルテンソル)
カスタムメトリックcreate_custom_metric提供されたコンポーネントとシンボルからカスタム計量テンソルを作成します
テンソルLaTeXprint_latex_tensor保存されたテンソル式をLaTeX形式で出力します。
簡素化者simplify_expressionSymPyの正規化関数を使用して数式を簡略化します
代替substitute_expression変数を別の式の式に置き換えます
統合integrate_expression変数に関して式を積分する
差別化differentiate_expression変数に関して式を微分する
座標create_coordinate_systemベクトル計算演算用の3D座標系を作成します
ベクトル場create_vector_field指定された座標系にベクトル場を作成します
カールcalculate_curlベクトル場の回転を計算する
発散calculate_divergenceベクトル場の発散を計算する
勾配calculate_gradientスカラー場の勾配を計算する
単位換算convert_to_units数量を指定された目標単位に変換します
単位簡略化器quantity_simplify_units単位付きの量を簡略化する
マトリックスクリエイターcreate_matrix提供されたデータからSymPy行列を作成する
行列式matrix_determinant行列の行列式を計算します
逆行列matrix_inverse逆行列を計算します
固有値matrix_eigenvalues行列の固有値を計算します
固有ベクトルmatrix_eigenvectors行列の固有ベクトルを計算する

デフォルトでは、変数は仮定に基づいて事前定義されます(SymPyのsymbols()関数の動作に似ています)。特に指定がない限り、変数は複素体$\mathbb{C}$上の複素可換項であるという仮定がデフォルトで適用されます。

財産価値
commutative真実
complex真実
finite真実
infinite間違い

クロードデスクトップセットアップ

通常、 mcp installコマンドはclaude_desktop_config.jsonファイルにサーバーを自動的に追加します。追加されない場合は、設定ファイルを見つけて以下の行を追加してください。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

mcpServersオブジェクトに以下を追加し、 /ABSOLUTE_PATH_TO_SYMPY_MCP/server.py server.py を sympy-mcp server.pyファイルへの絶対パスに置き換えます。

{ "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }

カーソルの設定

~/.cursor/mcp.jsonに次の内容を追加します。ここで、 ABSOLUTE_PATH_TO_SYMPY_MCP sympy-mcp server.py ファイルへのパスです。

{ "mcpServers": { "sympy-mcp": { "command": "/opt/homebrew/bin/uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } }

VS Code のセットアップ

VS Code および VS Code Insiders は、エージェントモードで MCP をサポートするようになりました。VS Code の場合は、設定でChat > Agent: Enableを有効にする必要があります。

  1. ワンクリックセットアップ:

または、 settings.json (グローバル) に手動で設定を追加します。

{ "mcp": { "servers": { "sympy-mcp": { "command": "uv", "args": [ "run", "--with", "einsteinpy", "--with", "mcp[cli]", "--with", "pydantic", "--with", "sympy", "mcp", "run", "/ABSOLUTE_PATH_TO_SYMPY_MCP/server.py" ] } } } }
  1. サーバー設定の上にある「開始」をクリックし、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 を使用してローカルでサーバーを構築および実行できます。

# Build the Docker image docker build -t sympy-mcp . # Run the Docker container docker run -p 8081:8081 sympy-mcp

あるいは、GitHub Container Registry から事前にビルドされたイメージをプルすることもできます。

# Pull the latest image docker pull ghcr.io/sdiehl/sympy-mcp:latest # Run the container docker run -p 8081:8081 --rm ghcr.io/sdiehl/sympy-mcp:latest

Claude Desktop が Docker コンテナを起動するように構成するには、 claude_desktop_config.jsonファイルを編集します。

{ "mcpServers": { "sympy-mcp": { "command": "docker", "args": [ "run", "-i", "-p", "8081:8081", "--rm", "sympy-mcp" ] } } }

または、GitHub から事前に構築されたコンテナを使用するには:

{ "mcpServers": { "sympy-mcp": { "command": "docker", "args": [ "run", "-i", "-p", "8081:8081", "--rm", "ghcr.io/sdiehl/sympy-mcp:latest" ] } } }

この設定は、Claude Desktop に必要に応じて Docker コンテナを起動するように指示します。この設定で Claude Desktop を使用する前に、必ず Docker イメージをビルド ( docker build -t sympy-mcp . ) してください。

uv コマンドを docker run コマンドに変更すると、他のインストール方法も Docker で動作するように適応できます。

例題1:微分方程式

この MCP サーバーを使用した AI アシスタントとの会話でツール呼び出しがどのように機能するかの例を次に示します。

ユーザー: 強制項を持つ減衰調和振動子を解きます。これは、微分方程式によって記述される質量-バネ-ダンパー システムです。ここで、m は質量、c は減衰係数、k はバネ定数、F(t) は外力です。

Loading...

アシスタント: (内部ツール呼び出し) 変数を導入するためのintro_many :

{ "variables": [ {"var_name": "t", "pos_assumptions": ["real"], "neg_assumptions": []}, {"var_name": "m", "pos_assumptions": ["real", "positive"], "neg_assumptions": []}, {"var_name": "c", "pos_assumptions": ["real", "positive"], "neg_assumptions": []}, {"var_name": "k", "pos_assumptions": ["real", "positive"], "neg_assumptions": []} ] }

アシスタント: (内部ツール呼び出し) x(t)を定義するintroduce_function :

{ "func_name": "x" }

アシスタント: (内部ツール呼び出し) 微分方程式を作成するためのintroduce_expression :

{ "expr_str": "Eq(m*Derivative(x(t), t, t) + c*Derivative(x(t), t) + k*x(t), F(t))" }

アシスタント: (内部ツール呼び出し) print_latex_expression使用して方程式をきれいに表示します。

{ "expr_key": "expr_12" }

結果:

Loading...

アシスタント: (内部ツール呼び出し) F(t)を定義するintroduce_function :

{ "func_name": "F" }

アシスタント: (内部ツール呼び出し) 微分方程式を解くdsolve_ode :

{ "expr_key": "expr_12", "func_name": "x" }

結果:

Loading...

相互作用の例2:一般相対性理論

ユーザー: 反ド・ジッター時空の逆計量$g^{\mu\nu}$を使用してリッチテンソル$R_{\mu\nu}$のトレースを計算し、その定数スカラー曲率$R$を決定します。

アシスタント: (内部ツール呼び出し) create_predefined_metric Anti-de Sitter メトリックを作成します。

{ "metric_name": "AntiDeSitter" }

アシスタント: (内部ツール呼び出し) Ricci テンソルを計算するcalculate_tensor :

{ "metric_key": "metric_AntiDeSitter", "tensor_type": "RICCI_TENSOR", "simplify_result": true }

アシスタント: (内部ツール呼び出し) Ricci テンソルを表示するためのprint_latex_tensor :

{ "tensor_key": "riccitensor_metric_AntiDeSitter" }

結果:

Loading...

アシスタント: (内部ツール呼び出し) Ricci スカラーを計算するcalculate_tensor :

{ "metric_key": "metric_AntiDeSitter", "tensor_type": "RICCI_SCALAR", "simplify_result": true }

アシスタント: (内部ツール呼び出し) Ricci スカラーを表示するためのprint_latex_tensor :

{ "tensor_key": "ricciscalar_metric_AntiDeSitter" }

結果:

Loading...

セキュリティ免責事項

このサーバーはあなたのコンピュータ上で動作し、言語モデルにPythonロジックの実行権限を与えます。特に、数式を解析するためにSympyのparse_expr使用していますが、これは内部でevalを使用しているため、実質的に任意のコード実行を許してしまいます。サーバーを実行することで、Claudeが生成したコードを信頼することになります。Dockerイメージで実行すると多少安全ですが、実行前にコードを確認することをお勧めします。

ライセンス

著作権 2025 Stephen Diehl。

このプロジェクトはApache 2.0ライセンスに基づいてライセンスされています。詳細はLICENSEファイルをご覧ください。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

数式や方程式を操作する SymPy の機能を通じて、LLM が記号数学やコンピュータ代数を自律的に実行できるようにするモデル コンテキスト プロトコル サーバー。

  1. なぜ?
    1. 使用法
      1. 利用可能なツール
        1. クロードデスクトップセットアップ
          1. カーソルの設定
            1. VS Code のセットアップ
              1. クラインセットアップ
                1. 5ireのセットアップ
                  1. コンテナ内で実行
                    1. 例題1:微分方程式
                      1. 相互作用の例2:一般相対性理論
                        1. セキュリティ免責事項
                          1. ライセンス

                            Related MCP Servers

                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that provides basic mathematical and statistical functions to LLMs, enabling them to perform accurate numerical calculations through a simple API.
                              Last updated -
                              13
                              13
                              TypeScript
                              MIT License
                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that enables LLMs to perform precise numerical calculations by evaluating mathematical expressions.
                              Last updated -
                              1
                              48
                              Python
                              MIT License
                              • Linux
                              • Apple
                            • -
                              security
                              F
                              license
                              -
                              quality
                              A Model Context Protocol server that connects LLMs to the Compiler Explorer API, enabling them to compile code, explore compiler features, and analyze optimizations across different compilers and languages.
                              Last updated -
                              Python
                            • A
                              security
                              F
                              license
                              A
                              quality
                              A Model Context Protocol server that allows LLMs to interact with Python environments, execute code, and manage files within a specified working directory.
                              Last updated -
                              9
                              8
                              Python
                              • Linux
                              • Apple

                            View all related MCP servers

                            MCP directory API

                            We provide all the information about MCP servers via our MCP API.

                            curl -X GET 'https://glama.ai/api/mcp/v1/servers/sdiehl/sympy-mcp'

                            If you have feedback or need assistance with the MCP directory API, please join our Discord server