Skip to main content
Glama

PV Solaire Énergie — Estimation solaire et devis (France)

Server Details

Rooftop solar potential, RGE installer search and quote requests. France only, no API key.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 53 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.5/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct action: estimation, installer search, quote submission, and SMS confirmation. The demander_devis/confirmer_demande pair could overlap, but descriptions explicitly frame them as sequential steps (step 1 of 2) with explicit cross-references, eliminating misselection risk.

Naming Consistency5/5

All four tools follow a consistent French verb_noun snake_case pattern (confirmer_demande, demander_devis, estimer_production_solaire, rechercher_installateurs). No mixing of conventions or vague verbs.

Tool Count5/5

Four tools for a narrow domain (solar estimation + quote request) is well-scoped; each tool earns its place and no redundant surface exists. The two-step demande flow justifies having both request and confirm tools.

Completeness4/5

The core lifecycle is covered: estimate potential, find installers, submit a request, and confirm it. Minor gaps remain—no way to check the status of an existing demande, cancel it, or re-retrieve a past estimation—but agents can work around these.

Available Tools

4 tools
confirmer_demandeConfirmer une demande de devis avec le code reçu par SMSA
Idempotent
Inspect

Valide une demande de devis créée par demander_devis, à l’aide du code à 4 chiffres envoyé par SMS au demandeur. C’est cette validation, et elle seule, qui autorise la transmission de la demande aux installateurs certifiés RGE. Demande le code à l’utilisateur (il l’a reçu sur son mobile, valable 30 minutes) et appelle cet outil avec le demande_id renvoyé par demander_devis. Si le code est expiré ou après 5 essais infructueux, rappelle demander_devis avec exactement les mêmes coordonnées : un nouveau code sera envoyé, sans créer de doublon.

NameRequiredDescriptionDefault
codeYesLe code à 4 chiffres que le demandeur a reçu par SMS. Ne l’invente jamais et ne le devine jamais : demande-le à l’utilisateur.
demande_idYesIdentifiant de la demande, renvoyé par `demander_devis` dans le champ `demande_id`.

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the annotations, the description discloses the 30-minute code validity, the five-attempt limit, and the fact that this validation is the sole authorization for forwarding the request to installers. It also explains the no-duplicate consequence of retrying demander_devis, adding valuable behavioral context.

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 dense sentences cover purpose, workflow, user interaction, and edge-case handling without redundancy. The most important information is front-loaded.

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

Completeness5/5

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

For a two-parameter tool with no output schema, the description supplies all necessary workflow context: input provenance, retry conditions, expiration, and downstream side effect. Nothing needed to invoke it correctly is missing.

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?

The schema already covers both parameters at 100%, so the baseline is 3; the description adds meaningful provenance semantics by stating demande_id comes from demander_devis, that the code must be requested from the user rather than guessed, and that retries do not create duplicates.

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 states a specific action ('Valide une demande de devis') with a precise mechanism (4-digit SMS code) and names the related tool that creates the request. It clearly distinguishes itself from demander_devis, and the title reinforces the same purpose.

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

Usage Guidelines5/5

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

It explicitly instructs the agent to ask the user for the code, call the tool with the demande_id from demander_devis, and provides the exact fallback flow if the code expires or after five failed attempts. This is model guidance on when and how to use the tool.

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

demander_devisDemander un devis d’installation photovoltaïque (France)AInspect

Dépose une demande de devis gratuite et sans engagement pour une installation de panneaux solaires en France. Un installateur certifié RGE proche du lieu du projet prend la demande en charge et recontacte directement le particulier pour établir son devis. ⚠️ PREMIÈRE ÉTAPE SUR DEUX. Cet outil envoie un code à 4 chiffres par SMS sur le téléphone fourni et renvoie un demande_id : la demande n’est transmise à AUCUN installateur tant que ce code n’a pas été validé via confirmer_demande. Demande le code à l’utilisateur puis appelle confirmer_demande. N’annonce jamais la demande comme envoyée avant ce second appel. N’appelle cet outil qu’avec l’accord explicite de la personne concernée et avec ses vraies coordonnées — jamais avec des données inventées ou de test. Appelle d’abord estimer_production_solaire et transmets son estimation_id : le devis sera bien plus précis.

