chimeraforge
Chimeraforge
ローカルファーストでモデル非依存のLLMデプロイメントプランナー。 「どのモデル、量子化、GPU、バックエンドか——何台必要か、収まるか、SLOを満たせるか、コストはいくらか」という問いを、シェル、Python、またはAIアシスタントから、高速で正直で測定された答えに変えます。
uvx chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"信頼の原則
すべての数値は measured、estimated、unknown のいずれかのラベルが付けられ、ツールは裏付けの取れない数値を偽装することを拒否します。 VRAMとKVキャッシュはモデルの実際のアーキテクチャから計算されます(正確)。スループットは利用可能な場合は測定値、それ以外の場合は明示的な帯域幅ローフライン推定値であり、実際のデータとして提示されることはありません。バンドルされたコーパス未満の品質は、捏造されたスコアではなく unknown と報告されます。0件のプランは、汎用的な「何も見つかりません」ではなく、すべての候補を拒否した正確なゲートを指名します。テレメトリなし、ホームコールなし、エアギャップ環境でも動作します。
モデルを指定します——サイズクラス、Hugging Faceリポジトリ、Ollamaタグ、または未公開モデル用の手動オーバーライド——すると、(モデル x 量子化 x バックエンド x GPU数 x テンソル/パイプライン並列) 空間をVRAM、品質、レイテンシ、コスト、エネルギー、オプトインのセーフティゲートに対して検索し、SLOを満たす最も安価な構成を返します。
1つのツールに12のコマンド: plan - suggest - measure - validate - catalog - safety - bench - eval - compare - refit - report - mcp。
経験的コーパスはテクニカルレポートTR108-TR137(コンシューマーGPUでの約204,000件の実測定)に由来します。完全な機能履歴についてはCHANGELOGを参照してください。
Related MCP server: llm-cost
インストール
インストールなしで試す:
uvx chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"
pipx run chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB"実際にインストール:
pip install chimeraforge # planner + model resolution (HF/Ollama) + suggest/measure/safety/bench
pip install chimeraforge[bench] # + GPU environment metadata for benchmarks (pynvml)
pip install chimeraforge[mcp] # + MCP server so Claude/GPT/Cursor can call the planner
pip install chimeraforge[eval] # + quality evaluation (BERTScore, ROUGE-L)
pip install chimeraforge[refit] # + coefficient refitting (numpy, scipy)
pip install chimeraforge[all] # everythingPython 3.10以上。コアインストールはプランナーとネットワーク関連コマンドをカバーします(httpx はコア依存)。plan / suggest / catalog は完全にオフラインで動作します。bench / measure / safety は実行中のバックエンド(Ollama、vLLM、またはTGI)が必要です。Windows / macOS / Linux。
クイックスタート
# Plan a registry size class on your GPU
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --request-rate 2.0
# Plan ANY model -- a Hugging Face repo or an Ollama tag
chimeraforge plan --model Qwen/Qwen2.5-7B-Instruct --hardware "RTX 4090 24GB"
chimeraforge plan --model ollama:qwen3:14b --ollama-url http://localhost:11434
# Split a model too big for one GPU across several (tensor parallelism)
chimeraforge plan --model meta-llama/Llama-3.3-70B-Instruct --hardware "H100 80GB" --tp 4
# Shrink the KV-cache, print the cost/latency/quality trade-off menu
chimeraforge plan --model-size 8b --hardware "RTX 4080 12GB" --kv-quant q8 --pareto
# Benchmark a live model and plan on the MEASURED numbers
chimeraforge plan --model qwen3:14b --measure
# Discover + rank what fits your GPU and budget
chimeraforge suggest --source ollama --hardware "RTX 4090 24GB" --budget 500MCPサーバー——Claude / GPT / Cursor に同じ数値を提供
GPUサイジングはまさにアシスタントが失敗する場所です:トレーニングカットオフのハードウェア価格と仕様、さらにメモリからの誤りやすいKVキャッシュ/バッチ演算。chimeraforge mcp はstdio MCPサーバーを実行し、アシスタントが推測する代わりに測定データに対して実際のプランナーを呼び出します。
pip install "chimeraforge[mcp]"Claude Code:
claude mcp add --transport stdio chimeraforge -- uvx --from "chimeraforge[mcp]" chimeraforge mcpClaude Desktop / Cursor(MCP設定ファイルに追加):
{
"mcpServers": {
"chimeraforge": {
"command": "uvx",
"args": ["--from", "chimeraforge[mcp]", "chimeraforge", "mcp"]
}
}
}--from "chimeraforge[mcp]" はMCP SDKを取得します。uvx は自己完結環境でサーバーを実行します。クライアントが起動する環境にすでに pip install "chimeraforge[mcp]" している場合は、代わりに "command": "chimeraforge", "args": ["mcp"] を使用できます。
3つのツールを公開します:chimeraforge_plan(完全なゲート検索)、chimeraforge_resolve_model(モデルIDを実際のパラメータ/アーキテクチャに基づかせる)、chimeraforge_list_hardware。すべての結果はCLIと同じ measured / estimated / unknown の出所を持ち、ツールの説明はモデルに自身の知識よりもこれらを優先するよう指示します。chimeraforge_plan は推奨構成のサーブコマンドである launch フィールドも返すため、アシスタントは「どう実行するか」という質問にフラグを捏造せずに答えることができます。
コマンド
plan — 予測キャパシティプランナー
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --request-rate 2.0
chimeraforge plan --model Qwen/Qwen2.5-7B-Instruct --hardware "RTX 4090 24GB" # any HF repo
chimeraforge plan --model ollama:qwen3:14b --ollama-url http://localhost:11434 # any Ollama tag
chimeraforge plan --model meta-llama/Llama-3.3-70B-Instruct --hardware "H100 80GB" --tp 4 # multi-GPU
chimeraforge plan --model-size 3b --kv-quant q4 --pareto # smaller KV cache, trade-off menu
chimeraforge plan --model-size 8b --hardware "RTX 4090 24GB" --launch # + the serve command to actually run it
chimeraforge plan --model-size 3b --workload agent --safety-target 0.85 --jsonあらゆるモデルを計画:レジストリサイズクラス、HFリポジトリ(
org/name)、Ollamaタグ、または手動オーバーライド(--params-b/--n-layers/...)。(モデル x 量子化 x バックエンド x Nレプリカ x バッチ/GPU) を5ゲートパイプラインで検索:VRAM -> 品質 -> セーフティ(オプトイン) -> レイテンシ -> 予算。
実際のサーブ物理をモデル化:連続バッチング(vLLM/TGI)、プリフィル/デコード分割(TTFT + TPOT)、KVキャッシュ制約の並行性、分散を考慮したキューイング(
--workload)。1つのGPUに収まらない大きなモデルにも対応:
--tensor-parallel/--tp {N|auto}は重みとKVをN個のGPUにシャード化(Megatronスタイル、通信モデル化)。--pipeline-parallel/--pp {N|auto}は代わりにレイヤーをNステージに分割(遅いインターコネクトで安価、パイプラインを満たすにはバッチングが必要)。まだ組み合わせ不可。バックエンドが提供するものをサーブ: GGUF量子化はOllamaで提供。vLLM/TGIはFP16とFP8(FP8テンソルコアを持つGPUのみ——Ada/Hopper/Blackwell/CDNA3)。プランナーはもはやllama.cppのスピードアップで価格設定されたvLLMにGGUFチェックポイントを提案しません。
KVキャッシュ量子化(
--kv-quant {fp16,q8,q4})はキャッシュを縮小し最大並行性を向上——長いコンテキストで最大の効果。コストの現実性(
--duty-cycle、--gpu-price-multiplier):見出しの$/1Mトークは飽和したフリートの価格です。プロビジョニングされたヘッドルームとアイドル時間のコストも支払うため、2 req/sの8Bモデルの実効数値は、フルデューティで**$2.71/1M、30%で$9.04/1M**、キャパシティ時は$0.92です。スポット/リザーブド価格はあなたの入力であり、バンドルされた推測ではありません。セルフホスト vs API損益分岐点(
--compare-api):ワークロードをホスト型APIと価格比較し、セルフホストが勝ち始める月間ボリュームを報告。価格はプロバイダーごとのソースURL付きの日付入りスナップショットで、90日を超えると古いとフラグ付けされます——決してライブ見積もりとして提示されません——またフロンティアAPIは同等ではなく異なる品質層としてラベル付けされます。プレフィックスキャッシュ(
--prefix-cache-hit-rate):チャットボットとエージェントのトラフィックは長いシステムプロンプトを再利用するため、プリフィルの大部分はすでにキャッシュされています。4kプロンプトで90%のヒット率の場合、8BはTTFTが166msから17msになります。デフォルトは0で、決して推測されません。共有プレフィックスが節約するKVは意図的に差し引かれません——KVを過小評価することが「収まる」をOOMに変えるからです。推論モデル(
--reasoning-tokens N):隠れた思考トークンはGPUによってデコードされ、呼び出し元には見えなくてもKVに保持されます。可視出力のみを数えると、推論比だけデコードを過小評価します——1000の隠れトークンは、私たち自身のチェックで8Bプランのp95を363msから6128msにしました。デフォルトは0で、決して推測されません:比率はワークロードの特性であり、重みの特性ではありません。アテンション形状を考慮したKV: MLA(DeepSeek-V2/V3)はヘッドごとのK/Vではなく圧縮された潜在変数をキャッシュします——GQAとしてサイズ設定するとDeepSeek-V3のキャッシュを57倍過大評価します——またスライディングウィンドウモデルはウィンドウを超えてキャッシュを成長させません。レイヤーパターンが宣言されていないウィンドウは適用されません。なぜならKVの過小評価が「収まる」をOOMに変えるからです。
Mixture-of-Experts対応: VRAMは総パラメータでサイズ設定(すべてのエキスパートが常駐)され、スループットとTTFTはアクティブパラメータを使用(トークンはルーティング先のエキスパートのみを読み取る)。MoEモデルを高密度として扱うと、Mixtral-8x7Bでスループットを3.6倍、DeepSeek-V3で約18倍過小予測します。アクティブ数はモデルの実際のエキスパート形状から導出され、公開された数値と一致します。
エネルギー(
--electricity-rate):月間kWhコスト、$/1Mトーク(+エネルギー)、およびトーク/秒/ワットを、予算ゲートに(組み込むのではなく)並べて報告。起動コマンドのエクスポート(
--launch):勝者構成のvllm serve/ollama run/ TGIdocker runコマンドを、プラン自身のコンテキスト長、TP/PP次数、バッチサイズ、KV dtypeを埋め込んで出力——手計算でエラーを起こしやすいフラグ。導出できないものを捏造しません:GGUF量子化レベルは、発明された--quantizationフラグではなく、ネイティブ相当のチェックポイントをサーブするためのメモになります。予測ごとの出所(
measured/estimated/unknown);何も収まらない場合の制約ゲートを説明。レジストリデータで検証済み:VRAM R^2=0.968、スループット R^2=0.859、品質 RMSE=0.062、レイテンシ MAPE=1.05%(解析的M/D/1を20.4倍上回る、TR133)。MLなし——経験的ルックアップテーブルと第一原理補間(レジストリ外モデルはローフライン)。
suggest — モデルの発見とランキング
chimeraforge suggest --source ollama --hardware "RTX 4090 24GB" --budget 500
chimeraforge suggest --source hf --hf-limit 8 --hardware "RTX 4080 12GB"
chimeraforge suggest --source catalog --hardware "RTX 4080 12GB" # offline, after `catalog --build`ライブOllama(/api/tags)、HF Hub(トップテキスト生成)、および/またはローカルカタログから候補を取得し、それぞれを実際のパラメータ/アーキテクチャに解決し、同じゲート検索を実行し、モデルごとに最適な構成を表示します。
measure — ライブでベンチマークし、実数で計画
chimeraforge measure --model qwen3:14b --ollama-url http://localhost:11434
chimeraforge plan --model qwen3:14b --measure # measure then plan in one stepライブモデルをベンチマークし(実際のN=1スループット、サービス時間、並行性スケーリング)、ローカルコーパスに組み込みます。plan / suggest は自動的に測定値を優先します(出所は measured に変わります)。
catalog — ローカルモデルカタログ
chimeraforge catalog --build # resolve a curated seed (+ --with-ollama) and cache specs
chimeraforge catalog # list the cached catalog解決された仕様を永続化し、suggest --source catalog が既知の良好なセットを完全にオフラインでランキングできるようにします。
safety — ライブ拒否スクリーニング
chimeraforge safety --model llama3.2-3b --prompts harmful.txt --quant Q4_K_M --safety-target 0.85plan --safety-target がバンドルされたTR134/TR142データから決定するのに対し、safety は測定します:ライブモデルに対してプローブプロンプトを実行し、拒否を分類し(ルールベース——TR134正規表現ベースライン)、測定された拒否率をバンドルされたゲートデータ(期待値、ドリフト、RTSIリスク層)と比較し、--safety-target を下回ると終了コード1で終了します。プロンプトはあなたが提供します(--prompts、1行に1つ)——攻撃コーパスはパッケージに同梱されていません。HarmBench / AdvBench / 独自のセットを指定してください。実行中のOllamaが必要です。
bench — ライブ推論ベンチマーク
chimeraforge bench --model llama3.2-3b --runs 5
chimeraforge bench --model llama3.2-3b --all-quants --context 512,1024,2048,4096 --json
chimeraforge bench --model llama3.2-3b --backend vllm --base-url http://localhost:80003つのワークロードプロファイル(単一 / バッチ / サーバーPoisson);スループット、TTFT、レイテンシをp50/p90/p95/p99で測定;CVベースの安定性警告;JSON出力。
eval — 品質評価
chimeraforge eval --task general_knowledge --json
chimeraforge eval --predictions preds.txt --references refs.txt --model llama3.2-3bメトリクス:完全一致、ROUGE-L(LCSフォールバック)、BERTScore、コヒーレンス -> 複合(0.2*EM + 0.3*ROUGE + 0.3*BERT + 0.2*コヒーレンス)。品質層はTR125から;3つの組み込みタスク(general_knowledge、summarization、code)。--fp16-baseline を渡すと低下層を分類します。
compare — ベンチマーク実行の差分
chimeraforge compare --baseline run1.json --candidate run2.json,run3.json --json構成を(モデル、バックエンド、量子化、ワークロード、コンテキスト長)でマッチングし、スループット/TTFT/期間のデルタを集計的な改善/回帰サマリーとともに計算します。
refit — プランナー係数の更新
chimeraforge refit --bench-dir ./results/ --output fitted_models.json --validateベイズブレンディング(キーごとの信頼重み付け)、ハードウェアオフセット、べき乗則再フィッティング、および書き込みをゲートする10チェックの検証スイート(--validate)。
report — レポート生成
chimeraforge report --results-dir ./results/ --format markdown --output report.mdMarkdown(GitHub互換)と自己完結型のXSS安全なHTML;統計分析(RMSE、MAE、MAPE、R^2)と構成ごとのパーセンタイルテーブル。
mcp — プランナーをAIアシスタントに提供
chimeraforge mcp上記のstdio MCPサーバーを実行します。pip install "chimeraforge[mcp]" が必要です。
モデル化されているもの
次元 | 計算方法 | 由来 |
VRAM / KVキャッシュ | 実際のモデルアーキテクチャからの第一原理計算。KV量子化とTP/PP対応シャーディング | 正確 |
最大同時実行数 | GPUあたりのKVキャッシュ制約シーケンス数 | 正確 |
スループット(デコード) | 測定ルックアップ、それ以外は帯域幅ルーフライン。継続的バッチング曲線。TP通信 / PPバブル | 測定 / 推定 |
TTFT(プリフィル) | 計算バウンド、GPU FP16 TFLOPS x MFU | 推定 |
品質 | 測定された複合ルックアップ、ファミリー事前推定、または不明 | 測定 / 推定 / 不明 |
コスト | GPU $/時 x フリート規模(レプリカ数で不変の$/100万トークン) | 正確 |
エネルギー | TDPベースの月間kWh、$/100万トークン(+エネルギー)、トークン/秒/ワット | 推定 |
安全性 | TR134/TR142拒否率ルックアップ(オプトインゲート) | 測定 / 不明 |
ハードウェア: 22 GPU -- コンシューマー向けAda + Blackwell(RTX 30/40/50シリーズ)、データセンター向け(A100 40/80GB、H100、H200、B200、L4、T4)、およびAMD MI300X -- それぞれVRAM、帯域幅、FP16 TFLOPS、TDP、インターコネクト(NVLink/Infinity Fabric/PCIe)を備える。
既知の制限(正直なところ): 投機的デコードはまだモデル化されていません。プレフィックスキャッシュはプリフィルの節約をモデル化しますが、KVの節約はモデル化しません(意図的に保守的)。推論トークンはモデル化されますが、比率はあなたの入力(--reasoning-tokens)であり、推測されることはありません。MoEの場合、アクティブ対総パラメータはモデル化されますが、エキスパート並列とルーティング負荷不均衡はモデル化されません。vLLM/TGIの量子化カバレッジはFP16 + FP8(AWQ/GPTQは未対応)。FP8品質は推定であり、測定ではありません。TPおよびPPスループットは通信モデル化された推定値であり、測定値ではなく、1つのプランで組み合わせることはできません。待ち行列は解析的(分散認識)であり、離散事象シミュレータではありません。同梱のコーパスは主に1台のリグ(RTX 4080 12GB)に適合しています。他のGPUは、あなたの環境でmeasureするまでは帯域幅/計算からスケーリングされます。MCPサーバーはstdioのみ(Claude Code/Desktop、ローカルCursor)-- ホスト型リモートトランスポートはまだありません。
研究が決定したこと
フェーズ2(TR123-TR133、約106,000件の測定)は、アーティファクトに基づくデプロイフレームワークに蒸留されました -- プランナーが適用するのと同じルールです:
決定 | 推奨 | 根拠 |
シングルエージェントバックエンド | Ollama Q4_K_M | 最高のスループット/ドル。品質は-4.1pp以内(TR123-TR125) |
マルチエージェントバックエンド(N>=4) | vLLM FP16 | 継続的バッチングによる2.25倍の優位性(TR130-TR132) |
コンパイルポリシー | プリフィルのみ、Linux、Inductor+Triton | 24-60%の高速化。デコードは100%クラッシュ(TR126) |
量子化 | Q4_K_Mデフォルト。Q8_0は品質重視。Q2_Kは不可 | 5モデルにわたる普遍的なスイートスポット(TR125) |
コンテキスト予算 | 12GBで4Kトークン超はOllama | VRAMオーバーフロー = 25-105倍の崖(TR127) |
キャパシティ計画 |
| R^2>=0.859で検証。M/D/1を20.4倍上回る(TR133) |
安全性スクリーニング |
| 構成ごとの拒否率 + RTSIリスク。安全性を崩壊させるセルを拒否(TR134/TR142) |
主要な発見(完全なデータはTRにあります):RustはPythonシングルエージェントを上回る(+15.2%スループット、-58% TTFT、-67%メモリ -- TR112)。デュアルOllamaはほぼ完璧なマルチエージェント並列性(約99%)を達成し、単一インスタンスの82.2%を上回る(TR110/TR113/TR114)。vLLMの継続的バッチングはN=8で2.25倍の優位性をもたらし、ボトルネックはスタックではなくGPUメモリ帯域幅にある(TR130-TR132)。
完全な研究: docs/archive/technical_reports.md は全32レポートの索引です。方法論と生データ参照を含む完全なアーカイブは outputs/publish_ready/reports/ にあります。
数値の作り方
約204,000件の一次測定 は、RTX 4080 Laptop(12GB)上の32件のテクニカルレポート(TR108-TR137 + TR142/TR146安全性由来)にわたります。重複排除済み:TR137/TR142はすでにカウントされたデータの統合です。
厳密性: 実行ごとの新規プロセス分離(ウォームキャッシュバイアスなし)、強制コールドスタート、統計的信頼性のための構成ごとに3-5回の実行、完全な由来を備えた構造化JSON/CSVロギング。すべての主張は再実行可能な生データに遡れます。
プログラムの文脈: ChimeraForgeは、親プログラムであるBanterhearts(54件のTRにわたる約1,337,000件の一次 + ジャッジ測定)から切り出した実践可能なCLIです。安全性の攻撃面とサービングスタックの研究は、関連リポジトリにあります。
549件の自動テスト(
pytest tests/)は、プランナーモデル、ゲート探索、リゾルバ、ディスカバリ、安全性、ベンチバックエンド、MCPサーバーをカバーしています -- GPU非依存で、コアスイートにライブバックエンドは不要です。
任意の数値を再現するには:outputs/publish_ready/reports/ のレポートで主張を見つけ、その参照をデータフォルダに辿り、CSV/JSONを検査し、提供されたスクリプトまたはノートブックを再実行してください。docs/archive/methodology.md を参照。
リポジトリ構成
パス | 内容 |
|
|
| Pythonエージェントのベンチマーク、モニタリング、プロファイリング |
| Rustシングルおよびマルチエージェント実装(Tokio + 4つの代替ランタイム) |
| 正規のTRアーカイブ(TR108-TR137)+ 統合 -- 発見はここから |
| ガイド、APIリファレンス、テクニカルレポート索引 -- ハウツーはここから |
| 再現用スキャフォールド、ベースライン、生のベンチマークアーティファクト |
ドキュメント
docs/README.md-- ドキュメント索引とナビゲーションdocs/quick_start.md-- 初回ベンチマーク実行(Python + Rust)docs/API.md-- パッケージのPython APIリファレンスdocs/archive/technical_reports.md-- 全32件のテクニカルレポートの索引docs/archive/dual_ollama_setup.md-- マルチエージェント結果の再現に必要docs/archive/methodology.md/docs/archive/rust_vs_python.md-- 方法論と完全な言語比較
コントリビューション
コントリビューション歓迎 -- CONTRIBUTING.md を参照。適した分野:追加のベンチマーク構成、新しい最適化戦略、より多くのモデル/ハードウェア、ドキュメント、分析ツール。
ライセンス
MIT -- LICENSE を参照。
謝辞
Banterhearts LLMパフォーマンス研究プログラムの一環として実施:フェーズ1(TR108-TR122)は測定方法論と言語間比較を確立し、フェーズ2(TR123-TR133)はデプロイフレームワークとキャパシティプランナーを生み出し、フェーズ3(TR134-TR137)は推論最適化の安全性コストを測定しました -- 現在はプランナーのオプトイン安全性ゲートとなっています。
リポジトリ: https://github.com/Sahil170595/Chimeraforge - PyPI: https://pypi.org/project/chimeraforge/ - ステータス: ベータ版、活発に開発中
Available Tools
5 toolschimeraforge_compare_apiA
Compare self-hosting against the hosted APIs for a workload: sizes the cheapest feasible GPU fleet, prices the same traffic through each API model, and gives the monthly output-token volume where the two break even. Use for 'is it cheaper to self-host or use the API', 'when does a GPU pay for itself'. API prices come from a dated snapshot -- the result reports its age and flags it when stale; say so rather than quoting an old price as current.
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | ||
| hardware | Yes | ||
| duty_cycle | No | ||
| model_size | No | 8b | |
| request_rate | No | ||
| allow_network | No | ||
| prompt_tokens | No | ||
| context_length | No | ||
| latency_slo_ms | No | ||
| quality_target | No | ||
| reasoning_tokens | No | ||
| avg_output_tokens | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full behavioral burden and does it well. It discloses that API prices come from a dated snapshot, that the result reports its age and flags staleness, and instructs the agent not to present old prices as current. This is a meaningful, non-obvious behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each earning its place: the first explains what the tool computes, the second gives real user intents, and the third warns about stale pricing. The outcome is well structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete on purpose, behavior, and the staleness caveat, but it does not cover the 12-parameter input surface or any expected return format beyond the three high-level outputs. For a tool with no output schema and no annotations, that leaves a meaningful completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and there are 12 parameters, so the description needed to compensate. It only implies concepts like workload and traffic without explaining properties such as hardware, model, duty_cycle, latency_slo_ms, quality_target, or avg_output_tokens. An agent would struggle to set these correctly based solely on this description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action (compare), a specific subject (self-hosting vs. hosted APIs), and the three concrete outputs: cheapest feasible GPU fleet sizing, price comparison for identical traffic, and break-even token volume. This clearly differentiates it from siblings like 'plan' and 'suggest'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit, user-quoted use cases: 'is it cheaper to self-host or use the API' and 'when does a GPU pay for itself'. It does not explicitly name alternatives or say when to use a sibling tool instead, so it stops slightly short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chimeraforge_list_hardwareA
List known GPUs with VRAM/bandwidth/TDP/interconnect.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose any behavioral traits such as output format, size limits, or whether it reflects real-time data. The simple listing implies read-only behavior but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that directly states the core action and output characteristics. There is no wasted text, and it is immediately understandable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless listing tool with no output schema, the description is adequately complete. It identifies the resource (GPUs) and the key attributes (VRAM/bandwidth/TDP/interconnect). However, it could marginally benefit from a note on data recency or ordering, but this is not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline score is 4. The description correctly implies no input is needed. Since there are no parameters, no additional semantic information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List known GPUs' with specific attributes (VRAM/bandwidth/TDP/interconnect). This is a specific verb+resource and clearly distinguishes from siblings like chimeraforge_plan and chimeraforge_resolve_model.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention any context, prerequisites, or exclusions. The description is purely functional with no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chimeraforge_planA
Recommend the best (model x quantization x backend x GPU-count) deployment for a workload, or report why nothing fits. Returns candidates with per-number provenance (measured/extrapolated/estimated/unknown). Use for: 'what GPU do I need for ', 'will fit on ', 'how many GPUs for N req/s', 'what will it cost'. Set platform (linux/windows/wsl2/macos) to the deployment OS: engines are offered only where their own docs say they run.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | online | |
| cloud | No | ||
| model | No | ||
| hardware | Yes | ||
| kv_quant | No | fp16 | |
| platform | No | ||
| workload | No | steady | |
| lora_rank | No | ||
| duty_cycle | No | ||
| model_size | No | 3b | |
| grid_region | No | ||
| lora_target | No | qv | |
| tpot_slo_ms | No | ||
| ttft_slo_ms | No | ||
| quality_from | No | ||
| request_rate | No | ||
| think_time_s | No | ||
| allow_network | No | ||
| allow_offload | No | ||
| gpu_overrides | No | ||
| lora_adapters | No | ||
| prompt_tokens | No | ||
| safety_target | No | ||
| session_turns | No | ||
| context_length | No | ||
| latency_slo_ms | No | ||
| quality_target | No | ||
| model_revisions | No | ||
| tensor_parallel | No | ||
| budget_usd_month | No | ||
| reasoning_tokens | No | ||
| avg_output_tokens | No | ||
| pipeline_parallel | No | ||
| use_contributions | No | ||
| host_bandwidth_gbps | No | ||
| gpu_price_multiplier | No | ||
| prefix_cache_hit_rate | No | ||
| max_num_batched_tokens | No | ||
| unified_memory_fraction | No | ||
| carbon_intensity_g_per_kwh | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose two genuine behavioral traits: results come back labeled with per-number provenance (measured/extrapolated/estimated/unknown), which tells the agent how much to trust each figure, and engine availability is gated by the platform's own documentation. It stops short of stating the obvious-but-unconfirmed fact that this is a pure analysis call with no side effects, and says nothing about cost, latency, or what happens when nothing fits beyond a short reason.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core capability front-loaded, followed by return-shape and use-case routing, then a parameter caveat. No filler or repetition. The platform sentence is somewhat tacked on at the end and could be grouped with the framing, but nothing is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 40-parameter tool with no annotations and no output schema, the description should be doing far more work than it is. It usefully characterizes the return value via provenance labels even without an output schema, but it leaves the semantics of nearly every input undocumented, gives no prerequisite or scoping guidance, and never states the invocation cost of such a large search space.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are 40 parameters at 0% schema description coverage, and the description only gives meaning to one of them (platform). High-impact inputs such as gpu_overrides, allow_offload, use_contributions, quality_target, gpu_price_multiplier, prefix_cache_hit_rate, duty_cycle, safety_target, and the parallel/SLO knobs are left completely opaque, so an agent has little basis for filling them meaningfully rather than relying on defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific verb (recommend) and a well-defined resource (model x quantization x backend x GPU-count deployment), and even states the failure mode ('or report why nothing fits') plus the return shape (candidates with provenance). It is very clear what the tool does, but it never names or contrasts with the ambiguous sibling chimeraforge_suggest, leaving the agent to infer the boundary from context alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use for:' list gives four concrete query shapes ('what GPU do I need for <model>', 'will <model> fit on <gpu>', 'how many GPUs for N req/s', 'what will it cost'), which is strong intent-routing guidance. It also gives an actionable platform rule (set platform to the deployment OS; engines are offered only where their docs say they run). What is missing is any explicit when-not-to-use or named alternative, so the agent must guess whether a 'what GPU do I need' question belongs here or in chimeraforge_suggest.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chimeraforge_resolve_modelB
Resolve a model id to real params/architecture (grounds hallucinated specs).
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| hf_revision | No | ||
| allow_network | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It hints that results are grounded/real rather than generated, but omits critical behavior: that allow_network defaults to true (this call may hit the network), how hf_revision affects resolution, what happens on failure, and whether results are cached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core action and purpose come first. The parenthetical is slightly jargon-y but earns its place by conveying the anti-hallucination intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations and no output schema, the description should explain more about the return shape ('params/architecture' is only a gesture) and the network/revision behavior of the tool. Adequate as a minimum but leaves meaningful gaps for a 3-param resolution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 3 parameters, so the description must compensate. It only loosely implies what 'model' means (a model id) and says nothing about hf_revision or allow_network, leaving two of three parameters undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource: 'Resolve a model id to real params/architecture' clearly states the transformation performed. The parenthetical '(grounds hallucinated specs)' reinforces intent. It is distinguishable from siblings like list_hardware or compare_api, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical implies the use case (verify model specs rather than trust hallucinated ones), which is a soft usage signal. However, it gives no when-not guidance, no prerequisites, and never points to an alternative among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
chimeraforge_suggestA
Rank the models that actually fit and hit the SLO on a given GPU -- the inverse of planning. Use for 'what can I run on a 4090', 'best model for 12GB'. Sources: catalog (offline curated set), ollama (locally installed), hf (top Hub repos).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| source | No | catalog | |
| hardware | Yes | ||
| hf_limit | No | ||
| ollama_url | No | ||
| request_rate | No | ||
| context_length | No | ||
| latency_slo_ms | No | ||
| quality_target | No | ||
| budget_usd_month | No | ||
| avg_output_tokens | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the behavioral disclosure burden. It communicates core behavior: ranking models against a fit/SLO objective and drawing from three sources: catalog, ollama, and hf. However, it does not disclose external interactions (e.g., reaching out to Ollama or Hugging Face), side effects, failure modes, or whether the operation is read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences carry the core behavior, user-facing examples, and source list without redundancy. The most important action is front-loaded: 'Rank the models...' instead of burying the intent in filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers core purpose and high-level sources, which is enough to make a reasonable first call with the one required parameter. However, with 11 parameters, no output schema, no annotation safety clues, and 0% parameter documentation coverage, the description omits too much detail to fully steer an agent through meaningful variations of source, SLO, latency, and quality trade-offs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only adds meaning to the source concept ('catalog', 'ollama', 'hf') and general context around SLO. The other 10 parameters, including latency_slo_ms, request_rate, quality_target, hf_limit, and budget_usd_month, are left to the agent to infer from their names and defaults, which is risky for a tool with this much configuration surface.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and object: 'Rank the models that actually fit and hit the SLO on a given GPU.' It clearly identifies itself as the inverse of planning, which separates it from its most likely sibling confusion. The example use cases ('what can I run on a 4090', 'best model for 12GB') make the intent immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete usage framing with quoted examples and explicitly contrasts it with planning. It would be stronger if it also stated when not to use it or pointed to the sibling tools, but the 'inverse of planning' hint gives the agent enough context to route appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
v0.65.0- Changed
chimeraforge_plan1 field changed- added
Input schema / properties / model_revisionsAdded value: +{ + "anyOf": [ + { + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Model Revisions" +}
- Changed
chimeraforge_resolve_model1 field changed- added
Input schema / properties / hf_revisionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Hf Revision" +}
1 tool update
v0.50.0- Changed
chimeraforge_plan4 fields changed- added
Input schema / properties / cloudAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Cloud" +} - added
Input schema / properties / session_turnsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Session Turns" +} - added
Input schema / properties / think_time_sAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Think Time S" +} - added
Input schema / properties / use_contributionsAdded value: +{ + "default": false, + "title": "Use Contributions", + "type": "boolean" +}
1 tool update
v0.46.0- Changed
chimeraforge_plan6 fields changed- added
Input schema / properties / carbon_intensity_g_per_kwhAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Carbon Intensity G Per Kwh" +} - added
Input schema / properties / grid_regionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Grid Region" +} - added
Input schema / properties / latency_slo_ms / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / latency_slo_ms / defaultPrevious value: -5000New value: +null - removed
Input schema / properties / latency_slo_ms / typeRemoved value: -"number" - added
Input schema / properties / modeAdded value: +{ + "default": "online", + "title": "Mode", + "type": "string" +}
1 tool update
v0.43.0- Changed
chimeraforge_plan2 fields changed- added
Input schema / properties / platformAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Platform" +} - added
Input schema / properties / unified_memory_fractionAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Unified Memory Fraction" +}
1 tool update
v0.34.0- Changed
chimeraforge_plan3 fields changed- added
Input schema / properties / gpu_overridesAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Gpu Overrides" +} - added
Input schema / properties / max_num_batched_tokensAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Max Num Batched Tokens" +} - added
Input schema / properties / quality_fromAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Quality From" +}
3 tool updates
v0.30.0- Added
chimeraforge_compare_api - Changed
chimeraforge_plan10 fields changed- added
Input schema / properties / allow_offloadAdded value: +{ + "default": false, + "title": "Allow Offload", + "type": "boolean" +} - added
Input schema / properties / gpu_price_multiplierAdded value: +{ + "default": 1, + "title": "Gpu Price Multiplier", + "type": "number" +} - added
Input schema / properties / host_bandwidth_gbpsAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Host Bandwidth Gbps" +} - added
Input schema / properties / lora_adaptersAdded value: +{ + "default": 0, + "title": "Lora Adapters", + "type": "integer" +} - added
Input schema / properties / lora_rankAdded value: +{ + "default": 16, + "title": "Lora Rank", + "type": "integer" +} - added
Input schema / properties / lora_targetAdded value: +{ + "default": "qv", + "title": "Lora Target", + "type": "string" +} - added
Input schema / properties / safety_targetAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Safety Target" +} - added
Input schema / properties / tpot_slo_msAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Tpot Slo Ms" +} - added
Input schema / properties / ttft_slo_msAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Ttft Slo Ms" +} - added
Input schema / properties / workloadAdded value: +{ + "default": "steady", + "title": "Workload", + "type": "string" +}
- Added
chimeraforge_suggest
3 tool updates
- First observed
chimeraforge_list_hardware - First observed
chimeraforge_plan - First observed
chimeraforge_resolve_model
TDQS
Scored across 5 tools
Each tool targets a distinct task: model metadata lookup (resolve_model), GPU metadata lookup (list_hardware), forward planning (plan), API-vs-self-host cost analysis (compare_api), and inverse ranking (suggest). The only potential overlap is plan vs suggest, but the description explicitly frames suggest as 'the inverse of planning,' resolving ambiguity.
All names share the consistent chimeraforge_ prefix and mostly use a verb_noun pattern (resolve_model, list_hardware, compare_api). Two entries are bare verbs (plan, suggest), a minor deviation that stays readable and predictable.
Five tools is well-scoped for a GPU/model deployment advisor: model resolution, hardware lookup, forward planning, cost comparison, and inverse suggestion each cover a distinct need. No tool feels redundant or missing at the structural level.
The surface covers the core advisory lifecycle: resolving models, listing hardware, planning deployments, comparing self-host vs API cost, and reverse-fitting models to GPUs. Minor gaps exist (e.g., no general catalog browsing or pricing-refresh beyond the dated snapshot noted in compare_api), but agents can work around them.
Maintenance
Related MCP Connectors
LLM serving capacity planner: VRAM, KV cache, GPU topology, latency, and cost.
Does an LLM fit on your GPU? VRAM, KV cache and GPU count for any Hugging Face model.
Can this LLM run on my GPU? VRAM, speed ceiling and what fits instead, for any model and GPU.
Will this LLM fit on your GPU, multi-GPU rig or Mac? Exact VRAM & KV-cache math. Read-only.
Related MCP Servers
- AlicenseAqualityDmaintenanceEstimates GPU requirements, training/inference costs, and cloud-vs-on-prem TCO for AI workloads using deterministic calculators.121MIT
- AlicenseNot gradedqualityCmaintenanceToken cost math for LLM API calls: current per-million-token rates for 69 models across 17 providers, with local arithmetic for estimates, comparisons and monthly budgets. Rates are verified and date-stamped.44 npm2MIT
- AlicenseAqualityAmaintenanceEvidence-backed private AI deployment intelligence for GPU and LLM inference. Search benchmark evidence, check deployment fit, predict performance, get hardware recommendations, and generate launch configurations.5GPL 3.0
- AlicenseAqualityAmaintenanceReal-time cluster health monitoring, pre-request NLMS latency prediction, and intelligent prompt routing across multi-instance LLM backends (vLLM, Ollama, SGLang, TGI).43Apache 2.0