calc-mcp について
calc-mcpは、計算、日付、エンコード、ハッシュなどの決定的な処理を提供するMCPサーバーです。処理データを外部サービスに送らずローカルで計算したいMCPクライアント利用者向けです。
主な機能
- 01数式と統計の計算
- 02日付とタイムゾーンの処理
- 03暗号学的乱数の生成
- 04データのエンコード・デコード・ハッシュ
- 05単位と基数の変換
- 06一般的な形式の解析と検証
活用シーン
- 01LLMの推測に頼らず数式を計算
- 02時刻変換と日付間隔の算出
- 03UUIDやパスワードの生成
- 04テキストのエンコードやハッシュ計算
MCP 対応
stdio経由で、数学、乱数生成、日付処理、エンコード、ハッシュ、変換、解析、検証を扱う21種類のツールをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
21掲載時のツール一覧 · 4 日前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| max | number | いいえ | 数値生成の最大値(デフォルト:100) |
| min | number | いいえ | 数値生成の最小値(デフォルト:0) |
| type | enum | はい | 生成するランダム値の種類:uuid、ulid、password、number、または shuffleuuid | ulid | password | number | shuffle |
| items | array | いいえ | シャッフルする項目(type=shuffle の場合) |
| length | integer | いいえ | パスワードの生成文字数(デフォルト:16) |
| charset | string | いいえ | パスワードのカスタム文字セット(大文字/数字/記号のオプションを上書き) |
| numbers | boolean | いいえ | パスワードに数字を含める(デフォルト:true) |
| symbols | boolean | いいえ | パスワードに記号を含める(デフォルト:true) |
| readable | boolean | いいえ | 読みやすいモード:紛らわしい文字(l/1/I/O/0/o)を除外して読みやすくします |
| uppercase | boolean | いいえ | パスワードに大文字を含める(デフォルト:true) |
| uuidVersion | enum | いいえ | UUID のバージョン:v4(ランダム、デフォルト)または v7(時系列順)v4 | v7 |
| excludeChars | string | いいえ | パスワードから除外する文字(例:"\\|{}") |
詳細
Calc MCP
📖 ドキュメント — ツールのリファレンス、例、インストールガイドを網羅しています。
AI が苦手なことのための 21 個のツール — 決定論的な数学、暗号学的に安全な乱数、正確な日付計算、エンコード、ハッシュなどに対応します。
LLM は計算を幻覚し、真の乱数を生成できず、タイムゾーンの扱いにも苦労します。この MCP サーバーがそれらの問題を解決します。
クイックスタート
# Claude Code
claude mcp add -s user calc-mcp -- npx -y @coo-quack/[email protected]
# Or just run it
npx -y @coo-quack/[email protected]
Claude Desktop、VS Code Copilot、Cursor、Windsurf、その他すべての MCP クライアントで動作します — セットアップガイドはこちら。
なぜ?
| AI のみ | calc-mcp を使用した場合 |
|---|---|
| 「10 + 34 × 341 ÷ 23 = 507.8」❌ | 514.087 ✅(数学) |
| 「UUID はこれです:550e8400-...」🤷 偽の値 | 暗号学的に安全なランダム UUID v4/v7 ✅(乱数) |
| 「今から 100 日後は...」🤔 推測 | 2026-05-22 ✅(日付) |
| 「password123 の SHA-256 は...」💀 幻覚 | {"hash": "ef92b778bafe..."} ✅(ハッシュ) |
- 決定論的 — 毎回、同じ入力には同じ正しい出力を返します
- 安全 — サンドボックス化された数学、ReDoS 対策、脆弱なハッシュの警告
- プライベート — すべての計算はローカルで実行され、外部サービスにデータは送信されません
- サーバー設定不要 — npx で一度インストールすれば完了。MCP クライアントのセットアップは必要です
- API キー不要 — calc-mcp 自体にアカウントや API キーは必要ありません。Node.js が必要です
使用例
自然言語で質問すると、AI アシスタントが適切なツールを選択します。
数学と数値
| 質問 | 結果 | ツール |
|---|---|---|
| 10 + 34 × 341 ÷ 23 はいくつですか? | 514.087 | math |
| 255 を 2 進数に変換してください | 11111111 | base |
| 4539578763621486 は有効なカード番号ですか? | true | luhn |
テキストとエンコード
| 質問 | 結果 | ツール |
|---|---|---|
| 「Hello, World! 🌍」は何文字ですか? | 15 chars, 18 bytes | count |
| 「Hello World」を Base64 でエンコード | SGVsbG8gV29ybGQ= | base64 |
| 「eyJhbGciOiJIUzI1NiJ9」を Base64 でデコード | {"alg":"HS256"} | base64 |
| 「hello world」を URL エンコード | hello%20world | encode |
| 「hello%20world」を URL デコード | hello world | encode |
<script> を HTML デコード | <script> | encode |
| 「password123」の SHA-256 ハッシュ | {"hash": "ef92b778bafe..."} | hash |
| キー「secret」を使用した「message」の HMAC-SHA256 | {"hash": "8b5f48702995..."} | hash |
日付と時刻
| 質問 | 結果 | ツール |
|---|---|---|
| ニューヨークの現在時刻は? | 2026-02-10T19:00:00-05:00 | datetime |
| 2026-02-11 の 100 日後は? | 2026-05-22 | date |
| 「30 9 * * 1-5」はいつ実行されますか? | Mon–Fri at 9:30 | cron_parse |
生成
| 質問 | 結果 | ツール |
|---|---|---|
| UUID v7を生成 | 019c4b54-aad2-7e52-... | random |
| 読みやすい20文字のパスワードを生成 | hT9jZDojX6sHRJt8vaKS | random |
| ["Alice", "Bob", "Charlie"]をシャッフル | ["Charlie", "Alice", "Bob"] | random |
変換
| 質問 | 結果 | ツール |
|---|---|---|
| 100マイルは何キロメートル? | 160.93 km | convert |
| 72°Fは何℃? | 22.22°C | convert |
| #FF5733をRGBに変換 | rgb(255, 87, 51) | color |
| rgba(255, 0, 0, 0.5)を8桁のHEXに変換 | #ff000080 | color |
分析と解析
| 質問 | 結果 | ツール |
|---|---|---|
| "abc123def456"から数値を抽出 | 123, 456 | regex |
| 1.5.3は^1.0.0を満たしますか? | true | semver |
| 1.8.0は">=1.5.0 <2.0.0"を満たしますか? | true | semver |
| 192.168.1.0/24のIP範囲は? | 192.168.1.1 – .254 (254 hosts) | ip |
| 編集距離:"kitten" → "sitting" | 3 | diff |
| "€"のUnicode情報 | U+20AC, Currency Symbols | char_info |
{"name":"test"}は有効なJSONですか? | valid, object | format_validate |
デコードと解析
| 質問 | 結果 | ツール |
|---|---|---|
| このJWTをデコード:eyJhbGci... | { alg: "HS256", name: "John Doe" } | jwt_decode |
| https://example.com/search?q=helloを解析 | host: example.com, q: "hello" | url_parse |
21 個のツール
| ツール | 説明 |
|---|---|
math | 式、統計の計算 |
count | 文字数(書記素クラスタ対応)、単語数、行数、バイト数 |
datetime | 現在時刻、タイムゾーン変換、UNIX タイムスタンプ |
random | UUID v4/v7、ULID、パスワード(読みやすい形式、カスタム文字セット)、乱数、シャッフル |
hash | MD5、SHA-1、SHA-256、SHA-512、CRC32、HMAC |
base64 | エンコード/デコード |
encode | URL、HTML エンティティ、Unicode エスケープ |
date | 差分、加算/減算、曜日、和暦 |
regex | テスト、マッチ、matchAll、置換 |
base | 基数変換(2~36) |
diff | 行の差分、レーベンシュタイン距離 |
format_validate | JSON、CSV、XML、YAML の検証 |
cron_parse | 人が読みやすい cron 表記と次回実行時刻(曜日名/月名に対応) |
luhn | チェックディジットの検証/生成 |
ip | IPv4/IPv6 情報、CIDR の包含チェック、範囲の計算 |
color | HEX ↔ RGB ↔ HSL(アルファチャンネル対応) |
convert | 8 カテゴリ、146 の単位名:長さ、重量、温度、面積(坪、畳)、体積、速度、データ、時間 |
char_info | Unicode コードポイント、ブロック、カテゴリ |
jwt_decode | ヘッダーとペイロードをデコード(検証なし) |
url_parse | プロトコル、ホスト、パス、パラメーター、ハッシュ |
semver | 比較、検証、解析、範囲との適合性 |
インストール
Claude Code
claude mcp add -s user calc-mcp -- npx -y @coo-quack/[email protected]
Claude Code プラグイン
coo-quack marketplace からプラグインとしても利用できます:
/plugin marketplace add coo-quack/claude-code-marketplace
/plugin install calc-mcp@coo-quack
詳しくはインストールガイドをご覧ください。
Claude Desktop / Cursor / Windsurf
設定ファイルに追加します:
| アプリ | 設定ファイルのパス |
|---|---|
| Claude Desktop(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop(Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"calc-mcp": {
"command": "npx",
"args": ["-y", "@coo-quack/[email protected]"]
}
}
}
VS Code(GitHub Copilot)
ワークスペースの .vscode/mcp.json に追加します:
{
"servers": {
"calc-mcp": {
"command": "npx",
"args": ["-y", "@coo-quack/[email protected]"]
}
}
}
Docker イメージ
Calc MCP は、GitHub Container Registry から Docker イメージとして利用できます。
docker run --rm -i ghcr.io/coo-quack/calc-mcp:latest
または、MCP クライアントの設定で使用します。
{
"mcpServers": {
"calc-mcp": {
"command": "docker",
"args": ["run", "--rm", "-i", "ghcr.io/coo-quack/calc-mcp:latest"]
}
}
}
利用可能なタグ:
ghcr.io/coo-quack/calc-mcp:latest— 最新リリースghcr.io/coo-quack/calc-mcp:X.Y.Z— 特定のバージョン(X.Y.Z を希望するバージョンに置き換えてください)
その他の MCP クライアント
Calc MCP は、MCP 互換のあらゆるクライアントで動作します。stdio 経由でサーバーを実行します。
npx -y @coo-quack/[email protected]
クライアントの MCP 設定で、上記のコマンドを指定してください。サーバーは標準の Model Context Protocol を使用して stdio 経由で通信します。
開発
bun install
bun run dev # Start dev server
bun test # Run tests
bun run lint # Biome
bun run format # Biome
セキュリティ
calc-mcp はすべてのデータを ローカルで 処理し、以下のことは 行いません。
- ❌ 外部サーバーへのデータ送信
- ❌ ファイルやリモートサービスへのデータの記録
- ❌ 処理したデータの永続的な保存
詳しいセキュリティ情報については、SECURITY.md をご覧ください。
LLM を安全に利用する
calc-mcp 自体はローカルのみで動作します。 ただし、LLM 経由で使用する場合、入力した内容は LLM プロバイダー(Anthropic、OpenAI など)に送信されます。
- ✅ 推奨: 可能な場合はテストデータやサンプルデータを使用してください
- ✅ 推奨: 機密性の高い操作にはローカルのみで動作する LLM を使用してください
- ❌ 禁止: 本番環境のシークレットを MCP ツールに渡さないでください(LLM プロバイダーに送信されます)
例:
# ❌ Unsafe: Any secret passed to MCP tool is sent to your LLM provider
# Tool: hash
# Input: { "input": "sk-1234567890abcdef", "algorithm": "sha256" }
# ✅ Safe: Use test data only (for learning/development)
# Tool: hash
# Input: { "input": "test-value-123", "algorithm": "sha256" }
# ✅ For production secrets: Use local-only LLMs or process outside MCP
注記: エラーメッセージは、意図しないデータ漏えいを防ぐため、自動的にサニタイズされます。
セキュリティ上の問題については、セキュリティポリシーをご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。