Skip to main content
Glama
Prajwal1103-hack

Solar Sathi MCP

Solar Sathi MCP Module

A comprehensive Model Context Protocol (MCP) server for solar energy feasibility analysis and ROI calculation in India.

Features

  • Solar Irradiance Lookup: Fetch real solar radiation data from Open-Meteo API

  • System Capacity Calculation: Recommend kW based on consumption and roof area

  • Installation Cost Estimation: Get cost ranges with subsidy deduction

  • PM Surya Ghar Subsidy: Tiered subsidy lookup (₹10K–₹18K/kW)

  • ROI Analysis: Payback period, 25-year savings, and ROI percentage

  • Environmental Impact: CO2 reduction and trees-saved equivalents

  • Homeowner Report: LLM-generated or template-based feasibility reports

Related MCP server: mcp-pvgis

Tools

1. get_solar_irradiance

Fetch average daily solar irradiance (kWh/m²/day) for a geographic location.

Inputs:

  • latitude (number): -90 to 90

  • longitude (number): -180 to 180

Output: Daily irradiance, location, data source note


2. calculate_solar_capacity

Recommend solar system size based on monthly bill, tariff, and roof area.

Inputs:

  • monthly_bill (number): Monthly electricity bill (₹)

  • tariff_per_kwh (number): Electricity tariff (₹/kWh)

  • roof_area_sqft (number): Usable roof area (sqft)

  • monthly_units (number, optional): Monthly consumption (kWh). If not provided, derived from bill/tariff.

Output: Capacity (kW), required roof area, roof-limited flag, monthly consumption

Logic:

  • Capacity = monthly_consumption / 120 (assuming 120 units/kW/year)

  • Required area = capacity × 100 sqft/kW

  • If required area > available roof, cap capacity to roof_area / 100 and set roof_limited: true


3. estimate_installation_cost

Get installation cost estimate (all-inclusive: panels, inverter, BOP, labor, permits).

Inputs:

  • capacity_kw (number): System capacity (kW)

  • cost_per_kw (number, optional): Cost per kW (₹). Default: ₹62,500

Output: Total cost, cost range (min/max), capacity


4. calculate_subsidy

Look up PM Surya Ghar subsidy using tiered table.

Inputs:

  • capacity_kw (number): System capacity (kW)

Output: Subsidy per kW, total subsidy, tier description

Tiers:

Capacity (kW)

Subsidy (₹/kW)

Category

0–3

18,000

Residential ≤3 kW

3.01–10

15,000

Residential 3–10 kW

10.01–100

12,000

Small Commercial/Industrial

>100

10,000

Large Scale


5. calculate_roi

Calculate ROI metrics: payback period, annual/lifetime savings, and ROI percentage.

Inputs:

  • installation_cost (number): Total cost (₹)

  • subsidy (number): Subsidy amount (₹)

  • monthly_bill (number): Current monthly bill (₹)

Output:

  • Final cost after subsidy

  • Monthly/annual savings

  • Payback period (years)

  • 25-year lifetime savings

  • ROI percentage

Logic:

  • Final cost = installation_cost - subsidy

  • Monthly savings = monthly_bill (assumed fully offset)

  • Annual savings = monthly_savings × 12

  • Payback = final_cost / annual_savings

  • Lifetime (25yr) = annual_savings × 25

  • ROI% = ((lifetime - final_cost) / final_cost) × 100


6. calculate_environmental_impact

Calculate CO2 reduction and equivalent trees saved.

Inputs:

  • capacity_kw (number): System capacity (kW)

Output:

  • Annual energy generation (kWh)

  • CO2 reduction (kg and tonnes)

  • Trees saved (equivalent)

Logic:

  • Annual energy = capacity × 120 × 12 (120 units/kW/year)

  • CO2 reduction = annual_energy × 0.82 kg/kWh

  • Trees saved = CO2_reduction / 21 kg/tree/year


Resources

solar://subsidy-table

PM Surya Ghar subsidy lookup table (JSON).

solar://state-tariffs

State-wise residential electricity tariffs (JSON).

solar://installation-costs

Default cost per kW and regional multipliers (JSON).


Prompts

generate_homeowner_report

Generate a comprehensive homeowner-friendly solar feasibility report.

Inputs: All tool outputs (irradiance, capacity, cost, subsidy, ROI, environmental)

Output: Plain-English report covering:

  • Feasibility assessment

  • System recommendation (on-grid/off-grid/hybrid)

  • Financial summary with payback period

  • Environmental impact (relatable language)

  • Action items (next steps)

