GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
Local-first, multi-provider tool that captures LLM API spend and exposes it to coding agents via MCP
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"llm-usage": {
"command": "uvx",
"args": [
"llm-usage-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add llm-usage -- uvx llm-usage-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"llm-usage": {
"command": "uvx",
"args": [
"llm-usage-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"llm-usage": {
"type": "stdio",
"command": "uvx",
"args": [
"llm-usage-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月10日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント zhaoyue722 で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.3)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
llm-usage-mcp
LLM Usage & Cost Tracker — your local-first spend watchdog
English | 中文
Stop treating your LLM API bills like a scary horror movie you only look at through your fingers at the end of the month. Know what your LLM calls actually cost — across every provider, in one place, on your own machine. Ask your coding agent (MCP) or type a command (CLI).
It's a cost meter, not a router: it tells you what you spent and which provider fits a workload — it never changes your calls. Pairs happily alongside a router or a model-leaderboard tool.
Or straight from the terminal — your week's spend, broken down by provider, and a cross-provider cost comparison before you commit to a model:
You're calling LLMs from a handful of providers — Claude, GPT, plus Chinese models like Qwen and DeepSeek. Each one bills in its own dashboard, in its own currency, with its own rules for what a "cached token" costs. So the simplest possible question — *how much am I spending, and on what?* — turns into four browser logins, looking up exchange rates for RMB to USD, and trying to decipher what a "cached context token discount" actually means in midnight math. Most people just cross their fingers and let the bill be a surprise at the end of the month.
llm-usage-mcp captures every call you make into one local store, costs it correctly per provider at the moment it happens, and hands the answer back two ways:
llm-usage spend, llm-usage compare, llm-usage recommend — for when you'd rather not round-trip through an agent.And it stays out of your way:
~/.llm-usage/usage.db. Privacy is a feature, not a setting.Two minutes from git clone to your first captured call. This part is about capture — getting calls recorded. Reading the data back comes next.
Install from PyPI with uv (or pipx) — this puts the three console scripts on your PATH:
uv tool install llm-usage-mcp # or: pipx install llm-usage-mcp
Prefer to hack on it? Clone and sync from source instead:
git clone https://github.com/zhaoyue722/llm-usage-mcp.git
cd llm-usage-mcp uv sync
Either way you get three console scripts:
llm-usage — the multi-command CLI. See From the command line (CLI) below.llm-usage-mcp — the stdio MCP server.llm-usage-proxy — a back-compat alias; identical to llm-usage proxy.The Quickstart below uses
uv run …(the from-source workflow). If you installed from PyPI, the scripts are already on yourPATH— drop theuv runprefix, and register the MCP server withclaude mcp add llm-usage -- llm-usage-mcp.
You only need a key for the provider(s) you actually use; the proxy starts regardless and per-route requests return 503 configuration_error for any provider whose key is missing.
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-... export DEEPSEEK_API_KEY=sk-... export DASHSCOPE_API_KEY=sk-... # Qwen
Full env-var reference: docs/configuration.md (or copy .env.example to .env and fill in).
uv run llm-usage-proxy
It binds loopback-only (127.0.0.1:5525) — never reachable from the network. The proxy holds your API keys server-side; clients never need them.
The proxy exposes one route per provider. Set the matching *_BASE_URL env var on the client side:
| Provider | Client env var | Value |
|---|---|---|
| Anthropic | ANTHROPIC_BASE_URL | http://127.0.0.1:5525 |
| OpenAI | OPENAI_BASE_URL | http://127.0.0.1:5525/openai/v1 |
| DeepSeek | DEEPSEEK_BASE_URL (or any OpenAI-SDK base-url override) | http://127.0.0.1:5525/deepseek/v1 |
| Qwen | DashScope OpenAI-compatible base | http://127.0.0.1:5525/qwen/v1 |
Example — launch Claude Code with calls routed through the proxy:
ANTHROPIC_BASE_URL=http://127.0.0.1:5525 claude
Make a call through your agent (or any client pointed at the proxy), then check it landed:
uv run llm-usage spend
Every call lands in ~/.llm-usage/usage.db with tokens, cost, latency, and a request_id for idempotency — and shows up in that headline. That's the whole loop: capture on one side, answers on the other.
Once calls are being captured, you read them back two ways. Same data, same numbers — pick whichever fits the moment.
Register the MCP server with Claude Code:
claude mcp add llm-usage -- uv --directory $(pwd) run llm-usage-mcp
Then just ask, in plain English, inside that session:
How much did I spend on Anthropic today? Which provider is cheapest for a 10k-input / 2k-output call?
Claude picks the right tool and reads the numbers back. Seven tools are exposed over stdio; full param/return shapes are in docs/spec.md.
| Tool | Purpose |
|---|---|
query_spend | Totals + per-group rollups over a time window (group by provider / model / project / tag / day). |
usage_summary | Headline summary for today / week / month / year — totals, top-N providers + models, largest call. |
compare_providers | Given a hypothetical workload (tokens in / out), rank every priced model by cost. |
recommend_provider | Pick the cheapest priced model that fits a stated budget. |
get_pricing | Inspect the vendored pricing snapshot. |
list_providers | List providers + their models + OpenAI-compatibility flag. |
record_usage | Manual write path — log a call when the capture proxy isn't in the picture. |
query_spend and usage_summary default to include_failed=false so partial-stream rows don't pollute totals; opt-in via the param.
The same questions, as a CLI — eight subcommands under one llm-usage console, for when typing is faster than asking your agent.
The examples below assume
llm-usageis on yourPATH— eithersource .venv/bin/activateoruv tool install .. Otherwise, prefix each command withuv run(e.g.uv run llm-usage spend).
$ llm-usage
Local-first LLM spend capture + query, exposed over MCP.
Commands proxy Run the local LLM capture proxy on 127.0.0.1. compare Project the cost of a hypothetical workload across every priced model. models Browse the local pricing catalog. recommend Recommend the cheapest priced model for a workload + budget. spend Show recorded spend over a calendar period. status Snapshot of the local install: DB, proxy, providers, pricing. providers List configured providers with key state, wire-format, model count. about Show version, author, license, and the project homepage.
| Command | The question it answers |
|---|---|
compare | Given a workload, who's cheapest? |
models | What do they actually charge per million tokens? |
recommend | I've got $0.04 left — which model won't bankrupt me? |
spend | How much did I just spend? |
status | Is everything actually working? |
providers | What's configured locally? |
about | What is this, and where do I report a bug? |
proxy | Run the capture proxy (same as llm-usage-proxy). |
Conventions that hold across every command:
--json emits the same Pydantic shape the matching MCP tool returns. Pipe straight into jq.--color {auto,always,never} honors NO_COLOR and TTY detection. The palette is a warm, low-contrast dark theme — easy on the eyes at 11pm.--provider, --model) are case-insensitive on providers, case-sensitive on models, and repeatable where they act as whitelists.--version / -V prints the version and exits. --install-completion {bash|zsh|fish|powershell} installs a tab-completion script — one shell restart later, every flag is -able.compareRank every priced model by projected cost for an n-input / m-output call. Cheapest first, percent against the cheapest. Default view family-deduplicates rows that share both a model family root *and* an identical price — so gpt-5-mini and gpt-5-mini-2025-08-07 collapse to one row with ×2. Pass --all to see every catalog row.
# How does an 8k-in / 2k-out call price out today?
$ llm-usage compare --in 8000 --out 2000
$ llm-usage compare --in 8000 --out 2000 --model gpt-5-mini --model gpt-5-nano
$ llm-usage compare --in 8000 --out 2000 --json | jq '.ranked[0]'
modelsCatalog browser. Sibling of compare, but answers "what does this model charge?" rather than "what would my workload cost?". Rates per million tokens, sorted alphabetically by provider by default; switch with --sort input or --sort output to find the cheapest in either axis. Cache rates are hidden until you ask (--cache) because most models don't have them and empty columns waste width.
# Full catalog, deduped.
$ llm-usage models
$ llm-usage models --provider openai --match nano --cache
$ llm-usage models --sort input
recommendPicks one. Filters by --provider, --model, and --budget, then returns the cheapest match plus two runner-ups. The reasoning string explains what it
冒頭だけを表示しています。続きはリポジトリで読めます