Skip to main content
Glama
ryan-knowone

quota-dashboard-mcp

by ryan-knowone

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.

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.

Related MCP server: claudeusage-mcp

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):

npx -y ryan-knowone/quota-dashboard-mcp

Once the package is published to npm, the canonical command will be:

npx -y quota-dashboard-mcp@latest

Claude Code

Add the server to your Claude Code config (~/.claude/CONFIG.json or via /mcp):

{
  "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:

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 or any MCP-compatible extension):

{
  "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:

# 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. 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

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:

{
  "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

Available Tools

3 tools
check_quota_healthA

Flags providers that are over a usage threshold (default 80%) or have missing/invalid tokens. Returns a health report with actionable warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
thresholdNoUsage percentage that triggers a warning. Defaults to 80.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It transparently describes that it flags providers based on threshold and token validity, and returns a health report. However, it does not confirm read-only behavior or potential side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences concisely convey the tool's purpose and output. The key action is front-loaded in the first sentence, making it efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description adequately explains inputs and outcomes. It covers what the tool checks and what it returns, leaving no obvious gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'threshold' is fully covered by the schema (100%). The description adds context by specifying default 80% and that it triggers warnings, adding value beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool flags providers exceeding a threshold or with token issues and returns a health report. It distinguishes from siblings by focusing on health checking rather than simple quota retrieval or summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for health checking but does not explicitly state when to use this tool versus alternatives like get_provider_quota or get_quota_summary. No when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_provider_quotaB

Returns detailed quota information for a single provider. Supported providers: claude, kimi, zai.

ParametersJSON Schema
NameRequiredDescriptionDefault
mockNoIf true, return deterministic mock data instead of calling the provider API.
tokenNoOptional bearer token override. If omitted, the provider's environment variable is used.
providerYesProvider key to query

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as side effects, authentication requirements, rate limits, or idempotency. It only states the function. The schema descriptions for parameters offer some context, but the tool description itself lacks transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that efficiently communicates the core purpose and supported providers. It is front-loaded and concise, though it could benefit from a bit more detail about the return structure without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should at least hint at the return format or structure, but it does not. The tool is simple with few parameters, and the schema provides good parameter detail. However, the lack of return information and behavioral context makes it only minimally complete for complex usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have schema descriptions covering 100% of their semantics. The tool description does not add any additional meaning beyond what is in the schema; the supported providers list is redundant. Baseline score of 3 is appropriate due to high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the tool returns detailed quota information for a single provider and lists supported providers, which clearly indicates the tool's purpose and scope. It distinguishes from sibling tools (get_quota_summary, check_quota_health) by focusing on per-provider detail, but the verb 'returns' is generic and could be more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for getting detailed quota of a single provider, but it does not explicitly mention when to use this tool versus alternatives like get_quota_summary or check_quota_health. No when-not-to-use guidance or explicit alternative references are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quota_summaryA

Returns a unified quota summary across all configured providers (Claude Code Max, Kimi, Z.ai). Providers without a configured token report a config error rather than failing the whole call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that providers without a configured token report a config error instead of failing the whole call, which is useful behavioral context. However, it does not describe the return structure or other edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence immediately states the purpose, and the second adds a key behavioral detail. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of parameters and output schema, the description adequately covers the tool's behavior. The error handling detail is valuable. It could elaborate on the return format, but overall it is sufficient for an agent to understand and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the description naturally cannot add parameter details. Per the rules, baseline 4 applies, and the description adds no unnecessary confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a unified quota summary across all configured providers, listing examples (Claude Code Max, Kimi, Z.ai). This differentiates it from siblings like get_provider_quota, which targets a single provider.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when an aggregated view across providers is needed, but does not explicitly state when not to use it or compare with alternatives like check_quota_health or get_provider_quota.

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. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.0
    • First observedcheck_quota_health
    • First observedget_provider_quota
    • First observedget_quota_summary

TDQS

A4/5.0
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

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Fetches and tracks Claude.ai usage data including session and weekly limits with automated daily logging and persistent session management. It allows users to monitor their usage history directly through Claude Code integrated tools.
    3
    -
  • A
    license
    A
    quality
    Not graded
    maintenance
    Provides real-time visibility into Claude Pro and Max subscription usage limits directly within Claude Code by utilizing local OAuth tokens. It enables users to monitor session and weekly usage across different models and receive alerts regarding rate-limiting status.
    4
    -
  • A
    license
    A
    quality
    C
    maintenance
    Real-time Claude.ai subscription awareness for AI coding assistants. Surfaces live utilization, forecasts limits, gates expensive operations, and measures real per-task cost.
    5
    6
    6
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryan-knowone/quota-dashboard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server