Wants last month’s emissions for a project without leaving Claude Code or Cursor.
What they get: One question runs get_emissions_summary and returns totals with their bounds.
Seven read-only tools hand the emissions, usage and receipts your dashboard already holds to Claude Desktop, Cursor, Claude Code, Windsurf or any MCP client. You ask in plain language and the answer comes back with the numbers behind it.
Sign in once
npx @crbonfree/mcp login7
read-only tools, none of them writes
4,500+
SDK and MCP downloads with no paid marketing
Crbon Labs, 2026
3
parameters on the reporting tools: dates and project
12
public API operations behind the tools
The CrbonFree MCP server, published as @crbonfree/mcp on npm, is a Model Context Protocol server with seven read-only tools. Running beside Claude Desktop, Cursor, Claude Code, Windsurf or any MCP client, it lets an agent answer questions about your AI emissions, usage, projects and credit retirement receipts from the same API the dashboard reads, using the key that login saved.
Last checked against the product on 5 September 2026. Carbon figures follow methodology v1.2.
Two reporting tools, get_emissions_summary and get_usage_breakdown, return totals and per-model detail for a date range. The other five list your projects, page through your credit retirement receipts, fetch one receipt by ID and report the retirement status of the current billing period. None of them writes, deletes or changes billing.
Both reporting tools accept start_date, end_date and project_id, so a question like "how much did the support bot emit last month" becomes a single call with three arguments. Leave the dates out and the summary covers the last 30 days.
The server speaks stdio JSON-RPC, the transport every MCP client supports, so Claude Desktop, Cursor, Claude Code and Windsurf each configure it with one mcpServers entry. It runs on your machine, starts when your client does, and calls the CrbonFree API over HTTPS with your saved key.
Ask for the current billing period and you get its lifecycle state, the CO2 retired, the amount charged and, once issued, the receipt with its verification and PDF links. Individual receipts come back by ID with their serial numbers, dates and amounts, ready to hand to whoever asked.
A question like “how much did the support bot emit last month” goes to your agent as it normally would.
It calls get_emissions_summary with a start date, an end date and the project ID, or list_projects first if it needs the ID.
Over HTTPS with the key that login saved, to the same endpoints the dashboard reads. Nothing is computed locally.
Totals, lower and upper bounds and per-model detail come back, and the agent phrases the answer.
Opens the browser, signs you in or creates an account, generates an API key and saves it to ~/.crbonfree/credentials with owner-only permissions. It needs Node 18 or newer, and the package is MIT licensed.
npx @crbonfree/mcp login
In Claude Code it is one command. Claude Desktop, Cursor, Windsurf and any other MCP client take the same server as an mcpServers entry that runs npx with the arguments -y and @crbonfree/mcp. No environment variable is needed; the server finds the key that login saved.
claude mcp add crbonfree -- npx -y @crbonfree/mcp
Ask "How much CO2 did the support bot produce last month?" and the agent calls get_emissions_summary with a start_date, an end_date and the project_id, then answers from the totals and per-model rollups that come back. If it does not know the project ID yet, list_projects gives it one.
get_emissions_summary start_date 2026-08-01 end_date 2026-08-31 project_id <your project id>
Every answer comes from the CrbonFree API that the dashboard reads, so a figure your agent quotes matches the one on the emissions page for the same range and project. The server does no arithmetic of its own; it hands the API response to your agent and lets the agent phrase the answer.
See the dashboard in the sample accountEverything it does is a read. The seven tools return usage, emissions, projects, receipts and retirement status that the backend has already computed, and none of them writes, deletes or changes a plan. It does not meter or ingest anything, so usage has to reach CrbonFree through a provider connection or the CLI before the server has anything to report. It needs the API key that login saves, or CRBONFREE_API_KEY in the environment, and it speaks stdio only, which means it runs beside a local client rather than as a hosted endpoint.
Wants last month’s emissions for a project without leaving Claude Code or Cursor.
What they get: One question runs get_emissions_summary and returns totals with their bounds.
Asks an assistant for the current billing period’s retirement status before a board update.
What they get: get_current_retirement_status returns the period state, the CO2 retired and the receipt once it is issued.
Needs a specific receipt, with serial numbers, to attach to an internal ticket.
What they get: list_carbon_receipts finds it and get_carbon_receipt returns the serial numbers, dates and amounts.
Three of them put usage in: the dashboard through provider connections, the CLI for coding agents and the browser extension for chat sessions. The other four read the numbers back into your own code. The MCP server is highlighted.
| Surface | Meters usage | Reads numbers back | Runs | Needs | Language |
|---|---|---|---|---|---|
| Dashboard | In the browser | An account; the sample account opens without one | None | ||
| CLI | status | On your machine | An account; device code for headless machines | Node 20 or newer | |
| Browser extension | estimates | In Chrome | Optional, per the store listing | None | |
| TypeScript SDK | Node 18 or newer | An API key | TypeScript or JavaScript | ||
| Python SDK | Python 3.8 or newer | An API key | Python | ||
| MCP serverthis page | Beside your MCP client | An API key from login | Any MCP client | ||
| REST API | Over HTTPS | An API key | Any |
Questions
Short answers. The package page and the API reference have the long ones.
View on npmThe server is free and MIT licensed. It reads whatever your plan holds; usage and carbon estimates are on the free plan, and receipts and audit packs come with the paid plans.
Not today. It speaks stdio only, so it runs beside a local MCP client rather than as a shared service. Each person signs in once with npx @crbonfree/mcp login.
Claude Desktop, Cursor, Claude Code and Windsurf are documented, and any client that can launch a stdio MCP server works the same way. The configuration is identical everywhere: run npx with the arguments -y and @crbonfree/mcp.
No. All seven tools are reads. There are no mutations, no deletions and no billing changes, so an agent holding this server can look at your numbers but cannot alter them.
Login saves the API key to ~/.crbonfree/credentials on your machine, readable only by your user, and the server reads that file on startup. If you would rather manage the key yourself, set CRBONFREE_API_KEY in the environment and it takes precedence. Run npx @crbonfree/mcp logout to remove the saved file.
However your team already runs AI, that is how you connect. Paste a read-only provider key, drop in an SDK, add the MCP server, install the CLI or switch on the browser extension, and the first measured tokens reach your dashboard within seconds.
Free plan · first tokens in seconds