Behavior:

  • Attempts to use OpenAI or Gemini API if keys are configured

  • Falls back to template-based report if no LLM key available


Environment Variables

Available Tools

8 tools
calculate_environmental_impactA

Calculate environmental impact: annual energy generation, CO2 reduction, and trees saved.

ParametersJSON Schema
NameRequiredDescriptionDefault
capacity_kwYesSolar system capacity in kW

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only states what is calculated without disclosing behavioral traits such as assumptions (e.g., default solar irradiance), whether the calculation is deterministic, or if any external data is required. The agent has no information on potential side effects or limitations.

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 a single, concise sentence that front-loads the purpose and lists the key outputs. Every word earns its place; no redundant or vague phrasing is present.

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?

Although the tool is simple with one parameter, the description omits output format details (units for energy/CO2, nature of 'trees saved') and any underlying assumptions. Without an output schema, the agent cannot fully anticipate the response structure, leaving the description partially complete.

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?

The single parameter capacity_kw is fully described in the schema (100% coverage), and the description adds no additional semantics. The baseline is 3, as the schema carries the parameter meaning and the description doesn't augment 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 uses a specific verb ('calculate') with a clear resource ('environmental impact') and enumerates three specific output metrics (annual energy generation, CO2 reduction, trees saved). This distinguishes it from sibling calculators like calculate_roi or calculate_subsidy, which focus on financial metrics.

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 use for environmental impact calculations but provides no explicit guidance on when to prefer this tool over alternatives, nor any exclusions. The agent must infer suitability from the tool name and output list, which is only implicit.

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

calculate_roiB

Calculate ROI metrics: final cost after subsidy, savings, payback period, lifetime savings, ROI %.

ParametersJSON Schema
NameRequiredDescriptionDefault
subsidyYesSubsidy amount in INR
monthly_billYesCurrent monthly electricity bill in INR
system_size_kwNoSystem size in kW for widget display
installation_costYesTotal installation cost in INR
annual_co2_reduction_kgNoAnnual CO2 reduction in kg

TDQS

B3.3/5.0
Behavior2/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 of behavioral disclosure. It lists output metrics but does not state that this is a pure calculation with no side effects, nor does it mention assumptions (e.g., lifetime definition, discount rate), units for 'savings' or 'payback period', or how the metrics are derived. The description stays at the level of intent without exposing operational behavior.

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 a single, focused sentence that front-loads the primary action and enumerates the key outputs. There is no unnecessary information or repetition; every word earns its place.

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?

Given the simplicity of the tool and the richness of the input schema, the description is minimally viable. It lists the outputs, which partially compensates for lacking an output schema, but it does not clarify units for savings/payback period or define 'lifetime'. The description is adequate but leaves some interpretive gaps, particularly for a calculator with optional parameters like system size and CO2 reduction.

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 description coverage is 100%, with every parameter having a clear description and units. The tool description adds no parameter-specific details beyond the schema, but the baseline of 3 applies because the schema already handles parameter semantics adequately.

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's function with a specific verb ('Calculate') and resource ('ROI metrics'), and lists concrete outputs (final cost, savings, payback period, lifetime savings, ROI %). This distinguishes it from sibling tools like calculate_subsidy or calculate_environmental_impact, which target different metrics.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, conditions for use, or contrast with sibling tools. While the purpose is clear, a user could benefit from knowing this is the choice when ROI or payback period is needed, but no such direction is given.

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

calculate_solar_capacityA

Calculate recommended solar system capacity based on monthly bill, tariff, and roof area.

ParametersJSON Schema
NameRequiredDescriptionDefault
monthly_billYesMonthly electricity bill in INR
monthly_unitsNoOptional: monthly consumption in kWh
roof_area_sqftYesUsable roof area in square feet
tariff_per_kwhYesElectricity tariff in INR/kWh

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It clearly indicates a read-only calculation, but does not disclose formula assumptions, output format, or limitations. The word 'recommended' hints at a heuristic, but no further detail is given. This is adequate but not rich.

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 a single concise sentence, front-loaded with the core purpose, and every word earns its place. It avoids unnecessary detail while conveying the essential inputs.

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?

The tool is a simple calculation with no output schema, and all parameters are documented in the schema. The description provides the purpose and inputs but lacks detail on return values, edge cases, or relationship to sibling tools. Adequate for a straightforward tool, but not fully complete.

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 baseline is 3. The description names three of four parameters (monthly bill, tariff, roof area) but omits the optional monthly_units. It adds minimal semantic value beyond the schema, so a 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 uses a specific verb ('Calculate') and resource ('recommended solar system capacity'), clearly distinguishing it from sibling tools that handle irradiance, costs, subsidies, ROI, etc. It leaves no ambiguity about what the tool computes.

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 states clear context: the tool is used to calculate capacity based on monthly bill, tariff, and roof area. It does not explicitly mention alternatives or when-not-to-use, but the inputs imply a specific scenario, making it clear when this tool is appropriate relative to siblings.

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

