carbon-fyi

Voluntary carbon market news and open carbon price data. Read-only, keyless.

Should I use this

Quality & Safety

A
Description quality
97%
Schema completeness
63%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~940Tokens (tool definitions)
~862 BTypical response size
Moderate attention impact (0.73% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "carbon-fyi": {
      "url": "https://www.carbon.fyi/api/mcp"
    }
  }
}

Remote endpoints

https://www.carbon.fyi/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_news(query, tag, since, limit)

Search carbon.fyi's curated voluntary carbon market story archive. Each story is an editorially clustered summary of one development, written from one or more original reports, and always carries the original source name and URL. Supply at least one filter; results are newest-first. Use `get_market_summary` first if you do not know what tags or date range to ask for.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "description": "case-insensitive text match against headline and summary, e.g. 'Verra' or 'biochar'",
      "type": "string",
      "minLength": 2,
      "maxLength": 120
    },
    "tag": {
      "description": "restrict to one story category",
      "type": "string",
      "enum": [
        "registry-action",
        "methodology",
        "corporate-deal",
        "integrity",
        "article-6",
        "market-data",
        "policy-regulatory",
        "other-vcm"
      ]
    },
    "since": {
      "description": "only stories first published on or after this UTC day",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "limit": {
      "description": "max stories to return (default 20, ceiling 50)",
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_story(id)

Fetch a single story by its id, including every source that reported it. Story ids are permanent — a published story keeps its id and its public URL indefinitely — so they are safe to store.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "the story's `id`, as returned by search_news"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_carbon_prices

Current voluntary carbon credit prices from two independent sources: per-category minimum/median price and available supply across the Carbonmark marketplace catalog, and spot prices per Klima Protocol carbon class. The two are NOT comparable — read the `caveats` field on each before using either number.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_price_history(kind, key, days)

Daily-averaged historical price series. This archive exists only because carbon.fyi records it three times a day: no upstream API serves a historical carbon price series, so these observations cannot be obtained anywhere else and cannot be re-derived. Check `seriesStartsAt` in the response — the archive began on 2026-08-27, so early windows are necessarily short.

Input Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "carbonmark-category",
        "klima-class"
      ],
      "description": "which price source: marketplace category medians, or Klima carbon-class spot prices"
    },
    "key": {
      "description": "restrict to one category or class name (exact match, as returned by get_carbon_prices); omit for all",
      "type": "string",
      "maxLength": 120
    },
    "days": {
      "description": "look-back window in days (default 90)",
      "type": "integer",
      "minimum": 1,
      "maximum": 730
    }
  },
  "required": [
    "kind"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_market_summary

One call for orientation: how much of the archive is available, when it last updated, the story-tag breakdown (use these as `tag` values for search_news), and the current price table. Start here.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢list_sources

The publications, registries and integrity bodies carbon.fyi monitors. Useful for judging coverage — a topic absent from the archive may simply not be covered by these sources.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools