4,500+ servers built on MCP Fusion
Vinkius

UtilityAPI MCP. Analyze 100+ utilities' billing and usage data.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
See Vinkius in Action

Works with every AI agent you already use

…and any MCP-compatible client

UtilityAPI MCP on Cursor AI Code Editor MCP Client UtilityAPI MCP on Claude Desktop App MCP Integration UtilityAPI MCP on OpenAI Agents SDK MCP Compatible UtilityAPI MCP on Visual Studio Code MCP Extension Client UtilityAPI MCP on GitHub Copilot AI Agent MCP Integration UtilityAPI MCP on Google Gemini AI MCP Integration UtilityAPI MCP on Lovable AI Development MCP Client UtilityAPI MCP on Mistral AI Agents MCP Compatible UtilityAPI MCP on Amazon AWS Bedrock MCP Support

Just plug in your AI agents and start using Vinkius.

UtilityAPI connects your AI client to billing, usage data, and meter information from over 100 US utilities—including PG&E, Con Edison, and National Grid.

It lets you pull granular energy consumption readings (hourly/15-min) and full billing histories through a single API call, eliminating the need for separate utility integrations.

What your AI agents can do

Activate historical collection

Starts collecting historical data for specific utility meters after a new customer authorization is set up.

Create auth form

Generates a unique form ID that redirects customers to the correct utility portal to share their data securely.

Get billing summaries

Retrieves billing period summaries, total costs, and API usage account details for UtilityAPI.

+ 9 more capabilities included
Retrieve detailed energy usage intervals

The agent pulls granular smart meter data (hourly or 15-minute readings) to map out consumption patterns.

Generate full billing history reports

The agent retrieves total costs, kWh/therms used, and billing periods for specific meters in a given timeframe.

Get combined meter data sets

The agent pulls both the financial bill summary and the detailed usage intervals for one meter simultaneously.

Manage customer authorization flows

The agent creates or checks required forms to ensure legal access to a customer's utility data before running any reports.

Monitor system status and errors

The agent tracks webhooks for successful data collection, authorization failures, or other critical service events.

Supported MCP Clients

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients
Free for Subscribers

Waiting for input…

AI Agent

UtilityAPI: 12 Tools for Energy Analysis

These tools let your agent manage customer authorizations, pull billing summaries, retrieve granular usage intervals, and list all meters across multiple US utility providers.

activate019d761a

activate historical collection

Starts collecting historical data for specific utility meters after a new customer authorization is set up.

create019d761a

create auth form

Generates a unique form ID that redirects customers to the correct utility portal to share their data securely.

get019d761a

get billing summaries

Retrieves billing period summaries, total costs, and API usage account details for UtilityAPI.

get019d761a

get bills

Pulls the complete utility bill history, including dates, dollar costs, and energy amounts (kWh/therms), for authorized meters.

get019d761a

get events

Retrieves a log of service status changes, like when an authorization is created or data collection finishes.

get019d761a

get form templates

Lists available form configurations used for customer data sharing without needing to build a custom template first.

get019d761a

get intervals

Gets granular energy consumption data, showing usage over specific time intervals (15-minute or hourly) for authorized meters.

get019d761a

get meter data

Combines the bill history and detailed interval readings into one call for a complete view of a single meter's data.

list019d761a

list authorizations

Lists all customer accounts that have granted utility data access, which helps track who has shared information with you.

list019d761a

list meters

Gets a list of all connected utility meters (service points) at specific addresses and their unique IDs.

list019d761a

list utilities

Provides a catalog of 100+ supported utilities, giving you the correct code needed to start an authorization form.

test019d761a

test form submission

Simulates a customer submitting an authorization form using a referral code for development and testing purposes.

Choose How to Get Started

Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.

Build Your Own

Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.

  • Import from OpenAPI, Swagger, or YAML specs
  • Create Agent Skills with progressive disclosure
  • Deploy to edge with MCPFusion framework
  • Built in DLP, auth, and compliance on every call
  • Real time usage dashboard and cost metering
  • Publish to catalog or keep private
Start building

Make Your AI Do More

