Euclid について
Euclid は、数値を推測ではなく決定的に計算するホスト型 MCP サーバーです。計算、単位換算、統計、金融、日付、エンコード、検証、色、正規表現、地理空間のツールを AI エージェントに提供します。
主な機能
- 01式の決定的な計算
- 02単位換算と統計
- 03日付と金融の計算
- 04エンコード、ハッシュ、JWT の確認
- 05正規表現、検証、色、地理空間ツール
活用シーン
- 01算術式や三角関数式の計算
- 02単位換算や統計値の算出
- 03金融計算や日付計算
- 04形式の検証や正規表現の安全な実行
MCP 対応
Euclid は HTTP 経由で MCP クライアントから利用するホスト型 MCP サーバーで、OAuth 2.1 認証を行います。接続したエージェントに決定的な計算ツールを公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.euclidtools.comclaude mcp add --transport http euclid https://mcp.euclidtools.com{"mcpServers":{"euclid":{"type":"http","url":"https://mcp.euclidtools.com"}}}Cursor で開く{"servers":{"euclid":{"type":"http","url":"https://mcp.euclidtools.com"}}}VS Code で開く{"mcpServers":{"euclid":{"type":"http","url":"https://mcp.euclidtools.com"}}}{"mcpServers":{"euclid":{"serverUrl":"https://mcp.euclidtools.com"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Euclid
「証明なしに主張されたことは、証明なしに退けられます。しかし、証明されたことは、いつまでも残ります。」 アレクサンドリアのユークリッドの精神にならって
23世紀前、アレクサンドリアのユークリッドは、当時の数学が、言い伝えや直感、そして「信じてください」が入り交じった状態にあるのを見て、こう言いました。もうたくさんだ。彼は公理と証明を基礎に、幾何学を一から築き上げました。何かが真実なら、それが真実であることを_示す_ことができました。ごまかしも、当てずっぽうもありません。
大規模言語モデルも、ユークリッドの同時代人と同じ問題を抱えています。モデルは計算するのではなく、_予測_します。LLM に「247 × 389 は?」と尋ねると、学習データに照らし合わせて答えの見た目を推測します。正しいこともあれば、間違っていることもあります。その違いを知るすべはありません。
AI エージェント向けの決定論的な計算ツール。
Euclid はホスト型の MCP サーバーで、あらゆる AI エージェントに実際の決定論的な計算エンジンを提供します。自明なことを推測する必要はありません。算術はまさに自明なことの一つです。
クイックスタート
Claude Code
claude mcp add euclid --transport http https://mcp.euclidtools.com
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に追加します。
{
"mcpServers": {
"euclid": {
"url": "https://mcp.euclidtools.com"
}
}
}
Cursor
プロジェクトのルートにある .cursor/mcp.json(またはグローバル設定の ~/.cursor/mcp.json)に追加します。
{
"mcpServers": {
"euclid": {
"url": "https://mcp.euclidtools.com"
}
}
}
Windsurf
~/.windsurf/mcp.json に追加します。
{
"mcpServers": {
"euclid": {
"url": "https://mcp.euclidtools.com"
}
}
}
VS Code(Copilot)
プロジェクトの .vscode/mcp.json に追加します。
{
"servers": {
"euclid": {
"type": "http",
"url": "https://mcp.euclidtools.com"
}
}
}
その他の MCP クライアント
HTTP トランスポートをサポートする MCP クライアントであれば、どれでも利用できます。接続先は次のとおりです。
https://mcp.euclidtools.com
認証は OAuth 2.1 によって自動的に処理されます。初回接続時に、クライアントからサインインを求められます。
動作確認
接続後、AI エージェントに次のように尋ねてください。
「247 × 389 は?」
Euclid が動作していれば、エージェントは答えを予測するのではなく、calculate ツールを呼び出します。応答内にツール呼び出しが表示されます。正解は 96,083 で、暗算とは違い、常に正しい答えが得られます。
問題点
LLM は非決定論的です。生成するトークンはすべて_予測_であり、計算も例外ではありません。
247 × 389→ モデルは96,083と_予測_します(96,183や95,983になることもあります)sin(47.3°) × cos(12.1°)→ モデルはおおよそ近い値を_予測_します$8,472.50 の 15%→ モデルは金額を_予測_します
予測が正しいこともあれば、わずかに間違っていることもあります。どちらなのかを確実に判断できないことが問題です。
Euclid を使えば、この問題はなくなります。 AI エージェントが Euclid を利用できる場合、式を実際の計算エンジンに送り、計算結果を受け取ります。決定論的。正確。毎回です。
AI のコード検索に grep がもたらした変化と同じようなものだと考えてください。シンプルで実績のあるツールによって、モデルが根本的に持たない能力を提供します。
コード実行を使えばよいのでは?
多くの LLM 環境には、計算ができるコード実行ツール(Python サンドボックスなど)があります。違いは次のとおりです。
| コード実行 | Euclid | |
|---|---|---|
| オーバーヘッド | サンドボックス/インタープリターを起動 | ほぼゼロ:式の文字列を評価するだけ |
| レイテンシー | 数百ミリ秒から数秒 | 1桁ミリ秒 |
| 利用可能性 | クライアントによって異なる | あらゆる MCP クライアント |
| モデルの動作 | 計算を行う_コード_をモデルが記述 | _数式_をモデルが記述 |
| 失敗の種類 | 構文エラー、実行時例外 | ヒントと例を含む明確なエラー |
| トークンコスト | コード生成は冗長 | 式の文字列は最小限 |
決定論的な計算を徹底する
Euclid をインストールすると、AI が電卓を使えるようになります。しかし、使えるだけでは不十分です。AI が電卓を使うように指示する必要があります。明示的な指示がなければ、モデルはデフォルトで学習データから計算結果を予測し続けます。
プロジェクトの AI 指示ファイルに以下を追加してください。あらかじめ作成されたバージョンは rules/ ディレクトリにあります。
| ファイル | 対象 |
|---|---|
rules/CLAUDE.md | Claude Code |
rules/AGENTS.md | OpenAI Codex |
rules/.cursorrules | Cursor |
rules/.windsurfrules | Windsurf |
内容はすべて同じです。お使いの IDE に対応するファイルをプロジェクトのルートにコピーするか、既存の指示ファイルに追記してください。
指示ブロックをプレビュー
## Deterministic Computation (Euclid)
**NEVER predict, guess, or mentally compute numerical results.** LLMs produce answers by
pattern-matching against training data, sometimes right, sometimes subtly wrong, and
there is no way to tell which. Always use Euclid's MCP tools instead.
| Tool | When to Use |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------- |
| `calculate` | Arithmetic, percentages, margins, exponents, trig, logarithms, factorials. Any expression with a numerical answer |
| `convert` | Unit conversions: m² to acres, km to miles, L/hr to gal/hr, °C to °F, bytes to kB, etc. |
| `statistics` | Mean, median, mode, std deviation, variance, percentile, min, max, sum. Plus t-test, z-test, chi-squared, confidence intervals, correlation |
| `datetime` | Date differences, add/subtract time, business days, age, day of week, quarter, leap year. Any calendar arithmetic |
| `encode` | Base64, hex, URL, HTML encoding/decoding; SHA-256/512, SHA-1, MD5 hashing; HMAC signatures; JWT decoding |
| `finance` | Loan payments, amortization, present/future value, NPV, IRR, CAGR, margin/markup, compound interest. Any financial formula |
| `regex` | Pattern testing, text extraction, match-all, replace, split. Execute patterns, never predict whether they match |
| `color` | Color conversion (hex, RGB, HSL, etc.), contrast ratios, WCAG accessibility, lighten/darken, palette generation |
| `validate` | Email, URL, UUID, credit card (Luhn check), IPv4, IPv6, IBAN. Structural validation with check digits |
| `geo` | Distances (Haversine/Vincenty), bearings, midpoints, destination points, polygon area, point-in-polygon, coordinate conversions |
This applies everywhere, not just code. Analytics, business metrics, growth rates,
marketing numbers, cost calculations, date arithmetic, financial projections during
conversation. If there is a number to compute, a date to calculate, or data to
encode, hash, or validate, use Euclid. No exceptions.
これが重要な理由: LLM は、何も間違っていないかのように、誤った計算結果を自信たっぷりに出力します。247 × 389 = 96,183 と答えるモデルも、正解の 96,083 と答えるモデルも、同じくらい自信があるように見えます。正確さを保証する唯一の方法は、予測ではなく計算することです。
ツール
Euclid には 10 個のツールがあります。
calculate
数式を決定論的に評価します。
calculate("(245 * 389) + (12^3 / 7)") → 95,551.857...
calculate("sqrt(144)") → 12
calculate("sin(45 deg)") → 0.707...
calculate("10!") → 3,628,800
calculate("e^(i * pi) + 1") → 0 (Euler's identity)
対応項目:算術、演算子の優先順位、累乗、根、三角関数、対数、階乗、定数(pi、e、phi)、複素数、Unicode 数学記号(×、÷、√、π、²、³)。
convert
単位を決定論的に変換します。
convert(100, "fahrenheit", "celsius") → 37.778
convert(5, "km", "miles") → 3.107
convert(1024, "bytes", "kB") → 1.024
convert(60, "mph", "km/h") → 96.561
対応項目:長さ、質量、体積、温度、面積、速度、時間、データ、および 100 種類以上の単位。自然言語の別名(例:「celsius」、「miles per hour」)は自動的に正規化されます。
statistics
記述統計と推測統計の計算を行います。
statistics("mean", [23, 45, 12, 67, 34]) → 36.2
statistics("std", [23, 45, 12, 67, 34]) → 21.159
statistics("z_test_proportion", { ... }) → { significant: true, p_value: 0.023 }
statistics("confidence_interval", { data: [...] }) → { lower: 28.1, upper: 44.3 }
記述統計:平均値、中央値、最頻値、標準偏差、分散、最小値、最大値、合計、パーセンタイル。 推測統計:z 検定、t 検定、カイ二乗検定、信頼区間、相関、正規累積分布関数/逆関数。
datetime
日付と時刻の算術演算を決定論的に行います。
datetime("difference", { from: "2026-01-01", to: "2026-03-15", unit: "days" }) → 73
datetime("add", { date: "2026-01-01", amount: 90, unit: "days" }) → "2026-04-01"
datetime("age", { birthDate: "1990-06-15", asOf: "2026-03-21" }) → 35
datetime("business_days", { from: "2026-01-01", to: "2026-01-31" }) → 22
9 つの操作:差分、加算、減算、営業日、月の日数、年齢、四半期、曜日、うるう年判定。
encode
エンコード、デコード、ハッシュ生成、JWT の検査を決定論的に行います。
encode("base64_encode", { input: "hello world" }) → "aGVsbG8gd29ybGQ="
encode("sha256", { input: "hello world" }) → "b94d27b9..."
encode("hmac", { input: "data", key: "secret", algorithm: "sha256" }) → "1b779..."
encode("jwt_decode", { input: "eyJhbGci..." }) → { header, payload, signature }
16 の操作:base64、base64url、hex、url、html(エンコード/デコード)、sha256、sha512、sha1、md5、hmac、jwt_decode。
finance
任意精度の十進演算を使って財務計算を行います。
finance("loan_payment", { principal: 350000, rate: 6.5, periods: 360 }) → $2,212.24/mo
finance("irr", { cashflows: [-100000, 30000, 35000, 40000, 45000] }) → 17.094%
finance("compound_growth", { start_value: 2.1M, end_value: 4.8M, periods: 4 }) → 22.958% CAGR
16 の操作:loan_payment、amortization、present_value、future_value、periods、interest_rate、npv、irr、roi、markup、margin、discount、percentage_change、compound_growth、simple_interest、compound_interest。
color
色変換、アクセシビリティチェック、パレット生成を行います。
color("convert", { color: "#FF6B35", to_space: "hsl" })
color("contrast_ratio", { foreground: "#FFFFFF", background: "#2563EB" }) → "4.62:1"
color("wcag_level", { foreground: "#FFFFFF", background: "#2563EB" }) → "AA"
color("analogous", { color: "#2563EB", count: 5 })
変換、アクセシビリティ(WCAG)、色の調整、パレット生成にわたる 14 の操作。8 つの色空間:hex、rgb、hsl、hsv、cmyk、lab、oklab、oklch。
regex
安全な正規表現の実行を行います(線形時間を保証し、ReDoS は発生しません)。
regex("test", { pattern: "^\\d{3}-\\d{4}$", subject: "555-1234" }) → true
regex("matchAll", { pattern: "\\d+", subject: "abc 123 def 456" }) → ["123", "456"]
regex("replace", { pattern: "\\s+", subject: "a b c", replacement: " " }) → "a b c"
6 つの操作:test、match、matchAll、replace、split、escape。
validate
チェックディジットを使った構造検証を行います。
validate("email", { input: "[email protected]" }) → { valid: true }
validate("credit_card", { input: "4111111111111111" }) → { valid: true, type: "Visa" }
validate("iban", { input: "GB82WEST12345698765432" }) → { valid: true }
対応形式:email、url、uuid、credit_card(Luhn)、ipv4、ipv6、iban。
geo
地理空間の計算を行います。
geo("distance", { from: [lat, lon], to: [lat, lon] }) → km (Haversine or Vincenty)
geo("bearing", { from: [lat, lon], to: [lat, lon] }) → degrees
geo("point_in_polygon", { point: [lat, lon], polygon: [...] }) → true/false
距離、面積、中点、方位角、目的地の座標、点がポリゴン内にあるかの判定、座標変換。
料金
すべてのアカウントで、1,000 回の無料ツール呼び出しを利用できます。クレジットカードは不要です。
その後は、app.euclidtools.com でクレジットを追加してください。
哲学
LLM が生成するものはすべて予測です。創作や推論では問題ありませんが、数学では問題になります。
解決策は、モデルの数学の予測能力を高めることではありません。計算機を与えることです。
これは、より広い原則の一部です。**モデルが本来は決定的であるべきことを予測によって行う場合は、常に決定的なツールを与えます。**数学が最もわかりやすい例ですが、単位変換、日付の計算、正規表現の評価、エンコードなどにも同じ考え方が当てはまります。
ライセンス
Euclid MCP サーバーはプロプライエタリソフトウェアです。このリポジトリには、統合を目的とした接続手順、スキル、ドキュメントが含まれています。
すべての権利を留保します。詳細については、LICENSE を参照してください。
アレクサンドリアのユークリッドは、2,300年前に数学的証明を体系化しました。
私たちは彼の道具を機械に与えているだけです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。