# UtilityAPI MCP

> UtilityAPI connects your AI client to billing and usage data from over 100 US utilities—including PG&E, Southern California Edison, and National Grid. It gives your agent access to complete utility billing history, granular 15-minute energy consumption readings, and detailed meter information across multiple providers through one single API.

## Overview
- **Category:** data-management
- **Price:** Free
- **Tags:** billing-data, energy-usage, meter-data, green-button, utility-api, data-aggregation

## Description

This MCP lets you pull comprehensive data from almost any electric or gas utility company in the US, bypassing the headache of dealing with dozens of separate systems. Need to analyze a customer's spending habits? You can retrieve full billing records showing costs and usage amounts across different periods. Want to size a solar array precisely? Your agent pulls granular, 15-minute interval data, identifying exactly when energy consumption peaks. The system also keeps track of which customers have authorized data sharing, ensuring the information you access is legitimate and up-to-date. Instead of building brittle connections for every single provider, you connect once through Vinkius and get instant access to this entire catalog of utility data. This means your AI client can run deep analyses—from calculating annual energy spend to finding peak usage times—all with a single connection.

## Tools

### activate_historical_collection
Starts the process of backfilling historical data for specific meters, ensuring your analysis gets more than just current usage.

### create_auth_form
Generates a unique link for customers to start the secure process of sharing their utility billing information with you.

### get_billing_summaries
Checks your account's API usage costs and provides general billing period summaries for this MCP.

### get_bills
Retrieves the official monthly utility bills, including total cost and overall energy consumption amounts (kWh/therms), for an authorized meter.

### get_events
Monitors system status updates, letting you know when a customer authorization is created or if data collection fails.

### get_form_templates
Lists the available templates to understand what types of information can be requested during an authorization process.

### get_intervals
Pulls highly detailed time-series usage data (15-minute or hourly) showing energy flow and cost for thorough demand modeling.

### get_meter_data
Combines the full bill history with granular interval readings in one call, giving a complete picture of a meter's usage.

### list_authorizations
Lists all customers who have granted access to their data and provides tracking codes for those records.

### list_meters
Retrieves a comprehensive list of every authorized service connection, detailing the address and type of utility meter.

### list_utilities
Provides a directory of all 100+ supported utility companies, including their unique codes for form setup.

### test_form_submission
Simulates submitting an authorization form using a specific ID to generate test data and verification codes before live use.

## Prompt Examples

**Prompt:** 
```
List all supported utility companies.
```

**Response:** 
```
Found 100+ supported utilities including: PG&E (Pacific Gas & Electric), Southern California Edison (SCE), Con Edison, National Grid, SDG&E, LADWP, CenterPoint Energy, Direct Energy, and many more. Each has a unique utility code used for creating authorization forms. Which utility would you like to focus on?
```

**Prompt:** 
```
Get the billing history for meter 44445555.
```

**Response:** 
```
Retrieved 12 months of billing history for meter 44445555 (PG&E - Residential Electric). Notable bills: Dec 2024: $142.30 (890 kWh), Jan 2025: $156.80 (980 kWh), Feb 2025: $134.50 (845 kWh). Average monthly cost: $144.20. Peak usage in January during winter heating. Total annual spend: $1,730.40.
```

**Prompt:** 
```
Show me the usage intervals for my authorized PG&E meters.
```

**Response:** 
```
Found interval data for 2 authorized PG&E meters. Meter 44445555 (Electric, Residential): 3,650 interval readings over 30 days, averaging 1.2 kWh per 15-min interval. Peak usage between 2-6 PM (AC usage). Meter 44445556 (Gas, Residential): 720 readings, averaging 0.08 therms per hour. Highest gas usage during morning hours (6-9 AM) for water heating.
```

## Capabilities

### Retrieve Billing History
Your agent pulls complete records showing costs, total kWh or therms used, and the billing date range for any authorized meter.

### Analyze Granular Usage Patterns
You get 15-minute or hourly consumption readings from smart meters, allowing you to pinpoint exactly when energy demand peaks occur.

### Manage Customer Data Access
Your agent creates and manages the secure authorization forms required for customers to grant data access to their utility records.

### Get Meter Status Information
You can list all authorized meters, checking key details like service address, fuel type (gas/electric), and current collection status.

### Combine Billing and Usage Data
The system provides a single call that merges both the financial billing records and the detailed time-series usage data for one meter.

## Use Cases

### Determining Peak AC Usage for a Commercial Build
A property manager needs to know the worst-case load on a building's electrical grid. They ask their agent to use get_intervals, specifying 15-minute readings over a full year. This reveals that peak usage reliably occurs between 3 PM and 6 PM due to HVAC cycling, allowing them to upgrade circuit breakers before an outage happens.

### Assessing Loan Eligibility Based on Energy Spending
A lender needs to verify a borrower's stable utility payment history. They use get_bills and list_authorizations to pull 3 years of billing records, confirming consistent payments and usage patterns that meet loan underwriting criteria.

### Sizing Solar Systems for Complex Residential Properties
A solar installer needs more than just the last bill. They run get_meter_data to see both the total cost *and* the time-series usage data, identifying periods of peak consumption (e.g., early morning heating spikes) that must be covered by the system.

### Auditing Utility Billing for Discrepancies
An energy consultant suspects a utility is overcharging. They use get_intervals to compare recorded usage against the bill dates, finding a mismatch between the expected hourly consumption and the billed kWh amount.

## Benefits

- Stop stitching together data. The get_meter_data tool merges bill summaries and interval readings into one call, giving you a complete view of the asset's energy life cycle.
- Drill down deep on consumption patterns using get_intervals. This access to 15-minute readings lets your agent identify peak demand periods, which is key for optimizing solar sizing or managing facility load.
- Handle compliance easily. Use create_auth_form and list_utilities to build secure authorization workflows that meet strict data sharing requirements before pulling any records.
- Speed up analysis with get_bills. Instead of manually collecting invoices month by month, you pull structured billing history instantly, allowing for immediate cost-over-time comparisons.
- Build robust monitoring. The get_events tool tracks the entire data pipeline—from authorization creation to successful data collection—so you always know if your data feed is ready.

## How It Works

The bottom line is your agent gets reliable access to complex energy data from hundreds of utilities using a straightforward workflow.

1. Subscribe to this MCP on Vinkius and enter your UtilityAPI API Token.
2. Your AI client uses a utility code (found via list_utilities) to generate an authorization form for the customer.
3. Once authorized, you use the meter UID with get_meter_data or get_bills to pull all combined usage and billing records.

## Frequently Asked Questions

**How does UtilityAPI handle different utility companies?**
UtilityAPI connects to over 100 US utilities through one unified system. You use list_utilities to find the specific code needed for any provider you are working with.

**Can I get usage data older than my current bill?**
Yes, but it requires a few steps. Use create_auth_form, then activate_historical_collection to request backfilling of historical data for the meter.

**What is the difference between get_bills and get_intervals?**
get_bills gives you the final monthly total cost and usage amount. get_intervals provides the high-resolution, 15-minute or hourly readings needed for detailed time-series analysis.

**How do I check if a meter is authorized?**
You can use list_meters to see all connected meters and check their status. For specific customer authorization details, run list_authorizations.

**Does UtilityAPI work for commercial buildings only?**
No, it covers both residential and commercial customers. When creating an auth form, you can specify the scenario type to match the property's use.