ShowMeOnMap
Was dieses MCP kann
Builds and edits shareable maps from natural-language requests, supports geospatial layers and filters, performs spatial analysis, and exports map or layer data.
Tools
Eingabeschema
{'type': 'object', 'required': ['map_id', 'id', 'coords'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Stable id for this annotation — caller-supplied.'}, 'color': {'type': 'string', 'minLength': 1, 'description': 'Optional CSS color for the marker + label.'}, 'label': {'type': 'string', 'description': 'Optional text rendered at the point.'}, 'coords': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 2, 'minItems': 2, 'description': '[lng, lat] in WGS84.'}, 'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layer_a_id', 'layer_b_id'], 'properties': {'mode': {'type': 'string', 'const': 'bivariate', 'default': 'bivariate'}, 'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'layer_a_id': {'type': 'string', 'minLength': 1}, 'layer_b_id': {'type': 'string', 'minLength': 1}, 'new_layer_id': {'type': 'string'}, 'value_field_a': {'type': 'string'}, 'value_field_b': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerPlan'], 'properties': {'intent': {'enum': ['primary-data', 'context-overlay', 'reference-boundary', 'annotation', 'comparison', 'other'], 'type': 'string', 'description': 'Optional. Which mental model is this add_layer operating under? "primary-data" = the layer the user actually asked to see; "context-overlay" = supporting data layered on top of a primary; "reference-boundary" = admin/geo boundary used as a backdrop; "annotation" = caller-placed callout / pin layer; "comparison" = a layer added to compare against another; "other" = none of the above.'}, 'map_id': {'type': 'string', 'minLength': 1, 'description': 'map_id from a prior build_map call'}, 'layerPlan': {'type': 'object', 'description': 'Full LayerPlan object. Must include id, title, source, viz, geometry.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'minLength': 1, 'description': 'Natural language: "coffee shops in Tokyo", "GDP by country", "volcanoes in Indonesia", etc.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'layerId': {'type': 'string', 'minLength': 1}, 'confirmed': {'type': 'boolean', 'description': 'Set to true to confirm this sensitive action. If omitted or false, the call returns a needs_confirmation envelope. Wiping a filter chain is recoverable via undo, but autonomous agents lack a UI surface to confirm intent.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layer_a_id', 'layer_b_id'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'layer_a_id': {'type': 'string', 'minLength': 1}, 'layer_b_id': {'type': 'string', 'minLength': 1}, 'value_field_a': {'type': 'string'}, 'value_field_b': {'type': 'string'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id'], 'properties': {'format': {'enum': ['png', 'jpeg', 'pdf'], 'type': 'string', 'default': 'png'}, 'legend': {'type': 'boolean', 'default': True}, 'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layer_id', 'format'], 'properties': {'format': {'enum': ['csv', 'geojson'], 'type': 'string'}, 'map_id': {'type': 'string', 'minLength': 1}, 'layer_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId', 'predicate'], 'properties': {'append': {'type': 'boolean', 'description': "Default true. false replaces the layer's existing filter chain."}, 'intent': {'enum': ['narrow', 'isolate-outliers', 'compare-subset', 'preview-data', 'other'], 'type': 'string', 'description': 'Optional. Which mental model is this filter operating under? "narrow" = generic shrink-the-set; "isolate-outliers" = pull out anomalies for inspection; "compare-subset" = pre-step before a side-by-side compare; "preview-data" = exploratory peek; "other" = none of the above.'}, 'map_id': {'type': 'string', 'minLength': 1}, 'layerId': {'type': 'string', 'minLength': 1, 'description': 'id of the layer to filter'}, 'predicate': {'type': 'object', 'description': 'Predicate in the Mongo-shape grammar. Examples: {op:"eq",field:"category",value:"cafe"}, {op:"gt",field:"magnitude",value:5}, {op:"within",geometry:{type:"Polygon",coordinates:[...]}}, {op:"and",children:[...]}. See docs/superpowers/specs/2026-04-17-workspace-ops-log-design.md §6.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId', 'areaRef'], 'properties': {'mode': {'enum': ['filter', 'select', 'clip'], 'type': 'string', 'description': 'filter (default): hide features outside, reversible. select: copy matches into a new layer. clip: new layer with geometry trimmed at the boundary.'}, 'map_id': {'type': 'string', 'minLength': 1}, 'areaRef': {'oneOf': [{'type': 'object', 'required': ['kind', 'name'], 'properties': {'kind': {'type': 'string', 'const': 'place'}, 'name': {'type': 'string', 'minLength': 1}}}, {'type': 'object', 'required': ['kind', 'street'], 'properties': {'to': {'type': 'string', 'minLength': 1}, 'from': {'type': 'string', 'minLength': 1}, 'kind': {'type': 'string', 'const': 'corridor'}, 'street': {'type': 'string', 'minLength': 1}, 'bufferMeters': {'type': 'number', 'maximum': 1000, 'minimum': 30}}}, {'type': 'object', 'required': ['kind', 'street', 'cross'], 'properties': {'kind': {'type': 'string', 'const': 'aroundIntersection'}, 'cross': {'type': 'string', 'minLength': 1}, 'street': {'type': 'string', 'minLength': 1}, 'radiusMeters': {'type': 'number', 'maximum': 5000, 'minimum': 50}}}]}, 'layerId': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'properties': {'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'instruction'], 'properties': {'map_id': {'type': 'string', 'minLength': 1, 'description': 'map_id from a prior build_map call'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'instruction': {'type': 'string', 'minLength': 1, 'description': 'e.g., "filter to where magnitude is greater than 5", "change basemap to dark"'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId', 'predicate'], 'properties': {'limit': {'type': 'integer', 'maximum': 1000, 'description': 'Default 100, max 1000. Response sets `truncated:true` when clipped.', 'exclusiveMinimum': 0}, 'map_id': {'type': 'string', 'minLength': 1}, 'layerId': {'type': 'string', 'minLength': 1}, 'predicate': {'type': 'object', 'description': 'Predicate in the Mongo-shape grammar. Examples: {op:"eq",field:"category",value:"cafe"}, {op:"gt",field:"magnitude",value:5}, {op:"within",geometry:{type:"Polygon",coordinates:[...]}}, {op:"and",children:[...]}. See docs/superpowers/specs/2026-04-17-workspace-ops-log-design.md §6.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'annotationId'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'annotationId': {'type': 'string', 'minLength': 1}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'layerId': {'type': 'string', 'minLength': 1}, 'confirmed': {'type': 'boolean', 'description': 'Set to true to confirm this destructive action. If omitted or false, the call returns a needs_confirmation envelope. Layer ids are tombstoned — once removed, the same id cannot be re-added later in this workspace.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'oldLayerId', 'newLayerId'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'newLayerId': {'type': 'string', 'minLength': 1, 'description': 'New id. Must be unique within the workspace.'}, 'oldLayerId': {'type': 'string', 'minLength': 1}}}
Eingabeschema
{'type': 'object', 'required': ['what_i_was_trying', 'what_i_tried', 'where_i_got_stuck'], 'properties': {'map_id': {'type': 'string', 'minLength': 1, 'description': 'Optional. The map_id you were working on, if any.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'what_i_tried': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Which tools / inputs you attempted, in order. Be specific — tool name + key arg shape is ideal.'}, 'what_i_was_trying': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'High-level intent in one or two sentences. e.g. "merge two filtered choropleths into a fused bivariate map".'}, 'where_i_got_stuck': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'The specific failure: what came back, what was missing, why you could not proceed.'}, 'suggested_capability': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional. A new tool, op, or schema field that would have unblocked you.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'layerId'], 'properties': {'color': {'type': 'string', 'minLength': 1, 'description': 'CSS color string: hex (#RRGGBB), rgb/rgba, or named color.'}, 'map_id': {'type': 'string', 'minLength': 1}, 'layerId': {'type': 'string', 'minLength': 1}, 'opacity': {'type': 'number', 'maximum': 1, 'minimum': 0, 'description': '0 (transparent) to 1 (opaque).'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'analysis', 'layerId'], 'properties': {'k': {'type': 'integer', 'maximum': 24, 'minimum': 3, 'description': 'hotspot only: nearest neighbors per feature (default 8).'}, 'stats': {'type': 'array', 'items': {'enum': ['count', 'sum', 'mean', 'min', 'max'], 'type': 'string'}, 'maxItems': 5, 'minItems': 1, 'description': 'zonal only: which statistics to attach per zone (default: count, plus sum/mean/min/max when valueField is set).'}, 'story': {'type': 'boolean', 'description': 'Opt-in: persist the shared map with a 2-step story rail (grounded overview + analysis memo isolating the result layer) — the /m/ link opens with it.'}, 'zones': {'type': 'object', 'required': ['kind'], 'properties': {'kind': {'type': 'string', 'const': 'h3'}, 'resolution': {'type': 'integer', 'maximum': 10, 'minimum': 3}}, 'description': 'zonal only: generate an h3 hex fishnet over the source extent instead of using a zone layer (resolution 3-10, default auto). Provide EXACTLY ONE of zoneLayerId or zones.', 'additionalProperties': False}, 'fields': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'maxItems': 12, 'minItems': 1, 'description': 'join only: which join-layer properties to transfer (default: auto-select up to 12 non-internal properties, overflow reported).'}, 'map_id': {'type': 'string', 'minLength': 1}, 'prefix': {'type': 'string', 'maxLength': 20, 'minLength': 1, 'description': 'join only: prefix for a joined field whose name collides with an existing target property (default "join_").'}, 'layerId': {'type': 'string', 'minLength': 1, 'description': 'The workspace layer to analyze (geojson-backed; the point source for zonal; the point TARGET for join; the styling donor for merge).'}, 'analysis': {'enum': ['hotspot', 'zonal', 'enrich', 'join', 'merge', 'near', 'dissolve'], 'type': 'string', 'description': "Which analysis to run. 'hotspot' = Getis-Ord Gi* with FDR-corrected significance classes. 'zonal' = aggregate a point layer into polygon zones (count/sum/mean/min/max choropleth). 'enrich' = join a US Census indicator onto each feature by containment (tract/county/state). 'join' = spatial join (attribute transfer): each POINT in layerId takes the listed properties from the polygon in joinLayerId that contains it — the aggregate direction (points INTO polygons) is 'zonal'. 'merge' = append layerId + mergeLayerId (same geometry class) into ONE dataset, each row stamped with its source layer. 'near' = each POINT in layerId gains the great-circle distance to (and identity of) its nearest feature in nearLayerId. 'dissolve' = union POLYGONS sharing a dissolveField value into single features (omit the field to dissolve all into one)."}, 'annotate': {'type': 'boolean', 'description': 'Opt-in: place ONE callout annotation at the headline feature (hottest cluster / top zone / highest value). Label text comes only from computed values.'}, 'geoLevel': {'enum': ['state', 'county', 'tract'], 'type': 'string', 'description': 'enrich only: containment geography (default tract). Tract/county fetch only the states the data touches, capped at 3 — filter first or use state for wider layers.'}, 'hexMeters': {'type': 'number', 'maximum': 50000, 'minimum': 100, 'description': 'hotspot density mode only: hex cell spacing in meters (default auto from the data extent).'}, 'indicator': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "enrich only (required there): a US Census ACS preset id (e.g. 'median_household_income', 'median_home_value', 'median_rent') or a raw ACS variable code (e.g. 'B19013_001E')."}, 'nearField': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'near only: property of the nearest feature to copy as its identity (default: first name-like property).'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'sumFields': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'maxItems': 5, 'minItems': 1, 'description': 'dissolve only: numeric properties to SUM per group — skipped values reported, a group with none present carries NO sum.'}, 'valueField': {'type': 'string', 'minLength': 1, 'description': 'Numeric property to analyze. hotspot: omit on point layers for incident-DENSITY mode (hex-binned counts). zonal: omit for count-only aggregation.'}, 'joinLayerId': {'type': 'string', 'minLength': 1, 'description': 'join only (required there): the POLYGON layer providing the attributes.'}, 'nearLayerId': {'type': 'string', 'minLength': 1, 'description': "near only (required there): the POINT layer to search for each target point's nearest neighbor."}, 'sourceField': {'type': 'string', 'maxLength': 40, 'minLength': 1, 'description': 'merge only: name of the per-row provenance column naming each row\'s source layer (default "merge_source"; renamed on collision, reported).'}, 'zoneLayerId': {'type': 'string', 'minLength': 1, 'description': 'zonal only: an existing polygon layer to aggregate into. Provide EXACTLY ONE of zoneLayerId or zones.'}, 'maxDistanceM': {'type': 'number', 'maximum': 20000000, 'minimum': 1, 'description': 'near only: search radius in meters — a point whose nearest neighbor is farther carries NO near fields (reported).'}, 'mergeLayerId': {'type': 'string', 'minLength': 1, 'description': 'merge only (required there): the second layer — same geometry class (point/line/polygon) as layerId.'}, 'dissolveField': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'dissolve only: group-by property (omit = dissolve ALL into one footprint); missing values form their own "(no value)" group.'}}}
Eingabeschema
{'type': 'object', 'required': ['workflow_id'], 'properties': {'batch': {'type': 'object', 'required': ['param', 'values'], 'properties': {'param': {'type': 'string', 'minLength': 1, 'description': 'The ONE declared param to sweep (must not also be in params).'}, 'values': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 20, 'minItems': 2, 'description': '2–20 values; each is a FULL independent billed run.'}}, 'description': 'Batch mode: run the workflow once per value ("each of the 12 districts"). Bills steps × values.'}, 'params': {'type': 'object', 'description': "Values for the workflow's declared parameters.", 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'workflow_id': {'type': 'string', 'minLength': 1, 'description': 'From save_workflow or list_workflows.'}}}
Eingabeschema
{'type': 'object', 'required': ['name', 'steps'], 'properties': {'name': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Workflow name.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['instruction'], 'properties': {'instruction': {'type': 'string', 'maxLength': 4000, 'minLength': 1}}}, 'maxItems': 12, 'minItems': 1, 'description': 'Ordered NL instructions. Step 1 builds the map; later steps mutate it. Wrap values in {braces} to declare parameters.'}, 'params': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'label', 'kind'], 'properties': {'kind': {'enum': ['place', 'number', 'text', 'timerange'], 'type': 'string'}, 'name': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'label': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'default': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 8, 'description': 'Declared parameters — every {slot} used in steps must be declared here.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'sourceLayerId', 'newLayerId', 'selection'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'selection': {'type': 'object', 'required': ['type', 'coordinates'], 'properties': {'type': {'enum': ['Polygon', 'MultiPolygon'], 'type': 'string'}, 'coordinates': {'type': 'array', 'items': {}}}, 'description': 'GeoJSON Polygon or MultiPolygon in [lng,lat] coordinate order.'}, 'newLayerId': {'type': 'string', 'minLength': 1, 'description': 'Id for the new layer. Must not already be in use in this workspace.'}, 'inheritStyle': {'type': 'boolean', 'description': 'Default true. false emits a new layer with minimal default styling.'}, 'sourceLayerId': {'type': 'string', 'minLength': 1}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'camera'], 'properties': {'camera': {'oneOf': [{'type': 'object', 'required': ['mode', 'bounds'], 'properties': {'mode': {'type': 'string', 'const': 'fitBounds'}, 'bounds': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 4, 'minItems': 4, 'description': '[west, south, east, north] bbox in WGS84 degrees.'}, 'padding': {'type': 'number', 'minimum': 0, 'description': 'Pixel padding around the bbox. Default is the renderer default.'}, 'animateMs': {'type': 'number', 'minimum': 0, 'description': 'Animation duration in ms. 0 = instant jump.'}}}, {'type': 'object', 'required': ['mode', 'center', 'zoom'], 'properties': {'mode': {'type': 'string', 'const': 'flyTo'}, 'zoom': {'type': 'number'}, 'pitch': {'type': 'number', 'description': 'Tilt in degrees, 0-60.'}, 'center': {'type': 'array', 'items': {'type': 'number'}, 'maxItems': 2, 'minItems': 2, 'description': '[lng, lat] in WGS84.'}, 'bearing': {'type': 'number', 'description': 'Rotation in degrees, 0-360.'}, 'animateMs': {'type': 'number', 'minimum': 0, 'description': 'Animation duration in ms. 0 = instant jump.'}}}]}, 'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'field', 'rangeStart', 'rangeEnd'], 'properties': {'field': {'type': 'string', 'minLength': 1, 'description': 'Feature property carrying the time value (e.g. "date", "year", "timestamp").'}, 'format': {'enum': ['unix_ms', 'iso', 'integer'], 'type': 'string', 'description': 'How rangeStart/rangeEnd encode time. Default: unix_ms at render time.'}, 'map_id': {'type': 'string', 'minLength': 1}, 'rangeEnd': {'type': 'number', 'description': 'Inclusive upper bound of the visible window.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}, 'rangeStart': {'type': 'number', 'description': 'Inclusive lower bound of the visible window.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id', 'name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Checkpoint label, e.g. "before EV layer added" or "v1.0".'}, 'map_id': {'type': 'string', 'minLength': 1}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Eingabeschema
{'type': 'object', 'required': ['map_id'], 'properties': {'map_id': {'type': 'string', 'minLength': 1}, 'confirmed': {'type': 'boolean', 'description': 'Set to true to confirm this sensitive action. If omitted or false, the call returns a needs_confirmation envelope. Autonomous undo without user intent is a footgun — an agent that decides to "fix" something can erase prior work.'}, 'rationale': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'Optional short label (≤300 chars) for the map edit history, e.g. "add wildfire layer". Omit it to send nothing beyond the tool arguments.'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
SupplyGraph.AI Data
Provides China-focused location, surrounding-area, company, industry-chain, property, population, retail, and regional business i…
Microburbs Australian Property Data
Provides Australian property, suburb, valuation, sales, rental, zoning, school, risk, geospatial, and census statistics.
UK Environmental Intelligence MCP Server from MCPBundles
Provides UK environmental intelligence covering flood warnings, river and groundwater readings, bathing water quality, ecology ob…
Ca Dmv
Provides California DMV data on vehicle and EV registrations, driver licenses, DMV offices, forms, and insurer NAIC codes.
Adsb
Provides live ADS-B aircraft positions, nearby-aircraft searches, callsign and airframe tracking, and military or government airc…
Arcgis Houston
Provides access to Houston, Texas ArcGIS geospatial data, including layer schemas and filtered feature or map-layer queries.
Arcgis Salem
Provides access to Salem, Oregon open geospatial data through ArcGIS layer schema inspection and attribute or geometry queries.
Arcgis Eastbatonrouge
Provides access to East Baton Rouge Parish, Louisiana ArcGIS geospatial data, including layer schemas and filtered feature or map…