Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,528Letters: 13Defects: 1,322counted just now
teppi

Server definition

Hash
sha256:1aed03d0d044ee1add18d429e6ecc99a6ce208c1a50586afef095b2e6a04c226
What it is
What a remote MCP server returned when asked what it offers: 8 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "cross_validated": { "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.", "type": "boolean" }, "dpt": { "description": "French département code, e.g. \"33\".", "type": "string" }, "insee": { "description": "INSEE commune code.", "type": "string" }, "max_kwp": { "description": "Maximum estimated installed capacity, in kWp.", "type": "number" }, "max_rows": { "default": 5000, "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 — increase max_rows or narrow the filters (e.g. add dpt or insee) for an exact total.", "exclusiveMinimum": 0, "maximum": 20000, "type": "integer" }, "min_kwp": { "description": "Minimum estimated installed capacity, in kWp.", "type": "number" }, "min_vintages": { "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, "maximum": 9007199254740991, "type": "integer" }, "quality_filter": { "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.", "type": "boolean" } }, "required": [ "quality_filter", "max_rows" ], "type": "object" }, "name": "aggregate_detection_capacity", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "recent_limit": { "default": 15, "description": "How many of the most recent pending contributions to list.", "exclusiveMinimum": 0, "maximum": 50, "type": "integer" } }, "required": [ "recent_limit" ], "type": "object" }, "name": "get_community_activity", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "dpt": { "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 — use the bbox parameters for those.", "type": "string" }, "max_lat": { "type": "number" }, "max_lon": { "type": "number" }, "min_lat": { "type": "number" }, "min_lon": { "type": "number" }, "recent_limit": { "default": 30, "description": "Maximum number of matching items to return per category.", "exclusiveMinimum": 0, "maximum": 100, "type": "integer" }, "scan_limit": { "default": 500, "description": "How many recent proposed additions (action=add) to scan for a bbox match. Only relevant when all four bbox parameters are given — 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, "maximum": 2000, "type": "integer" } }, "required": [ "scan_limit", "recent_limit" ], "type": "object" }, "name": "get_community_activity_in_area", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": {}, "type": "object" }, "name": "get_data_quality_reference", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "dpt": { "description": "French département code, e.g. \"33\" for Gironde. Omit for all départements.", "type": "string" }, "top_n": { "description": "If set and dpt is omitted, return only the top N départements by installed capacity.", "exclusiveMinimum": 0, "maximum": 96, "type": "integer" } }, "type": "object" }, "name": "get_department_capacity_stats", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "dpt": { "description": "French département code, e.g. \"33\". Omit for all départements.", "type": "string" } }, "type": "object" }, "name": "get_department_yearly_stats", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "max_count": { "default": 100, "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, "maximum": 500, "type": "integer" }, "max_lat": { "type": "number" }, "max_lon": { "type": "number" }, "min_lat": { "type": "number" }, "min_lon": { "type": "number" } }, "required": [ "min_lon", "min_lat", "max_lon", "max_lat", "max_count" ], "type": "object" }, "name": "get_detections_in_bbox", "outputSchema": null }, { "description": "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.", "inputSchema": { "$schema": "https://json-schema.org/draft/2020-12/schema", "additionalProperties": false, "properties": { "cross_validated": { "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.", "type": "boolean" }, "dpt": { "description": "French département code, e.g. \"33\".", "type": "string" }, "insee": { "description": "INSEE commune code.", "type": "string" }, "limit": { "default": 20, "description": "Maximum number of records to return (max 200).", "exclusiveMinimum": 0, "maximum": 200, "type": "integer" }, "max_kwp": { "description": "Maximum estimated installed capacity, in kWp.", "type": "number" }, "min_kwp": { "description": "Minimum estimated installed capacity, in kWp.", "type": "number" }, "min_vintages": { "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, "maximum": 9007199254740991, "type": "integer" }, "quality_filter": { "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.", "type": "boolean" } }, "required": [ "quality_filter", "limit" ], "type": "object" }, "name": "search_detections", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:1aed03d0d044ee1add18d429e6ecc99a6ce208c1a50586afef095b2e6a04c226 | sha256sum