MCPサーバー

DeepPVMapper

io.github.gabrielkasmi/deeppvmapper

このMCPでできること

Queries and aggregates a French registry of rooftop solar detections, including locations, estimated capacity, imagery validation, and data-quality metrics.

aggregate_detection_capacity
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['quality_filter', 'max_rows'], 'properties': {'dpt': {'type': 'string', 'description': 'French département code, e.g. "33".'}, 'insee': {'type': 'string', 'description': 'INSEE commune code.'}, 'max_kwp': {'type': 'number', 'description': 'Maximum estimated installed capacity, in kWp.'}, 'min_kwp': {'type': 'number', 'description': 'Minimum estimated installed capacity, in kWp.'}, 'max_rows': {'type': 'integer', 'default': 5000, 'maximum': 20000, 'description': 'Cap on the number of matching detection rows fetched to compute the capacity sum. If the true match count exceeds this, total_kwp is a partial lower bound and `truncated` is true â\x80\x94 increase max_rows or narrow the filters (e.g. add dpt or insee) for an exact total.', 'exclusiveMinimum': 0}, 'min_vintages': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Minimum number of distinct imagery vintages (years) the installation was independently detected in. Use 2+ as a persistence/confidence signal, since a one-off detection in a single vintage is more likely to be a transient artifact.', 'exclusiveMinimum': 0}, 'quality_filter': {'type': 'boolean', 'default': True, 'description': 'If true (default), only include detections with frpv_proba >= 0.1, the threshold recommended in the data contract for a good precision/recall trade-off.'}, 'cross_validated': {'type': 'boolean', 'description': 'If true, only include detections confirmed by at least two independent sources (e.g. the automated DeepPVMapper pipeline plus OpenStreetMap or the FRPV reference dataset), not just a single pipeline. This is a stronger confidence signal than min_vintages.'}}, 'additionalProperties': False}
get_community_activity
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['recent_limit'], 'properties': {'recent_limit': {'type': 'integer', 'default': 15, 'maximum': 50, 'description': 'How many of the most recent pending contributions to list.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
get_community_activity_in_area
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['scan_limit', 'recent_limit'], 'properties': {'dpt': {'type': 'string', 'description': 'Filter pending edits/deletions of EXISTING detections (action=modify or delete) to this département. Does not apply to proposed new additions (action=add), which have no département recorded on the pending item itself â\x80\x94 use the bbox parameters for those.'}, 'max_lat': {'type': 'number'}, 'max_lon': {'type': 'number'}, 'min_lat': {'type': 'number'}, 'min_lon': {'type': 'number'}, 'scan_limit': {'type': 'integer', 'default': 500, 'maximum': 2000, 'description': 'How many recent proposed additions (action=add) to scan for a bbox match. Only relevant when all four bbox parameters are given â\x80\x94 there is no server-side spatial index on pending items, so matching is done by fetching this many of the most recent ones and checking their centroid against the box.', 'exclusiveMinimum': 0}, 'recent_limit': {'type': 'integer', 'default': 30, 'maximum': 100, 'description': 'Maximum number of matching items to return per category.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
get_data_quality_reference
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
get_department_capacity_stats
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'dpt': {'type': 'string', 'description': 'French département code, e.g. "33" for Gironde. Omit for all départements.'}, 'top_n': {'type': 'integer', 'maximum': 96, 'description': 'If set and dpt is omitted, return only the top N départements by installed capacity.', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
get_department_yearly_stats
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'dpt': {'type': 'string', 'description': 'French département code, e.g. "33". Omit for all départements.'}}, 'additionalProperties': False}
get_detections_in_bbox
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['min_lon', 'min_lat', 'max_lon', 'max_lat', 'max_count'], 'properties': {'max_lat': {'type': 'number'}, 'max_lon': {'type': 'number'}, 'min_lat': {'type': 'number'}, 'min_lon': {'type': 'number'}, 'max_count': {'type': 'integer', 'default': 100, 'maximum': 500, 'description': 'Maximum number of detections to return (max 500 here; the underlying API defaults to 2000, capped lower to keep responses manageable for an LLM).', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
search_detections
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.
入力スキーマ
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['quality_filter', 'limit'], 'properties': {'dpt': {'type': 'string', 'description': 'French département code, e.g. "33".'}, 'insee': {'type': 'string', 'description': 'INSEE commune code.'}, 'limit': {'type': 'integer', 'default': 20, 'maximum': 200, 'description': 'Maximum number of records to return (max 200).', 'exclusiveMinimum': 0}, 'max_kwp': {'type': 'number', 'description': 'Maximum estimated installed capacity, in kWp.'}, 'min_kwp': {'type': 'number', 'description': 'Minimum estimated installed capacity, in kWp.'}, 'min_vintages': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Minimum number of distinct imagery vintages (years) the installation was independently detected in. Use 2+ as a persistence/confidence signal, since a one-off detection in a single vintage is more likely to be a transient artifact.', 'exclusiveMinimum': 0}, 'quality_filter': {'type': 'boolean', 'default': True, 'description': 'If true (default), only include detections with frpv_proba >= 0.1, the threshold recommended in the data contract for a good precision/recall trade-off.'}, 'cross_validated': {'type': 'boolean', 'description': 'If true, only include detections confirmed by at least two independent sources (e.g. the automated DeepPVMapper pipeline plus OpenStreetMap or the FRPV reference dataset), not just a single pipeline. This is a stronger confidence signal than min_vintages.'}}, 'additionalProperties': False}
追加
get_community_activity_in_area
2026年9月26日2:40
追加
get_community_activity
2026年9月26日2:40
追加
get_detections_in_bbox
2026年9月26日2:40
追加
aggregate_detection_capacity
2026年9月26日2:40
追加
search_detections
2026年9月26日2:40
追加
get_department_yearly_stats
2026年9月26日2:40
追加
get_department_capacity_stats
2026年9月26日2:40
追加
get_data_quality_reference
2026年9月26日2:40

UK Environmental Intelligence MCP Server from MCPBundles

com.mcpbundles/uk-environmental-intelligence

Provides UK environmental intelligence covering flood warnings, river and groundwater readings, bathing water quality, ecology ob…

Meteoswiss

io.github.pipeworx-io/meteoswiss

Discovers and searches Swiss weather stations and federal geospatial datasets from MeteoSwiss and swisstopo, with links to data a…

Global Forest Watch

io.github.pipeworx-io/global-forest-watch

Browses and queries Global Forest Watch datasets covering forest loss and gain, alerts, fires, carbon, protected areas and relate…

Global Fishing Watch

io.github.pipeworx-io/global-fishing-watch

Searches Global Fishing Watch vessel identities and AIS-derived events, and aggregates apparent fishing effort by location, date,…

Smarter Weather

io.github.smarterweather/weather

Provides weather forecasts, observations, alerts, air quality, climate data, severe-weather analysis, maps, and gridded meteorolo…

DeepMap AI -- Earth Grounding

com.deepmapai/earth-grounding

Provides evidence-backed, location-specific information on water availability, ground stability, seismic and space-weather hazard…

Atlas Data Exchange

com.atlasipholdingsllc.app/atlas-data-exchange

Discovers, samples, evaluates, purchases, and monitors spatial datasets covering infrastructure, hazards, logistics, commodities,…

MAD Synapse · World

art.maddegen.agent/synapse-world

Provides geocoding, weather, exchange rates, holidays, time-zone conversion, astronomical data, country facts, and earthquake inf…