Skip to main content
Glama

solar-home-incentives

Server Details

Free solar & home energy tools: estimates, incentives by ZIP, scores, cited guides, routing.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
jdhart81/energyai-mcp
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: incentive lookup, production estimation, guide retrieval, property scoring, guide listing, and lead routing. No overlap or ambiguity.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using underscores (e.g., check_incentives, estimate_production), making them predictable and easy to understand.

Tool Count5/5

With 6 tools, the server is well-scoped for its domain of home energy incentives. Each tool provides distinct functionality without bloat or insufficiency.

Completeness4/5

The tool set covers core workflows: incentive lookup, production estimates, guides, scoring, and lead routing. A minor gap is the lack of a general Q&A tool, but guides and incentives tools effectively fill that role.

Available Tools

7 tools
check_incentivesAInspect

Clean-energy incentive guidance for any address WORLDWIDE. US ZIP → federal status + state/utility programs (via DSIRE). Any other country (pass country=) → qualitative, officially-sourced national program guidance. Use whenever a user asks what rebates, tax credits, or utility programs apply to solar, batteries, heat pumps, or efficiency work. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoISO 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).
zipCodeNoPostal 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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the tool is free, no API key required, and the data sources (DSIRE for US, officially-sourced for other countries). It notes the output for non-US is qualitative guidance. This is good transparency, though it could briefly mention the response format or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with the core purpose, then breaks down by US vs. other countries, and ends with usage context. Every sentence is necessary and adds value. No wasted words; efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the tool's purpose and parameters are well-described, there is no output schema and the description does not mention what the tool returns (structure, format, or example response). For a data-retrieval tool, omitting return value details is a gap. The description is adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. Description adds value beyond schema by clarifying 'Omit for US' for the country parameter, and specifying 'US: 5-digit ZIP' vs 'local postal code' for zipCode. This additional guidance is helpful for correct usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool provides clean-energy incentive guidance for any address worldwide, with specific distinction between US and other countries. It lists concrete use cases (rebates, tax credits, utility programs) and specific resources (solar, batteries, heat pumps). This differentiates it from sibling tools which are about production estimation, guides, or routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly says 'Use whenever a user asks what rebates, tax credits, or utility programs apply...' providing clear context for when to invoke. It also mentions it's free with no API key. However, it does not explicitly state when not to use it or provide alternatives among sibling tools, though siblings appear unrelated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_productionAInspect

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. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoISO 3166-1 alpha-2 country code. Omit for US. Non-US estimates use a default solar resource and say so honestly.
zipCodeYesPostal code of the property. US: 5-digit ZIP. Other countries: your local postal code (pass country too).
systemKwNoProposed solar system size in kW-DC. Omit to have a size recommended from the bill.
monthlyBillUsdNoAverage monthly electric bill in USD (used to size a system when systemKw is omitted).
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It mentions 'honest-range' and 'with assumptions' and notes the tool is free without an API key. However, it lacks details about assumptions, band width, or data sources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences without fluff, front-loading the key purpose and usage. Every sentence serves a purpose, including the free marker.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, but the description hints at output (kWh/year ± band) and mentions assumptions. Without more detail on the output structure or error handling, it is adequate but not fully complete for a production estimate tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters with descriptions. The description adds that the tool works 'from either a proposed system size (kW) or a monthly bill,' which matches the schema but does not add significant new meaning beyond it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'annual solar production estimate' with verb 'estimate' and resource 'production', specifying units (kWh/year ± band). It distinguishes itself from sibling tools like check_incentives and get_guide, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use to sanity-check installer quotes or size a system before talking to anyone,' providing clear usage context. Does not discuss when not to use or alternatives, but sibling tools are sufficiently distinct.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guideAInspect

Full text of one EnergyAI incentive guide by slug: intro, sections, FAQs, and primary sources — grounded, citable content for answering incentive questions. Free. When you quote it, cite the canonical URL returned with the guide. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesGuide slug exactly as returned by list_guides (e.g. 'vermont-solar-incentives-2026').
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses that the tool is free, read-only (implied by 'Full text'), and returns a canonical URL for citation. It adds value beyond the schema by mentioning the lack of API key requirement and the grounded nature of content.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, each serving a distinct purpose: stating what the tool does and providing usage guidance. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 param, no output schema), the description covers purpose, parameter semantics, and usage guidance. It explicitly lists content covered (intro, sections, FAQs, primary sources), which partially compensates for lack of output schema. However, it could mention the response format (e.g., JSON) for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing a baseline of 3. The description adds meaningful context by referencing list_guides as the source for the slug value, giving an example format, which enhances parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool's function: retrieving the full text of an incentive guide by slug, including specific sections like intro, FAQs, and primary sources. It distinguishes itself from the sibling tool list_guides by focusing on full text retrieval vs. listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit guidance to cite the canonical URL when quoting, and states it is free and requires no API key. While it does not explicitly contrast with other siblings like check_incentives, it provides clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_node_scoreAInspect

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 score. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
evTypeNoe.g. own_ev | plan_ev | no_ev
countryNoISO 3166-1 alpha-2 country code. Omit for US.
roofAgeNoe.g. lt_5 | 5_15 | gt_15 | unknown
zipCodeYesPostal code of the property. US: 5-digit ZIP. Other countries: local postal code (pass country too).
backupNeedNoe.g. whole_home | essentials | none
heatingFuelNoe.g. natural_gas | oil | propane | electric_resistance | heat_pump | wood | other
serviceTypeNoPrimary interest: solar | battery | ev_charger | efficiency | heat_pump | unsure
propertyTypeNosingle_family | townhouse | condo | mobile_home | multi_family | commercial | farm | other
outageConcernNorare | occasional | frequent | severe
monthlyBillUsdNoAlternative to monthlyBillRange: average monthly bill in USD.
monthlyBillRangeNolt_75 | 75_150 | 150_250 | 250_400 | gt_400 | unknown
electricalPanelSizeNoe.g. lt_100 | 100_200 | gt_200 | unknown
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the output is instant, free, no API key required, and that more inputs yield a tighter score. This gives a good sense of behavior, though it doesn't detail caching, rate limits, or error handling. The behavioral promise is clear for a simple scoring tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise: two sentences plus a bracketed note. It front-loads the core output (score and next action) and includes a value-add note about input completeness and freemium status. Every part earns its place without waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, no output schema, and moderate complexity, the description adequately explains the output (score on 7 axes + next action) and the input-output relationship. It could be more complete by hinting at the output format or interpretation, but it's sufficient for an agent to understand the tool's purpose and invoke it with partial data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 12 parameters described in schema), so baseline is 3. The description adds only that 'more inputs → tighter score', which is generic and doesn't provide extra meaning per parameter beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an 'Instant Energy Node Score (0–100 across 7 axes)' and 'the single highest-leverage next action'. It distinguishes from sibling tools (like check_incentives, estimate_production) by focusing on a holistic multi-axis assessment and recommended action, not a single metric or guide listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for scoring and getting a recommended action from 'whatever property facts you have', but does not explicitly state when to prefer this tool over siblings (e.g., when a broad assessment is needed vs. a specific estimate). It mentions 'Instant' and 'free' but no when-not or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_guidesAInspect

