Sourced greenhouse-gas emission factors and audit-traced carbon calculations (activity, embodied EN 15978, PCAF financed emissions) β every value returns with its exact source cell and data version, so answers are citable and reproducible. 13,000+ factors, 11 tools. Install: npx -y greencalculus-mcp, or connect remotely at https://mcp.greencalculus.com. Free tier, no card.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Greencalculus MCP.
lookup_factorFetch one emission factor by key, with its source and version
lookup_factorsFetch many factors by key in one call β a portfolio is one request, not one per factor
search_factorsSearch the corpus by free text
resolve_factorMap a messy real-world description to the best-matching factor
explain_absenceSay *why* a factor does not exist, rather than returning nothing
calculate_activityActivity β emissions, with unit conversion and GHG Protocol scope
Sourced greenhouse-gas emission factors and audit-traced carbon calculations, as an MCP server. Every value comes back with its exact source cell and a pinned data version β so an agent hands back a number a person can cite and a machine can reproduce, instead of a guess.
Probably not. The server is remote, and if your client speaks remote MCP you should point it straight at the URL β nothing to install, nothing to update:
This package exists for the clients that can only spawn a local stdio process, and for docker run installs. It is a thin bridge: it forwards each JSON-RPC message to the remote server and returns the reply verbatim. No method is special-cased, so new tools appear here without a release.
Or with Docker β -i is required and -t must be omitted, because the container's stdin/stdout are the transport and a TTY corrupts the stream:
Get a free key at https://greencalculus.com/developers β no card. Discovery (initialize, tools/list) works without one, and so do search_factors and explain_absence; every other tool needs a key.
| Tool | What it does |
|---|---|
lookup_factor | Fetch one emission factor by key, with its source and version |
lookup_factors | Fetch many factors by key in one call β a portfolio is one request, not one per factor |
search_factors | Search the corpus by free text |
resolve_factor | Map a messy real-world description to the best-matching factor |
explain_absence | Say why a factor does not exist, rather than returning nothing |
calculate_activity | Activity β emissions, with unit conversion and GHG Protocol scope |
calculate_electricity | Location-based and market-based electricity |
calculate_embodied | Embodied carbon (EN 15978), explicit about missing lifecycle stages |
calculate_pcaf | PCAF financed emissions, with the audit trail |
calculate_freight | Freight by mode, distance and load |
calculate_spend | Spend-based EEIO |
calculate_business_travel | Business travel across modes |
| Variable | Default | Meaning |
|---|---|---|
GREENCALCULUS_API_KEY | β | Your API key. GC_API_KEY is accepted as an alias; the explicit name wins. |
GREENCALCULUS_MCP_URL | https://mcp.greencalculus.com | Override the endpoint. |
GREENCALCULUS_MCP_TIMEOUT_MS | 120000 | Per-request timeout. |
Diagnostics go to stderr. Nothing but JSON-RPC is ever written to stdout β a stray byte there corrupts the session.
Bump version in package.json, merge to main. That's the whole procedure.
release.yml asks npm and the MCP registry
whether they already have that version and publishes only where they don't, so
a merge that bumps ships it and a merge that doesn't is a no-op. It also runs
weekly, so a publish that failed is retried without a new commit.
server.json is the registry manifest, and the workflow rewrites its version
from package.json before publishing β one source of truth, three places that
have to agree.
npm authenticates by trusted publishing,
so there is no npm token here. The registry needs one secret, and the reason is
worth knowing: we publish as com.greencalculus/api, a DNS namespace, and GitHub
OIDC only ever grants io.github.<org>/*. So the registry step signs with the key
matching the v=MCPv1 TXT record on greencalculus.com, held as MCP_PRIVATE_KEY.
scripts/rotate-registry-key.sh generates a
fresh pair and installs it without ever printing the private half; it prints the
TXT record to publish. Without the secret the registry step skips and says so β
npm still publishes.
com.greencalculus/apiMIT β see LICENSE. The licence covers this bridge. Emission-factor data returned by the API carries the licence of its underlying source, which is named in every response.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/jeremiahsay-greencalculus-mcp)<a href="https://allmcps.com/mcp/jeremiahsay-greencalculus-mcp"><img src="https://allmcps.com/api/badge/jeremiahsay-greencalculus-mcp?style=directory" alt="Greencalculus MCP on AllMCPs" /></a>