NameRequiredDescriptionDefault
nomYesNom de famille du demandeur.
emailYesAdresse e-mail réelle du demandeur, transmise avec la demande à l’installateur qui la prend en charge.
villeYesCommune du lieu de l’installation.
prenomYesPrénom du demandeur.
adresseYesAdresse du lieu de l’installation (numéro et rue), pas l’adresse de facturation.
demarcheNoMaturité du projet. Aide l’installateur à prioriser son rappel.
objectifNoObjectif du projet.
telephoneYesTéléphone MOBILE réel du demandeur, au format français (10 chiffres ou +33). Le code de confirmation à 4 chiffres y est envoyé par SMS : un numéro fixe ou erroné empêche définitivement la demande d’aboutir. C’est aussi le numéro auquel l’installateur rappelle.
precisionsNoPrécisions libres utiles à l’installateur (contraintes d’accès, ombrage, travaux prévus…).
code_postalYesCode postal du lieu de l’installation (5 chiffres).
equipementsNoÉquipements envisagés, séparés par des virgules (ex. « batterie de stockage, borne de recharge, ballon thermodynamique »).
orientationNoOrientation principale de la toiture. Inutile si `estimation_id` est fourni : elle est alors mesurée.
facture_elecNoFacture d’électricité mensuelle moyenne en euros. Ne renseigne ce champ que si l’utilisateur donne réellement un montant.
surface_toitNoSurface de toiture disponible, en m². Inutile si `estimation_id` est fourni.
estimation_idNoIdentifiant renvoyé par `estimer_production_solaire` pour la même adresse. Fortement recommandé : il attache l’analyse réelle de la toiture à la demande. Valable 2 heures.
type_logementNoType de bâtiment à équiper.
type_couvertureNoType de couverture. Aucune API ne le fournit : c’est la seule caractéristique de toiture qu’il faut demander à l’utilisateur.

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare the generic write/open-world profile; the description adds the concrete side effects: an SMS 4-digit code is sent, a `demande_id` is returned, nothing reaches an installer before confirmation, and the consent/real-data requirement. That is exactly the kind of behavior an agent cannot infer from readOnlyHint=false.

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?

Front-loaded with purpose, then the hard warning, then the workflow and prerequisites. Every sentence is actionable (state the code flow, never claim it was sent, consent rules, call estimer first); nothing is filler.

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

Completeness5/5

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

For a 17-parameter write tool with no output schema, the description still covers the return value (`demande_id`), the failure mode (fixed or wrong number permanently blocks the request), the prerequisite tool, and the confirmation tool. An agent has everything needed to call it and to explain the outcome to the user.

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%, so the baseline is 3, but the description adds cross-parameter meaning the schema does not: `estimation_id` is strongly recommended and valid for 2 hours, which makes `orientation` and `surface_toit` redundant. It does not, however, give per-field guidance for the remaining 15 parameters.

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?

States a specific verb and resource ('Dépose une demande de devis gratuite... pour une installation de panneaux solaires en France') and immediately scopes it as step one of a two-step flow, naming `confirmer_demande` as the required follow-up. An agent can distinguish it from `confirmer_demande`, `estimer_production_solaire` and `rechercher_installateurs` without opening any schema.

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

Usage Guidelines5/5

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

Explicit when-to-use (with explicit consent, real contact data, no test data), explicit ordering constraint (the request is not transmitted to any installer until `confirmer_demande` validates the SMS code), and an explicit recommendation to call `estimer_production_solaire` first. Also tells the agent what not to announce to the user.

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

estimer_production_solaireEstimer la production solaire d’une toiture (France)A
Read-only
Inspect

