Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Claude Usage MCP Serverhow much of my usage limit have I used?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Claude Usage MCP Server
An MCP (Model Context Protocol) server that fetches your Claude usage data from the claude.ai dashboard, with automated daily tracking.
Features
Authenticate with Claude via browser login
Fetch session and weekly usage limits from the settings page
Persistent session with Cloudflare bypass
Automated daily usage tracking via launchd
Deduplication - one record per day, always up to date
Integrates directly with Claude Code
Installation
# Clone the repo
git clone https://github.com/mvacaporale/claude-usage-mcp.git
cd claude-usage-mcp
# Install dependencies
uv sync
# Install Playwright browsers
uv run playwright install chromiumConfiguration
Add to your Claude Code MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"claude-usage": {
"command": "uv",
"args": ["run", "--directory", "/path/to/claude-usage-mcp", "python", "server.py"]
}
}
}Usage
First Time Setup
In Claude Code, run the
claude_logintoolA browser window will open - complete Cloudflare verification and log in to Claude
After login, the session is saved automatically
Fetching Usage
There are multiple ways to fetch your usage:
1. Via MCP Tool (in Claude Code)
Simply ask Claude to check your usage, or use the get_claude_usage tool directly.
2. Via launchctl (manual trigger)
launchctl start com.claude.usage-fetcher3. Via script directly
cd /path/to/claude-usage-mcp
.venv/bin/python fetch_usage.pyAutomated Daily Tracking
A launchd job automatically fetches usage:
Daily at 11:00 PM
On login/wake (catches up if Mac was asleep)
Multiple runs in a day update the same record - you'll always have exactly one entry per day.
Setup Automation
# Copy the plist to LaunchAgents (if not already there)
cp com.claude.usage-fetcher.plist ~/Library/LaunchAgents/
# Load the job
launchctl load ~/Library/LaunchAgents/com.claude.usage-fetcher.plistManage Automation
# Check if job is loaded
launchctl list | grep claude
# Trigger manually
launchctl start com.claude.usage-fetcher
# Disable
launchctl unload ~/Library/LaunchAgents/com.claude.usage-fetcher.plist
# Re-enable
launchctl load ~/Library/LaunchAgents/com.claude.usage-fetcher.plist
# View logs
tail -f usage-fetcher.logTools
Tool | Description |
| Fetch usage data from the Claude dashboard |
| Open browser window for authentication |
| Check if current session is authenticated |
Data Format
Usage history is stored in usage-history.json:
[
{
"success": true,
"timestamp": "2026-01-25T23:00:00.000000",
"session_percent": 19,
"session_resets_in": "2 hr 15 min",
"weekly_all_models_percent": 10,
"weekly_resets": "Thu 10:00 AM",
"weekly_sonnet_percent": 0
}
]How It Works
Uses Playwright with a persistent Chrome profile
Bypasses Cloudflare by running in headed mode (positioned offscreen)
Stores browser data in
browser-data/directoryScrapes the usage page and returns structured data
Security
Browser data stored locally (never committed to git)
No credentials stored - uses browser session cookies
Login happens in your own browser window
All sensitive files are gitignored
Troubleshooting
Cloudflare blocking: Run claude_login to re-authenticate manually.
Browser data locked: If you see lock errors, restart Claude Code (/mcp to reconnect).
Stale session: Delete browser-data/ and browser-data-scheduled/ directories, then run claude_login again.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.