mcpField
M
Modelcostsaver

Modelcostsaver

ローカル
github.com/sachinuppalAI・エージェント018 週間前に更新

Modelcostsaver について

ModelCostSaverは、コーディングエージェントやIDE向けのMCPサーバーです。LLM呼び出し前に費用を見積もり、タスクに合う低価格モデルを選びます。内蔵の料金カタログを使ってオフラインで動作し、APIキーやネットワーク接続は不要です。

主な機能

  1. 01単一呼び出しの費用を推定
  2. 02費用を予測してモデルを順位付け
  3. 03タスク、機能、予算でモデルを絞り込み
  4. 04料金比較とカタログ参照
  5. 05選択理由とフォールバック候補を提示
  6. 06任意で利用状況をローカル記録

活用シーン

  1. 01LLM呼び出し前に費用を見積もる
  2. 02タスクに合う低価格モデルを選ぶ
  3. 03候補モデル間の呼び出し費用を比較
  4. 04モデル利用状況をローカルに記録

MCP 対応

stdio経由でツールを提供するMCPサーバーで、Cursor、Claude Code、VS CodeなどのMCPクライアントから接続できます。料金推定とモデル提案を行いますが、推論リクエストの転送は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"modelcostsaver": {
"command": "npx",
"args": [
"-y",
"@workswarm/modelcostsaver"
]
}
}
}
起動コマンドnpx -y @workswarm/modelcostsaver

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@workswarm/modelcostsaver0.1.1

ツール

7

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
modelstringはいモデルのエイリアスまたは完全な ID。例:"sonnet"、"claude-sonnet-4-6"。
inputTokensintegerいいえ正確な入力トークン数。inputText が指定されている場合は省略可能です。
outputTokensintegerいいえ正確な出力トークン数。デフォルトではモデルの出力上限が使用されます。
inputTextstringいいえプロンプトのテキスト。inputTokens が指定されていない場合、トークン数を推定します。
expectedOutputTextstringいいえ想定される出力テキスト。outputTokens が指定されていない場合、推定します。
charsPerTokennumberいいえ文字数/トークン数のヒューリスティック除数を上書きします。

詳細

ModelCostSaver

LLM 呼び出しのコストを事前に予測し、オフラインでエディターからタスクをこなせる最安モデルを選びます。

API キー不要 デフォルトでオフライン テレメトリーなし ライセンス 依存関係

ModelCostSaver は、Model Context Protocol サーバーです。あらゆる AI コーディングエージェントや IDE に、LLM を呼び出す前にエージェントが必ず確認すべき次の 3 つの質問に答える、無料で設定不要のツールを提供します。

  1. 各候補モデルで、このプロンプトのコストはいくらですか?(predict_cost、estimate_cost)
  2. タスクの要件を満たす最安モデルはどれですか?(select_optimal_model)
  3. 選択肢を横並びで比較するとどうなりますか?(compare_models)

日付付きのカタログを同梱した、料金計算とルーティングのみに特化した仕組みのため、コア機能にはAPI キーが不要で、ネットワーク呼び出しもありません。


クイックスタート

npx で直接実行します(インストール不要、キー不要)。

npx -y @workswarm/modelcostsaver

または、1 つのコマンドでエディター用の設定を書き込みます。

npx -y @workswarm/modelcostsaver install --client cursor

Cursor に追加 — クリックするだけで Cursor にインストールできます。または、以下のブロックを ~/.cursor/mcp.json に貼り付けるか、npx -y @workswarm/modelcostsaver install --client cursor を実行してください。

公式の MCP registry とエディターの MCP ディレクトリに io.github.sachinuppal/modelcostsaver として掲載されています。


7 つのツール

ツール回答する質問
estimate_costトークン数がすでに分かっている(または推定できる)場合の、1 回の呼び出しのコストです。
predict_cost呼び出し前に、プロンプトから候補モデル一式のコストを予測します。安い順に並べます。
select_optimal_modelタスクのティア、機能、予算を満たす最安モデルを、詳細な理由とともに選びます。
compare_models固定のトークン構成について、relativeToCheapest を含むコスト表を横並びで表示します。
list_models / get_pricingプロバイダー、ティア、機能、または最大入力価格で絞り込める料金カタログです。
optimize_request「モデル X を呼び出す予定ですが、もっと良い選択肢はありますか?」という質問に答え、より安い選択肢と節約額を返します。
record_usageローカルの使用記録を追加します(オプトイン方式。MODELCOSTSAVER_LEDGER=on でない限り無効です)。

コストを含むすべての結果には catalogVersion と asOf が付くため、料金情報がどれくらい新しいかを確認できます。すべての選択には reasoning 配列が含まれ、ブラックボックスの選択はありません。


信頼性:キー不要、オフライン、テレメトリーなし

