Skip to main content
Glama
n3m1

Solematica

by n3m1

@solematica/mcp-server

npm version License: MIT MCP Node.js Solematica

MCP (Model Context Protocol) server for Solematica — solar estimates, provider comparison and energy data for Italy.

This server enables AI assistants like Claude, Cursor, Windsurf, Kiro and other MCP-compatible clients to analyze solar potential, compare photovoltaic providers, check energy prices and search energy-related articles for the Italian market.

Tools

Tool

Description

Auth

stima_solare

Generate a full solar estimate for an Italian address — production, savings, ROI, panel sizing

API key

info_tetto

Satellite roof analysis via Google Solar API — surface, orientation, segments, panel potential

Free

confronta_provider

Compare 11 Italian solar providers — prices, components, warranties, transparency index

Free

dettaglio_provider

Full provider detail — accessories (heat pumps, EV chargers, boilers), contacts, financing

Free

prezzi_energia

Current Italian energy prices (PUN/ARERA) with update date

Free

cerca_articoli

Search Solematica blog articles by category or keyword

Free

Related MCP server: SwitchAI

Quick Start

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "solematica": {
      "command": "npx",
      "args": ["@solematica/mcp-server"],
      "env": {
        "SOLEMATICA_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code

claude mcp add solematica npx @solematica/mcp-server

Cursor

Add to your .cursor/mcp.json:

{
  "mcpServers": {
    "solematica": {
      "command": "npx",
      "args": ["@solematica/mcp-server"],
      "env": {
        "SOLEMATICA_API_KEY": "your-api-key"
      }
    }
  }
}

Windsurf

Add to your ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "solematica": {
      "command": "npx",
      "args": ["@solematica/mcp-server"],
      "env": {
        "SOLEMATICA_API_KEY": "your-api-key"
      }
    }
  }
}

Other MCP Clients

Any MCP-compatible client can use this server via stdio transport:

npx @solematica/mcp-server

Authentication

  • API key is only required for stima_solare (consumes credits per estimate)

  • All other tools are free and public — no API key needed

  • Get an API key by registering as a partner at solematica.it/partner

Environment Variables

Variable

Required

Default

Description

SOLEMATICA_API_KEY

Only for stima_solare

Your API key for authenticated endpoints

SOLEMATICA_API_URL

No

https://api.solematica.it/api/v1

API base URL (for self-hosted or testing)

Tool Details

stima_solare

Generates a complete solar estimate for an Italian address using Google Solar API + PVGIS data.

Input:

  • indirizzo (required) — Full Italian address (e.g. "Via Roma 1, 20100 Milano MI")

  • consumo_annuo_kwh — Annual electricity consumption in kWh (default: 3500)

  • tipo_abitazione — Building type: indipendente, bifamiliare, schiera, condominio

  • superficie_tetto_mq — Roof surface in sqm (auto-calculated from satellite if omitted)

  • orientamento — Roof orientation: nord, sud, est, ovest

Returns: kWp sizing, panel count, annual production, monthly distribution, savings, ROI, CO2 avoided, cost estimate.

info_tetto

Analyzes a roof using Google Solar API satellite data.

Input:

  • lat (required) — Latitude

  • lng (required) — Longitude

Returns: Roof surface, usable area, orientation, roof segments, max panel count, sunshine hours.

confronta_provider

Lists all active Italian solar providers with comparison data. See the full provider comparison on Solematica.

Returns: Array of providers with name, price (3 kWp), panel brand, inverter brand, warranty, transparency index (1-3), and accessory services availability (heat pump, EV charger, boiler).

dettaglio_provider

Full detail for a specific provider.

Input:

  • slug (required) — Provider slug: enel, iren, plenitude, otovo, eon, hera, a2a, edison, engie, sorgenia, bluenergy

Returns: All comparison data plus: description, phone, headquarters, founding year, financing details, accessory service details with URLs.

prezzi_energia

Current Italian energy prices from the Solematica database, updated monthly from ARERA and GME.

Returns: Self-consumption price (EUR/kWh), SSP price, cost per kWp range, battery cost per kWh, last update date.

cerca_articoli

Search the Solematica blog for energy-related articles.

Input:

  • categoria — Filter by category (e.g. fotovoltaico, incentivi, risparmio)

  • limit — Max results (default: 10, max: 50)

Returns: Article list with title, slug, category, date, description, and full URL.

Examples

Ask Claude:

  • "Quanto produrrebbe un impianto fotovoltaico in Via Garibaldi 15, Torino?"

  • "Confronta le offerte fotovoltaico di Enel e Iren"

  • "Quali provider offrono anche la pompa di calore?"

  • "Qual e il prezzo corrente dell'energia in Italia?"

  • "Cerca articoli sugli incentivi fotovoltaico 2026"

