AI Impact MCP
The AI Impact MCP server (Mata) lets you estimate and track the environmental footprint of your AI usage, coach prompt efficiency, and generate reports/dashboards — all locally, without storing message content.
Estimate environmental impact: Calculate energy (kWh), CO₂e, water for cooling, and gas-car-equivalent miles for any model and token count using the EcoLogits methodology.
Log usage manually: Record token counts (input, output, cached) from any AI client into a local SQLite store.
Generate impact reports: Summarize usage and environmental footprint over today, week, month, or all time, broken down by model.
Score prompt efficiency: Evaluate how efficiently a conversation was set up (0–100 score, grade, and actionable improvement tips).
Analyze recent sessions: Automatically score recent Claude Code sessions for efficiency, detecting rework and wasted tokens, with per-session scores and top recurring tips.
Backfill usage from Claude Code logs: Scan
~/.claudesession transcripts to import exact token counts and metadata (never message content) — idempotent and safe to re-run.Record web/consumer chat usage: Log estimated usage from Claude desktop/web by providing conversation turns or raw text; tokens are estimated via a local BPE tokenizer.
Generate a visual dashboard: Build a standalone HTML file with charts of energy, carbon, and water usage over time and by model.
Serve a live dashboard: Start a local web server (port 8799) that auto-updates with the latest usage data.
Set confidence scenario: Switch between
conservative,midpoint, orhighestimation modes to reflect different assumptions.Access methodology: Review the detailed estimation methodology via
impact://methodology.
Estimates environmental footprint of AI usage from OpenAI models (e.g., Codex, GPT), with token-level impact analysis and efficiency scoring.
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., "@AI Impact MCPwhat's the environmental impact of my last conversation?"
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.
👁 Mata — see your AI footprint
An MCP server that estimates the environmental footprint of your AI use — energy (kWh), miles driven in a gas car, water used for cooling, and CO₂ — plus a prompt-efficiency coach. It works with any AI client (Claude, Codex, others) because it measures token usage, not a specific vendor.
Mata is Tagalog for eye — in the spirit of seeing what's there.
The impact math is a TypeScript port of the EcoLogits life-cycle methodology (CC BY-SA 4.0). See METHODOLOGY.md for sources and attribution.
What we're building (explained simply)
The problem: Every time you talk to an AI like Claude, a powerful computer in a big warehouse (a "data center") does the thinking. That computer burns electricity. Making electricity usually creates pollution (carbon), and the computer gets hot, so the data center uses water to cool it down. Most people have no idea how much — it's invisible.
Mata makes it visible. Like a fitness tracker for your AI use: it counts the AI's words and turns them into:
⚡ Energy used (in kWh, like your electric bill)
🚗 Miles driven in a gas car that would pollute the same amount
💧 Water used to cool the computers
🔤 Words in and out (tokens)
Bonus — a prompt coach. If you ask the AI to "make a thing" then correct it five times, that wasted energy. Mata scores how efficiently you set up your work (0–100) and gives tips to get more done in fewer prompts.
Why it's different: it doesn't care which AI you use — it watches the words, so it works across Claude, Codex, and more. Everything stays on your machine, and it stores word-counts, never your chats.
Related MCP server: Regen Compute
The tech stack (explained simply)
A kitchen that turns raw ingredients (AI word-counts) into a finished meal (the impact numbers):
Part | What it is | Kitchen analogy |
TypeScript | The language it's written in | The language the cooks speak |
MCP | The standard plug that lets AI apps use the tool | The outlet every appliance fits |
Impact engine (EcoLogits port) | The math: words → energy/carbon/water | The recipe, from expert scientists |
Data files | Facts about each model + each country's grid | The cookbook of ingredient facts |
SQLite (built into Node) | Local database of your usage | The fridge |
Collectors | Watch your AI tools and record usage | The eyes 👁 |
Node.js | Runs all of it | The stove |
Runs without AI (overhead ≈ 0)
A tool that measures AI's footprint shouldn't burn AI to do it. Mata's entire pipeline — capturing usage, doing the math, scoring efficiency, drawing the dashboard — is deterministic. Nothing in the data path calls an LLM.
Part | What it does | AI calls? |
Impact engine, reporting, store | Arithmetic + lookup tables | None |
Efficiency scorer | Regex + heuristics | None |
Log tailer / | JSONL parsing | None |
Proxy collector | Relays your traffic, reads usage off it | None of its own |
Web estimator |
| None |
Dashboard | Plain HTML + SVG | None |
Runtime dependencies are just @modelcontextprotocol/sdk, gpt-tokenizer, and
zod — none of which make AI or network calls.
Run it with zero AI in the loop. The three standalone binaries need no LLM host:
ai-impact-tail # watch Claude Code logs and record usage
ai-impact-proxy # capture exact usage from API clients
ai-impact-dashboard # render the HTML dashboardOne honest caveat: if you talk to Mata through an AI assistant ("show me my report"), that chat turn is the host's LLM call — Mata's own tools add nothing. Fittingly, Mata would measure that turn too. 🙂
Installation
Requires Node ≥ 22.5 (uses the built-in node:sqlite — no native build step).
git clone https://github.com/anchetadev/mata.git
cd mata
npm install
npm run build
npm test # 36 testsAdd to an MCP host
Claude Desktop (claude_desktop_config.json) or Claude Code (.mcp.json / claude mcp add):
{
"mcpServers": {
"mata": { "command": "node", "args": ["/absolute/path/to/mata/dist/server.js"] }
}
}The same dist/server.js works in any MCP-compatible host (Cursor, Cline, etc.).
Optional collectors (run alongside)
node dist/tail-server.js # watch Claude Code logs, record EXACT usage live
node dist/proxy-server.js # local proxy: capture EXACT usage from API clients
node dist/dashboard-server.js # write a static HTML dashboard file
node dist/serve-server.js # live dashboard at http://localhost:8799 (auto-updates)For the proxy, point a client at it:
ANTHROPIC_BASE_URL=http://localhost:8788 # Claude Code, Anthropic SDK
OPENAI_BASE_URL=http://localhost:8788/v1 # Codex, OpenAI SDKQuick start
Already installed and built? Two commands get you from zero to seeing your footprint:
node dist/tail-server.js # backfills your Claude Code history, then watches live
node dist/serve-server.js # opens a live dashboard at http://localhost:8799The first reads your existing ~/.claude logs (token counts only — never your
messages) and keeps recording new activity. The second opens your browser to an
always-current dashboard. That's ~90% of the value.
Prefer to drive it from your AI host? If you added Mata as an MCP server, just say:
"Scan my Claude Code logs" → backfill your history
"Serve my live dashboard" → get a live
localhostURL"Show my AI impact this week" → a text report
"How efficient were my last 5 sessions?" → prompt coaching
Want to capture non-Claude-Code tools too? Run the proxy and point a client at it:
node dist/proxy-server.js # then set ANTHROPIC_BASE_URL / OPENAI_BASE_URL=http://localhost:8788Stopping a server. tail, serve, and proxy run in the foreground —
press Ctrl+C in their terminal to stop them cleanly. If you started one in
the background, stop it by its port (8799 = dashboard, 8788 = proxy):
# Windows (PowerShell)
Get-Process -Id (Get-NetTCPConnection -LocalPort 8799).OwningProcess | Stop-Process
# macOS / Linux
kill $(lsof -ti:8799)If you installed globally (
npm linkornpm i -g), use the bare commands instead —ai-impact-tail,ai-impact-serve,ai-impact-proxy.
Usage
Once connected, ask your host things like "estimate the impact of a 2000-token reply from claude-opus-4-5" or "show my AI impact report for this week."
Tools
Tool | What it does | Try saying |
| Impact of one request from token counts | "Estimate impact of 8k in / 2k out on gpt-4o" |
| Manually record a usage event | "Log 500 output tokens from claude-haiku-4-5" |
| Totals for today/week/month/all, by model | "Show my AI impact this week" |
| Backfill exact usage from Claude Code logs | "Scan my Claude Code logs" |
| Coach your recent real sessions | "How efficient were my last 5 sessions?" |
| Score a conversation you pass in | "Score the efficiency of this chat" |
| Record estimated usage for claude.ai chat | "Record this web conversation's impact" |
| Build a standalone HTML dashboard file | "Generate my impact dashboard" |
| Start a live, always-current dashboard server | "Serve my live dashboard" |
| conservative / midpoint / high estimate | "Set the scenario to conservative" |
Resource: impact://methodology — how the numbers are derived.
CLI binaries
Command | Purpose |
| The MCP server (stdio) |
| Backfill + watch Claude Code logs |
| Local LLM proxy collector |
| Generate a static HTML dashboard file |
| Live, always-current dashboard web server (auto-opens browser) |
How invasive is it?
Short answer: as little as possible, and entirely on your machine. Mata
stores token counts and metadata — never the content of your messages — in a
local SQLite file at ~/.ai-impact/usage.db. No telemetry, no network calls
except the proxy forwarding to the provider you chose.
Each capture method is opt-in and differs in what it can see:
Method | What it reads | What it does NOT do | Fidelity |
Claude Code tailer ( |
| Store your prompts/replies; send anything anywhere | Exact |
Local proxy ( | Usage from API traffic you route through it | Intercept anything you don't point at it; alter responses | Exact |
Efficiency coach ( | Transcript text, on-demand, to detect rework/clarifications | Persist the text — it's read, scored, and discarded | Exact tokens |
Web estimator ( | Conversation text you/the host pass in | Auto-read your browser; access anything unprompted | Estimated (re-tokenized) |
What it cannot see: the Claude desktop/web apps talk to Anthropic directly, so Mata can't passively read them — the web estimator only sees what you choose to hand it. The proxy only sees clients you explicitly repoint.
Every record is tagged exact or estimated, and estimates use a public BPE
tokenizer as a stand-in (Claude's isn't public), so they carry ~±10% error.
Accuracy & honesty
These are order-of-magnitude estimates, good for "which of my habits cost the most" — not carbon accounting. Closed-model parameters are inferred; consumer surfaces are re-tokenized. The tool shows its assumptions in every result and ships full sources in METHODOLOGY.md.
License
Dual-licensed (see LICENSE and NOTICE):
Original code (server, collectors, scorer, dashboard) — MIT.
Impact engine + vendored data (ported from EcoLogits) — CC BY-SA 4.0 (attribution + share-alike).
Publishing guidance for your own fork: PUBLISHING.md.
Available Tools
9 toolsanalyze_efficiencyAnalyze prompt efficiency of recent sessionsA
Run the efficiency coach over your most recent Claude Code sessions (reads transcript text on-demand, never stores it). Returns per-session scores, an average, wasted-rework tokens, and your top recurring tips.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent sessions to analyze. | |
| dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that data is read on-demand and never stored, which is important for privacy. No annotations provided, so description carries full burden. Lacks details on authentication or rate limits but covers key behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states action and key behavioral note, second lists return values. No unnecessary words, front-loaded with important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Describes purpose, behavior, and return values adequately for a simple tool, but misses documenting the 'dir' parameter and does not clarify how sessions are selected or what 'recent' means relative to limit. With no output schema, return values are listed but not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (limit has description, dir lacks it). Description does not explain the 'dir' parameter, leaving ambiguity. It adds context for limit through 'recent sessions' but insufficient for overall parameter clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool runs an efficiency coach over recent Claude Code sessions, reads transcript text on-demand without storing, and returns specific metrics. Distinguishes from siblings by focusing on session analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for analyzing recent sessions with a limit parameter, but does not explicitly state when not to use or compare with siblings like efficiency_score or estimate_impact.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
efficiency_scorePrompt-efficiency scoreA
Score how efficiently a conversation was set up (fewest prompts/rework). Pass the conversation turns. Returns a 0–100 score, grade, and actionable tips.
| Name | Required | Description | Default |
|---|---|---|---|
| turns | Yes | Conversation turns in order. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output format (score, grade, actionable tips) but does not mention potential side effects, mutability, permissions, or error behavior. The transparency is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no redundant information. Every word contributes to explaining the tool's function, input, and output. It is appropriately sized and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema), the description covers the core behavior adequately: it returns a score, grade, and tips. However, it lacks context on how the grade is interpreted or any scenario guidance relative to siblings, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already defines the 'turns' parameter with properties. The description merely restates that the tool takes conversation turns, adding no new semantic detail beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'scores' the efficiency of conversation setup, specifying the input (conversation turns) and output (score, grade, tips). It is specific enough to differentiate from siblings like 'analyze_efficiency', though that sibling might have a similar purpose without further details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes the instruction 'Pass the conversation turns', which provides basic usage guidance. However, it does not elaborate on when to use this tool versus alternatives (e.g., when to use 'analyze_efficiency' instead) or mention any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_impactEstimate AI environmental impactA
Estimate the environmental impact (energy kWh, miles driven in a gas car, water for cooling, CO2e) for a single AI request given its token counts. Uses the EcoLogits life-cycle methodology.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | Model id, e.g. "claude-opus-4-5", "gpt-4o". | |
| input_tokens | No | ||
| output_tokens | Yes | Output/completion tokens — the main energy driver. | |
| scenario | No | Confidence scenario; defaults to the configured one. | |
| zone | No | Electricity zone override (ISO3 / WOR), e.g. FRA, USA. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It discloses the methodology (EcoLogits) but does not explicitly state read-only nature, side effects, or limitations. The word 'estimate' implies computation without mutation, which is helpful but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loading the output and input in the first sentence and methodology in the second. Every sentence is substantive with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description mentions the key output metrics (kWh, miles, water, CO2e), which is important context. However, it does not specify the return format, structure, or error handling. For a tool with 5 parameters, it is fairly complete but leaves minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so baseline is 3. The description adds minimal semantic value beyond the schema, only mentioning 'token counts' generally. It does not elaborate on model, scenario, or zone parameters, which are already described in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates environmental impact (energy kWh, miles, water, CO2e) for a single AI request given token counts. It specifies the methodology (EcoLogits). However, it does not explicitly differentiate from siblings like analyze_efficiency or efficiency_score, which may have overlapping purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for estimating impact of a single request based on token counts, but does not provide explicit guidance on when to use vs alternatives. There are no when-not or exclusion criteria mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_dashboardGenerate visual dashboardB
Build a standalone HTML dashboard (charts of energy/carbon/water over time and by model) from your recorded usage. Returns the file path to open in a browser.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Output .html path. Defaults to ~/.ai-impact/dashboard.html. | |
| scenario | No | ||
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It discloses that the tool generates an HTML dashboard and returns a file path, but does not mention any side effects, authentication requirements, or whether it modifies state. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with the core action and result. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no annotations, and no output schema, the description covers the main function and output but misses preconditions (e.g., having recorded usage) and parameter details. It is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only 'path' has description). The description does not explain the parameters beyond the implied output path. It does not clarify 'scenario' or 'days' meaning, leaving gaps for an agent to infer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: building a standalone HTML dashboard from recorded usage data, and returns a file path. The verb 'Build' and resource 'dashboard' are specific, and it distinguishes itself from siblings like 'analyze_efficiency' or 'estimate_impact'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when a visual dashboard is needed, but does not explicitly guide when to use this tool versus alternatives (e.g., for efficiency analysis vs. impact estimation). No when-not-to-use or alternative tools mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_usageRecord an AI usage eventB
Record one AI request's token usage into the local store so it shows up in reports. Use this to manually log usage from any client.
| Name | Required | Description | Default |
|---|---|---|---|
| model | Yes | ||
| input_tokens | No | ||
| output_tokens | No | ||
| cached_input_tokens | No | ||
| source | No | Where it came from: "claude-code", "codex", "web", "manual"... | manual |
| session_id | No | ||
| fidelity | No | exact |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only states the action and effect (record into local store), but does not disclose potential side effects like overwriting or idempotency beyond what is obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters, no output schema, and low schema coverage, the description is too minimal. It does not guide on parameter usage, constraints, or return values, leaving significant gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, and the description adds no parameter-specific meaning. For example, 'model' is required but unexplained; defaults like input_tokens=0 are unaddressed. The description fails to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'record' and resource 'token usage', with the purpose of making it show up in reports. It distinguishes from siblings by mentioning manual logging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this to manually log usage from any client', indicating when to use the tool. Does not provide exclusions or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
record_web_chatRecord consumer chat (estimated)A
Record ESTIMATED usage for a Claude desktop/web conversation that doesn't expose token counts. Preferred: pass structured turns (the host extracts them from the page). Fallback: pass raw page_text and it will be parsed best-effort. Tokens are estimated with a BPE proxy and tagged 'estimated'.
| Name | Required | Description | Default |
|---|---|---|---|
| turns | No | Conversation turns in order (reliable input). | |
| page_text | No | Raw flattened transcript text (fallback if turns unavailable). | |
| model | No | Model the chat used; defaults to a Sonnet-class model. | |
| conversation_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does well by disclosing token estimation via BPE proxy, the tagging as 'estimated', the two input modes, and the model default. It does not mention failure behavior or side effects, but for a logging tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, no wasted words. Every sentence adds value (purpose, preferred input, fallback, estimation detail).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (estimation, two input modes, optional params) and no output schema, the description covers the key aspects. Minor gap: behavior when both turns and page_text are provided is unspecified, and conversation_id is not explained. Otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75% (3 of 4 params described), and the description adds significant meaning by explaining the two input methods (preferred vs fallback) and estimation behavior. The conversation_id param lacks description in both schema and description, but overall value is above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it records estimated usage for Claude web chats, distinguishes between structured turns and fallback page_text input, and mentions token estimation. This is specific and distinct from sibling tools that analyze or score data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use (for conversations without token counts) and gives a preferred method with a fallback. However, no explicit when-not-to-use or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reportAI impact reportC
Summarize recorded AI usage and its environmental impact over a period (today, week, month, all), broken down by model.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | week | |
| scenario | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavioral traits. It mentions 'recorded AI usage' suggesting read-only, but does not state whether it modifies data, requires permissions, or has rate limits. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, efficient and front-loaded with the main action. No redundant information, but could benefit from clearer structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description does not specify return format or content beyond 'breakdown by model'. Given two parameters and no sibling differentiation, the description is insufficient for an agent to fully understand the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds no meaning beyond the schema for 'period' (already enumerated) and fails to explain the 'scenario' parameter (conservative, midpoint, high) which is critical for understanding impact calculations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool summarizes recorded AI usage and environmental impact broken down by model, which is a specific verb+resource. However, it does not differentiate from siblings like 'estimate_impact' which also deals with impact.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'estimate_impact' or 'scan_logs'. The description implies it's for summarizing recorded data, but lacks explicit context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_logsScan Claude Code logsA
Backfill exact AI usage from Claude Code's local session transcripts (~/.claude/projects). Reads only token counts + metadata, never message content. Idempotent — safe to run repeatedly.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Override the Claude Code projects directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: it reads token counts and metadata, never message content, is idempotent, and safe to run repeatedly. It could briefly mention permission requirements (e.g., read access to ~/.claude/projects), but overall good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: first sentence states purpose, second adds scope and constraints, third confirms idempotency. Information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a simple tool with 1 optional parameter and no output schema, the description covers purpose, input, behavioral constraints, and safety. Sibling tools are sufficiently distinct, so no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for a single optional parameter 'dir'. The description adds the default directory path (~/.claude/projects) and the meaning 'override the Claude Code projects directory', providing more context than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Backfill', the resource 'exact AI usage from Claude Code's local session transcripts', and scope 'reads only token counts + metadata, never message content'. It differentiates from siblings like analyze_efficiency by focusing on raw log scanning rather than analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (backfill exact AI usage) and emphasizes it is idempotent and safe to run repeatedly. It specifies what it reads (token counts + metadata) and crucially what it does not read (message content), but does not explicitly mention when not to use or alternatives among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_scenarioSet default scenarioA
Set the default confidence scenario for future estimates. conservative = lowest (min active params), midpoint = mean, high = max.
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the effect on future estimates and defines each option, but does not disclose scope (e.g., session persistence), side effects, or whether it overwrites previous settings. No annotations are present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff, critical details front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with one parameter and no output schema, the description is largely complete. It explains the effect and options, though it could mention the return value or confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning to the enum parameter by explicitly defining each value ('conservative = lowest...', etc.), compensating for zero schema description coverage. The definitions are clear and concise.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool sets the default confidence scenario for future estimates, with a clear verb ('Set') and resource ('default scenario'). It distinguishes itself from sibling tools, which focus on analysis, scoring, or logging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage before making estimates, but lacks explicit guidance on when to use or avoid this tool. No alternatives are mentioned, though no sibling directly conflicts.
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.
9 tool updates
v0.1.0- First observed
analyze_efficiency - First observed
efficiency_score - First observed
estimate_impact - First observed
generate_dashboard - First observed
log_usage - First observed
record_web_chat - First observed
report - First observed
scan_logs - First observed
set_scenario
TDQS
Most tools have clearly distinct purposes (e.g., estimate_impact vs. log_usage), but some overlap exists: efficiency_score and analyze_efficiency both address efficiency, and record_web_chat and log_usage both handle logging. Descriptions mitigate confusion.
Names consistently use lowercase with underscores (e.g., analyze_efficiency, set_scenario). Most follow a verb_noun pattern, but efficiency_score is noun_verb, and verbs vary (analyze, estimate, log, scan). Minor inconsistency.
9 tools is well-scoped for tracking AI usage, estimating environmental impact, and reporting. Each tool has a clear role, with no obvious bloat or deficiency.
Covers core logging (manual, web, session scans), estimation, efficiency analysis, reporting, and scenarios. Missing CRUD for logged records (e.g., delete or edit) and export, but primary workflows are present.
Maintenance
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
Exact Claude API cost calc with real cache economics, plus a tiktoken-misuse scanner.
Compare up-to-date pricing for 40+ LLMs (incl. Chinese) & estimate cost from tokens. EN/zh.
Carbon-accounted agent compute: free footprints; certificates backed by real offset retirement.
Sourced carbon emission factors + audit-traced calculations an AI can cite.
Related MCP Servers
- AlicenseAqualityDmaintenanceEstimates Claude API token counts, per-model cost, and prompt-caching break-even without an API key or network.5MIT

Regen Computeofficial
AlicenseNot gradedqualityBmaintenanceEnables AI coding assistants to estimate session energy footprint and retire verified ecocredits on Regen Network, providing on-chain proof of regenerative contribution.163Apache 2.0- AlicenseNot gradedqualityBmaintenanceEnables token counting, usage tracking, and cost calculation for LLM APIs, with a proxy server mode to automatically intercept and monitor API requests from clients like Cursor and Windsurf.1721MIT
- FlicenseNot gradedqualityDmaintenanceAnalyze AI conversations to estimate token costs, detect waste, and generate optimized prompts directly from your editor.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/anchetadev/mata'
If you have feedback or need assistance with the MCP directory API, please join our Discord server