northwood-carbon MCP server
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., "@northwood-carbon MCP servershow me the three portcos with the largest gap to their 2030 targets"
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.
northwood-carbon MCP server
An MCP (Model Context Protocol) server that exposes Northwood Capital Partners' portfolio carbon data as tools any MCP-compatible agent (Claude Desktop, Claude Code, etc.) can call.
Turns carbon questions like "Which three portcos are furthest behind their 2030 targets, and what's the cheapest initiative for each?" into tool calls, not data wrangling.
Tools
Tool | Purpose |
| All 10 portcos with sector, status, revenue, facilities, data grade |
| Scope 1 / Scope 2 emissions for a portco, filterable by year + scope |
| Gap analysis vs SBTi-aligned 42% by 2030 pathway |
| Decarbonization levers with reduction, capex, status |
| What-if: apply initiatives, return projected emissions + capex |
Install
# Clone
git clone <repo-url> northwood-carbon-mcp
cd northwood-carbon-mcp
# With uv (recommended)
uv sync
# Or with pip
pip install -e .Run
uv run server.py
# or
python server.pyThe server speaks MCP over stdio, so you don't run it directly in most cases — you register it with a client that spawns it.
Connect to Claude Desktop / Claude Code
Add to your MCP config (~/.claude/mcp.json or Claude Desktop settings):
{
"mcpServers": {
"northwood-carbon": {
"command": "uv",
"args": ["--directory", "/path/to/northwood-carbon-mcp", "run", "server.py"]
}
}
}Restart the client. The five tools appear automatically.
Example session
You: What are Meridian's 2024 Scope 1 emissions?
Claude → get_portco_emissions(portco="meridian", year=2024, scope=1)
← {"emissions": {"2024": {"scope1": 750.0}}, "units": "tCO2e", ...}
Claude: Meridian Business Solutions emitted 750 tCO2e in Scope 1 during 2024,
primarily natural gas for space heating across 16 offices.You: Which portcos are off-track for 2030 and what's the cheapest initiative for each?
Claude → list_portcos()
→ gap_to_target(portco=<each>) × 10
→ list_initiatives(portco=<off-track one>, status="planned") × 3
← synthesizes ranked answer with capex + reduction per leverData
Static snapshot in data.json, sourced from the Northwood engagement's Week 3 carbon
inventory and Week 4 decarbonization work. Drop in a live DB connection by replacing
the DATA = json.loads(...) line with a query layer — the tool surface stays identical.
Structure
.
├── server.py — FastMCP server, 5 tools, ~200 LOC
├── data.json — Static data (PORTCOS, TRAJECTORY, INITIATIVES, RISK_SUMMARY, ESG_SCORES, FACILITIES)
├── pyproject.toml
└── README.mdThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/trippborstel-hub/northwood-carbon-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server