Start with UtilityAPI, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.

  • Use this MCP plus 4,700+ others, all in one place
  • Add new capabilities to your AI anytime you want
  • Every connection is secured and compliant automatically
  • Track usage and costs across all your servers
  • Works with Claude, ChatGPT, Cursor, and more
  • New servers added to the catalog every week

What you can do with this MCP connector

UtilityAPI connects your agent to utility data from over 100 US providers—think PG&E, Con Edison, National Grid. It lets you pull everything you need—from high-level billing summaries right down to minute-by-minute usage intervals—without ever having to write a separate connection for every single company.

Managing the Connection: You'll start by figuring out which utilities are even supported; list_utilities gives you a catalog of over 100 options, so you know exactly what code to use. To get started with any customer data, your agent needs proper authorization first. You can check available form setups using get_form_templates, and then generate the necessary secure link for the user with create_auth_form; this tool spits out a unique form ID that redirects customers right to the correct utility portal so they can share their info safely.

Testing and Setup: When you're building or testing, don't bother asking a customer—you can simulate the entire process using test_form_submission, which lets you pretend a user submitted an authorization form with a specific referral code. If you need to track who’s actually granted access, list_authorizations gives you a list of all customer accounts that have given utility data access, helping you keep tabs on what information's available.

Finding the Meters: Before you pull any numbers, you gotta find the service point. list_meters gets you a full rundown of every connected utility meter—every single service point—at specific addresses and gives you their unique IDs. After that, if you want to track all your meters' status, get_events retrieves a log of service changes, letting you know when an authorization was created or when data collection finished.

For development purposes, activate_historical_collection starts the process of collecting historical data for specific utility meters once a new customer has authorized access.

Pulling Billing Data: When it comes to money, get_billing_summaries retrieves high-level reports on billing periods, total costs, and your API usage account details. For a complete dive into the records, you'll use get_bills, which pulls out the entire utility bill history for authorized meters, including dates, dollar costs, and energy amounts measured in kWh or therms.

You can get a whole picture of one meter by calling get_meter_data; this single function combines both the detailed interval readings and the full financial bill summary into one call.

Tracking Usage Data: To map out consumption patterns, your agent uses get_intervals to pull granular energy usage data. This gives you readings over specific time slots—either 15 minutes or hourly—for authorized meters. You can also get a complete view of both the financial bill summary and these detailed usage intervals simultaneously using get_meter_data.

Keeping Things Running: If something goes sideways, you'll track it through the system status via get_events, which logs service failures or successful data collections. This whole setup lets your agent manage the entire lifecycle: from getting customer consent and identifying the meter IDs to pulling combined financial reports with granular usage patterns all in one place.

You don’t need separate connections for each provider; this API handles it all.

How UtilityAPI MCP Works

  1. 1 First, you call list_utilities to find the correct utility code (e.g., PG&E) and then use get_form_templates or create_auth_form to generate a secure authorization form for your customer.
  2. 2 Next, the customer completes that form, granting data access. You monitor this process using list_authorizations and wait for the system to start collecting historical data via activate_historical_collection.
  3. 3 Finally, you use the meter UID (from list_meters) with tools like get_meter_data or get_intervals to pull the required billing and usage data into your agent.

The bottom line is: You authorize access once, and the API handles the complex retrieval of all historical billing and interval data across a massive network of utilities.

Who Is UtilityAPI MCP For?

Energy consultants and property managers need this. They spend hours manually pulling usage reports from various utility portals to estimate costs or diagnose inefficiencies. This tool gives the agent direct, structured access to that data, letting them focus on recommendations instead of report generation.

Energy Consultant

They analyze a client's billing history and usage patterns using get_intervals to spot peak consumption times and recommend specific efficiency upgrades.

Solar Installer / EPC Firm

They use the API to access historical electricity usage (get_meters) for a property, which is essential for accurately sizing solar array systems and calculating return on investment (ROI).

Property Asset Manager

They monitor utility costs across an entire portfolio of buildings by calling list_meters followed by get_bills to spot cost anomalies or unexpected spikes in consumption.