License

MIT — see LICENSE file.

Author

SolematicaSoloweb SRL

Available Tools

6 tools
cerca_articoliB

Cerca articoli nel blog di Solematica per categoria o keyword. Restituisce titolo, slug, categoria, data e meta description. Non richiede API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoriaNoFiltro per categoria (es. 'fotovoltaico', 'incentivi', 'risparmio')
limitNoNumero massimo di risultati (default 10, max 50)

TDQS

B3.4/5.0
Behavior4/5

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

Discloses return fields (title, slug, category, date, meta description) and authentication requirements (no API key) since no annotations exist.

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?

Three efficient sentences: action, return values, auth requirements. No fluff.

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?

Compensates well for missing output schema by enumerating return fields; adequate for simple 2-parameter tool.

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

Parameters2/5

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

Description mentions 'keyword' filtering but schema only provides 'categoria' parameter, creating potential confusion about capabilities.

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

Purpose4/5

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

Clearly states it searches Solematica blog articles and distinguishes from utility-oriented siblings (provider comparison, solar estimates), though mentions 'keyword' search not reflected in schema.

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 on when to use versus siblings or content retrieval alternatives.

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

confronta_providerA

Restituisce il confronto aggiornato delle offerte fotovoltaico dei principali operatori italiani (Enel, Iren, Plenitude, Otovo, E.ON, Hera, ecc.). Include prezzi, brand componenti, garanzie, finanziamento e indice di trasparenza. Non richiede API key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Discloses data freshness ('aggiornato') and auth requirements ('Non richiede API key') in absence of annotations, though omits rate limits or caching details.

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 dense sentences covering scope, data fields, and auth; no redundancy or filler content.

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?

Adequately compensates for missing output schema by enumerating return data points (prezzi, brand, garanzie), sufficient for simple parameterless tool.

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?

Zero-parameter tool meets baseline expectation; description appropriately silent on parameters since schema is empty.

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?

Specific verb (restituisce/confronto) and resource (offerte fotovoltaico) with explicit differentiation from sibling 'dettaglio_provider' via multi-operator comparison scope.

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?

Usage is implied by the comparison framing vs sibling tools, but lacks explicit when/when-not guidance or alternative selection criteria.

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

dettaglio_providerA

Restituisce la scheda completa di un operatore fotovoltaico italiano: prezzi, componenti, garanzia, finanziamento, servizi accessori (pompa di calore, wallbox, caldaia), contatti e descrizione. Non richiede API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesSlug del provider (es. 'iren', 'enel', 'plenitude', 'otovo', 'eon', 'hera', 'a2a', 'edison', 'engie', 'sorgenia', 'bluenergy')

TDQS

A4/5.0
Behavior4/5

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

Discloses 'Non richiede API key' and enumerates returned data fields (prezzi, componenti, garanzia), compensating for missing annotations and output schema.

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 compact sentences: first front-loaded with complete data taxonomy, second notes auth requirement. 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?

Without output schema, comprehensively lists return data categories (finanziamento, servizi accessori, contatti) providing sufficient invocation context.

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 has 100% coverage with examples; description adds no parameter detail but meets baseline since structured documentation is complete.

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?

Specific verb (restituisce) + resource (scheda completa operatore fotovoltaico) clearly distinguishes from siblings like confronta_provider (comparison) and cerca_articoli (search).

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?

Implicitly suggests use for single-provider deep dives vs comparison, but lacks explicit when-to-use/when-not-to-use guidance relative to confronta_provider.

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

info_tettoA

Analizza un tetto tramite dati satellitari Google Solar API. Restituisce superficie, orientamento, segmenti del tetto e potenziale per pannelli solari. Non richiede API key.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYesLatitudine (es. 45.464)
lngYesLongitudine (es. 9.190)

TDQS

A3.6/5.0
Behavior4/5

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

Discloses data source (Google Solar API), authentication requirements (no API key needed), and return values, compensating for lack of annotations and output schema.

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?

Three tight sentences: action, returns, and auth requirements. Front-loaded with specific verb and no filler.

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?

Adequately covers tool behavior and return structure given simple input schema and absence of output schema, though rate limits or error scenarios are not mentioned.

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 has 100% description coverage with examples; description adds no parameter-specific semantics but meets baseline given high schema quality.

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

Purpose4/5

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

Clearly states the tool analyzes roofs using Google Solar satellite data and lists specific outputs (surface, orientation, segments, solar potential), distinguishing it from generic solar tools.

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 explicit guidance on when to use this versus sibling 'stima_solare' or other alternatives; usage must be inferred from output description.

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