calculate_subsidyA

Calculate PM Surya Ghar subsidy for a given system capacity using the tiered structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
capacity_kwYesSolar system capacity in kW

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description carries the burden. It discloses that the calculation uses a tiered structure, which hints at the method, but does not explicitly state that the tool is read-only, what the return value looks like, or any limitations (e.g., assumes current scheme rates). For a simple calculator, this is adequate but not highly transparent.

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 a single, front-loaded sentence that wastes no words. It immediately states the action, target, and key detail (tiered structure).

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?

The tool is simple with one parameter and no annotations, but there is no output schema, so the description could specify the return format (e.g., subsidy amount in currency). It is mostly complete for a straightforward calculator, but leaves minor ambiguity about output structure.

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?

The schema already provides full coverage for the single parameter (capacity_kw) with a description and constraints. The tool description adds no additional meaning beyond restating 'system capacity' and referencing the tiered structure. Baseline 3 applies since schema coverage is 100%.

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 uses a specific verb ('Calculate') and clearly identifies the resource ('PM Surya Ghar subsidy') and scope ('given system capacity using the tiered structure'). This distinguishes it from sibling tools like calculate_roi or estimate_installation_cost, making its purpose unambiguous.

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 subsidy calculation based on capacity, but provides no explicit guidance on when to choose this tool over siblings, nor any exclusions or prerequisites. It does not state, for example, that it is the appropriate tool when the user asks for subsidy amounts rather than ROI or installation costs.

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

estimate_installation_costB

Estimate total installation cost for a solar system.

ParametersJSON Schema
NameRequiredDescriptionDefault
capacity_kwYesSolar system capacity in kW
cost_per_kwNoCost per kW in INR

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It does not reveal that cost_per_kw is optional, assume a default value, or clarify what the returned cost includes (e.g., taxes, labor). The behavior beyond the statement is opaque.

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 a single, direct sentence that immediately states the tool's function. There is no redundancy or filler, making it exemplary in conciseness, even though it lacks some contextual details.

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?

For a tool with only two parameters and no output schema, the minimal description is adequate but leaves gaps: it does not mention what the estimated cost represents, whether the cost_per_kw parameter has a default, or the format of the returned value. More context would complete the picture.

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?

The input schema provides 100% description coverage for both parameters, so a baseline score of 3 is appropriate. The description adds the overall purpose but does not elaborate on how parameters interact, such as the implied multiplication of capacity_kw and cost_per_kw.

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 uses the specific verb 'estimate' and clearly names the resource 'total installation cost' for a solar system. This distinguishes it from sibling tools like calculate_capacity or calculate_subsidy, which address other aspects of solar analysis.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or other suitable tools. Given the sibling tools, the agent is left without explicit context for choosing this function.

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

get_assessment_historyA

Retrieve all previously saved solar assessments for a homeowner by phone or email.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailNoEmail address
phoneNoPhone number

TDQS

A3.8/5.0
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 clearly signals a read operation through 'retrieve' and specifies scope ('all previously saved'), but it does not disclose any edge cases such as whether at least one of phone/email is required, what happens when no results exist, or any pagination/ordering behavior. This is adequate but lacks depth.

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 a single, well-structured sentence that conveys the action, target, and scope without any redundant or extraneous words. It is maximally concise while remaining informative.

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 simple tool with two optional parameters and no output schema, the description successfully conveys the tool's purpose and the key lookup dimensions. The phrase 'all previously saved solar assessments' implies a list return. It does not explicitly discuss parameter optionality or combination logic, but these are minor gaps given the tool's simplicity.

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 baseline is 3. The description adds meaningful context by indicating that email and phone are the lookup keys for the homeowner, which goes beyond the schema's bare 'Email address' and 'Phone number' descriptions. However, it does not clarify whether they are alternative or combined filters, which is a minor gap.

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 uses a specific verb ('Retrieve') and clearly identifies the resource ('all previously saved solar assessments') and the lookup method ('by phone or email'). This distinguishes it from sibling tools that handle calculations or irradiance, and it aligns with save_assessment as the read counterpart.

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 looking up past assessments, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions or prerequisites. The context suggests it is for historical retrieval rather than new calculations, but this is left implicit.

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

