tokcalc MCP Server について
tokcalcは、モデルやワークロードの条件から、LLM推論のメモリ、スループット、レイテンシ、構成、費用を見積もる容量計画ツールです。数式とベンチマークの出典を確認でき、Webサイト、CLI、GitHub Action、MCPサーバーとして利用できます。
主な機能
- 01モデルとKVキャッシュのメモリ適合を推定
- 02スループットとトークン遅延を計算
- 03マルチGPU構成を推奨
- 04長いコンテキストの容量と同時実行数を計画
- 05セルフホストとAPIの費用を比較
- 06クラウド各社のGPU価格を取得
活用シーン
- 01デプロイ前にGPUへ収まるか確認
- 02コンテキスト長に応じた同時実行数と構成を計画
- 03セルフホストとAPIの費用分岐点を比較
- 04プルリクエストでサービング計画を検証
MCP 対応
tokcalc MCPサーバーはWebサイトやCLIと計算エンジンを共有し、LLM推論の容量・費用計画をMCPクライアントに公開します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://tokcalc.vercel.app/api/mcpclaude mcp add --transport http stevecrates489-commits-tokcalc https://tokcalc.vercel.app/api/mcp{"mcpServers":{"stevecrates489-commits-tokcalc":{"type":"http","url":"https://tokcalc.vercel.app/api/mcp"}}}Cursor で開く{"servers":{"stevecrates489-commits-tokcalc":{"type":"http","url":"https://tokcalc.vercel.app/api/mcp"}}}VS Code で開く{"mcpServers":{"stevecrates489-commits-tokcalc":{"type":"http","url":"https://tokcalc.vercel.app/api/mcp"}}}{"mcpServers":{"stevecrates489-commits-tokcalc":{"serverUrl":"https://tokcalc.vercel.app/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細