What Changes When You Connect

  • Get a full picture of energy use with get_meter_data. This single tool pulls both the financial bill history and the granular time-series interval readings, so you don't have to run two separate calls.
  • Eliminate manual utility integration. Instead of connecting to PG&E, SCE, and National Grid separately, using this server means one API handles over 100 providers instantly.
  • Pinpoint peak usage periods with get_intervals. Since you get 15-minute or hourly readings, your agent can precisely identify when energy consumption spikes, which is critical for demand response planning.
  • Manage customer data access legally. You use create_auth_form to build the necessary authorization agreement and track compliance via list_authorizations before running any reports.
  • Build comprehensive financial models by combining bill summaries (get_bills) with meter location data (list_meters). This lets you link consumption directly back to specific service points.

Real-World Use Cases

01

Calculating total annual ROI for solar panels

A solar installer needs to prove the client's current energy spending. They run list_meters to find the property ID, then use get_meter_data on that UID. The agent analyzes years of combined bill and interval data to calculate peak usage patterns and accurately size a replacement system.

02

Investigating sudden cost spikes in a commercial building

A property manager notices an unusual spike in costs last month. They use get_bills for that specific meter UID, then cross-reference the billing period with the granular data from get_intervals. This pinpoints if the cost increase was due to high usage or a rate change.

03

Assessing loan eligibility based on energy habits

A FinTech agent needs proof of stable utility payments. It uses list_authorizations to confirm access, and then calls get_bills repeatedly over the last two years. The resulting data set verifies payment history for lending qualification.

04

Debugging an authorization failure

An agent fails to pull usage data from a new meter. Instead of guessing, it checks list_meters for the UID and then uses get_events. The event log immediately shows if the connection failed because the historical collection was never activated.

The Tradeoffs

Treating all usage data equally

Just running list_meters and expecting detailed consumption data. The meter list only gives you IDs, addresses, and basic status; it doesn't contain the energy readings themselves.

You must use a specific query tool. To get bills, use get_bills. To get granular usage patterns, run get_intervals on the UID you found via list_meters.

Ignoring authorization requirements

Trying to call get_intervals right after getting a meter ID. The API will fail because data access requires explicit customer consent that hasn't been granted yet.

Always start the compliance process first. Use create_auth_form and wait for the user to complete it before you run any data retrieval tool.

Forgetting the time granularity difference

Running get_bills thinking it covers everything. Bills summarize usage over a period (e.g., 30 days) but hide when the peak consumption actually happened.

If you need to know when energy was used, you have to use get_intervals. This provides time-series data—the detailed breakdown that bills omit.

When It Fits, When It Doesn't

Use this server if your core problem revolves around analyzing historical utility consumption or billing costs. The key is the need for cross-domain data: combining financial records (bills) with technical usage metrics (intervals).

Don't use it if you only need to know where a meter is located; list_meters handles that. Don't use it if you just need to check payment status—that’s typically handled by dedicated banking APIs. You need this when you must prove cost or usage patterns over time, requiring both the bill summary and the granular interval data. If your goal involves regulatory compliance, remember to run list_authorizations first; otherwise, nothing else matters.

Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by UtilityAPI. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.

VINKIUS INFRASTRUCTURE

Cloud Hosted

Managed infra

V8 Isolated

Sandboxed per request

Zero-Trust Proxy

No stored credentials

DLP Enforced

Policy on every call

GDPR Compliant

EU data residency

Token Compression

~60% cost reduction

How we secure it →

Works with Claude, ChatGPT, Cursor, and more

The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.

This server provides 12 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.

Available Capabilities

activate_historical_collection create_auth_form get_billing_summaries get_bills get_events get_form_templates get_intervals get_meter_data list_authorizations list_meters list_utilities test_form_submission

Utility billing analysis shouldn't require 5 different vendor logins.

Today, if you need to check a client’s energy usage in two states—say, PG&E and Con Edison—you spend half the day navigating separate portals. You export PDFs, copy-paste meter numbers, and manually reconcile different reporting formats just to get an annual spending summary.

With UtilityAPI MCP Server, you connect your agent once. It handles the authentication across 100+ utilities. You use `get_meter_data` and pull a single, unified data set that combines both billing costs and usage trends from every utility in one place.

