mcpField
S
sagemath-mcp-server

sagemath-mcp-server

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

sagemath-mcp-server について

sagemath-mcp-serverは、SageMathをMCPサーバーとして公開し、記号数学を必要とするLLMクライアントに提供します。SageMathをサブプロセスとして実行し、方程式の求解、行列演算、数論、プロットなどのツールを備えています。

主な機能

  1. 01記号方程式の求解・微分・積分
  2. 02式の簡約と因数分解
  3. 03行列演算と数論ツール
  4. 04プロット生成とLaTeX変換
  5. 05stdioとHTTPのトランスポート
  6. 06ローカルSageMathまたはDockerで実行

活用シーン

  1. 01代数方程式や超越方程式の求解
  2. 02記号微分と積分の計算
  3. 03行列の固有値やランクの確認
  4. 04式のプロットとLaTeXの取得

MCP 対応

MCPサーバーは、評価、記号演算、行列、数論、プロット、LaTeX変換を含む10種類のSageMathツールをLLMクライアントに公開します。オプションのAPI_KEYを利用するHTTPとstdioに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"justice8096-sagemath": {
"command": "npx",
"args": [
"-y",
"@justice8096/sagemath-mcp-server"
],
"env": {
"SAGE_TIMEOUT": "<SAGE_TIMEOUT>",
"SAGE_DOCKER_IMAGE": "<SAGE_DOCKER_IMAGE>",
"TRANSPORT": "<TRANSPORT>",
"PORT": "<PORT>",
"API_KEY": "<API_KEY>"
}
}
}
}
起動コマンドnpx -y @justice8096/sagemath-mcp-server
設定が必要な環境変数
SAGE_TIMEOUTPer-call SageMath timeout in milliseconds. Default 30000.
SAGE_DOCKER_IMAGEDocker image used when SageMath is not installed locally. Default sagemath/sagemath:latest.
TRANSPORTTransport mode: 'stdio' (default) or 'http'.
PORTHTTP port when TRANSPORT=http. Default 3000.
API_KEYシークレットIf set, HTTP transport requires matching API_KEY header. Ignored for stdio.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@justice8096/sagemath-mcp-server1.0.1

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SageMath MCP サーバー

License: CC0-1.0 npm

Model Context Protocol サーバーとして、100 以上のパッケージを備える数式処理システム SageMath を Claude などの LLM クライアントに提供します。単一のライブラリ(SymPy、mathjs)をラップする一般的な「数学 MCP」と異なり、このサーバーは SageMath スタック全体をサブプロセスとしてラップするため、モデルは単なる算術ではなく、本格的な記号数学を利用できます。

理由

LLM は正確な算術計算が苦手で、複数ステップの代数計算では不安定になり、記号操作が重要な場面では信頼性に欠けます。適切なパターンは、概念的な推論をモデルに任せ、機械的な計算をツールに委ねることです。これは、計算障害のある人が電卓を使うのと同じ方法です。SageMath を使えば、この委譲にあたって最も幅広いツールを利用できます。因数分解、積分、固有値、数論、LaTeX レンダリング、プロットを、すべて単一のインターフェースから利用できます。

ツール

ツール説明
sage_evaluateSageMath の任意の式を実行します。
sage_solve_equation代数方程式/超越方程式を記号的に解きます。
sage_differentiate導関数を計算します(任意の階数、任意の変数)。
sage_integrate不定積分および定積分を計算します。
sage_simplify式を簡約します(default、full、trig、rational)。
sage_factor多項式または整数を因数分解します。
sage_matrix_opsQQ/RR/ZZ/CC 上で、行列式、逆行列、固有値、ランク、RREF、転置を計算します。
sage_plot式をプロットし、base64 PNG を返します。
sage_latex_convertSageMath の式を LaTeX に変換します。
sage_number_theoryis_prime、next_prime、factor、euler_phi、gcd、lcm、prime_range、sigma、moebius。

