About cco-overhead
cco-overhead is a session overhead audit skill for projects using Claude Code. It measures initial context use and session prompt-cache cost, itemizes measurable sources, and audits MCP server usage to identify servers with no recorded calls.
Key features
- 01Measures initial context size
- 02Estimates per-session cache cost
- 03Itemizes context overhead sources
- 04Audits tracked MCP tool calls
- 05Reports removal commands for unused servers
Use cases
- 01Finding context overhead before work begins
- 02Reviewing prompt-cache costs across sessions
- 03Checking which MCP servers have recorded use
MCP support
The skill audits MCP server usage from tracked tool calls over 30 days and can report removal commands for servers that were never called. It uses server names supplied by the user and the project's .mcp.json.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ egorfedorov/ claude-context-optimizer --skill cco-overheadAfter installing, type/cco-overheadin Claude Code to confirm it loaded.
Details
From the project READMESession Baseline Overhead Audit
Measure how many tokens every session of this project pays BEFORE any work happens — and where to cut.
Run:
node ${CLAUDE_PLUGIN_ROOT}/src/overhead.js
The report shows:
- Baseline — exact context size at the first assistant response (from the session transcript's API usage counts), latest and averaged over recent sessions, as a % of the working budget.
- Cost per session — what that baseline costs to write into the prompt cache each session.
- Itemization — the locally measurable parts (project + global CLAUDE.md, memory index, agent definitions) and the unattributed remainder (system prompt, tool schemas, MCP servers).
- Recommendations — what to trim and how (e.g.
/cco-claudemd, disabling unused MCP servers, pruning agent descriptions).
Then run the MCP usage audit — it turns 30 days of tracked tool calls into per-server verdicts and the EXACT removal command for servers that were never called:
node ${CLAUDE_PLUGIN_ROOT}/src/overhead.js mcp --servers <name1>,<name2>
Pass the MCP server names from your own tool list (mcp__<server>__*, one entry
per server). The script never reads ~/.claude.json — it holds account data —
so it only knows the servers you pass plus the project's ./.mcp.json.
Only if the report actually prints claude mcp remove ... commands, OFFER to
run them for the user (each removal repays in every future session; claude mcp add restores any time). Only run them after the user agrees.
If a server is listed as ? not observed, the tracker has no MCP data yet —
that is not a verdict. Never suggest removing those servers, and never
construct a claude mcp remove command the report did not print.
Present the output to the user as-is (it is already formatted). If the report says no transcripts were found, explain that the audit needs at least one completed exchange in a session for this project.
Key framing for the user: baseline overhead is paid in EVERY session, so a one-time trim repays itself continuously — it is usually the highest-leverage optimization available.