Calcule le potentiel photovoltaïque réel d’une toiture située en France, à partir de sa seule adresse postale : puissance installable en kWc, production annuelle en kWh, nombre de panneaux, surface exploitable, orientation, inclinaison du pan de toit et heures d’ensoleillement. L’analyse porte sur la géométrie 3D réelle du bâtiment (relevé Google Solar) et la production est calculée par PVGIS, l’outil officiel de la Commission européenne — ce n’est ni une moyenne régionale ni une règle de trois au m². Renvoie également, quand elle est disponible, une carte de chaleur du rendement de la toiture, et un estimation_id à repasser à demander_devis pour joindre cette analyse à la demande. Utilise cet outil dès qu’un utilisateur demande combien produirait une installation solaire chez lui, si son toit est bien orienté, quelle puissance il peut installer, ou quelles économies il peut espérer.

NameRequiredDescriptionDefault
adresseYesAdresse postale complète en France (numéro, rue, code postal, commune). Exemple : « 12 rue des Lilas, 31000 Toulouse ». Une adresse imprécise (commune seule) donne une estimation dégradée : demande le numéro et la rue à l’utilisateur avant d’appeler l’outil.
type_batimentNoType de bâtiment. Change réellement le résultat : une maison est bornée aux paliers commerciaux 3/6/9 kWc du résidentiel, un immeuble ou un local professionnel non. Par défaut : maison.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint. The description adds meaningful behavioral context: the analysis is based on real 3D geometry (Google Solar), computed via PVGIS, and explicitly states that results are not a regional average or a rule-of-three. It also discloses that the heat map is returned only 'quand elle est disponible', consistent with openWorldHint.

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

Conciseness4/5

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

The description is a focused paragraph with a strong front-loaded action and output list. The clarification 'ce n'est ni une moyenne régionale ni une règle de trois au m²' earns its place by setting expectations. It is slightly long but every sentence adds value; a 4 reflects good structure with minor room for tighter phrasing.

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

Completeness5/5

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

