llmkit について
llmkitは、AI利用料の帰属管理と予算制御を行うオープンソースのゲートウェイおよびSDK群です。Agentの支出を追跡する開発者向けに、アカウントやプロキシが不要なローカル計測と、11個のツールを備えたMCPサーバーを提供します。
主な機能
- 01ローカル利用量からコストを推定
- 02予算に基づく受付と実費精算
- 03Claude CodeとClineのセッション確認
- 04支出、予算、キーの照会
- 05指定モデルの参考価格比較
活用シーン
- 01ローカルAgentのモデル費用を集計
- 02予算超過となるリクエストを拒否
- 03MCPクライアントでコーディングセッションを確認
- 04選択したモデルの参考価格を比較
MCP 対応
11個のツールを備えたMCPサーバーで、Claude CodeのセッションとClineのタスクをローカルで確認できます。ゲートウェイ用ツールでは支出、予算、キー、セッション、サービス状態を照会でき、既存のLLMKit APIキーが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @f3d1/llmkit-mcp-serverLLMKIT_API_KEYシークレットLLMKit API key. Optional: local tools work without it.LLMKIT_PROXY_URLLLMKit proxy URL (defaults to hosted service)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| period | enum | いいえ | 期間today | week | month |
詳細
AI エージェントのコストを測定。予算を超える前にリクエストを停止します。
ウェブサイト | ドキュメント | 料金 API | アーキテクチャ | セキュリティ | 保証ケース
LLMKit は、コストの帰属、予算によるリクエスト受付、リクエストの証跡を実現する、オープンソースの AI ゲートウェイおよび SDK スイートです。ゲートウェイはプロバイダーにリクエストを送信する前に、推定支出額を確保します。有効な予算内に収まらないリクエストは拒否し、受け付けた予約額はレスポンス完了時に実際の使用量に基づいて精算します。
このリポジトリには、LLMKit のアカウントやプロキシを必要としないローカルのトラッキング機能も用意されています。
機能の選択
| 機能 | 用途 | パッケージ |
|---|---|---|
| Python トランスポート | 既存の SDK 呼び出しにローカルのコスト見積もりを追加したい場合 | llmkit-sdk |
| CLI ラッパー | OpenAI または Anthropic のクライアントが標準の base-URL 環境変数に対応している場合 | @f3d1/llmkit-cli |
| TypeScript SDK | 既存のキーを使い、TypeScript からセッション、ストリーミング、ゲートウェイにアクセスしたい場合 | @f3d1/llmkit-sdk |
| MCP サーバー | MCP クライアント内で支出、予算、ローカルのコーディングセッション用ツールを利用したい場合 | @f3d1/llmkit-mcp-server |
| AI SDK プロバイダー | Vercel AI SDK 6 を使用している場合 | @f3d1/llmkit-ai-sdk-provider |
| ゲートウェイとダッシュボード | 共有予算、プロバイダールーティング、レシート、分析機能が必要な場合 | packages/proxy、packages/dashboard |
クイックスタート
ローカルの Python トラッキング
pip install llmkit-sdk
from llmkit import tracked
from openai import OpenAI
costs = []
client = OpenAI(http_client=tracked(on_cost=costs.append))
client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Summarize this incident."}],
)
print(f"${sum(item.total_cost or 0 for item in costs):.6f}")
このトランスポートはプロバイダーの使用量メタデータを読み取り、同梱の料金カタログに基づいてコストを見積もります。トラッキングデータが LLMKit に送信されることはありません。
コード不要の CLI トラッキング
npx @f3d1/llmkit-cli -- python my_agent.py
リクエストごとの出力には -v を、機械可読な結果には --json を使用してください。
ゲートウェイモード(既存のキー)
ゲートウェイの例では、既存の LLMKit API キーが必要です。認証サービスの復旧中は、アカウントの作成とキーの管理を一時的に利用できません。キーをお持ちでない場合は、上記のローカルトラッキング機能を使用してください。
from openai import OpenAI
client = OpenAI(
base_url="https://api.llmkit.sh/v1",
api_key="llmk_your_key_here",
)
response = client.chat.completions.create(
model="gpt-4.1",
messages=[{"role": "user", "content": "Draft a release note."}],
)
予算の制御経路
制御経路は、次の 3 つの境界を中心に構成されています。
- アトミックな受け付け: Durable Object が予算スコープごとの予約状態を管理します。並行するリクエストが、同じ残高を重複して消費することはありません。
- ディスパッチを考慮した冪等性: ディスパッチ前に発生した確定的な失敗では、キーを解放します。プロバイダーへのディスパッチが発生した可能性がある場合は、重複した支出を避けるため、失敗を終端状態のままにします。
- 応答の上限: ストリーミング以外の本文と個々の SSE フレームに、明示的なバイト数の上限を設けています。上限を超えると、LLMKit はアップストリームからの読み取りをキャンセルします。
リクエストのレシートでは、安定した識別子を使用して、受け付けの判定、プロバイダーへの試行、精算、分析データの引き渡しを関連付けます。データベースへの書き込みにはアウトボックスを使用するため、分析機能が停止しても、予算の記録がひそかに失われることはありません。
MCP サーバー
{
"mcpServers": {
"llmkit": {
"command": "npx",
"args": ["-y", "@f3d1/llmkit-mcp-server"]
}
}
}
5 つのローカルツールは、LLMKit のキーなしで、サポート対象の Claude Code セッションと Cline のタスクデータを調べます。6 つのゲートウェイツールは、LLMKIT_API_KEY に既存のキーが設定されている場合に、支出、予算、キー、セッション、サービスの正常性を照会します。これらを合わせて 11 個のツールを提供します。
価格データ
固定されたカタログは同梱の参照用スナップショットであり、リアルタイムの見積もりではありません。1 つのソースファイル
packages/shared/pricing.json にスナップショットの日付を記録し、TypeScript、Python、MCP 用のテーブルを生成します。CI はソースファイルと生成ファイルの差異を検出すると失敗します。公開サイトには、データが入力されたプロバイダーテーブルだけを表示し、ソースの日付も表示します。
公開比較エンドポイントはアカウントなしで利用できます。
https://api.llmkit.sh/v1/pricing/compare?mode=text-token&models=anthropic%2Fclaude-sonnet-4-6%2Copenai%2Fgpt-4o&input=1000&output=1000&cacheRead=0&cacheWrite=0
このエンドポイントは、呼び出し元が指定した正確なモデルキーのみの価格を算出します。最安値のモデルを検索したり、おすすめしたりはしません。価格は推定値であり、プロバイダーの請求書ではありません。プロバイダーの請求ルール、モデルのモダリティ、カタログの鮮度は、引き続きエラー境界の一部です。
証拠と現時点での境界
| 主張 | このリポジトリにおける証拠 | 境界 |
|---|---|---|
| 並行する予算の受け付けは直列化される | Worker のフィクスチャで、競合する予約、再試行、精算、復旧を検証 | ローカルの Worker とデータベースによる決定論的な証明 |
| 再試行の動作によって重複したディスパッチを回避する | 冪等性テストで、ペイロードの不一致、ディスパッチ前の解放、ディスパッチ後の不確定状態を網羅 | CI ではプロバイダーの動作をシミュレーション |
| 大きなプロバイダー応答には上限が適用される | 成功、エラー、終端のない SSE のフィクスチャで、拒否とストリームのキャンセルを検証 | 上限はバッファーされた応答または SSE フレームごとに適用 |
| 価格データの成果物は再現可能である | 1 つのジェネレーターと CI の --check により、公開対象のすべての言語テーブルを検証 | カタログの値を更新するには、引き続きソースの更新が必要 |
| ホスト環境での復旧を安全に評価できる | ガード付きステージングデプロイと証明ランナーにより、分離された Worker、データベース、リビジョン、クリーンアップジャーナルを関連付け | ホスト環境での並行処理と障害復旧が完了したレシートは、ここでは主張していません |
分離されたホスト環境での証明の契約については、STAGING_PROOF.md を参照してください。これは本番環境のターゲットと、変更が残っているワークツリーを意図的に拒否します。
プロジェクトのポリシーと設計
| ドキュメント | 担当する内容 |
|---|---|
| ガバナンス | 意思決定権限、役割、紛争、および現在の継続性の課題 |
| ロードマップ | 2027年8月までに予定されている作業と対象外の作業 |
| アーキテクチャ | コンポーネント、リクエストのフロー、ID、ストレージ、デプロイ、障害の境界 |
| セキュリティ | セキュリティ要件、保証対象外の事項、報告、サポート対象バージョン |
| セキュリティ保証 | 脅威モデル、信頼境界、実行可能な証拠、残存リスク、ランタイムのHOLD |
| アクセシビリティ | 公開サイトの操作要素、検証方法、既知の課題、言語の対象範囲 |
| コントリビューション | セットアップ、品質ゲート、レビューに関する期待事項、DCOによる署名 |
開発
git clone https://github.com/smigolsmigol/llmkit
cd llmkit
corepack [email protected] install --frozen-lockfile
corepack [email protected] build
corepack [email protected] quality:pr
開発専用のバインディングを使用してWorkerをローカルで実行します。
corepack [email protected] --filter @f3d1/llmkit-proxy dev
汎用のデプロイコマンドは意図的に記載していません。ステージングと本番環境では、対象を明示的に確認するガード付きの別個のスクリプトを使用します。
セキュリティ
プロバイダーの認証情報は、ランダムなIVと所有者/プロバイダーに紐付けられた追加認証データを使用し、AES-256-GCMで暗号化されます。LLMKitのAPIキーは保存前にハッシュ化されます。CIには、シークレットスキャン、静的解析、依存関係のレビュー、CodeQL、パッケージの来歴チェックが含まれています。
セキュリティポリシーとアーキテクチャおよび機械可読な
Security Insightsスナップショットをお読みください。脆弱性は
GitHubの非公開脆弱性報告
または[email protected]宛てのメールでご報告ください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。