jdhart81 avatar

Energyai

jdhart81/energyai-mcp

Connects Claude to EnergyAI's assessment engine for residential and commercial energy upgrades. You get tools to calculate Energy Node Scores (0-100 across efficiency, electrification, resilience, and production), retrieve personalized solar, heat pump, and battery recommendations, pull state and utility incentives via DSIRE integration, and sanity-check installer quotes. The API costs $0.0402 per call. Reach for this when you're building chatbots or agents that need to advise on decarbonization pathways, estimate payback periods, or help users sequence upgrades from heat pumps to storage. The scoring model considers property characteristics and local utility rates to prioritize the highest-leverage move first.

tools
30
auth
Secret needed
transport
HTTP
last updated
Sep 9, 2026

Install

From registry metadata
$ npx add-mcp https://api.energyaisolution.com/mcp --name energyai --header 'Authorization: Bearer ${API_TOKEN}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http energyai https://api.energyaisolution.com/mcp --header 'Authorization: YOUR_AUTHORIZATION'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 30 tools

Verified live against the running server on Nov 6, 2026.

check_incentivesClean-energy incentive source guidance by country and postal code; eligibility is not verified. US ZIP → federal status + state/utility programs (via DSIRE). Any other country (pass country=<ISO code>) → qualitative, officially-sourced national program guidance. Use whenever a...3 params

