cursor-usage-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CURSOR_USAGE_THRESHOLD_PCT | No | Threshold percentage for conserve mode activation (0-100). Overrides stored threshold if set. | 0 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_usageA | Call this at the START of a task. Reads the user's current Cursor usage/spend and returns conserve + followup flags. If conserve is true, ask any real questions through the questions/options UI (free) instead of open-ended prompts or silent defaults, and batch them into one prompt. If followup is true, end each task with a brief 'anything else?' options question. Auth is automatic (reads Cursor's local token); if needsLogin is true, ask the user to ensure Cursor is open/logged in on this machine, or to run the 'login' tool. Once the quota is exhausted the reading is cached until the cycle resets (pass refresh=true to force a fresh read). |
| loginA | FALLBACK auth only. By default get_usage needs no login — it reads Cursor's local token from state.vscdb. Use this tool only when that can't work: the MCP runs on a different machine than Cursor, the local DB is unreadable, node:sqlite is unavailable, or CURSOR_USAGE_FORCE_LOGIN is set. It opens a real browser, you log in, and it auto-discovers the usage endpoints and stores your session cookie locally (~/.cursor-usage). |
| usage_breakdownA | Shows this billing cycle's usage broken down by model: cost, request count, and token totals (input/output/cache). Use when the user asks what's costing them or which models they use most. Heavier than get_usage, so call it on request rather than every task. |
| logoutA | Clears the stored session cookie and discovered endpoints so get_usage reports needsLogin. Set forgetBrowser=true to also wipe the saved browser profile (forces a full re-login next time). Threshold config is preserved. |
| set_thresholdA | Set the minimum usage percentage (0-100) at which conserve mode activates. Default 0 means conserve whenever a reading succeeds and requests remain. Set e.g. 80 to only conserve near the limit. |
| set_verboseA | Persists verbose mode: when on, get_usage returns a footer the agent appends to every message (Cursor Usage: X/limit requests · $used/$limit). Overridden by the CURSOR_USAGE_VERBOSE env var if set. |
| set_followupA | Persists follow-up mode (default off): when on, get_usage tells the agent to end each task with a brief 'anything else?' question via the questions/options UI, so you almost always get a prompt you can respond to. Overridden by the CURSOR_USAGE_FOLLOWUP env var if set. |
| dismiss_updateA | Call this when the user declines an available update. Records the current remote version as skipped so get_usage won't surface it again — until an even newer version appears on GitHub. |
| check_updateA | Forces an immediate check against GitHub (bypasses the once/day throttle) and reports whether a newer version is available plus how to update. Normally the check runs automatically once a day. |
| statusA | Reports auth source, stored session/endpoints, thresholds, verbose/follow-up settings, and usage-cache age/cycle. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool has a clear, distinct purpose: usage reading, auth management, configuration, update handling, and status. Even get_usage and usage_breakdown are well differentiated by weight and intent, with descriptions explicitly stating when to use each.
Most tools follow a verb_noun pattern (get_usage, set_threshold, dismiss_update), but a few deviations exist: usage_breakdown has no verb, and login, logout, and status are single words. This is a minor inconsistency that does not impair readability or prediction.
10 tools is well-scoped for a Cursor usage management server. Each tool covers a distinct aspect of the domain without redundancy, and no tool feels superfluous.
The tool surface covers the full lifecycle: usage retrieval, detailed breakdown, auth options, configuration settings, update management, and an overall status overview. There are no obvious dead ends or missing operations for the stated purpose.