list_portcos
List all Northwood portfolio companies with sector, status, revenue, EBITDA, facilities count, and carbon metrics. Provides starting point for portfolio-level questions.
Instructions
List all 10 Northwood portfolio companies with sector, status, and headline metrics.
Returns a list of dicts containing: slug, name, sector, fund, status, revenue ($M), ebitda ($M), facilities count, data_grade, base_year, target_year, target_reduction_pct.
Use this as the starting point for portfolio-level questions.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- server.py:73-98 (handler)The list_portcos tool handler: a FastMCP tool that lists all portfolio companies with their slug, name, sector, fund, status, revenue (M), EBITDA (M), facilities count, data grade, base year, target year, and target reduction percentage.
def list_portcos() -> list[dict[str, Any]]: """ List all 10 Northwood portfolio companies with sector, status, and headline metrics. Returns a list of dicts containing: slug, name, sector, fund, status, revenue ($M), ebitda ($M), facilities count, data_grade, base_year, target_year, target_reduction_pct. Use this as the starting point for portfolio-level questions. """ return [ { "slug": slug, "name": p["name"], "sector": p["sector"], "fund": p["fund"], "status": p["status"], "revenue_m": p["revenue"], "ebitda_m": p["ebitda"], "facilities": p["facilities"], "data_grade": p["dataGrade"], "base_year": p["baseYear"], "target_year": p["targetYear"], "target_reduction_pct": p["targetReduction"], } for slug, p in PORTCOS.items() ] - server.py:72-72 (registration)The registration decorator @mcp.tool() that registers list_portcos as an MCP tool on the FastMCP server instance.
@mcp.tool() - server.py:28-36 (helper)Data loading: PORTCOS dict is loaded from data.json and used by list_portcos to build its response.
# ── Load data ───────────────────────────────────────────────────────────── DATA_PATH = Path(__file__).parent / "data.json" DATA: dict[str, Any] = json.loads(DATA_PATH.read_text()) PORTCOS = DATA["PORTCOS"] TRAJECTORY = DATA["TRAJECTORY"] INITIATIVES = DATA["INITIATIVES"] RISK_SUMMARY = DATA["RISK_SUMMARY"] ESG_SCORES = DATA["ESG_SCORES"] FACILITIES = DATA["FACILITIES"]