prezzi_energiaA

Restituisce i prezzi correnti dell'energia elettrica in Italia (PUN, ARERA) con data di aggiornamento. Utile per calcoli di risparmio e confronti. Non richiede API key.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Discloses authentication requirements ('Non richiede API key') and output metadata ('con data di aggiornamento'), but omits rate limits, caching behavior, or real-time vs delayed data details.

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 well-structured sentences with zero fluff: immediate action statement followed by use case and auth note.

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?

Adequately covers simple retrieval scope by specifying geographic scope (Italia), price types (PUN/ARERA), and temporal metadata despite lack of output schema.

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?

Zero-parameter tool meets baseline; description correctly implies no configuration needed via 'Non richiede API key' and absence of parameter mentions.

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

Purpose4/5

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

Specific verb ('restituisce') and resource ('prezzi correnti dell'energia elettrica'), with technical distinctions (PUN, ARERA) that differentiate it from sibling provider comparison tools.

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?

Implies usage context ('Utile per calcoli di risparmio e confronti') but lacks explicit when-not-to-use guidance or contrast with 'confronta_provider'/'dettaglio_provider'.

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

stima_solareA

Genera una stima del potenziale fotovoltaico per un indirizzo in Italia. Analizza il tetto via satellite, calcola produzione, risparmio, ROI e dimensionamento ottimale. Richiede API key con crediti.

ParametersJSON Schema
NameRequiredDescriptionDefault
indirizzoYesIndirizzo completo in Italia (es. 'Via Roma 1, 20100 Milano MI')
consumo_annuo_kwhNoConsumo elettrico annuo in kWh (default 3500)
tipo_abitazioneNoTipo di abitazione
superficie_tetto_mqNoSuperficie tetto in mq (opzionale, calcolata da satellite se omessa)
orientamentoNoOrientamento tetto: nord, sud, est, ovest (opzionale)

TDQS

A4/5.0
Behavior4/5

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

Discloses critical requirements (API key with credits) and methodology (satellite analysis) that schema doesn't cover; no annotations provided to contradict.

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?

Three well-structured sentences: purpose, capabilities/methodology, and requirements—every sentence earns its place with 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?

Lists calculated outputs (production, savings, ROI, sizing) compensating for missing output schema; could briefly mention output format/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?

Schema description coverage is 100%, establishing baseline 3; description mentions 'indirizzo' contextually but doesn't need to elaborate given comprehensive schema.

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?

Clear specific action (estimates PV potential) with resource (Italian address) and distinguishes from siblings like info_tetto or prezzi_energia by mentioning satellite analysis and financial calculations.

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?

Usage is implied by the specific domain (solar estimation vs siblings for articles/providers/energy prices), but lacks explicit when/when-not guidance or comparison with info_tetto.

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

TDQS

A3.8/5.0
Disambiguation4/5

Most tools serve distinct purposes (blog search, provider comparison, energy prices), but info_tetto and stima_solare both analyze roof/satellite data with overlapping outputs (surface, potential), which could cause confusion about which to use for solar analysis.

Naming Consistency4/5

All tools use Italian snake_case, but mix verb-noun (cerca_articoli, confronta_provider) with noun-noun patterns (dettaglio_provider, prezzi_energia, stima_solare, info_tetto). The language and separator are consistent, but the grammatical pattern varies.

Tool Count5/5

Six tools is well-scoped for a solar/PV consulting domain, covering content (blog), market data (providers, prices), and technical analysis (roof data, estimates) without bloat. Each tool earns its place in the workflow.

Completeness4/5

Covers the core solar consultation lifecycle: education (blog), market comparison (providers), technical assessment (roof analysis), and economic calculation (prices, ROI). Minor gap: no explicit list_providers tool to discover available operators before requesting details, though confronta_provider may serve this indirectly.

Maintenance

ActivityInactive
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
    C
    maintenance
    CO2 & Climate Intelligence MCP — live EU ETS carbon price, real-time grid carbon intensity, 50 blockchain carbon footprints (Bitcoin 1513 kWh/tx vs VeChain 0.00024 kWh/tx), VeChain DNV ISO14040/14044 certified. 11 tools.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    AI agent for Italian energy tariff comparison. Analyzes electricity and gas bills, compares 44+ offers from 13 providers, estimates savings with full ARERA regulated cost breakdown
    7
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Provides real-time European and GB electricity grid data via MCP, including generation, prices, carbon intensity, and grid infrastructure.
    44
    48
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Open-source MCP servers exposing US solar data (production, resource, economics, market, forecast) as agent-accessible tools with a consistent data envelope.
    MIT

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/n3m1/solematica-mcp'

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