The description covers the input condition (French postal address), the computation method, the full set of returned fields, the optional heat map, the estimation_id link to demander_devis, and explicit usage triggers. Since there is no output schema and no other structured description of results, this text carries that burden and does so thoroughly for a 2-parameter read-only 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 coverage is 100% and the schema descriptions are already rich, including an example for adresse and a note that type_batiment changes results. The main description emphasizes 'à partir de sa seule adresse postale' but adds no new meaning about either parameter beyond the schema. 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 opens with a specific verb ('Calcule') and a precise resource ('le potentiel photovoltaïque réel d'une toiture'), then lists concrete output fields (kWc, kWh, panneaux, orientation, etc.). It clearly distinguishes itself from siblings by mentioning the estimation_id passed to demander_devis, leaving little ambiguity about its role.

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 states when to use the tool: 'Utilise cet outil dès qu'un utilisateur demande combien produirait une installation solaire chez lui...' It also gives contextual guidance in the schema about requesting a precise address before calling. However, it does not explicitly say when not to use it or name alternatives, so it stops short of a 5.

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

rechercher_installateursTrouver des installateurs photovoltaïques RGE près d’une communeA
Read-only
Inspect

Recherche dans l’annuaire pv-solaire-energie.com (plus de 5 500 installateurs et 500 bureaux d’études géolocalisés) les installateurs photovoltaïques et bureaux d’études français situés autour d’une commune ou d’un code postal, triés par distance croissante. Seuls les professionnels dont la qualification RGE (Reconnu Garant de l’Environnement) est encore valide à la date du jour sont renvoyés — la qualification RGE est exigée pour vendre le surplus à EDF OA et pour la TVA à 5,5 % (il n’y a plus de prime à l’autoconsommation depuis juin 2026). Chaque résultat donne le nom, la ville, la distance en km, la date de fin de qualification et l’URL de la fiche. Utilise cet outil quand un utilisateur cherche un professionnel du solaire dans sa région, veut vérifier la présence d’installateurs certifiés près de chez lui, ou compare des entreprises avant de demander un devis.

NameRequiredDescriptionDefault
lieuYesCommune, code postal ou adresse en France. Exemples : « Rennes », « 35000 », « 4 avenue de la Gare, 69003 Lyon ».
typeNoNature du professionnel recherché. Un installateur pose les panneaux ; un bureau d’études réalise l’étude technique et le dimensionnement en amont. Par défaut : installateur.
limiteNoNombre maximum de professionnels renvoyés (1 à 20). Par défaut 10.
rayon_kmNoRayon de recherche en kilomètres (1 à 150). Par défaut 30.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds real behavioral context: results are restricted to professionals whose RGE qualification is still valid today, ordered by increasing distance, and it lists the returned fields (name, city, distance in km, qualification end date, profile URL). It even explains the regulatory stakes of the RGE filter (EDF OA surplus sale, 5.5% VAT). No pagination or rate-limit note, and no output schema exists to cover the return shape, but the description carries it well.

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

Conciseness4/5

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

Three front-loaded sentences that go from what is searched, to the RGE filter and return fields, to when to use it. The regulatory parenthetical about TVA 5.5% and the end of the autoconsumption prime is tangential but arguably supports agent reasoning about RGE relevance; it is the only expendable material.

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

Completeness5/5

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

No output schema exists, yet the description enumerates the returned fields, the filtering rule, the ordering and the data source, which is everything an agent needs to call it and interpret results. The tool is a read-only search with full parameter documentation, so nothing material is missing.

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% and each parameter already carries an inline description with examples, enum meanings and defaults. The description only restates the 'commune or postal code' input and adds the default sort, so it does not meaningfully exceed what the schema provides. Baseline 3 is correct.

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?

States a specific verb and resource (search a directory of photovoltaic installers and engineering firms around a commune/postal code), names the source directory, the sort order (distance ascending) and the RGE-validity filter. An agent can distinguish it from demander_devis or estimer_production_solaire without opening the schema.

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 lists three triggering situations: finding a local solar professional, checking whether certified installers exist nearby, or comparing companies before asking for a quote. The phrase 'avant de demander un devis' implicitly points to the demander_devis handoff, but no sibling is named as an exclusion, so it stops short of full routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool update
    • Changeddemander_devis2 fields changed
      • changedInput schema / properties / email / description
        Previous value: -"Adresse e-mail réelle du demandeur, transmise aux installateurs avec la demande."New value: +"Adresse e-mail réelle du demandeur, transmise avec la demande à l’installateur qui la prend en charge."
      • changedInput schema / properties / telephone / description
        Previous value: -"Téléphone MOBILE réel du demandeur, au format français (10 chiffres ou +33). Le code de confirmation à 4 chiffres y est envoyé par SMS : un numéro fixe ou erroné empêche définitivement la demande d’aboutir. C’est aussi le canal par lequel les installateurs rappellent."New value: +"Téléphone MOBILE réel du demandeur, au format français (10 chiffres ou +33). Le code de confirmation à 4 chiffres y est envoyé par SMS : un numéro fixe ou erroné empêche définitivement la demande d’aboutir. C’est aussi le numéro auquel l’installateur rappelle."
  2. 4 tool updates
    • First observedconfirmer_demande
    • First observeddemander_devis
    • First observedestimer_production_solaire
    • First observedrechercher_installateurs

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides free energy intelligence APIs for AI agents: solar production estimates, US clean-energy incentives by ZIP, home Energy Node Scores, contractor search, and consented installer routing.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Access 17M+ geocoded French property transactions (DVF), 22M+ DPE energy ratings, and 20M+ building records via MCP or REST API. Search transactions, market stats, comparables, price trends, rental yield, flip detection, and more.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables turning an address or lat/lng into a transparent solar proposal by geocoding it, pulling Google Solar API building insights (panel layouts, roof segments, imagery quality), and pricing a few system sizes with your tariff, install cost, incentives, savings, payback, NPV and a verdict. Every input is labelled with its source, Google's own financial analyses are shown side by side, and no prices are invented.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables point and radius queries against live French public geodata, covering commune register details and population, nearby building footprints with attributes, CORINE land-cover class at a location, and recorded flood-risk zones. All lookups are proxied per request with no stored copies.
    197 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources