MCP.Market

DeepPVMapper MCP server

online · 100% uptime
by gabrielkasmi·io.github.gabrielkasmi/deeppvmapper·v0.1.0·36 stars

Open registry of 1.14M+ rooftop-solar detections across France, queryable by natural language.

A91/100grade A
What users say
No reviews yet
Be the first
Safety scan
A91/100

full report

Adoption
Growing

36 stars

Reviews

Write one

Nobody has reviewed DeepPVMapper yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

DeepPVMapper tools (8)

write = sends, deletes, buys or posts
  • aggregate_detection_capacityFree

    Compute the total estimated installed capacity (kWp) and count of detections matching a set of filters — département, commune, capacity range, and cross-validation across sources (cross_validated) or imagery vintages (min_vintages) — plus a quality_summary for the summed sample. Unlike get_department_capacity_stats, which is a fixed pre-computed département-wide aggregate with no other filters, this tool sums a live filtered subset, up to max_rows detections. Example: "installed capacity in Gironde confirmed by at least two sources" -> dpt="33", cross_validated=true. Data quality note: this is a detection dataset, not an exhaustive inventory (estimated recall ~0.6). A missing detection does not mean no PV installation exists there. kwp, surface, tilt and azimuth are model estimates, not surveyed values. Call get_data_quality_reference for the full picture before assessing fitness for a specific use case.

  • get_community_activityFree

    Get a snapshot of ongoing community contribution activity on the map: how many corrections are currently pending moderation, their breakdown by action type (add / modify / delete), and the most recent submissions (timestamp, action, target). Submitted free-text comments are intentionally excluded from this tool. This reflects unmoderated, unverified user activity, not the registry itself — do not present it as confirmed detection data.

  • get_community_activity_in_areaFree

    Find pending, unmoderated community contributions relevant to a specific area, to answer "has anyone flagged anything here that is not in the registry yet?" Two independent filters: dpt finds pending edits/deletions (action=modify/delete) targeting existing detections in that département; a full bounding box (min_lon/min_lat/max_lon/max_lat) finds pending new additions (action=add) whose proposed footprint centroid falls inside it. Combine with get_department_capacity_stats / search_detections / get_detections_in_bbox for the confirmed registry picture, and present this separately and clearly as unverified, pending community input — not confirmed detection data. Free-text comments are never included.

  • get_data_quality_referenceFree

    Return the DeepPVMapper/OpenPVMapper registry's documented data-quality characteristics: estimated detection recall, which fields are model-derived estimates vs. structural/observed fields, the source-encoding table, the recommended confidence threshold, confidence signals, and licensing/liability terms. Call this before advising how much to trust a result for a specific use case (e.g. exploratory research vs. a commercial or regulatory decision) — pair it with the quality_summary attached to search_detections / aggregate_detection_capacity results, which reflects the specific query rather than the registry as a whole.

  • get_department_capacity_statsFree

    Get installed rooftop-PV capacity (total kWp) and system counts for one or all French départements, from the DeepPVMapper/OpenPVMapper registry. This is a fixed, pre-computed department-wide aggregate with no other filters — use aggregate_detection_capacity instead if you need a filtered subset (e.g. only cross-validated detections). Data quality note: this is a detection dataset, not an exhaustive inventory (estimated recall ~0.6). A missing detection does not mean no PV installation exists there. kwp, surface, tilt and azimuth are model estimates, not surveyed values. Call get_data_quality_reference for the full picture before assessing fitness for a specific use case.

  • get_department_yearly_statsFree

    Get yearly system counts and capacity by département, based on first-seen imagery year. Useful for tracking apparent PV deployment growth over time. Data quality note: this is a detection dataset, not an exhaustive inventory (estimated recall ~0.6). A missing detection does not mean no PV installation exists there. kwp, surface, tilt and azimuth are model estimates, not surveyed values. Call get_data_quality_reference for the full picture before assessing fitness for a specific use case.

  • get_detections_in_bboxFree

    Get rooftop-PV detections within a geographic bounding box (WGS84 lon/lat), including footprint geometry. Intended for map-style spatial queries over a small area. Data quality note: this is a detection dataset, not an exhaustive inventory (estimated recall ~0.6). A missing detection does not mean no PV installation exists there. kwp, surface, tilt and azimuth are model estimates, not surveyed values. Call get_data_quality_reference for the full picture before assessing fitness for a specific use case.

  • search_detectionsFree

    Search individual rooftop-PV detections by département, commune (INSEE code), estimated capacity range, and/or cross-validation confidence (min_vintages, cross_validated). Returns a bounded list of detection records plus a quality_summary for the returned sample (use get_detections_in_bbox instead for map/spatial queries with geometry). Data quality note: this is a detection dataset, not an exhaustive inventory (estimated recall ~0.6). A missing detection does not mean no PV installation exists there. kwp, surface, tilt and azimuth are model estimates, not surveyed values. Call get_data_quality_reference for the full picture before assessing fitness for a specific use case.

Public scan report

scanner v0.1.9 · 2026-09-25 · same rubric, same numbers if you re-run it

no findings
  • –Code scanremote-only server, no package to scann/a
  • Live reliabilityremote reachable in 930ms20/20
  • Tool poisoning8 tool descriptions checked15/15
  • Auth qualityopen endpoint, read-only tools10/15
  • Maintenancelast push 0 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 91/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How DeepPVMapper compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
91/100
higher than 85% of 48,255 servers
Tools
8
the typical server has 7
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote server answers 100%
Response time
230 ms
faster than 59% of 30,031 servers
GitHub stars
36
more than 92% of 28,688 servers

What its tools let an agent do: 8 read

Install DeepPVMapper in Claude Code, Cursor or VS Code

claude mcp add --transport http deeppvmapper https://zelhliylrlktnasircwp.supabase.co/functions/v1/mcp/mcp
Add to Cursor

What the publisher says

From the DeepPVMapper repository's README, as published. We do not edit it. Read it on GitHub

DeepPVMapper

Large-scale rooftop PV detection pipeline for France. Classifies IGN aerial tiles with InceptionV3, segments positive patches with FCN/DeepLab, and extracts panel characteristics (surface, tilt, azimuth, installed capacity) via pypvroof.

🗺️ Explore the map and results → 🎮 Try the interactive demo →

Work carried out by Gabriel Kasmi as part of his PhD at Mines Paris-PSL (2020–2024).

MCP Server

DeepPVMapper's detection registry is also exposed as a public MCP (Model Context Protocol) server over Streamable HTTP, so any MCP-compatible client (Claude, etc.) can query the 1.14M+ rooftop-solar detections directly via natural language: search detections, aggregate installed capacity by department, explore an area, track yearly deployment, and check data-quality signals.

  • Live endpoint: https://zelhliylrlktnasircwp.supabase.co/functions/v1/mcp/mcp
  • Server source: supabase/functions/mcp (gh-pages branch)
  • Registry listing: registry.modelcontextprotocol.io — io.github.gabrielkasmi/deeppvmapper

No install required — add the endpoint as a custom connector in any MCP client.

Mapping data

Pre-computed detection results for French departments are available on Zenodo:

Installation

GDAL must be installed system-wide first, then via pip to match the running Python version:

# Ubuntu/Debian
apt-get install -y gdal-bin libgdal-dev libopenjp2-7

pip install "GDAL==$(gdal-config --version)"
pip install -r requirements.txt

GPU required. CUDA 11.8+, 8 GB VRAM minimum.

Data and model weights

Download model weights and runtime data from Zenodo:

Model weights are also available on Hugging Face:

The training dataset (BDAPPV):

Fill in the source paths in config.yml before running:

Usage

python main.py --dpt 06

--count sets tiles per classification batch (default 16 — reduce if OOM):

python main.py --dpt 06 --count 8

--config points to an alternative config file (useful for RunPod deployments):

python main.py --dpt 06 --config /workspace/config_runpod.yml

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

DeepPVMapper: common questions

Is DeepPVMapper MCP server safe?
Yes, by our scan: it is graded A (91/100). Read the DeepPVMapper safety report
How do I install DeepPVMapper?
It runs remotely at zelhliylrlktnasircwp.supabase.co. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
Does DeepPVMapper need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is DeepPVMapper maintained?
The last commit was 40 days ago (2026-09-25). The latest release is v0.1.0.
Is DeepPVMapper up?
100% of our last 28 checks got an answer. We check remote servers about four times a day.
How does DeepPVMapper compare with other MCP servers?
safety score 91/100 (higher than 85% of 48,255 servers); tools 8 (the typical server has 7); tools that change things 0% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.