エディターに組み込むツールでは、信頼性がすべてです。ModelCostSaver は次のとおりです。

  • API キーは不要です。 コア機能は料金計算を行うもので、プロバイダーへの呼び出しはしません。漏えいするものはありません。
  • デフォルトでオフラインです。 コアツールはネットワークに接続せずに正しい結果を返します。外部へのリクエストは、オプトインによるカタログ更新(MODELCOSTSAVER_REFRESH=on)だけです。静的 JSON を 1 回 GET し、同梱カタログを置き換える前に zod で検証します。失敗した場合は常に同梱カタログにフォールバックします。
  • テレメトリーは一切ありません。 デフォルトでは何も送信せず、ローカルで動作します。record_usage は MODELCOSTSAVER_LEDGER=on を設定した場合にのみ、ユーザー自身の設定ディレクトリ内の JSONL ファイルに書き込みます。
  • 依存関係は 2 つだけです。 @modelcontextprotocol/sdk と zod です。それ以外はありません。サプライチェーンのリスク範囲が小さく、npx のコールドスタートも高速です。
  • Apache-2.0 です。 Workswarm が @workswarm/modelcostsaver として公開する、オープンソースの開発者向けツールです。配布バンドルにプロプライエタリなコードや内部サービスのコードは含まれていません。内部フレームワークのインポートも内部識別子もなく、依存関係のない料金計算とルーティングのロジックだけが含まれています。

stdout には JSON-RPC のみが出力され、すべてのログは stderr に出力されます。


IDE ごとのインストール

ModelCostSaver は stdio MCP に対応しているため、どこでも同じ npx コマンドを使います。install --client <name> を使って設定を書き込むと、冪等に処理されます。ブロックを手動で貼り付けることもできます。

Cursor

~/.cursor/mcp.json(グローバル)または .cursor/mcp.json(プロジェクト):

{ "mcpServers": { "modelcostsaver": { "command": "npx", "args": ["-y", "@workswarm/modelcostsaver"] } } }
npx -y @workswarm/modelcostsaver install --client cursor
Claude Code
claude mcp add modelcostsaver -- npx -y @workswarm/modelcostsaver

または、リポジトリのルートにある .mcp.json(install --client claude が書き込みます):

{ "mcpServers": { "modelcostsaver": { "command": "npx", "args": ["-y", "@workswarm/modelcostsaver"], "env": { "MODELCOSTSAVER_PROVIDERS": "anthropic" } } } }

Claude クライアントは独自の推論に Claude を使うため、インストール時に MODELCOSTSAVER_PROVIDERS=anthropic が、target: self の推奨に適したデフォルトとして設定されます。呼び出しごとに、または環境変数で上書きできます。Self と code を参照してください。

Claude Desktop

同じ mcpServers ブロックを claude_desktop_config.json に追加します。

VS Code / GitHub Copilot

.vscode/mcp.json:

{ "servers": { "modelcostsaver": { "command": "npx", "args": ["-y", "@workswarm/modelcostsaver"], "type": "stdio" } } }
npx -y @workswarm/modelcostsaver install --client vscode
Windsurf

同じ mcpServers ブロックを含む ~/.codeium/windsurf/mcp_config.json を使うか、次を実行します。

npx -y @workswarm/modelcostsaver install --client windsurf
Cline / Zed / Antigravity

同じ stdio の command/args を使います。対応するインストーラーを使用してください。

npx -y @workswarm/modelcostsaver install --client cline
npx -y @workswarm/modelcostsaver install --client zed
npx -y @workswarm/modelcostsaver install --client antigravity

サーバーを追加したら、クライアントを再起動し、ツール一覧に 7 つのツールが表示されることを確認します。


2 つの軸:self と code

ModelCostSaver は助言を行いますが、トラフィックのルーティングは行いません。そのため、すべての推奨は、実際に実行可能な選択肢に絞り込まれます。これは互いに独立した 2 つの軸に基づいています。

軸 1、利用可能性。 推奨は、許可されたプロバイダーのセットに絞り込まれます。デフォルトは接続されたクライアントから導出されます(MCP ハンドシェイクから読み取ります)。Claude クライアントは、独自の推論に Claude を使うため、デフォルトで anthropic になります。マルチプロバイダー対応のクライアント(Cursor、VS Code、Windsurf、Cline、Zed、Antigravity)と不明なクライアントは、すべてのプロバイダーがデフォルトで対象になります。対象範囲とその情報源は常に reasoning に示され、上書きできます。優先順位は、呼び出しごとの providers 引数、MODELCOSTSAVER_PROVIDERS、設定、クライアントのデフォルト、すべてのプロバイダーの順です。