Clean-energy incentive source guidance by country and postal code; eligibility is not verified. US ZIP → federal status + state/utility programs (via DSIRE). Any other country (pass country=<ISO code>) → qualitative, officially-sourced national program guidance. Use whenever a...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
countrystring
ISO 3166-1 alpha-2 country code. Omit for US. Any country works — non-US results return qualitative, officially-sourced incentive guidance (never US federal credits).
zipCodestring
Postal code of the property. US: 5-digit ZIP (ZIP+4 accepted). Other countries: your local postal code (pass country too). Omit entirely for national-level guidance.
estimate_productionHonest-range annual solar production estimate (kWh/year ± band, with assumptions) for a ZIP code, from either a proposed system size (kW) or a monthly bill. Use to sanity-check installer quotes or size a system before talking to anyone. [20 anonymous calls/caller/24h; then 100...5 params

Honest-range annual solar production estimate (kWh/year ± band, with assumptions) for a ZIP code, from either a proposed system size (kW) or a monthly bill. Use to sanity-check installer quotes or size a system before talking to anyone. [20 anonymous calls/caller/24h; then 100...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
countrystring
ISO 3166-1 alpha-2 country code. Omit for US. Non-US estimates use a default solar resource and say so honestly.
monthlyBillUsdnumber
Average monthly electric bill in USD (used to size a system when systemKw is omitted).
systemKwnumber
Proposed solar system size in kW-DC. Omit to have a size recommended from the bill.
zipCodestring
Optional postal code of the property. US: 5-digit ZIP. Other countries: your local postal code (pass country too). Omit it to use documented national assumptions.
get_node_scoreInstant Energy Node Score (0–100 across 7 axes: efficiency, electrification, renewable generation, storage/resilience, financial optimization, carbon, market readiness) plus the single highest-leverage next action, from whatever property facts you have. More inputs → tighter s...13 params

Instant Energy Node Score (0–100 across 7 axes: efficiency, electrification, renewable generation, storage/resilience, financial optimization, carbon, market readiness) plus the single highest-leverage next action, from whatever property facts you have. More inputs → tighter s...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
backupNeedstring
e.g. whole_home | essentials | none
countrystring
ISO 3166-1 alpha-2 country code. Omit for US.
electricalPanelSizestring
e.g. lt_100 | 100_200 | gt_200 | unknown
evTypestring
e.g. own_ev | plan_ev | no_ev
heatingFuelstring
e.g. natural_gas | oil | propane | electric_resistance | heat_pump | wood | other
monthlyBillRangestring
lt_75 | 75_150 | 150_250 | 250_400 | gt_400 | unknown
monthlyBillUsdnumber
Alternative to monthlyBillRange: average monthly bill in USD.
outageConcernstring
rare | occasional | frequent | severe
propertyTypestring
single_family | townhouse | condo | mobile_home | multi_family | commercial | farm | other
roofAgestring
e.g. lt_5 | 5_15 | gt_15 | unknown
serviceTypestring
Primary interest: solar | battery | ev_charger | efficiency | heat_pump | unsure
zipCodestring
Optional postal code of the property. US: 5-digit ZIP. Other countries: local postal code (pass country too). Omit it to use documented national assumptions.
get_quote_linkOptional household handoff: returns a free assessment URL and a separate $49 founding Quote Guardian human-review offer for a solar, battery or heat-pump proposal. For an automated agent result, use review_installer_quote on the full MCP endpoint. Share a household service onl...4 params

Optional household handoff: returns a free assessment URL and a separate $49 founding Quote Guardian human-review offer for a solar, battery or heat-pump proposal. For an automated agent result, use review_installer_quote on the full MCP endpoint. Share a household service onl...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
contractorCategorystring
Optional: solar_installation | battery_storage | ev_charger | energy_audit | insulation_weatherization | heat_pump. Pre-selects the project type; omit if unknown.
countrystring
ISO 3166-1 alpha-2 country code. Omit for US.
zipCodestring
Postal code of the property. US: 5-digit ZIP (ZIP+4 accepted). Other countries: local postal code (pass country too). Omit if unknown — the assessment collects it.
get_power_passport_linkQualify the minimum non-sensitive project facts for EnergyAI’s $2,500 founding Power Passport and return an attributable website handoff plus ready-to-paste shareText. Use when a compute, data-center, renewable-energy, utility, or infrastructure buyer needs a five-business-day...6 params

Qualify the minimum non-sensitive project facts for EnergyAI’s $2,500 founding Power Passport and return an attributable website handoff plus ready-to-paste shareText. Use when a compute, data-center, renewable-energy, utility, or infrastructure buyer needs a five-business-day...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
decisionNeedstring
The concrete decision this five-day pre-feasibility screen must change. Do not include personal or confidential information.
projectStagestring
Current project stage.one of exploring · site_control · utility_conversations · interconnection_process · financing · operating
siteLocationstring
Broad candidate-site description such as county/state, balancing area, or approximate coordinates. Do not send a street address or contact information.
targetMwnumber
Target compute or flexible-load capacity in MW.
workloadTypestring
Primary workload or renewable-project use case.one of ai_training · inference · hpc · rendering_simulation · mixed_compute · renewable_project
get_power_service_quoteCreate a signed, 15-minute, scope-bound quote for EnergyAI’s $1 Power Screen from non-sensitive site and workload facts. Returns the quoteToken required by run_power_screen, exact price, evidence boundary, authorization class, and higher-tier handoffs. Free and never spends fu...9 params

Create a signed, 15-minute, scope-bound quote for EnergyAI’s $1 Power Screen from non-sensitive site and workload facts. Returns the quoteToken required by run_power_screen, exact price, evidence boundary, authorization class, and higher-tier handoffs. Free and never spends fu...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
coolingModestring
one of unknown · dry · liquid_closed · evaporativedefault: unknown
flexibilityHoursnumber
Hours per week the workload can shift.
powerEvidencestring
Buyer-stated evidence maturity; confirmed still requires documentary verification.one of unknown · regional · utility_contact · confirmeddefault: unknown
siteLocation*string
County/state, balancing area, or approximate site. Do not send a street address or contact information.
stagedMwnumber
Optional first-stage load in MW; defaults to the lesser of 4 MW and targetMw.
storageHoursnumber
Optional available storage duration in hours.
targetMw*number
Target compute or flexible-load capacity in MW.
workloadType*string
one of ai_training · inference · hpc · rendering_simulation · mixed_compute · renewable_project
route_leadSubmit a consented homeowner project to EnergyAI’s guarded installer-matching workflow — free to you and the homeowner. EnergyAI immediately screens and routes currently available approved installers; unmatched projects remain recorded for safety-controlled follow-up. REQUIRES...15 params

Submit a consented homeowner project to EnergyAI’s guarded installer-matching workflow — free to you and the homeowner. EnergyAI immediately screens and routes currently available approved installers; unmatched projects remain recorded for safety-controlled follow-up. REQUIRES...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
budgetRangestring
citystring
consentText*string
EXACT consent text shown to and accepted by the homeowner. Fetch the canonical text from the tool result of check_incentives or use your own — alternate text REQUIRES consentVersion.
consentTimestamp*string
When the homeowner consented.
consentVersionstring
Required when consentText is not the canonical EnergyAI consent text.
contactEmail*string
Homeowner's email.
contactName*string
Homeowner's name.
contactPhonestring
contractorCategory*string
solar_installation | battery_storage | ev_charger | energy_audit | insulation_weatherization | heat_pump
monthlyBillRangestring
lt_75 | 75_150 | 150_250 | 250_400 | gt_400 | unknown
propertyTypestring
statestring
Two-letter state code. Derived from ZIP when omitted.
timelinestring
e.g. asap | 3_months | 6_months | exploring
zipCode*string
5-digit US ZIP code of the project (route_lead dispatches into a US installer network only today).
list_guidesIndex of source-cited, US home-energy incentive guides with source links (solar, heat pumps, batteries, weatherization) by state. Free. Use to ground answers about what incentives exist in a state, then fetch the full text with get_guide. Every entry includes a canonical URL y...4 params

Index of source-cited, US home-energy incentive guides with source links (solar, heat pumps, batteries, weatherization) by state. Free. Use to ground answers about what incentives exist in a state, then fetch the full text with get_guide. Every entry includes a canonical URL y...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
limitnumber
Max guides to return (1–50, default 20).
regionstring
Filter by region: full state name (e.g. 'Vermont'), two-letter code (e.g. 'VT'), or 'United States' for federal-level guides. Omit for all regions.
topicstring
Filter by topic: solar | heat_pump | battery | weatherization | overview. Omit for all topics.
get_guideFull text of one EnergyAI incentive guide by slug: intro, sections, FAQs, and primary sources — grounded, citable content for answering incentive questions. Free. Harmless slug aliases resolve automatically; genuinely missing topics return grounded guidance and suggestions, an...2 params

Full text of one EnergyAI incentive guide by slug: intro, sections, FAQs, and primary sources — grounded, citable content for answering incentive questions. Free. Harmless slug aliases resolve automatically; genuinely missing topics return grounded guidance and suggestions, an...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
slug*string
Guide slug exactly as returned by list_guides (e.g. 'vermont-solar-incentives-2026').
create_builder_keyCreate an EnergyAI production API key in-band with no browser or card after the human operator has authorized the Terms and Privacy Policy. Returns a live key plus three commercial trial calls. Attach the key as `Authorization: Bearer <key>` to this MCP endpoint and start with...5 params

Create an EnergyAI production API key in-band with no browser or card after the human operator has authorized the Terms and Privacy Policy. Returns a live key plus three commercial trial calls. Attach the key as `Authorization: Bearer <key>` to this MCP endpoint and start with...

Parameters* required
acceptTerms*boolean
Must be true, and only after the human operator has authorized acceptance of the EnergyAI Terms and Privacy Policy. If authorization is not already documented, call get_builder_upgrade_link and sur...
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
contactEmailstring
OPTIONAL. Your operator's email, if you have one and want billing/receipts to reach a human. Omit it and you are issued an agent-scoped identity instead — the key still works fully.
intendedUsestring
OPTIONAL, one line: what you plan to build. Used only to prioritize the roadmap.
name*string
Name of the agent, product, or operator claiming the key (2-120 chars). Shown only on your own account.
get_builder_upgrade_linkReturns the revenue handoff for EnergyAI Builder. With a key, it returns a PAYABLE Stripe link plus ready-to-paste shareText for the $19/month plan with $20 monthly tool credit, or a prepaid top-up. Without a key, it returns one first-party activation URL where the human enter...3 params

Returns the revenue handoff for EnergyAI Builder. With a key, it returns a PAYABLE Stripe link plus ready-to-paste shareText for the $19/month plan with $20 monthly tool credit, or a prepaid top-up. Without a key, it returns one first-party activation URL where the human enter...

Parameters* required
amountCentsnumber
Only for mode=credit: top-up amount in cents (minimum 500, default 2000).
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
modestring
'subscription' (default) for the $19/month Builder plan, or 'credit' for a one-off prepaid top-up.
find_local_installersPublicly-rated local clean-energy contractors for a US ZIP or state (solar, battery, EV charger, heat pump, weatherization, audits), with rating and review count. Free. Use when a homeowner asks WHO can do the work near them. IMPORTANT: results include a listingStatus per comp...4 params

Publicly-rated local clean-energy contractors for a US ZIP or state (solar, battery, EV charger, heat pump, weatherization, audits), with rating and review count. Free. Use when a homeowner asks WHO can do the work near them. IMPORTANT: results include a listingStatus per comp...

Parameters* required
apiKeystring
Optional existing EnergyAI key for hosts that cannot change Authorization headers. Use it to retain account identity for discovery and get_builder_upgrade_link after a trial. Removed before tool ex...
contractorCategorystring
Optional filter: solar_installation | battery_storage | ev_charger | energy_audit | insulation_weatherization | heat_pump
statestring
Two-letter US state code. Use instead of zipCode for a statewide list.
zipCodestring
5-digit US ZIP of the property (ZIP+4 accepted). US-only today.
run_power_screenExecute one signed Power Screen quote and return an immediate modeled constraint decision, assumptions, evidence gaps, and immutable artifact hash. [$1.00/call]2 params

Execute one signed Power Screen quote and return an immediate modeled constraint decision, assumptions, evidence gaps, and immutable artifact hash. [$1.00/call]

Parameters* required
apiKeystring
Optional one-call credential bridge for MCP hosts that cannot change Authorization headers mid-session. EnergyAI strips it before billing, execution, and persistence.
quoteToken*string
Unmodified signed quoteToken returned by get_power_service_quote. The quote expires after 15 minutes and binds scope, price, and assumptions.
bootstrap_energy_projectCreate a persisted project context, provisional Energy Node score, coverage map, and immediately reusable assessmentId in one call. [$0.10/call]9 params

Create a persisted project context, provisional Energy Node score, coverage map, and immediately reusable assessmentId in one call. [$0.10/call]

Parameters* required
apiKeystring
Optional one-call credential bridge for MCP hosts that cannot change Authorization headers mid-session. Pass the key returned by create_builder_key; EnergyAI removes it from the request body before...
citystring
countrystring
one of US · CA · GB · DE · AU · OTHERdefault: US
monthlyBillRangestring
one of lt_75 · 75_150 · 150_250 · 250_400 · gt_400 · unknowndefault: unknown
postalCode*string
Property ZIP or local postal code.
primaryGoalstring
one of save_money · resilience · climate · independence · alldefault: save_money
propertyTypestring
one of single_family · townhouse · condo · rental · commercial · farmdefault: other
serviceTypestring
one of solar · battery · ev_charger · efficiency · heat_pump · unsuredefault: unsure
statestring
create_energy_assessmentStart a new assessment session. Free. [free]

Start a new assessment session. Free. [free]

No parameters. Call it with no arguments.

answer_energy_assessment_questionSubmit one question answer. Free; usage tracked. [free]4 params

Submit one question answer. Free; usage tracked. [free]

Parameters* required
answerLabelstring
answerValue*string
assessmentId*string
questionKey*string
complete_energy_assessmentFinalize an assessment and trigger the recommendation workflow. Free. [free]1 params

Finalize an assessment and trigger the recommendation workflow. Free. [free]

Parameters* required
assessmentId*string
generate_energy_recommendation_previewGenerate honest cost, savings, and next-action ranges. [$0.05/call]1 params

Generate honest cost, savings, and next-action ranges. [$0.05/call]

Parameters* required
assessmentId*string
get_energy_node_scoreRetrieve the persisted seven-axis score with input coverage, weakest-axis gaps, next action, and calculation provenance. [$0.05/call]1 params

Retrieve the persisted seven-axis score with input coverage, weakest-axis gaps, next action, and calculation provenance. [$0.05/call]

Parameters* required
assessmentId*string
create_energy_node_roadmap_checkoutCreate the end-user checkout link for an unlocked Energy Node roadmap. Free. [free]2 params

Create the end-user checkout link for an unlocked Energy Node roadmap. Free. [free]

Parameters* required
assessmentId*string
emailstring
get_energy_node_roadmapRetrieve the full unlocked Energy Node roadmap. Locked previews never consume credit. [$0.10/call]1 params

Retrieve the full unlocked Energy Node roadmap. Locked previews never consume credit. [$0.10/call]

Parameters* required
assessmentId*string
generate_intelligence_bound_reportGenerate a property-specific dI/dt analysis. [$0.25/call]1 params

Generate a property-specific dI/dt analysis. [$0.25/call]

Parameters* required
assessmentId*string
get_information_theoretic_recommendationRank upgrades by intelligence-bound lift per dollar. [$0.25/call]1 params

Rank upgrades by intelligence-bound lift per dollar. [$0.25/call]

Parameters* required
assessmentId*string
get_eta_i_metricRead the public platform intelligence-efficiency metric. Free. [free]1 params

Read the public platform intelligence-efficiency metric. Free. [free]

Parameters* required
daysnumber
default: 30
get_anonymized_dataset_sampleReturn an aggregated, anonymized Energy Node dataset sample. [$1.00/call]2 params

Return an aggregated, anonymized Energy Node dataset sample. [$1.00/call]

Parameters* required
limitnumber
default: 100
offsetnumber
default: 0
match_installersReturn up to three eligible installer matches for a region. [$0.05/call]3 params

Return up to three eligible installer matches for a region. [$0.05/call]

Parameters* required
contractorCategory*string
statestring
zipCode*string
get_energy_incentivesUse a completed assessment to prioritize property-specific incentive checks and return an evidence-based verification plan. [$0.02/call]1 params

Use a completed assessment to prioritize property-specific incentive checks and return an evidence-based verification plan. [$0.02/call]

Parameters* required
assessmentId*string
Completed EnergyAI assessment id. Use free check_incentives for ZIP-only guidance.
review_installer_quoteReturn source-matched terms and practical installer questions from redacted quoteText (maximum 6000 characters) plus postalCode or an assessmentId owned by your Builder account. Automated decision support with explicit unknowns; human review, price fairness and incentive eligi...10 params

Return source-matched terms and practical installer questions from redacted quoteText (maximum 6000 characters) plus postalCode or an assessmentId owned by your Builder account. Automated decision support with explicit unknowns; human review, price fairness and incentive eligi...

Parameters* required
apiKeystring
Optional one-call credential bridge for MCP hosts that cannot change Authorization headers mid-session. Pass the key returned by create_builder_key; EnergyAI strips it before billing, execution, an...
assessmentIdstring
Optional existing EnergyAI assessment id. Omit when supplying postalCode for automatic project creation.
citystring
countrystring
one of US · CA · GB · DE · AU · OTHERdefault: US
monthlyBillRangestring
one of lt_75 · 75_150 · 150_250 · 250_400 · gt_400 · unknowndefault: unknown
postalCodestring
Property ZIP or local postal code. Required when assessmentId is omitted.
propertyTypestring
one of single_family · townhouse · condo · rental · commercial · farmdefault: other
quoteText*string
Redacted installer quote text. Exclude names, contact details, street addresses and account/proposal identifiers. Returns source-matched questions; no independent verification or human review.
serviceTypestring
one of solar · battery · ev_charger · efficiency · heat_pump · unsuredefault: solar
statestring
record_quote_review_outcomeRecord actual operator-confirmed usefulness and household delivery status for your completed quote review. Requires your Builder key. Free; never infer feedback from a successful tool call. [free]6 params

Record actual operator-confirmed usefulness and household delivery status for your completed quote review. Requires your Builder key. Free; never infer feedback from a successful tool call. [free]

Parameters* required
action*string
one of asked_installer · requested_revision · compared_alternatives · decided_to_proceed · decided_to_pause · no_action_yet
deliveredToHousehold*boolean
findingId*string
A returned q1–q6 check id, or null when not useful.
operatorConfirmed*boolean
True only after the operator actually assessed this result.
reviewToolCallId*string
toolCallId of the completed review owned by this key.
usefulness*string
one of useful · partly_useful · not_useful
submit_contractor_match_requestSubmit a consented installer lead and retain referral attribution. Free. [free]7 params

Submit a consented installer lead and retain referral attribution. Free. [free]

Parameters* required
assessmentId*string
consentText*string
EXACT consent text shown to end user.
consentTimestamp*string
consentVersionstring
contactEmail*string
contactName*string
contactPhonestring

Sponsors

Readme

EnergyAI MCP — energy planning tools for AI agents

Solar estimates, incentive sources, provisional Energy Node Scores, cited guides, contractor discovery and consented installer routing — through MCP and REST. By Viridis LLC.

The public catalog supports solar, weatherization, EV charging, home batteries and heat-pump planning. Twelve tools need no key to start. Estimates and scores use supplied facts and stated assumptions; they do not establish site suitability, incentive eligibility, installation approval or verified savings.

Your first call — no key

curl -X POST https://api.energyaisolution.com/api/v1/agent/check_incentives \
  -H 'content-type: application/json' -d '{"args":{"zipCode":"59715"}}'

This requests incentive source guidance for a US ZIP. For a production estimate, use estimate_production with {"zipCode":"59715","systemKw":6}. For a provisional score, use get_node_score with {"zipCode":"59715","serviceType":"solar","monthlyBillRange":"150_250"}. These informational tools accept omitted inputs with documented assumptions or broader guidance; inspect the live schema for the job you need.


View the full README on GitHub

Details

Repository
github.com/jdhart81/energyai-mcp
Website
energyaisolution.com/agents
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Resources
1
Tools verified
Nov 6, 2026