quota-dashboard-mcp
by ryan-knowone
README.md
# quota-dashboard-mcp
A local-run, privacy-first MCP server that exposes real-time AI subscription quota for **Claude Code Max**, **Kimi**, and **Z.ai**. It uses stdio transport, so it works with Claude Code, Cursor, VS Code, and any other MCP stdio client.
Tokens stay on your machine: they are read from environment variables at call time, never persisted to disk, and never sent anywhere except the provider's own API.
> Looking for a GUI? See the sibling project [`quota-dashboard`](https://github.com/ryan-knowone/quota-dashboard).
## Tools
| Tool | Description |
|------|-------------|
| `get_quota_summary` | Unified quota summary across all configured providers. |
| `get_provider_quota` | Detailed quota for one provider (`claude`, `kimi`, or `zai`). Supports an optional `mock` flag for testing. |
| `check_quota_health` | Flags providers over a usage threshold (default 80%) or missing/invalid tokens. |
## Install
### Requirements
- Node.js ≥ 18
- A bearer token for each provider you want to query (see **Token setup** below)
### One-line install
The package is installable directly from GitHub today (no npm account required):
```bash
npx -y ryan-knowone/quota-dashboard-mcp
```
Once the package is published to npm, the canonical command will be:
```bash
npx -y quota-dashboard-mcp@latest
```
### Claude Code
Add the server to your Claude Code config (`~/.claude/CONFIG.json` or via `/mcp`):
```json
{
"mcpServers": {
"quota-dashboard": {
"command": "npx",
"args": ["-y", "ryan-knowone/quota-dashboard-mcp"],
"env": {
"CLAUDE_TOKEN": "your_claude_oauth_token",
"KIMI_TOKEN": "your_kimi_platform_api_key",
"ZAI_TOKEN": "your_zai_bearer_token"
}
}
}
}
```
### Cursor
Open **Cursor Settings → MCP → Add new MCP server**, then paste:
- **Name:** `quota-dashboard`
- **Type:** `command`
- **Command:**
```bash
env CLAUDE_TOKEN=your_claude_oauth_token KIMI_TOKEN=your_kimi_platform_api_key ZAI_TOKEN=your_zai_bearer_token npx -y ryan-knowone/quota-dashboard-mcp
```
### VS Code
Add to your VS Code `settings.json` (requires the [Claude AI extension](https://marketplace.visualstudio.com/items?itemName=anthropic.claude-ai) or any MCP-compatible extension):
```json
{
"mcp": {
"servers": {
"quota-dashboard": {
"command": "npx",
"args": ["-y", "ryan-knowone/quota-dashboard-mcp"],
"env": {
"CLAUDE_TOKEN": "your_claude_oauth_token",
"KIMI_TOKEN": "your_kimi_platform_api_key",
"ZAI_TOKEN": "your_zai_bearer_token"
}
}
}
}
}
```
## Token setup
### Claude Code Max
The quota endpoint requires an OAuth token from an authenticated Claude Code browser session. The easiest source is `~/.claude/credentials.json`.
The server currently reads `CLAUDE_TOKEN` from the environment. To extract it:
```bash
# macOS
jq -r '.accessToken' ~/Library/Application\ Support/Claude/credentials.json
# Linux
jq -r '.accessToken' ~/.claude/credentials.json
```
Then set `CLAUDE_TOKEN` to that value.
### Kimi
Use a platform API key from [platform.moonshot.cn](https://platform.moonshot.cn). Set it as `KIMI_TOKEN`.
In practice, the same `sk-kimi-...` key used by Claude Code's Anthropic-compatible proxy also works for the Kimi usage endpoint. If your proxy key returns `Invalid Authentication`, create a dedicated platform API key from `platform.moonshot.cn`.
### Z.ai
Use a Bearer token from your Z.ai account/dashboard. Set it as `ZAI_TOKEN`.
## Local development
```bash
git clone https://github.com/ryan-knowone/quota-dashboard-mcp.git
cd quota-dashboard-mcp
npm install
# Run directly with tsx
CLAUDE_TOKEN=... KIMI_TOKEN=... ZAI_TOKEN=... npm run dev
# Or build and run
npm run build
CLAUDE_TOKEN=... KIMI_TOKEN=... ZAI_TOKEN=... npm start
```
## Testing a tool call
With the server running over stdio, send a JSON-RPC `tools/call` request:
```json
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_provider_quota",
"arguments": { "provider": "kimi", "mock": true }
}
}
```
## Privacy
- Tokens are read from environment variables at call time.
- Tokens are **never written to disk** (other than the env vars you already manage).
- Tokens and usage data are **never sent to telemetry** or any third party except the provider's own API.
## Support
This is an independent open-source project. If it saves you from an unexpected quota outage, you can tip ETH/USDC on Base:
`0x1e2D7F8715E8180816c0236A5c4F21596C5b9c9e`
Issues and PRs are welcome — provider endpoints change often and community maintenance keeps the tool accurate.
## License
MIT
TDQS
A4/5.0
Scored across 3 tools
Disambiguation5/5
Each tool serves a distinct purpose: health check, per-provider details, and unified summary. No overlap in functionality.
Naming Consistency5/5
All tools follow snake_case and a consistent verb_noun pattern (check_quota_health, get_provider_quota, get_quota_summary).
Tool Count5/5
Three tools is appropriate for a quota dashboard, covering health check, per-provider detail, and summary without unnecessary bloat.
Completeness4/5
Provides essential read operations for quota monitoring. Minor gap: no tool to update thresholds or configure providers, but the domain appears read-only by design.
Maintenance
ActivityInactive
ResponsivenessNo issues