軸 2、ターゲット。

  • target: 'self'(デフォルト):このクライアント内でエージェントまたはユーザー自身が次に行う推論です。軸 1 の対象範囲が適用されます。Claude Code では、Anthropic のモデル間での切り替え(Opus から Haiku など)を意味し、すぐに実行できます。
  • target: 'code':ユーザー自身のアプリケーションから呼び出すモデルで、そのプロバイダーのキーはユーザーが用意します。クライアントの対象範囲は適用されないため、カタログに含まれるすべてのプロバイダーが対象になります。

ModelCostSaver は、実行可能な選択肢との隔たりを常に正直に示します。最も安価なモデルが実行可能な選択肢に含まれない場合は、理由とともに cheaperIfAvailable として提示し、黙って選択することはありません。たとえば、Claude Code で target: self を指定して要約を依頼すると、claude-haiku-4-5 が選択され、target: code を指定すれば、Anthropic 以外のより安価なモデルが存在することが示されます。


予測の仕組み

  1. トークン数。 指定された場合は正確な数を使用します。指定がない場合は、ヒューリスティックによる推定(~4 chars/token、MODELCOSTSAVER_CHARS_PER_TOKEN で調整可能)を使用します。この推定は概算ですが、候補間で共通して適用されるため、相対的な順位付けには適しています。出力トークン数は、明示的に指定した値、タスククラスの上限、モデルの上限、保守的なデフォルト値の順に適用されます。
  2. コスト。 (inTok / 1e6) * inputPerMillion + (outTok / 1e6) * outputPerMillion を、USD の完全精度値および整数の usdMicros として算出します。予測値がセント単位に丸められることはありません。
  3. 選定。 対象のティアを決定し(明示的な taskClass、または透明性のあるキーワード/長さ分類器を使用)、候補をティア(上位へは変更しますが、下限より下にはしません)、機能、プロバイダーの範囲で絞り込み、各候補のコストを予測します。予算を超える候補は rejected に振り分け、残った候補の中から最も安価なものを選びます。各ステップは reasoning に記録され、失敗時に再試行するための fallbackChain が返されます。

設定

すべての設定は任意です。優先順位は、ツール呼び出しの引数、環境変数、modelcostsaver.config.json(現在の作業ディレクトリ、次にユーザー設定ディレクトリ)、組み込みのデフォルト値の順です。

キー環境変数デフォルト用途
ティアの上書きMODELCOSTSAVER_TRIVIAL_MODEL、_FAST_MODEL、_STANDARD_MODEL、_REASONING_MODEL各ティアで最も安価なカタログ項目各ティアで優先するモデルを固定します。
プロバイダーMODELCOSTSAVER_PROVIDERSクライアントから取得推奨対象の許可リスト(軸 1)です。
デフォルトのプロバイダーMODELCOSTSAVER_PROVIDERなしselect_optimal_model の選定に優先傾向を加えます。
ローカルモデルを含めるMODELCOSTSAVER_INCLUDE_LOCALoffセルフホスト可能なモデルや $0 のモデルを候補に含めます。
文字数/トークンMODELCOSTSAVER_CHARS_PER_TOKEN4トークン推定器を調整します。
更新MODELCOSTSAVER_REFRESHoffオプトイン方式のリモートカタログ更新を有効にします。
カタログ URLMODELCOSTSAVER_CATALOG_URL同梱版更新元を上書きします。
台帳MODELCOSTSAVER_LEDGERoffローカルの record_usage 書き込みを有効にします。
テレメトリーMODELCOSTSAVER_TELEMETRYoff無効のままです。透明性のために記載しています。

価格データ

価格は頻繁に変わるため、ModelCostSaver はバージョンと日付を付けた初期データを同梱し、その鮮度を明示しています。

  • 同梱されている catalog.json には、catalogVersion、asOf 日付、各エントリの source が含まれています。
  • デフォルトではオフラインで動作し、同梱カタログのみを読み込みます。
  • MODELCOSTSAVER_REFRESH=on にすると、単一の静的 JSON を取得して zod で検証し、TTL を設定してキャッシュします。失敗した場合は、同梱版にフォールバックします。
  • modelcostsaver.config.json の pricingOverrides マップを使うと、フォークせずに、個別交渉した料金やエンタープライズ向け料金を指定できます。

請求に使う数値を信頼する前に、必ず確認してください。 初期データはリリース時に各プロバイダーの公開価格ページと照合されます。いつ確認されたかは asOf 日付でわかります。自社の会計で絶対的な精度が必要な場合は、プロバイダーの請求書を確認してください。


開発

npm install        # first time only
npm run build      # tsup bundle to dist/index.js
npm test           # vitest
npm run typecheck  # tsc --noEmit
npm run smoke      # stdio JSON-RPC smoke test (asserts stdout stays clean)

ライセンス

Apache-2.0。NOTICE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。