Ultimath Mcp について
Ultimath MCPは、8つの独立したエンジンで数式を計算し、結果と各エンジンの誤差保証を並べて返します。エンジン間の不一致も含め、数値の信頼性を評価したい人向けです。
主な機能
- 018つのエンジンで数式を計算
- 02結果と誤差保証を比較
- 03厳密な記号形式を返す
- 04カテゴリ別に関数を一覧表示
- 05算術・三角関数・複素数式に対応
活用シーン
- 01数値結果の信頼性を確認
- 02計算エンジン間の精度を比較
- 03計算前に関数一覧を確認
MCP 対応
8つのエンジンで式を実行する`evaluate`ツールと、`list_functions`ツールをMCPクライアントに提供します。利用にはUltimath APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| expression | string | はい | 数学式。例:'0.1 + 0.2'、'sin(pi/4)'、'sqrt(2)^2 - 2'、'2*pi'、'2*(3+4)'、'factorial(10)' |
| precision | integer | いいえ | 精度の小数桁数(デフォルトは 50)。無料ベータ版では上限が 50 で、それを超える値はサーバー側で拒否されます。 |
| format | enum | いいえ | 出力形式(デフォルトは 'fixed')fixed | scientific | auto |
詳細
Ultimath MCP
数値の幻覚を止めましょう。 すべての数式を、8つの独立したエンジンで並行して処理するMCP サーバーです。各エンジンは、正確な記号演算、ボール演算、区間演算、3種類の異なる任意精度浮動小数点演算、遅延記号演算、IEEE 754演算をそれぞれ独自の失敗モードで実行し、8つの結果を並べて返します。結果が食い違えば、その答えの数値的な信頼性が低いことがわかります。
| エンジン | 処理内容 |
|---|---|
| 正確な記号演算 | 正確な演算:近似ではなく、値を確定します |
| 多倍長演算 | ボール演算。厳密な半径を保持します |
| 区間演算 | 厳密な下限と上限(保証された包含範囲) |
| 二進浮動小数点演算 | 任意精度の二進浮動小数点数。内部でGMPを使用しません |
| PARI/GP | GMPなしでビルド:独自の整数演算カーネルと超越関数カーネルを使用します |
| NTL RR | 正確な整数仮数 × 2^e。丸めるのは演算時のみです |
| 遅延記号演算 | 評価前に式を書き換えます。相殺が起きても丸められません |
| IEEE-754倍精度 | 標準的なハードウェア浮動小数点演算 |
各エンジンが保証する内容
8つの数値を読むだけでは、答えの半分にすぎません。各エンジンは、自身がどの程度の正しさを保証するかも示します。この3つの答えは、互いに同じ尺度で表せるものではありません。
| フィールド | エンジンが示す内容 |
|---|---|
"exact": true | 値そのものを保持しています。表示値はその切り捨て値です。追加で求める桁はすべて、より近い近似値ではなく、その数の桁です。 |
"digits": N | エンジン自身の誤差境界により、有効数字の先頭N桁が保証されています。0も正当な答えです。値に壊滅的な桁落ちが起きた場合は、その結果になります。 |
| どちらでもない | 誤差境界を持ちません。要求された桁数だけ表示しましたが、そのどの桁についても何も保証できません。 |
最後の行は0ではありません。また、それこそがほかのエンジンが存在する理由です。8つのうち5つは、最初から保証を目的に設計されています。
exp(pi*sqrt(163)) - 262537412640768744では、あるエンジンは63桁を出力し、そのうち34桁が正しいものの、それについて何も保証しません。別の2つのエンジンは33桁を証明してそこで止まります。さらに1つは値を正確に保持します。8つの数値を読むだけでは、どれがどれなのかわかりません。
あるエンジンが別のエンジンについて評価することはありません。それぞれの記述は、そのエンジン自身についてのものです。
正確なエンジン
calciumは桁を比較するのではなく等式を判定し、ほかのエンジンが近づくことしかできない極にも到達します(tan(pi/2)はuinfになります)。また、表示された桁が単なる切り捨て値である場合は、閉形式も返します。sqrt(2)+1なら、通常の形式とLaTeX形式でAdd(Sqrt(2), 1)が返され、acosh(0.5)ならDiv(Mul(NumberI, Pi), 3)が返されます。これは、値が格納されている体の要素ではなく、名前の付いた値です。
閉形式の取得はHTTP APIではオプトイン方式です("closed_form": true)。閉形式の証明には、桁を読むよりも多くの処理が必要だからです。このクライアントは常に閉形式を要求します。正確な値を引用することが、この出力スキーマの約束だからです。
ツール
evaluate— 8つすべてのエンジンで式を評価し、結果を比較します。 算術演算、三角関数(sin、cos、tan)、指数・対数関数(exp、ln、log)、根とべき乗(sqrt、x^y)、階乗、複素数(3+2i)、代替基数(0xFF、0b1010)、定数(pi、e、黄金比PHI)に対応しています。list_functions— エンジンが公開するすべての関数を一覧表示します (名前、引数の数、カテゴリ、説明)。カテゴリで絞り込むこともできます。
比較の意味はエンジンによって異なります。包含範囲を求めるエンジンでは、
!=、<、>が真になるのは証明された場合のみです。==、<=、>=は、否定されない限り真になります。この場合、==が真でも等しいことの証明にはなりません。等しいかどうかを正確に判定するのはcalciumです。一方、!=が真なら、異なることの証明になります。
乗算は明示的に記述してください。
2*pi、2*sin(x)、(a+b)*(c+d)のように書きます。隣接していても積にはなりません(2piはエラーです)。式は純粋な数学式であり、型キャストやコンストラクターは使用できません。複素数は1+2iのように書いてください。
セットアップ
- https://ultimath.ai で無料の API キーを取得します。
- MCP クライアントの設定にサーバーを追加します(Claude Desktop の例):
{
"mcpServers": {
"ultimath": {
"command": "npx",
"args": ["-y", "ultimath-mcp"],
"env": {
"ULTIMATH_API_KEY": "your_api_key_here"
}
}
}
}
これで完了です。npx が必要に応じてサーバーを取得して実行します。
要件
- Node.js ≥ 18
- Ultimath API キー(
ULTIMATH_API_KEY)
リンク
内部の仕組み
Ultimath のエンジンは、FLINT/Arb、Calcium、GMP/MPFR、MPFI を基盤としています。クレジットの全リストは https://ultimath.ai/credits をご覧ください。
プライバシー
Ultimath はサービスの運用とセキュリティ確保のため、API キーのハッシュと基本的な利用状況の指標のみを保存します。式は評価されますが、トレーニング用に保持されることはありません。ポリシー全文:https://ultimath.ai/privacy/
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。