RMI Utility Transition Hub — MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tablesA | List all tables with their column names and types. Call this first to understand what data is available before querying. |
| preview_tableA | Show the first few rows of a table to understand its structure. Use this after list_tables to see what the actual data looks like. |
| list_utilitiesA | List utilities, optionally filtered by two-letter state code (e.g. 'CO', 'TX'). Returns utility and parent names, EIA/FERC1 IDs, RMI utility type, and — when
a state is given — the capacity that utility owns in that state (MW), largest
first. |
| get_emissions_trendA | Get yearly CO2 emissions and 1.5°C pathway comparison for a utility. Returns historical CO2 (MMT), emissions implied by the utility's stated targets, its IRP projection, and RMI's 1.5°C benchmark — plus generation (TWh) and emissions intensity (metric tons/MWh).
|
| get_generation_mixA | Get electricity generation breakdown by technology for a utility. Shows capacity (GW), net generation (TWh), capacity factor, and CO2 emissions (MMT) by RMI technology group (Coal, Gas, Wind, Solar, Nuclear, Hydro, Storage, ...). By default this covers only generation the utility OWNS. The underlying table also carries non-owned energy_source rows — wholesale power purchases, net exchanges, wheeled power, energy efficiency, demand response, and negative transmission losses. Those are supply, not generation, and summing them together with owned output overstates the fleet and mixes in negative rows. Set include_purchases=True to get them as separate rows, split by the energy_source and owned_energy_source columns. The search is case-insensitive and supports partial names. Optionally filter to a single year; defaults to all years (2005-2024). |
| get_climate_alignmentA | Compare a utility's emissions to RMI's 1.5°C pathway, year by year. Adds a gap column (CO2 minus the 1.5°C benchmark: positive = above the pathway) and a status label. Historical years use reported CO2; future years fall back to the utility's stated target, then its IRP projection.
|
| query_dataA | Run a read-only SQL query against the database. DuckDB SQL syntax. Call list_tables() first to see available tables and columns. One SELECT statement per call (a leading WITH ... CTE is fine). There is no single join key across all tables: utility_id_eia — utility_information, utility_state_map, operations_emissions_by_tech / _by_fuel, reliability utility_id_ferc1 — utility_information, customers_sales, revenue_by_tech, assets_earnings_investments, debt_equity_returns, net_plant_balance respondent_id — expenditure_bills_burden, housing_units_income only emissions_targets has NO id column; join it on utility_name_irp / parent_name. utility_name and parent_name appear in most tables directly. Two traps worth knowing:
emissions_targets holds separate 'owned' and 'delivered' row sets —
filter owned_delivered or you double-count.
operations_emissions_by_tech mixes owned generation with purchased
power, exchanges, EE/DR, and negative transmission losses —
filter Example: SELECT utility_name_irp, year, emissions_co2_historical, emissions_co2_1point5c FROM emissions_targets WHERE year >= 2015 AND owned_delivered = 'delivered' ORDER BY emissions_co2_historical DESC LIMIT 20 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| decarbonization_assessment | Assess a utility's decarbonization progress against the 1.5°C pathway. |
| state_landscape | Overview of utility emissions and clean energy progress in a state. |
| investment_risk_profile | Assess a utility's financial exposure to fossil fuel assets. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| data_dictionary | Overview of the RMI Utility Transition Hub datasets and key columns. |
| methodology | RMI's methodology document: data sources, assumptions, and calculations. |
| data_dictionary_full | Full data dictionary: definitions, units, sources, and methodology for every field. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/dylanpieper/rmi-mcp-uth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server