get_solar_irradianceA

Fetch solar irradiance data for a geographic location using Open-Meteo API. Returns average daily solar radiation in kWh/m².

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYesLatitude in decimal degrees
longitudeYesLongitude in decimal degrees

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the external API (Open-Meteo) and the return unit (kWh/m²), but does not clarify the time period over which the 'average daily' value is calculated, nor does it mention error behavior, rate limits, or other caveats. This is adequate but not fully transparent.

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 two concise sentences that directly state the tool's purpose and return value. There is no redundant content, and key details are front-loaded.

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, the description is nearly complete: it names the data source, specifies inputs implicitly via schema, and provides the return unit. The only notable gap is the ambiguous averaging period for the 'average daily' radiation, which prevents a perfect score.

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 for parameters is 100%, with clear per-parameter descriptions for latitude and longitude. The description adds value by specifying the output format (kWh/m²), but does not need to elaborate on parameter semantics since the schema fully covers them.

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 action ('Fetch') and the resource ('solar irradiance data') along with the geographic context ('for a geographic location'). It distinguishes itself from sibling tools that focus on calculations (e.g., 'calculate_solar_capacity') or saving/retrieving assessments by indicating it retrieves raw data from a specific API.

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: when you need solar irradiance data for a location, before downstream calculations. However, it does not explicitly state when to prefer this over alternatives or mention any exclusions, so the guidance is only implicit.

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

save_assessmentA

Save a solar assessment with homeowner details and calculated results for future reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHomeowner name
emailNoEmail address (at least one of phone or email required)
phoneNoPhone number (at least one of phone or email required)
addressYesProperty address
netCostInrYesNet cost after subsidy in INR
paybackYearsYesPayback period in years
roofAreaSqftYesRoof area in square feet
systemSizeKwYesRecommended system size in kW
tariffPerKwhYesElectricity tariff in INR/kWh
monthlyBillInrYesMonthly electricity bill in INR
annualSavingsInrYesAnnual electricity savings in INR
subsidyAmountInrYesPM Surya Ghar subsidy in INR
installationCostInrYesTotal installation cost in INR
annualCo2ReductionKgYesAnnual CO2 reduction in kg

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic action without mentioning side effects, overwrite behavior, auth requirements, or return value. For a write operation, this is a significant gap.

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 a single, front-loaded sentence with no redundant words. Every phrase contributes to understanding the tool's purpose.

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

Completeness2/5

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

Given 14 parameters, no annotations, and no output schema, the description is too short to cover important context like what is returned, prerequisites (e.g., email/phone requirement), or how saving relates to other tools like get_assessment_history. It leaves the agent without critical operational guidance.

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 baseline is 3. The description adds only a high-level grouping ('homeowner details' and 'calculated results') which provides minimal added meaning beyond the schema's per-parameter descriptions.

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 uses a specific verb ('Save') and a specific resource ('a solar assessment'), clearly stating the action and object. It distinguishes itself from sibling calculation/retrieval tools by focusing on persistence.

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 phrase 'for future reference' implies this tool is for persisting results after calculations, and the sibling set contains no other save tool. However, it does not explicitly state when not to use it or name alternatives.

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

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose: data retrieval, cost estimation, capacity calculation, subsidy calculation, ROI analysis, environmental impact, and assessment persistence. There is no overlap or ambiguity between the tools.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern: get_, estimate_, calculate_, save_. Most calculation tools use 'calculate_' with only one using 'estimate_', which is a minor acceptable deviation. The pattern is clear and predictable.

Tool Count5/5

With exactly 8 tools, the server is well-scoped for a solar assessment domain. Each tool covers a distinct step in the workflow, and the count feels appropriately sized—not bloated or sparse.

Completeness5/5

The tool set covers the full assessment lifecycle: weather data input, cost estimation, capacity planning, subsidy calculation, ROI analysis, environmental impact, and storing/retrieving assessments. No critical operations are missing for the intended purpose.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants to look up solar permitting authorities, estimate solar production via PVWatts, and retrieve irradiance data. It streamlines the creation of solar-aware workflows by integrating industry-standard APIs like NREL.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying PVGIS solar radiation and typical meteorological year data through natural language questions, using tools for monthly irradiation averages and hourly synthetic climate data.
    11
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables solar energy feasibility analysis and ROI calculation for Indian users, including irradiance lookup, capacity estimation, subsidy calculation, and environmental impact assessment.

Latest Blog Posts

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/Prajwal1103-hack/mcp_solor_sathi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server