すべてのツールは同じスキーマパターンに従います(src/schemas/common.ts を参照)。

インストール

サーバーが SageMath プロセスを起動できるよう、ホスト上にローカルの SageMath インストール、または Docker が必要です。

オプション 1:npm + ローカルの SageMath
npm install -g @justice8096/sagemath-mcp-server
# requires `sage` on PATH — see https://doc.sagemath.org/html/en/installation/
sagemath-mcp
オプション 2:Docker(ローカルの SageMath は不要)
docker compose up
# uses the official sagemath/sagemath image; the server runs inside the container
オプション 3:ソースから
git clone https://github.com/justice8096/sagemath-mcp-server.git
cd sagemath-mcp-server
npm install
npm run build
npm start

MCP クライアントの設定

Claude Desktop / Claude Code(stdio トランスポート)

~/.claude.json(または Claude Desktop の同等の設定ファイル)に追加します。

{
  "mcpServers": {
    "sagemath": {
      "command": "sagemath-mcp"
    }
  }
}
リモート/HTTP トランスポート
TRANSPORT=http API_KEY=your-secret-key npm start

次に、一致する API_KEY ヘッダーを指定して、MCP HTTP クライアントから http://<host>:3000/mcp に接続します。

アーキテクチャ

  • TypeScript ラッパー。ランタイムは Node.js ≥ 18 です。
  • サブプロセスによるラッピング — ラッパーコードは CC0 です。SageMath は GPL-3.0 のまま別プロセスとして実行されます。これは、GNU GPL FAQ の集合に関する説明で示されている、標準的で安全な連携モデルです。FFI を介した埋め込みではコピーレフトが波及しますが、サブプロセスで実行する場合は波及しません。
  • デュアルトランスポート — stdio(Claude Desktop、Claude Code、ローカル MCP クライアント)と Streamable HTTP(リモートデプロイ、API_KEY 環境変数は任意)。
  • i18n — src/i18n.ts と locales/ による英語、スペイン語、フランス語への対応。
  • マルチフォーマットビルド — build.ts は同じソースマニフェストから、Claude プラグイン、OpenAI の関数呼び出し、n8n ノード、MCP サーバー記述子、CLI ツール、YAML プロンプトライブラリの出力を生成します。

設定

環境変数デフォルト用途
TRANSPORTstdiostdio または http。
PORT3000TRANSPORT=http の場合の HTTP ポート。
API_KEY(なし)設定されている場合、HTTP リクエストには一致する API_KEY ヘッダーが必要です。
SAGE_TIMEOUT30000SageMath の呼び出しごとのタイムアウト(ミリ秒)。
SAGE_DOCKER_IMAGEsagemath/sagemath:latestSageMath がローカルにインストールされていない場合に使用するイメージ。

セキュリティ

  • SageMath の入力はすべて、サブプロセス実行前にシェルのメタ文字を除去するようサニタイズされます。詳細は src/services/sage-executor.ts を参照してください。
  • HTTP トランスポートでは、API_KEY が設定されている場合にそれが必須です。デフォルトの認証情報はありません。
  • セキュリティ対策の全容については、SECURITY.md と THREAT_MODEL.md を参照してください。
  • audits/ にあるコミット前監査スイートには、SAST/DAST スキャン、サプライチェーン監査、CWE マッピング、LLM コンプライアンスレポート、コントリビューション分析が含まれています。

ライセンス

このラッパーは CC0-1.0(パブリックドメイン)のもとで公開されています。SageMath 自体は引き続き GPL-3.0 です。サブプロセス実行モデルにより、それぞれのライセンスは独立しています。法的な根拠については、SECURITY.md とプロジェクトのコンプライアンス分析を参照してください。

ステータス

v1.0.0 — 一般公開リリースです。ラッパーレイヤーは安定しており、SageMath の機能は豊富で、上流でも安定しています。問題は https://github.com/justice8096/sagemath-mcp-server/issues から報告してください。

コメント

MCP は初めてですか?

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

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