I Built an MCP Server So Claude Can Answer Questions About Its Own Usage
Imagine you have a super-smart robot friend named Claude! 🤖
Sometimes, you play with special building blocks called "Claude Code." Before, Claude didn't know how much you played. It was like he forgot everything after you stopped!
But now, someone made a magic helper for Claude! ✨ It's like a special diary that remembers exactly how much you played with your Claude Code blocks.
So now, you can ask Claude, "Hey Claude, how much did I play with my blocks today?" And Claude can look in his magic diary and tell you! He can even say, "Wow, you played a lot! Good job!" or "Uh oh, you haven't played in a while, let's play now!"
It helps Claude be an even better helper and friend! 😊
Here's something that didn't exist until recently: you can ask Claude how much Claude Code you've been using , and get a real answer backed by your actual data. You: "How much have I used Claude Code this month, and is my streak going to survive?" Claude: "You've logged 47.3h interactive + 83.1h AI sub-agent work in March, for 130.4h total. You're on a 36-day streak with 22 Ghost Days. Based on your last 14 days, your streak is likely to survive — you've been active 100% of days this month." That's cc-mcp . An MCP server that gives Claude real-time access to your Claude Code usage stats. The problem with analytics tools I've built 26 other Claude Code analytics tools. You run them, they print stats, you close the terminal. The knowledge doesn't go anywhere useful. What I wanted was for Cla
Here's something that didn't exist until recently: you can ask Claude how much Claude Code you've been using, and get a real answer backed by your actual data.
You: "How much have I used Claude Code this month, and is my streak going to survive?"
Claude: "You've logged 47.3h interactive + 83.1h AI sub-agent work in March, for 130.4h total. You're on a 36-day streak with 22 Ghost Days.
Based on your last 14 days, your streak is likely to survive — you've been active 100% of days this month."`
Enter fullscreen mode
Exit fullscreen mode
That's cc-mcp. An MCP server that gives Claude real-time access to your Claude Code usage stats.
The problem with analytics tools
I've built 26 other Claude Code analytics tools. You run them, they print stats, you close the terminal. The knowledge doesn't go anywhere useful.
What I wanted was for Claude to know this information during a session. If I'm planning work with Claude, it should be able to factor in that I've already spent 8 hours in Claude Code today, that AI has been running autonomously for 3 hours while I was offline, and that my streak needs protecting.
MCP makes this possible.
How it works
Add to claude_desktop_config.json:
{ "mcpServers": { "cc-toolkit": { "command": "npx", "args": ["@yurukusa/cc-mcp"] } } }{ "mcpServers": { "cc-toolkit": { "command": "npx", "args": ["@yurukusa/cc-mcp"] } } }Enter fullscreen mode
Exit fullscreen mode
Restart Claude Desktop. Now you have four new tools:
cc_usage_summary
Today / 7-day / month-to-date totals, current streak, and autonomy ratio.
"Show me my Claude Code stats" → Claude calls this, gets structured data, responds naturally.
cc_daily_breakdown
Day-by-day activity for the last N days, with you vs AI split.
"When were my Ghost Days last week?" → Claude scans the breakdown, finds days where AI ran while you didn't.
cc_project_stats
Per-project time breakdown (top 15 by hours).
"Which project am I spending the most Claude Code time on?" → Claude looks at your project distribution.
cc_forecast
Month-end projection at your current pace.
"Will I hit 700+ hours this month?" → Claude runs the projection and gives you the math.
Ghost Days
One concept that comes up frequently in the data: Ghost Days.
A Ghost Day is any day where AI sub-agents ran Claude Code autonomously — while you had zero interactive sessions. Your AI kept working while you were offline.
When you ask Claude "what were my Ghost Days this month?", cc-mcp surfaces these automatically. It's a useful signal for understanding how much your AI pipeline runs unsupervised.
What makes this different from just running cc-agent-load
When you run npx cc-agent-load, you get a terminal output you read once and forget. When Claude has this data via MCP, it becomes part of the conversation:
-
Claude can proactively mention that your streak is at risk
-
You can ask follow-up questions without re-running tools
-
The data can inform Claude's recommendations ("Given you've already used 8h of AI time today, maybe we should keep this session focused")
The data is the same. The difference is context persistence within the session.
Technical implementation
The server is a Node.js ES module using the @modelcontextprotocol/sdk. Each tool calls cc-agent-load --json as a subprocess, parses the output, and returns both plain text (for display) and structured JSON (for downstream processing).
Source: github.com/yurukusa/cc-mcp
No telemetry. No server. All computation happens locally — the MCP server runs on your machine, Claude calls it as a local process, data never leaves your environment.
Setup
# Install the data source npm install -g cc-agent-load# Install the data source npm install -g cc-agent-loadRun the MCP server directly (test it works)
npx @yurukusa/cc-mcp`
Enter fullscreen mode
Exit fullscreen mode
Then add to your Claude Desktop config and restart.
Works with Claude Desktop and any other MCP-compatible client.
Part of cc-toolkit
cc-mcp is part of the cc-toolkit collection — 27 free tools for understanding your Claude Code usage.
The full loop: Track → Understand → Predict → Act → Ask (cc-mcp closes the loop back into Claude).
Is your Claude Code setup actually safe? Run npx cc-health-check — a free 20-point diagnostic. Score below 80? The Claude Code Ops Kit fixes everything in one command.
GitHub: yurukusa/cc-mcp npm: @yurukusa/cc-mcp
DEV Community
https://dev.to/yurukusa/i-built-an-mcp-server-so-claude-can-answer-questions-about-its-own-usage-2792Sign in to highlight and annotate this article

Conversation starters
Daily AI Digest
Get the top 5 AI stories delivered to your inbox every morning.
More about
claudemodelforecast
Один промпт заменил мне 3 часа дебага в день
Вечерами, когда большинство уже отдыхает, я зависаю в своём офисе и ковыряюсь с кодом. Тот 14 августа, в 21:45, не был исключением. Я опять сидел над этой задачей, которая съедала по три часа каждый день. Почему это была боль Всё началось с простого: проект на Python, который выглядел как очередное рутинное задание. Однако вычисления упорно выдавали ошибочные результаты. Три дня подряд я безуспешно искал причину. Как обычно, приходилось проверять каждую строчку, каждую переменную. Это было настоящим адом. Для фрилансера с жесткими сроками это катастрофа - теряешь время, не зарабатываешь, а заказчик ждёт. Я собрал промпты по этой теме в PDF. Забери бесплатно: https://t.me/airozov_bot Как я нашёл решение Тогда я решил попробовать ChatGPT, хотя и не особо верил в его чудеса. Вбил проблему в п

135,000 OpenClaw Users Just Got a 50x Price Hike. Anthropic Says It's 'Unsustainable.'
Originally published at news.skila.ai A single OpenClaw session can burn through $1,000 to $5,000 in compute. Anthropic was eating that cost on a $200/month Max plan. As of April 4, 2026 at 12pm PT, that arrangement is dead. More than 135,000 OpenClaw instances were running when Anthropic flipped the switch. Claude Pro ($20/month) and Max ($200/month) subscribers can no longer route their flat-rate plans through OpenClaw or any third-party agentic tool. The affected users now face cost increases of up to 50 times what they were paying. This is the biggest pricing disruption in the AI developer tool space since OpenAI killed free API access in 2023. And the ripple effects reach far beyond Anthropic's customer base. What Actually Happened (and Why) Boris Cherny, Head of Claude Code at Anthro

Gemma 4 Complete Guide: Architecture, Models, and Deployment in 2026
Google DeepMind released Gemma 4 on April 3, 2026 under Apache 2.0 — a significant licensing shift from previous Gemma releases that makes it genuinely usable for commercial products without legal ambiguity. This guide covers the full model family, architecture decisions worth understanding, and practical deployment paths across cloud, local, and mobile. The Four Models and When to Use Each Gemma 4 ships in four sizes with meaningfully different architectures: Model Params Active Architecture VRAM (4-bit) Target E2B ~2.3B all Dense + PLE ~2GB Mobile / edge E4B ~4.5B all Dense + PLE ~3.6GB Laptop / tablet 26B A4B 25.2B 3.8B MoE ~16GB Consumer GPU 31B 30.7B all Dense ~18GB Workstation The E2B result is the most surprising: multiple community benchmarks confirm it outperforms Gemma 3 27B on s
Knowledge Map
Connected Articles — Knowledge Graph
This article is connected to other articles through shared AI topics and tags.
More in Models

Один промпт заменил мне 3 часа дебага в день
Вечерами, когда большинство уже отдыхает, я зависаю в своём офисе и ковыряюсь с кодом. Тот 14 августа, в 21:45, не был исключением. Я опять сидел над этой задачей, которая съедала по три часа каждый день. Почему это была боль Всё началось с простого: проект на Python, который выглядел как очередное рутинное задание. Однако вычисления упорно выдавали ошибочные результаты. Три дня подряд я безуспешно искал причину. Как обычно, приходилось проверять каждую строчку, каждую переменную. Это было настоящим адом. Для фрилансера с жесткими сроками это катастрофа - теряешь время, не зарабатываешь, а заказчик ждёт. Я собрал промпты по этой теме в PDF. Забери бесплатно: https://t.me/airozov_bot Как я нашёл решение Тогда я решил попробовать ChatGPT, хотя и не особо верил в его чудеса. Вбил проблему в п
ciflow/torchtitan/179381: Update on "[wip][dynamo] Reduce special casing for namedtuple objects"
UserDefinedTupleVariable previously lived in user_defined.py while NamedTupleVariable lived in lists.py and subclassed it across module boundaries. NamedTupleVariable also conflated two unrelated things: Python namedtuples (collections.namedtuple with _tuplegetter descriptors and Type( args) construction) and C-implemented structseqs (torch.return_types. with Type(iterable) construction and tp_new safety checks that reject tuple. new ). Split into three classes, all in user_defined.py: UserDefinedTupleVariable (base): plain tuple subclasses NamedTupleVariable: Python namedtuples, overrides resolve_data_descriptor for _tuplegetter, as_python_constant, as_proxy, reconstruct (uses _make) StructSequenceVariable: torch.return_types.* structseqs, overrides as_python_constant, as_proxy, reconstru



Discussion
Sign in to join the discussion
No comments yet — be the first to share your thoughts!