Use get_intervals for Usage Patterns

The old way forces you to use `get_bills`, which only gives a total kWh or therms number. That single number tells you nothing about *when* the energy was consumed—did they run the AC all day, or just in the evenings?

Now, when your agent uses `get_intervals`, it provides 15-minute readings. You finally know if the spike happened at 2 PM during peak hours, which is the precise data needed to recommend a better thermostat.

Common Questions About UtilityAPI MCP

How do I get billing history using get_bills? +

You must provide a specific meter UID or a comma-separated list of UIDs. The get_bills tool returns the total cost and energy usage (kWh/therms) for those meters over their respective billing periods.

What is the difference between get_intervals and get_meter_data? +

get_intervals gives you only the granular time-series data. get_meter_data combines both that interval data and the bill summary for one complete picture.

Do I need to run activate_historical_collection manually? +

Yes, after a customer authorizes access via create_auth_form, you must call activate_historical_collection on the meter UID. This tells the system to start pulling all available historical data.

Can I check which utilities are supported with list_utilities? +

Yes, running list_utilities provides a catalog of 100+ providers and gives you their specific utility codes. You need these codes when creating new authorization forms.

How do I test if my form submission works before going live? +

Use the test_form_submission tool. It simulates a customer submitting an authorization and returns a temporary referral code you can use for testing purposes.

How do I find the specific meter UIDs needed for `get_bills` using `list_meters`? +

You must run list_meters. This tool returns a list of all authorized service points, each providing its unique meter_uid. You need these IDs to pull accurate billing or interval data.

If my utility data collection fails, how do I check the status using `get_events`? +

Run get_events to see a real-time log of activity. This pulls records detailing new authorizations, when data collection started, or if any errors occurred during the workflow.

How does using `get_meter_data` improve my energy analysis workflow compared to separate calls? +

It combines both bill history and granular interval readings into a single call. This delivers a complete picture—the financial cost alongside the technical usage patterns—without needing multiple API requests.

How do I get access to a customer's utility billing and usage data? +

First, create an authorization form using create_auth_form with the customer's utility code. Share the form URL with the customer to complete authorization. Once authorized, use list_meters to find their service points, then get_bills and get_intervals with the meter UID to retrieve their data. You can also activate historical collection with activate_historical_collection to backfill past data.

What's the difference between bills and intervals data? +

Bills provide monthly (or billing cycle) summaries: total cost, total usage (kWh/therms), and billing period dates. Intervals provide granular time-series data from smart meters — typically 15-minute or hourly readings showing exact consumption patterns throughout the day. Use bills for cost analysis and trend overview; use intervals for detailed energy modeling, peak demand identification, and time-of-use analysis.

Which utility companies are supported? +

UtilityAPI supports 100+ US utilities including PG&E (Pacific Gas & Electric), Southern California Edison (SCE), Con Edison, National Grid, SDG&E, LADWP, CenterPoint Energy, and many more. Use the list_utilities tool to see the complete, up-to-date list of supported utilities with their codes. Coverage varies by state and continues to expand.

Can I test the authorization flow before going to production? +

Yes! Use create_auth_form to create a form, then test_form_submission with utility='DEMO' and scenario='residential' (or 'commercial'). This simulates a customer authorizing their data and returns a referral_code. Use this code with list_authorizations?referrals=YOUR_CODE&include=meters to retrieve test authorization and meter data without needing a real customer.

More in this category

You might also like

Built & Managed by Vinkius 30s setup 12 tools

We've already built the connector for UtilityAPI. Just plug in your AI agents and start using Vinkius.

No hosting. No infrastructure. No complex setup.
All 12 tools are live and waiting. You're up and running in seconds.

Claude Claude
ChatGPT ChatGPT
Cursor Cursor
Gemini Gemini
Windsurf Windsurf
VS Code VS Code
JetBrains JetBrains
Vercel Vercel
+ other MCP clients

Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.

Zero hosting required Full MCP catalog included Enterprise-grade security Auto-updated by Vinkius

Built, hosted, and secured by Vinkius. You just connect and go.