leadgreen-mcp
OfficialClick on "Deploy 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., "@leadgreen-mcpwhat's the energy and CO2e cost of 50M Qwen 3 32B tokens on H100 in Serbia?"
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.
leadgreen.ai, the Lead Green site
Static, generated, no forms, no tracking. The only script is a short inline light/dark switch in the page shell. Serve the folder as-is (folder-style URLs; see Deploy).
index.html home
why/ index/ api/ mcp/ blog/ newsletter/ contribute/ about/ one index.html each (generated)
blog/<slug>/index.html one folder per post (generated)
api/v1/ the read-only JSON API (generated)
feed.xml sitemap.xml robots.txt llms.txt llms-full.txt .nojekyll (generated)
assets/cards/*.png (generated social cards, one number per page; needs Pillow and build/fonts)
assets/site.css the one stylesheet (hand-written)
assets/logo/ the mark and lockups (SVG masters, light and dark), the icon master and its 512 px PNG
assets/social-card.svg .png the 1200 by 630 link preview image (og:image); the PNG is rendered from the SVG
favicon.svg favicon.ico apple-touch-icon.png site icons, cut from assets/logo/leadgreen-icon.svg
build/build.py the generator: reads build/data, build/pages, build/posts; writes everything above
build/layout.html page shell: head, nav, footer, {{PLACEHOLDERS}}
build/pages/*.html page bodies, one per page, with a meta block at the top
build/posts/YYYY-MM-DD-slug.html blog posts, same shape
build/data/ dated snapshots of every source file used, plus the NVIDIA hardware transcription
leadgreen-mcp/ the MCP server package (pyproject.toml, leadgreen_mcp/, README); leadgreen_mcp/data/ is a copy of api/v1
dist/ the built wheel that the MCP page's install line points at
Dockerfile .dockerignore docker/nginx.conf the production container image (nginx); see Deploy (container)
k8s/leadgreen-website.yaml its Kubernetes Deployment, Service, Istio Gateway and VirtualServiceWhere this lives
The working repository sits in Katonic's GitHub Enterprise organisation, which cannot host public repositories; changes are merged there first.
The public mirror is katonic-dev/leadgreen-ai:
masteris pushed there after every merge, GitHub Pages serves leadgreen.ai from it, and it is where issues and pull requests from outside are opened. A change accepted there is merged into the working repository and reaches the mirror on the next push.The project's other homes (the Hugging Face dataset, the Zenodo DOI, Wikidata) are set in
build/project_text.py; the build writes them into the pages' JSON-LDsameAs,CITATION.cffand.zenodo.json.build/hf_dataset.pyassembles and pushes the dataset.
Related MCP server: AI Impact MCP
Build
From this folder:
python build/build.pyIt renders every page and API file in memory first and refuses to write anything if a single {{PLACEHOLDER}} is unfilled or an em or en dash appears. Numbers on pages come only from build/data through placeholders defined in build/build.py; never type a figure into a page.
After any change to leadgreen-mcp/ or to the data, rebuild the wheel:
python -m pip wheel ./leadgreen-mcp -w dist --no-depsThe MCP server works with the mcp Python SDK 1.x and 2.x (guarded import in server.py). To exercise it, run any MCP client against python -m leadgreen_mcp.server with PYTHONPATH=leadgreen-mcp and LEADGREEN_API_BASE set to the api/v1 folder; an example client script that checks the worked example (50 million tokens of Qwen 3 32B on H100 in Serbia = about 3,173 Wh and 2.12 kg CO2e) is described in the handover.
Preview: serve the folder locally, for example python -m http.server 8171 from the site root, so folder-style links resolve; opening the files directly also works for single pages.
Edit
A page: edit
build/pages/<name>.html. The meta block (title,description, optionalog_type) feeds the head.{{ROOT}}prefixes every internal link so pages work from any depth.A post: add
build/posts/YYYY-MM-DD-slug.htmlwith a meta block (title,description,date, optionalslug,author) and the body HTML; rebuild. It appears on/blog/, infeed.xml,sitemap.xmland the home page's "latest" line.A figure: add or change a placeholder in the
subsdict ofbuild/build.py, computed from a snapshot.Constants to set before launch (top of
build/build.py):REPO_URL(links to the repository are omitted while empty; the MCP install line then points at the wheel on this site),NEWSLETTER_SIGNUP_URL(the newsletter page points at Own Your AI until it is set; never a fake form),UPDATED.
Update the numbers
Replace the relevant snapshot in
build/data/with a fresh retrieval, keeping the date in the file name:ML.ENERGY:
https://raw.githubusercontent.com/ml-energy/leaderboard/master/public/data/tasks/lm-arena-chat.jsonand.../gpqa.json(branchmaster, notmain)Ember: the yearly CSV at
https://files.ember-energy.org/public-downloads/generation/outputs/release_generation_yearly_global.csv(16 MB), then extract theTotal generationrows for everyCountry or economyplusWorldfor the three latest years, keeping the columns in the existing extractAI Energy Score:
https://huggingface.co/spaces/AIEnergyScore/Leaderboard/raw/main/data/energy/text_generation.csvNVIDIA: re-check the pages named in
build/data/nvidia-hardware-*.jsonand save a new dated copy
Point the file constants at the top of
build/build.pyat the new snapshots; bumpUPDATEDand the sourceversionstrings.Add a line to the Changes section of
build/pages/index.html.Run the build, then rebuild the wheel.
Open the home page and the index locally and read the three tiles and the first rows before pushing.
Deploy (GitHub Pages)
Since 19 October 2026 the site is served by GitHub Pages from the public mirror katonic-dev/leadgreen-ai: source branch master, folder /, custom domain leadgreen.ai (the CNAME file at the root), HTTPS enforced. Every push of master to the mirror is a deploy; there is no image to build and nothing to apply. .nojekyll keeps Pages from running Jekyll over the generated files.
What Pages gives for free: folder-style URLs, 404.html as the not-found page, Access-Control-Allow-Origin: * on every file (so the API's "CORS open" claim holds), www.leadgreen.ai redirected to the apex, HTTP redirected to HTTPS. What it cannot do: custom response headers (no HSTS, X-Content-Type-Options, Referrer-Policy or Content-Security-Policy) and no access log, so there is no server-side record of crawlers; Search Console and Bing Webmaster Tools are the only visibility.
DNS at the registrar: A records for the apex to 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153 (and the matching AAAA records 2606:50c0:8000::153 to 2606:50c0:8003::153), CNAME www to katonic-dev.github.io. The mail records (MX, SPF) stay as they are.
After a deploy: fetch https://leadgreen.ai/api/v1/manifest.json and the wheel named on the /mcp/ page once to confirm both are served; run python build/indexnow.py (--all the first time, then only the URLs whose content changed, which the build lists in build/indexnow-changed.txt).
The container path (Dockerfile, docker/nginx.conf, k8s/leadgreen-website.yaml) served the site from a Katonic Kubernetes cluster from 14 to 19 October 2026 and is retired; the files stay until the cluster resources are removed, then they go.
Logo
The mark is one square pulse of GPU power with the area beneath it filled in: energy is the area under the power curve, a watt-hour drawn the way the meter sees it. Ink and accent only, no third colour, no gradient; on dark pages only the ink flips. Masters live in assets/logo/; the masthead carries an inline copy of the mark in build/layout.html, so a change to the geometry has to be made in both. The wordmark is Archivo Bold with tight tracking, "Lead" in ink and "Green" in the accent; the lockup SVGs have the type outlined, so they need no font. Rasters (favicon.ico, apple-touch-icon.png, assets/logo/leadgreen-icon-512.png, assets/social-card.png) are rendered from the SVG masters; re-render them after any change.
Rules
No figure is typed into a page by hand. Every figure has a source in the ledger with a retrieval date. Nothing on the site claims a Katonic measurement until one exists. No customer names. No em or en dashes. Lead Green is a Katonic project, never a separate entity.
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Tracks the estimated carbon footprint of AI model usage, per org and project.
Natural-language queries over a verified emissions knowledge graph, plus standards validation
Carbon MCP — UK Carbon Intensity API (free, no auth)
Related MCP Servers
- AlicenseBqualityFmaintenanceTrack LLM token costs across Claude, GPT and Gemini. MCP server + CLI with optimization hints and $ savings estimates.810 npm1MIT
- FlicenseAqualityDmaintenanceEstimates the environmental footprint of your AI use — energy (kWh), miles driven, water used for cooling, and CO₂ — plus a prompt-efficiency score, working with any AI client by measuring token usage.9-
- FlicenseNot gradedqualityDmaintenanceEnables AI cost calculation, comparison, and optimization across major providers like Anthropic, OpenAI, Google, Meta, and Mistral. Supports cost estimation, budget-aware model finding, and token estimation through a simple API and MCP integration.-
- AlicenseAqualityAmaintenanceDaily-verified LLM API pricing dataset (44+ models, CN & global) with a hosted MCP server for live price queries and token cost estimation.2CC BY-4.0