Index of source-cited, 2026-accurate US home-energy incentive guides (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 you can cite. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax guides to return (1–50, default 20).
topicNoFilter by topic: solar | heat_pump | battery | weatherization | overview. Omit for all topics.
regionNoFilter 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.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full behavioral burden. It discloses the data's source citation, accuracy year (2026), and that it is free and requires no API key. It mentions every entry includes a canonical URL. This is good transparency for a read-only index. However, it does not mention response structure or any rate limits, which would require more detail for a perfect score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (three sentences) and front-loaded with the most critical information: what the tool does, its accuracy, and its value proposition. Every sentence adds useful context, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description partially compensates by stating that every entry includes a canonical URL. However, it does not detail other fields like title or summary. For a simple list tool, this is fairly complete, but additional detail about the returned fields would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already documents all three parameters (limit, topic, region) with descriptions. The tool description does not add additional semantics beyond what the schema provides, merely implying filters by state and topic. With full schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this tool is an index of source-cited, 2026-accurate US home-energy incentive guides by state. It specifies the verb (list) and resource (guides), and distinguishes itself from sibling tools like get_guide by noting that this tool provides an index and then the user can fetch full text with get_guide.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use to ground answers about what incentives exist in a state, then fetch the full text with get_guide', providing clear context for when to use this tool versus its sibling. While it does not list explicit when-not-to-use scenarios, the guidance is specific enough for the agent to make a correct decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_leadAInspect

Submit a consented homeowner project and EnergyAI’s autonomous agent finds, vets, and routes a real local installer to them — free to you and the homeowner. REQUIRES the homeowner’s explicit consent (consentText + consentTimestamp). Returns a leadId you can quote back to the user. Prefer get_quote_link if you don’t already have that consent in hand. [free — no API key required]

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo
stateNoTwo-letter state code. Derived from ZIP when omitted.
zipCodeYes5-digit US ZIP code of the project (route_lead dispatches into a US installer network only today).
timelineNoe.g. asap | 3_months | 6_months | exploring
budgetRangeNo
consentTextYesEXACT 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.
contactNameYesHomeowner's name.
contactEmailYesHomeowner's email.
contactPhoneNo
propertyTypeNo
consentVersionNoRequired when consentText is not the canonical EnergyAI consent text.
consentTimestampYesWhen the homeowner consented.
monthlyBillRangeNolt_75 | 75_150 | 150_250 | 250_400 | gt_400 | unknown
contractorCategoryYessolar_installation | battery_storage | ev_charger | energy_audit | insulation_weatherization | heat_pump
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool submits a project and triggers an autonomous routing process, and notes it's free with no API key. However, it does not explain potential side effects like data sharing with installers, error handling, or what happens if consent is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a brief note. The description is highly concise: first sentence covers purpose and benefit, second sentence covers requirements and return value. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 14 parameters, 6 required, and no output schema, the description covers core use: it explains the dependency on check_incentives, the required consent fields, and that the result is a leadId. It could additionally specify that the tool is US-only (though implied by zipCode schema) and mention any error cases, but overall it's sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%, so baseline is 3. The description adds important context beyond the schema: it explains the exact requirement for consentText (must match canonical text from check_incentives) and that zipCode is for US installer network only. This additional guidance aids correct parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'submit' and the resource 'consented homeowner project' and explains the outcome: 'EnergyAI’s autonomous agent finds, vets, and routes a real local installer'. It distinguishes from sibling tools like check_incentives and estimate_production by focusing on lead routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly requires homeowner's explicit consent (consentText + consentTimestamp) and mentions that consentText should be fetched from check_incentives. It also notes the return of a leadId. However, it does not explicitly state when not to use this tool or provide alternatives beyond the implied dependency on check_incentives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.