モデルを切り替え → マルチGPU → 長文コンテキスト容量プランナー → 自社構築か購入か → リファレンスカタログ → GPU価格をリアルタイム表示
tokcalcは、LLMのトラフィック、コンテキスト長、レイテンシSLO、キャッシュの動作、 モデルの選択を、根拠を示せるサービングトポロジーとコスト計画に変換します。 計算式は明示され、ベンチマークの出典も記載されています。
LLM推論のデプロイ前に使う、エンジニアリング品質の意思決定レイヤーです。 単なる静的な「トークン毎秒」計算ツールではありません。
今すぐ試す
tokcalc.vercel.app — 登録不要、トラッキングなし、ペイウォールなし。
tokcalcは、44種類のモデル、31種類のアクセラレーター、16種類の量子化形式に対応する、オープンソースのLLMサービング容量プランナーです。ウェブサイト、MCPサーバー、CLIで共通して使用されるカタログと計算エンジンを通じて、モデルの適合性、KV/状態メモリ、スループット、レイテンシ、トポロジー、コストを推定します。
モデル、GPU、ワークロードを選ぶだけで、すぐに容量計画を取得できます。
- 生成速度(tok/s)
- 初回トークンレイテンシとトークン間レイテンシ(ITL)の推定値
- KVキャッシュのサイズを考慮したVRAM予算
- マルチGPUトポロジーの推奨(単一GPU → TP×2/4/8 → コンテキスト並列)
- 月額コストとAPI料金に対する損益分岐点
- Azure + AWS + GCP + Vast.aiマーケットプレイスのGPU価格をリアルタイム表示(並列取得)
- 共有可能なURL — 設定をURLハッシュにエンコードして、同僚に送信できます
- Markdownとしてコピー — 結果全体をGitHubのIssue/Slack/ドキュメントに貼り付けられます
GitHub Action — すべてのPRで計画をチェック
リポジトリにサービング計画を定義している場合、tokcalcでその計画をチェックできます。
リポジトリのルートに.tokcalc.jsonを配置します。
{
"model": "llama3-70b",
"gpu": "h100-sxm",
"quantization": "fp8",
"numGpus": 2,
"contextTokens": 32768,
"concurrency": 16
}
次に、これを.github/workflows/plan.ymlに追加します。
name: tokcalc
on:
pull_request:
paths: [".tokcalc.json"]
jobs:
plan:
runs-on: ubuntu-latest
steps:
- uses: stevecrates489-commits/[email protected]
with:
fail-on-infeasible: true
計画に変更が加わるすべてのPRに、VRAM予算、KVキャッシュのサイズ、スループット、TTFT/ITL、コストを記載したコメントが投稿されます。これにより、レビュアーは差分を離れずにモデル/GPUの選択を確認できます。
@mainではなく、上記のようにリリースタグを指定してください。そうすれば、実行のたびにアクションが変更されることはありません。
このアクションは、このリポジトリにあるtokcalc独自のsrc/lib/token-calc.tsを実行するため、報告される数値はサイトやMCPツールで得られるものと同じです。別実装とのずれが生じることはありません。
実行ごとに任意のフィールドを上書きできます。また、設定ファイルを使わずに実行することもできます。
- uses: stevecrates489-commits/[email protected]
with:
model: mixtral-8x7b
gpu: h200-sxm
quant: fp8
gpus: 2
context: 32768
concurrency: 32
アクションを使わず、同じ処理をローカルで実行する方法は次のとおりです。
npx @tokcalc/mcp-server plan --config .tokcalc.json
npx @tokcalc/mcp-server plan --model llama3-70b --gpu h100-sxm --quant fp8 --format json
計画が適合する場合は終了コード0、適合しない場合は2、使用方法に誤りがある場合は1を返すため、CIゲートとして利用できます。
tokcalcを使う理由
市場には、「トークン毎秒」計算ツールやセルフホストとAPIの損益分岐点を比較するツール(induwara.lk、gigagpu、kickllm、cloudparity、curlscape、profitable.ai)が多数あります。しかし、統合された容量プランナーは一つもなく、計算の根拠を示すものもありません。
tokcalc が競合ツールには答えられない質問
「Qwen 2.5 72B を、コンテキスト長 128K、同時ユーザー数 20 人で、H100 2 基で提供できますか?」
「P95 TTFT < 2s で毎分 1,000 件のリクエストを処理するには、H200 が何基必要ですか?」
「品質、KV キャッシュ、エンジンのサポートまで考慮した場合、FP8 と AWQ のどちらがよりコストを削減できますか?」
「1 日あたりの利用量がどれくらいになると、H100 の料金が GPT-4o を下回りますか?」
「Azure/AWS/GCP/Vast.ai で、今もっとも安い H100 はどれですか?」
「エージェントがモデルを 8 回呼び出し、ツールを 3 回呼び出し、ターンごとにコンテキストが 5K トークンずつ増える場合、コストとレイテンシはどうなりますか?」
「このワークロードでは、プレフィックスキャッシュ、継続的バッチ処理、PD 分離のうち、どれがもっともコストを削減できますか?」
機能
Calculator タブ
| 機能 | 計算内容 |
|---|---|
| モデル適合性/VRAM | モデルと KV キャッシュは GPU のメモリに収まりますか? |
| スループット | デコード tok/s(ストリームあたり)+合計(バッチ処理時)+プリフィル tok/s |
| レイテンシの内訳 | 初回トークンまでの時間(=プリフィル)+トークン間レイテンシ(=デコード) |
| 継続的バッチ処理 | ユーザーが調整できる 1.0~4× の倍率(SOSP の引用範囲 1.5~4×) |
| 推論トークン | 請求対象の出力に加算される非表示の推論予算(o1/R1/Claude thinking) |
| プロンプトキャッシュ | セルフホストの vLLM APC + Anthropic の 5m/1h TTL + OpenAI のキャッシュ済みトークン 50%割引 |
| 投機的デコーディング | ユーザーが調整できる 1.2~4× のブースト係数 |
| マルチ GPU TP | NVLink 効率係数を用いた 1× → 8× のテンソル並列処理 |
| 長文コンテキストの処理能力 | 4K → 1M のコンテキストにおける KV メモリ、最大同時実行数、プリフィル時間 |
| トポロジーの推奨 | 単一 GPU → TP×2 → TP×4 → TP×8 → TP×8 + Context Parallel(RingAttention) |
| コストの試算 | GPU の $/時間 → 出力トークン 100 万個あたりの $ → リクエストあたりの $ → 月額コスト |
| 実測ベンチマークによる調整 | vLLM/SGLang/TRT-LLM の JSON を貼り付けると、計算式の精度を判定します(検証済み/過小評価/過大評価) |
Build vs Buy タブ
独立した計算ツール(状態は別管理)で、次の項目を比較します。
- セルフホスト:モデル + GPU + 量子化 + 使用率 + バッチ処理 → トークン 100 万個あたりの $ + 月額コスト
- API:13 プロバイダー(OpenAI/Anthropic/Gemini/Groq/DeepSeek/Mistral/Together)
- 判定:セルフホストの方が安い/API の方が安い/利用量が不十分 — 損益分岐となる 1 日あたりのリクエスト数も表示
Reference タブ
ホームページのタブです(tokcalc.vercel.app → Reference)。別のルートではありません。
6 つのサブテーブルを用意しています。完全な透明性を確保し、可能な場合はすべてのレコードに出典をリンクしています。
- モデル(44 件:Llama 4 Scout/Maverick、Qwen 3 ファミリー、DeepSeek V3/R1、Pixtral、BGE-M3、GPT-OSS 20B/120B、Kimi K3、GLM-5.3 など)
- アクセラレーター(31 件:H100/H200/B200/B300、AMD MI300X/MI325X、Intel Gaudi 3、TPU v5p/Trillium、Groq LPU、Cerebras WSE-3、Apple M2/M3/M4 Ultra など)
- 量子化(16 形式:FP16/BF16、GGUF Q2_K→Q8_0、GPTQ、AWQ、EXL2、FP8、NVFP4)
- API 料金(入力/キャッシュ済み/出力の料金と、提供終了/現行のステータスを含む 13 モデル)
- クラウド GPU 料金($/時間 > 0 のすべてのアクセラレーターと、一般的なプロバイダー。内容は静的に選定)
- 🔴 ライブ料金(Azure + AWS + GCP + Vast.ai からリアルタイムで並列取得 — LIVE バッジとタイムスタンプを表示)
長文コンテキスト処理能力プランナー(差別化要素)
Perplexity の調査ブリーフが「tokcalc が目に見える形で示すべき最重要項目」と評した計算式です。
$$ \text{KV bytes/request} = 2 \cdot L \cdot T \cdot H_{\text{kv}} \cdot D_h \cdot B $$
密なアテンションでは、コンテキスト長が伸びるとプリフィルのコストは超線形に増加します。
$$ \text{prefill FLOPs} = \underbrace{2 \cdot N \cdot T}{\text{線形}} + \underbrace{T^2 \cdot H{\text{kv}} \cdot D_h \cdot L}_{\text{アテンション}} $$
tokcalc では次の項目を確認できます。
- コンテキスト長 4K/8K/16K/32K/64K/128K/256K/512K/1M での最大同時ユーザー数
- 各コンテキスト長でのリクエストあたりの KV メモリ
- プリフィル時間(32K を超える場合は超線形のアテンション補正を適用)
- 必要なトポロジー(単一 GPU → TP×2/4/8 → TP×8 + Context Parallel)
- CP が必要な場合の RingAttention の出典
ライブ GPU 価格(新機能)
Reference の 🔴 ライブ価格サブタブでは、Promise.allSettled を使用して 4 つのプロバイダーからリアルタイムの GPU 価格を並列で取得します。
| プロバイダー | API | 認証 | キャッシュ TTL |
|---|---|---|---|
| Azure | Retail Prices API | なし(公開) | 24 時間 |
| AWS | EC2 一括価格ファイル | なし(公開) | 24 時間 |
| GCP | Cloud Billing Catalog API | GCP_API_KEY 環境変数 | 24 時間 |
| Vast.ai | マーケットプレイスバンドル API | なし(公開) | 5 分(スポット価格は頻繁に変動します) |
各プロバイダーには、タイムスタンプとキャッシュ状態を示す LIVE バッジが表示されます。比較テーブルには、4 つのプロバイダー全体で GPU ごとの最安価格(エメラルド色で強調表示)と、プロバイダーごとの内訳が表示されます。
いずれかのプロバイダーでエラーが発生しても(例:GCP_API_KEY が設定されていない場合)、ほかのプロバイダーは引き続き利用できます。プロバイダーごとに適切にフォールバックします。
数式を透明に
上記のすべての数値は、確認可能な数式から導かれています。ブラックボックスはありません。
デコード tok/sec(メモリ帯域幅がボトルネック)
$$ \text{decode tok/sec} \approx \frac{\text{HBM BW} \cdot \eta_{\text{mem}} \cdot \text{quant_eff}}{\text{model size}} $$
各項目の意味:
HBM BW= GPU メモリ帯域幅(例:H100 SXM の場合 3350 GB/s)η_mem = 0.65= 一般的な実環境でのメモリ使用率(オーバーヘッド 35%)quant_eff= 逆量子化効率の倍率(FP16 では 1.0、H100 の FP8 では 1.5、INT4 では 0.85)model size = active_params × bytes_per_param(MoE では総パラメーター数ではなく、アクティブなパラメーター数を使用)
参考資料:PagedAttention 論文(arxiv.org/abs/2309.06180)
プリフィル tok/sec(計算がボトルネック)
$$ \text{prefill tok/sec} \approx \frac{\text{GPU FLOPS} \cdot \eta_{\text{compute}}}{2 \cdot \text{active params}} $$
各項目の意味:
GPU FLOPS= 密行列の FP16/BF16 TFLOPS(スパース値は使用しません)η_compute = 0.50= 一般的な計算使用率- 係数 2 = トークンごとにパラメーターあたり 1 回の乗算と 1 回の加算
長いコンテキスト(>32K)では、上記の超線形アテンション補正が適用されます。
連続バッチ処理の倍率(ワークロード固有)
$$ \text{aggregate tok/sec} = \text{decode tok/sec} \cdot \text{batch size} \cdot \text{continuous batching multiplier} $$
重要な注意点:連続バッチ処理の倍率に普遍的な値はありません。vLLM では、HF Transformers と比較して 14~24 倍(極端なケース)、TGI と比較して 2.2~2.5 倍が報告されています。SOSP の論文では、FasterTransformer/Orca と比較して、一般的に 2~4 倍とされています。tokcalc のデフォルト値は保守的な 1.5 倍で、調整も可能です。
参考資料:
プロンプトキャッシュのコスト(Anthropic/OpenAI)
長さ $T_p$ の共有プレフィックス、長さ $T_u$ のサフィックス、出力 $O$、 キャッシュヒット率 $h$ の場合:
$$ \text{API input cost} = N \cdot \left[ (1-h) \cdot T_p \cdot P_{\text{write}} + h \cdot T_p \cdot P_{\text{read}} + T_u \cdot P_{\text{input}} \right] $$
Anthropic の倍率(2025~2026年に検証済み):
- 5 分間のキャッシュ書き込み:基本入力料金の 1.25 倍
- 1 時間のキャッシュ書き込み:基本入力料金の 2.0 倍
- キャッシュ読み取り:基本入力料金の 0.1 倍(90% 削減)
OpenAI:キャッシュされた入力は 50% 割引で、個別の書き込み料金はありません。
参考資料:
マルチ GPU トポロジーの推奨
$$ \text{total needed} = \text{model weights} + (\text{KV per request} \cdot \text{batch size}) $$
必要量を満たす最小のトポロジーを選択します:
- 単一 GPU:合計 ≤ VRAM × 1
- Tensor Parallel ×2/4/8:合計 ≤ VRAM × N(重みと KV を均等に分割)
- TP×8 + Context Parallel:合計 > VRAM × 8 — RingAttention を使用して、ノード間で KV を分割します
参考資料:RingAttention 論文
セルフホストと API の損益分岐点
$$ \text{self-host $/M tokens} = \frac{\text{GPU $/hr}}{3600 \cdot \text{effective tok/s} \cdot \text{utilization}} \cdot 10^6 $$
$$ \text{break-even req/day} = \frac{\text{monthly self-host cost}}{30 \cdot \text{API cost per request}} $$
決定的な要素は実効使用率であり、ピークスループットではありません。使用率 10% で稼働する GPU では、理論上の最小値と比べてトークンあたりのコストが 10 倍になります。
| 機能 | induwara / techfuelhq / pcmasterstudio | gigagpu / kickllm / cloudparity | HF Open LLM Leaderboard / MLPerf | tokcalc |
|---|---|---|---|---|
| モデル × アクセラレーター × 量子化の tok/s | ✓ | 一部 | 一部 | ✓ |
| モデル適合性 / VRAM | 基本機能 | まれ | まれ | ✓ |
| コンテキスト長 + 同時実行数に応じた KV キャッシュ | — | — | 暗黙的 | ✓ |
| プリフィルとデコードの分離(TTFT/ITL) | — | — | エンジン固有 | ✓ |
| 連続バッチ処理 / ページドアテンション | — | — | ドキュメントのみ | ✓ |
| 長文コンテキスト(128K~1M)の計画 | — | — | — | ✓ |
| トポロジーの推奨(TP/CP) | — | — | 一部 | ✓ |
| プロンプトキャッシュのコスト分析 | — | 一部、API のみ | — | ✓ |
| 推論トークン(o1/R1/Claude thinking) | — | — | — | ✓ |
| API とセルフホストの損益分岐点 | 一部 | ✓ | — | ✓ |
| クラウド GPU のリアルタイム料金(4 プロバイダー) | — | — | — | ✓ |
| 実測ベンチマークによるキャリブレーション | — | — | — | ✓ |
| AI エージェント向け MCP サーバー | — | — | — | ✓ |
| 公開ホスト型 MCP エンドポイント + セルフサービスのキー | — | — | — | ✓ |
| 透明性のある数式 / オープンソース | まちまち | 通常なし | まちまち | ✓ |
| 構成ごとの引用付きベンチマーク根拠 | まれ | まれ | ✓(計画機能ではない) | ✓(進行中) |
| 構成ごとの共有可能な URL | — | — | — | ✓ |
| 結果を Markdown としてコピー | — | — | — | ✓ |
ロードマップ
リリース済み
- ✅ 44 個のモデル、31 個のアクセラレーター、16 種類の量子化形式
- ✅ 連続バッチ処理、推論トークン、プロンプトキャッシュ
- ✅ 推定初回トークンレイテンシ / ITL の分離、長文コンテキストにおける超線形アテンション
- ✅ 長文コンテキスト容量プランナー + トポロジーの推奨
- ✅ 構築と購入の比較計算ツール(廃止済み / 現行のステータスを含む 13 の API プロバイダー)
- ✅ リファレンスカタログ(リアルタイム料金を含む 6 つのサブテーブル)
- ✅ GPU のリアルタイム料金(Azure + AWS + GCP + Vast.ai を並列取得し、LIVE バッジを表示)
- ✅ 実測ベンチマークによるキャリブレーション(vLLM/SGLang/TRT-LLM の JSON を貼り付け → 判定)
- ✅ MCP サーバー v0.3.4 — 読み取り専用ツール 10 個 + キャリブレーション書き込みツール 1 個、stdio + Streamable HTTP トランスポート
- ✅ 単一コアの MCP アーキテクチャ — 1 つの
src/lib/mcp/core.tsをホスト型エンドポイントと npm パッケージの両方にシムとして組み込み、2 つの提供形態が乖離しないようにしています - ✅ MCP Registry に公開済みで、すべての
v*タグで OIDC ワークフローにより最新の状態を維持 - ✅ 正確な MoE 計上 — 常駐する全重みとアクティブな(トークンごとの)パラメーターを混同せず、別々に表示
- ✅ 厳格なツールスキーマ — Zod 4 のネイティブ JSON Schema。未知のパラメーターは拒否され、有効な名前が提示されます
- ✅ 公開ホスト型 MCP エンドポイント(
tokcalc.vercel.app/api/mcp)、ベアラー認証 + Upstash Redis によるレート制限付き - ✅ セルフサービスの API キー生成(
tokcalc.vercel.app/mcp)(メールアドレス → 即時発行のキー) - ✅ SEO 対応ランディングページ 4 ページ:
/compare/h100-vs-h200、/compare/gguf-q4-k-m-vs-q5-k-m、/self-host-vs-openai-api、/mcp(インストール手順) - ✅ 共有 URL + localStorage による永続化
- ✅ GitHub Action — 容量とコストのプランを PR に直接追加
- ✅ 結果を Markdown としてコピー(GitHub の Issue / Slack / ドキュメント向け)
- ✅ ダークモード切り替え
- ✅ 平易な英語の用語集(ホバーツールチップ付き、28 語)
- ✅ OG 画像 + Twitter カード + ソーシャルメタデータ
- ✅ Plausible Analytics(プライバシーに配慮)+ Sentry によるエラー監視
今後 30 日間
- ⏳ バージョン管理された料金 + ベンチマークの出典情報 — すべての料金とベンチマークに出典 URL + 取得日を記載
- ⏳ P/D 分離プランナー(プリフィルとデコードのプールを分離)
- ⏳ エンジン対応プリセット(vLLM / SGLang / TensorRT-LLM / llama.cpp)— UI に統合
- ⏳ マルチターン / エージェント型のコスト分析 — コストモデルにおけるコンテキストの増加とツール呼び出しターン
今後 90 日間
- ⏳ マルチ LoRA 容量プランナー(Punica / S-LoRA のコスト分析)
- ⏳ VLM の画像トークン計上(モデルごとのパッチ / タイルのトークン化)
意図的に対応しない項目
i18n(中国語/日本語/韓国語)— 44 個のモデル × 31 個のアクセラレーター × 11 個のツールにわたる翻訳を継続的に保守する必要があります。また、現在のトラフィックは人間の読者ではなく、CI とエージェントによるインストールが圧倒的に多くを占めています。分析で CJK のトラフィックが確認された場合にのみ再検討します。OAuth 2.1/PKCE— ユーザーが 1 人のプロダクトに認証インフラを導入することになります。セルフサービスでのキー発行と Upstash のレート制限で、実際のニーズはすでに満たされています。要望があれば再検討します。トレーニング/ファインチューニングの FLOPs、エネルギー/カーボン、埋め込みモード— これらはそれぞれ、異なる分野における独立したプロダクトです。「キャパシティプランナー」という明確なポジションを、汎用的な AI インフラ計算ツール群へと広げるコストは、得られる価値を上回ります。
オープンコアモデル
tokcalc はオープンコアです。計算ツールとカタログはオープンソースで、クラウド/データ/チーム向け機能は有料です。
| 資産 | ライセンス | 備考 |
|---|---|---|
| ソースコード | Apache 2.0 | このリポジトリです。自由に使用、変更、配布できます |
| モデル/GPU/量子化カタログ | CC0 1.0 | パブリックドメインのデータです。誰でも使用でき、帰属表示も不要です |
| ベンチマークの出典データ | CC-BY-SA 4.0 | 誰でも使用できますが、帰属表示と同一条件での共有が必要です |
| ドキュメント | CC-BY 4.0 | 複製する場合は帰属表示が必要です |
| 「tokcalc」の名称とロゴ | 商標 | 正式に登録されていなくても、コモンロー上の権利が適用されます |
| クラウド SaaS レイヤー | プロプライエタリ | リアルタイムの価格 API、ベンチマーク DB、チームのワークスペース(近日公開) |
この構成を採用する理由
- 信頼:オープンソースの計算式によって、不透明な競合製品に対する信頼性を築けます
- コミュニティ:貢献者はモデル、アクセラレーター、量子化形式、ベンチマークを追加できます
- 競争優位性:商標、クラウド機能、URL 共有によるバイラルループが、フォークに対する保護になります
- 収益:クラウドティアの収益で、継続的な開発と価格/ベンチマークデータの保守を支えます
貢献
貢献を歓迎します!詳しくはCONTRIBUTING.mdをご覧ください。
- モデルの追加方法(出典に HuggingFace の config.json を使用)
- アクセラレーターの追加方法(B200/B300 の FP16 フィールドが null の場合に必要な重要なガードレールを含む)
- 量子化形式の追加方法(実測ファイルサイズを出典として使用)
- ベンチマークの投稿方法(3 段階の信頼度モデル)
- 計算式の改善方法(出典を明記し、根拠のない数値は使用しない)
特に必要としている貢献
- 🟢 新しいモデル(リリースに合わせた Qwen 3、Mistral Large 4、Llama 4 の各バリアント)
- 🟢 新しいアクセラレーター(出荷開始時の B300、AMD MI400、Apple M5 Ultra)
- 🟢 新しい量子化形式(mxFP8、MXFP4、BitNet 2)
- 🟢 実際のベンチマークデータ(vLLM のベンチマークを実行し、出典情報を添えて投稿)
- 🟢 翻訳(特に中国語、日本語、韓国語)
MCP サーバー — AI エージェントから tokcalc を利用
tokcalc にはMCP(Model Context Protocol)サーバーが付属しており、AI エージェント(Cursor、Claude Desktop、Cline)が設計レビュー中に tokcalc を呼び出せます。
npm パッケージ:@tokcalc/mcp-server(最新:v0.3.4)
パブリックエンドポイント:https://tokcalc.vercel.app/api/mcp(ストリーミング可能な HTTP、ベアラー認証、レート制限あり)
インストール手順:https://tokcalc.vercel.app/mcp
11 個のツール — 読み取り専用 10 個+キャリブレーション用の書き込み 1 個
| ツール | 機能 | アクセス |
|---|---|---|
estimate_capacity | 1 つの構成に対する VRAM/KV/スループット/レイテンシ/コスト | 読み取り専用 |
compare_gpus | 1 つのワークロードに対するアクセラレーターのランキング比較 | 読み取り専用 |
recommend_topology | TP/CP トポロジーの推奨 | 読み取り専用 |
estimate_api_vs_self_host | 損益分岐点の分析 | 読み取り専用 |
list_models | 対応しているモデル ID の確認 | 読み取り専用 |
list_gpus | 対応しているアクセラレーター ID の確認 | 読み取り専用 |
get_mlperf_benchmarks | 厳選された MLPerf Inference v4.1 の監査済み参照構成 | 読み取り専用 |
find_config_for_slo | 逆算プランナー — SLO とトラフィックから、実現可能な構成をコスト/スループット/価値の順に提示 | 読み取り専用 |
plan_deployment | 1 回の呼び出しで意思決定の概要を作成 — メモリ+性能+構築か購入かの判断+リスク+次のステップ | 読み取り専用 |
fetch_model_spec | カタログと最新の HuggingFace config.json の差分を確認(24 時間キャッシュ) | 読み取り専用 |
record_measured | 実測した tok/s を保存。以降の推定値は自己キャリブレーションされます | 状態を書き込みます |
10 個のプランニングツールには副作用がなく、クラウド認証情報やデプロイも不要です。唯一の書き込みツールである record_measured は測定値を保存し、以降のそのモデル+GPU+量子化に関する推定値を自己キャリブレーションできるようにします。各ツールは MCP ワイヤー注釈(readOnlyHint/destructiveHint/idempotentHint/openWorldHint)でこれを宣言するため、クライアントは呼び出す前に読み取りか書き込みかを判別できます。
ツールのパラメーターは厳密です。未知のキーは無視されずに拒否され、有効なキーがエラーメッセージに示されます。パラメーター名は model と gpu です(modelId/gpuType ではありません)。
オプション A:公開ホスト型エンドポイント(推奨 — インストール不要)
Cursor または Claude Desktop を公開エンドポイントに接続します。/mcp ですぐに API キーを取得できます:https://tokcalc.vercel.app/mcp
{
"mcpServers": {
"tokcalc": {
"url": "https://tokcalc.vercel.app/api/mcp",
"headers": { "Authorization": "Bearer <your-api-key>" }
}
}
}
機能:
- ✅ Bearer API キー認証(
crypto.timingSafeEqualによる定時間比較) - ✅ Upstash Redis による KV ベースのレート制限(IP あたり 30 リクエスト/分、キーあたり 120 リクエスト/分)
- ✅ セルフサービスでのキー生成 —
/mcpでメールアドレスを入力すると、すぐにキーを取得できます(IP あたり 1 日 5 個まで) - ✅ キーは 90 日間非アクティブの場合に期限切れになります
- ✅ SHA-256 によるキーのハッシュ化(キーの生データは保存されません)
オプション B:セルフホスト型 stdio(ローカルの Cursor/Claude Desktop 向け)
{
"mcpServers": {
"tokcalc": {
"command": "npx",
"args": ["-y", "@tokcalc/mcp-server"]
}
}
}
stdio(ローカルインストール)では API キーは不要です。Cursor が npx 経由でプロセスを起動します。
オプション C:セルフホスト型 HTTP(エアギャップ環境/カスタムインフラ向け)
npm install -g @tokcalc/mcp-server
tokcalc-mcp-http # defaults to port 3000
認証とレート制限を有効にするには、環境変数として MCP_API_KEY、UPSTASH_REDIS_REST_URL、UPSTASH_REDIS_REST_TOKEN を設定します。
エージェントプロンプトの例
「同時接続ユーザー 50 人向けに、コンテキスト長 32K で Llama 3.3 70B を提供する必要があります。推奨する GPU トポロジーと、月額費用を教えてください。」
エージェントは list_models → list_gpus → recommend_topology → estimate_capacity を呼び出し、VRAM、スループット、レイテンシ、コスト、根拠を含む構造化されたプランを返します。
開発とテスト
# Typecheck (must stay at zero errors)
bunx tsc --noEmit
# Golden-number suite (33 tests) — hand-verified oracle values
bun test tests/mcp-golden.test.ts
# Surface-parity suite (13 tests) — every surface advertises the same 11 tools
bun test tests/mcp-surface-parity.test.ts
# Catalog suite (29 tests) — schema conformance, id stability, provenance,
# architecture-engine correctness, backward compatibility
bun test tests/catalog.test.ts
# Catalog validation (Zod schemas + id/provenance integrity) — CI gate
bun scripts/catalog-validate.ts
# Build the npm server dist + prepublish guard (freshness + version sync)
cd mini-services/mcp-server && bun run build && node scripts/prepublish-check.js
# 35-check black-box stdio QA battery against the freshly built dist
cd ../.. && node tests/qa-live-probe.mjs local
# …or against the PUBLISHED npm tarball:
node tests/qa-live-probe.mjs 0.3.4
# 20-check HTTP smoke probe against the hosted /api/mcp surface
MCP_API_KEY=<key> EXPECTED_VERSION=0.3.4 node tests/http-smoke.mjs http://localhost:3001
# …or against production:
MCP_API_KEY=<key> node tests/http-smoke.mjs https://tokcalc.vercel.app
GitHub Actions は、公開済み tarball を使うモードを除き、プッシュのたびに上記すべてを実行します。.github/workflows/ci.yml を参照してください。
技術スタック
- フレームワーク:App Router を備えた Next.js 16(Turbopack)
- 言語:TypeScript 5
- スタイリング:Tailwind CSS 4 + shadcn/ui(New York)
- チャート:Recharts
- 状態管理:React フック(useState + useEffect + useMemo)
- テーマ:next-themes(ダークモードがデフォルト)
- MCP SDK:
@modelcontextprotocol/sdkv1.30.1(Streamable HTTP トランスポート、ステートレスモード) - 認証:
crypto.timingSafeEqual(Bearer キーの定時間検証) - レート制限:
@upstash/ratelimit+@upstash/redis(スライディングウィンドウ、IP あたり 30/分、キーあたり 120/分) - 分析:Plausible(プライバシーに配慮、Cookie 不使用)
- エラー監視:Sentry
- データベース:コア機能では不使用。API キーの保存とレート制限には Upstash Redis を使用
プロジェクト構成
tokcalc/
├── src/
│ ├── app/
│ │ ├── api/
│ │ │ ├── mcp/route.ts # Public MCP endpoint (Streamable HTTP)
│ │ │ ├── keys/route.ts # Self-serve API key generation
│ │ │ └── pricing/ # Live GPU pricing proxies
│ │ │ ├── aws/route.ts
│ │ │ ├── azure/route.ts
│ │ │ ├── gcp/route.ts
│ │ │ └── vast-ai/route.ts
│ │ ├── compare/ # SEO landing pages
│ │ │ ├── h100-vs-h200/page.tsx
│ │ │ └── gguf-q4-k-m-vs-q5-k-m/page.tsx
│ │ ├── self-host-vs-openai-api/page.tsx
│ │ ├── mcp/page.tsx # MCP install docs + self-serve key form
│ │ ├── page.tsx # Main calculator
│ │ └── layout.tsx
│ ├── lib/
│ │ ├── mcp/
│ │ │ ├── core.ts # UNIFIED tool core — all 11 tools, both surfaces
│ │ │ ├── server.ts # thin shim → core (createMcpServer factory)
│ │ │ ├── mcp-version.ts # MCP_SERVER_VERSION — single source of truth
│ │ │ ├── mcp-store.ts # per-install store (spec cache + calibration)
│ │ │ └── auth.ts # validateApiKey (Redis + env var)
│ │ ├── token-calc.ts # Core calculation engine
│ │ ├── mlperf-curated.ts # 10 MLPerf v4.1 reference configs
│ │ ├── price-schema.ts # PriceRecord type + helpers
│ │ ├── benchmark-schema.ts # BenchmarkRecord + CalibrationResult
│ │ ├── engine-presets.ts # 5 engine presets (vLLM/SGLang/TRT-LLM/llama.cpp/generic)
│ │ └── url-state.ts # URL hash + localStorage persistence
│ └── components/
│ ├── benchmark-import.tsx # Paste JSON → calibrate against estimate
│ └── confidence-badge.tsx # 🟢🟡⚪ confidence dots
├── mini-services/
│ └── mcp-server/ # Standalone npm package (for stdio + self-hosted HTTP)
│ ├── server.ts # thin shim → src/lib/mcp/core.ts (no duplicated handlers)
│ ├── auth.ts # Bearer auth middleware (Node http)
│ ├── rate-limit.ts # Upstash rate limiter (Node http)
│ ├── http.ts # Standalone HTTP entry (tokcalc-mcp-http)
│ ├── index.ts # Stdio entry (tokcalc-mcp-server)
│ └── package.json # @tokcalc/mcp-server npm package
├── public/
│ ├── og.png # OG image
│ └── manifest.json # PWA manifest
├── src/app/sitemap.ts # Generated sitemap (859 URLs — built from the catalog)
├── server.json # MCP registry entry (packages + remotes)
├── package.json # Web app deps
└── next.config.ts
謝辞
tokcalc は、以下の成果を基盤としています。
- vLLM team — PagedAttention、連続バッチ処理(arxiv.org/abs/2309.06180)
- llama.cpp / ggml-org — GGUF 形式と量子化バリアント
- MLPerf / MLCommons — 標準化された推論ベンチマーク手法
- Stanford HELM — 効率性を考慮したモデル評価フレームワーク
- Anthropic / OpenAI / Google — 公開されているプロンプトキャッシュの料金ルール
- Model Context Protocol team — MCP Streamable HTTP トランスポート仕様(2025-03-26)
- NVIDIA / AMD / Intel / Google / Groq / Cerebras — 公開されているハードウェア仕様
- Upstash — Redis とレート制限のインフラストラクチャ
すべての数式に出典を記載しています。すべてのモデル/GPU/量子化エントリーに、入手可能な場合はソース URL を記載しています。出典のない記述を見つけた場合は、issue を作成してください。
スター履歴
ライブデモ · MCP インストールガイド · 公開 MCP エンドポイント · npm パッケージ · コントリビューション · ライセンス · 行動規範
tokcalc コミュニティが心を込めて作成しました。Apache 2.0 ライセンスです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。