Comprehensive Model Context Protocol server for managing Home Assistant through AI assistants.
MapMap is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Maps for agents: truck/ADR routing, geocoding, places, matrices, isochrones, EV and fleet planning.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http mapmap-mcp https://mcp.mapmap.ai/mcp
# 2 — ask your agent for something these tools do
# camera_incidents, cheapest_charging_along_route, cheapest_fuel_along_route and 49 more
MapMap costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http mapmap-mcp https://mcp.mapmap.ai/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
52 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Road incidents a TRAFFIC CAMERA SAW and a vision model CONFIRMED, in force now: near a point (near [lat, lon] with radius_m, default 1000, at most 10000), in a bbox [min_lon, min_lat, max_lon, max_lat], or along a route shape (polyline6 from route, corridor buffer_m default 60). Give exactly one. Each record says what it asserts (closed or a speed_override in km/h) on which OSM way
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bbox | array/null | no | [min_lon, min_lat, max_lon, max_lat]. |
| buffer_m | number/null | no | Corridor half-width for shape, metres. |
| include_recently_expired | boolean | no | Include records that have expired in the last hour, for the operator's timeline (default false). |
| min_confidence | number/null | no | Drop records below this confidence (default 0). |
| near | array/null | no | [lat, lon] plus radius_m (default 1000). |
| radius_m | number/null | no | Radius for near, metres, at most 10000. |
| shape | string/null | no | A route shape as polyline6; the corridor rule of /v1/incidents/along applies (buffer_m default 60). |
Find the best EV charge points along a route, with the REAL extra travel time of stopping at each one — never a straight-line guess. Provide origin + destination (a route is computed) or an existing route's geometry_polyline6, plus optional connectors ("ccs", "type2", "chademo", "type1", "tesla", "domestic", "other"), min_kw (e.g. 50 for rapid only), available_only and `max_detour_minu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| available_only | boolean/null | no | Keep only charge points with a bay reported free right now. Needs the deployment to have a live availability feed; without one the call is refused rather than silently returning nothing. |
| connectors | array/null | no | Keep only charge points offering at least one of these connector standards: "type2", "type1", "ccs", "chademo", "tesla", "domestic" or "other". Omitted ⇒ every standard. |
| costing | no | Costing model for the route and detour matrix: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| destination | no | Route destination. | |
| geometry_polyline6 | string/null | no | An existing route geometry as an encoded polyline6 (the route tool's geometry_polyline6). Provide either this or origin + destination, not both. |
| max_detour_minutes | number/null | no | Largest acceptable detour in minutes (default 10, at most 120). |
| max_results | integer/null | no | Maximum results (default 5, at most 25). |
| min_kw | number/null | no | Keep only charge points whose best connector is rated at least this many kW (e.g. 50 for rapid charging only). |
| origin | no | Route origin (with destination, when no geometry is given). | |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; the detours then respect dimensional/ADR restrictions. |
Find the cheapest fuel along a route, with the REAL extra travel time of stopping at each station — never a straight-line guess. Provide origin + destination (a route is computed) or an existing route's geometry_polyline6, plus a fuel code ("diesel" default, "petrol_95", "petrol_98", "premium_diesel", "e85", "lpg") and max_detour_minutes (default 10). Stations come from the live open-dat
| Parameter | Type | Required | Notes |
|---|---|---|---|
| costing | no | Costing model for the route and detour matrix: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| destination | no | Route destination. | |
| fill_litres | number/null | no | Optional fill size in litres; each result then also carries saving_total = saving_per_litre × fill_litres. |
| fuel | string/null | no | Which fuel to price: "diesel" (default), "petrol_95", "petrol_98", "premium_diesel", "e85" or "lpg" (aliases "petrol", "unleaded", "e10", "super_unleaded", "e5", "b7" and "sdv" are accepted). |
| geometry_polyline6 | string/null | no | An existing route geometry as an encoded polyline6 (the route tool's geometry_polyline6). Provide either this or origin + destination, not both. |
| max_detour_minutes | number/null | no | Largest acceptable detour in minutes (default 10, at most 120). |
| max_results | integer/null | no | Maximum results (default 5, at most 25). |
| origin | no | Route origin (with destination, when no geometry is given). | |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; the detours then respect dimensional/ADR restrictions. |
Check whether a vehicle may pass through a tunnel of a given ADR category ("A"–"E"). Provide hazmat and, when known, the load's ADR 8.6.4 tunnel restriction code (e.g. "B", "C5000D", "B/D", "none"). Applies the conservative worst-case reading: conditional clauses are assumed to apply, so a blocked answer may over-restrict but never under-restricts. No network access; answers instantly.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| hazmat | boolean | yes | Whether the vehicle carries dangerous goods at all. When false the ADR tunnel matrix does not apply and every tunnel is permitted. |
| tunnel_category | string | yes | ADR category of the tunnel to check: "A", "B", "C", "D" or "E". |
| tunnel_code | string/null | no | ADR 8.6.4 tunnel restriction code of the load, e.g. "B", "C5000D", "B/D", or "(—)"/"none". Leave unset for a hazmat load of unknown code (conservatively treated as code B). |
Measure a vehicle's overhead clearance along a route against surveyed point cloud geometry, wherever survey coverage exists. Routes with truck costing (so the search already avoids the height restrictions the map has tagged), then measures that corridor. Give origin, destination and height_m; optional width_m asks the corridor-width axis too, and optional margin_m adds your operating mar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| destination | yes | Route destination. | |
| height_m | number | yes | Vehicle height in metres. Required: there is no default vehicle, because a default vehicle is how somebody gets an answer about a lorry that is not theirs. |
| margin_m | number/null | no | Operating margin in metres, added to the height before the verdict is decided (default 0). Your compliance policy, not ours: the measured figure and the safe bound are both reported whatever you set h |
| origin | yes | Route origin. | |
| width_m | number/null | no | Vehicle width in metres. Supplying it asks the width axis as well as the height axis; the width answer is reported separately and is never a headroom. |
Audit a map style's colour contrast against WCAG 2.1 (4.5:1 for label text, 3:1 for graphics like the route line), across both the light and dark palette variants. Pass a hosted style_id OR an inline theme document (as accepted by create_style). Advisory: failing pairs list the palette slots to adjust with set_palette; publishing is never blocked on contrast.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| style_id | string/null | no | Hosted style id whose latest theme should be checked… |
| theme | no | …or an inline theme document (as accepted by create_style). Exactly one of style_id/theme must be given. |
Group stops into balanced geographic clusters, so a day too large for one optimisation can be optimised one cluster at a time. This is the front half of the recipe for a thousand-stop day: cluster here, then call optimise_routes per cluster, where the routing engine's own matrix decides the visiting order. IMPORTANT — this is STRAIGHT-LINE clustering. Distances are measured between coordinates,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| clusters | integer/null | no | How many clusters to produce, balanced by stop count. Give exactly one of clusters, max_cluster_locations or max_cluster_load. |
| locations | array | yes | The stops to group. Ids must be unique; at most 5,000. |
| max_cluster_load | number/null | no | At most this much summed load per cluster; the cluster count is derived from it. A load ceiling with lumpy loads is a bin-packing problem and may have no solution at the derived count — the response |
| max_cluster_locations | integer/null | no | At most this many stops per cluster; the cluster count is derived from it. |
| seed | integer/null | no | Seed for the k-means++ seeding (default 42). The same request with the same seed always returns the same clusters, on every deployment. |
| territories | array/null | no | Optional territories. Given, no cluster straddles one: each territory is clustered on its own, and so are the stops inside none of them. |
Create a hosted map style. Provide a name, optionally a named base to start from (light, dark, streets, midnight, navigator-day, navigator-night, fleet, outdoor, dataviz, backdrop, print - call list_style_layers for what each one is for), and optionally a theme document ({base: "light"|"dark", palette: {slot: colour}, layers: {layer_id: overrides}}). The named base is laid down first and the the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base | string/null | no | Optional named base to start from, e.g. "streets", "midnight", "navigator-night", "fleet". Call list_style_layers for the catalogue, including which bases expect an overlay of their own. The base's |
| name | string | yes | Human-readable style name; its kebab-case slug seeds the style id. |
| theme | no | Optional theme document (palette/layer overrides). Merged over base when one is given; on its own, it replaces the default theme outright. |
Sample terrain elevation. Provide points (a bare list of coordinates) for point elevation, or encoded_polyline (optionally with resample_distance_m) for an along-route profile — not both. Returns one sample per point/resampled point in order; elevation_m is null wherever the engine's DEM tile set has no coverage at that point (never a guess). The encoded_polyline form also returns each s
| Parameter | Type | Required | Notes |
|---|---|---|---|
| encoded_polyline | string/null | no | A route as a Google encoded polyline with six digits of precision. Provide this or points, not both. |
| points | array/null | no | Points to sample. Provide this or encoded_polyline, not both. |
| resample_distance_m | number/null | no | Resamples encoded_polyline at this spacing in metres before sampling height (ignored for points). |
Area in square metres enclosed by a ring of 3+ coordinates, computed geodesically. Always positive: the answer does not depend on whether the ring is wound clockwise or anticlockwise. Intended for zones and boundaries, not for polygons covering more than half the globe. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| points | array | yes | The coordinates to consider. |
The axis-aligned bounding box enclosing 1+ coordinates, as {min_lat, min_lon, max_lat, max_lon}. Useful for fitting a map view to a set of stops. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| points | array | yes | The coordinates to consider. |
Initial bearing from one coordinate to another, in degrees clockwise from true north (0-360). This is the bearing at the START of the geodesic; over long distances the bearing changes en route. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | yes | Start coordinate. | |
| to | yes | End coordinate. |
The centroid (geometric mean position) of 1+ coordinates, e.g. to pick a depot location or centre a map. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| points | array | yes | The coordinates to consider. |
The coordinate reached by travelling distance_m metres from from on bearing_deg (degrees clockwise from true north). The inverse of geo_distance + geo_bearing. Local computation: no network call.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bearing_deg | number | yes | Bearing in degrees clockwise from true north. |
| distance_m | number | yes | Distance to travel in metres. |
| from | yes | Starting coordinate. |
Distance in metres between two coordinates. Computed geodesically on the WGS84 ellipsoid, so it is the straight-line (as-the-crow-flies) distance, NOT a driving distance — use route or matrix for travel distance and time. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | yes | Start coordinate. | |
| to | yes | End coordinate. |
Total length in metres of a polyline through 2+ coordinates, summed geodesically. This measures the line you supply, NOT a driven route — use route for that. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| points | array | yes | The coordinates to consider. |
The closest position on a polyline to a given coordinate, plus the geodesic distance to it in metres. The answer may lie between vertices, not only on them. Useful for 'how far is this address from the route?'. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| line | array | yes | The polyline's coordinates, 2 or more. |
| point | yes | The coordinate to measure from. |
Whether a coordinate lies inside a polygon: delivery zones, catchments, congestion or clean-air zones, site boundaries. Provide point {lat, lon} and polygon as 3+ {lat, lon} coordinates of the outer ring (closed automatically if the last does not repeat the first). Points exactly on the boundary count as OUTSIDE. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| point | yes | The coordinate to test. | |
| polygon | array | yes | The polygon's outer ring, 3 or more coordinates. Closed automatically if the last point does not repeat the first. |
Reduce the number of coordinates in a polyline while keeping its shape (Douglas-Peucker). tolerance_deg is in DEGREES, not metres: about 0.0001 drops detail finer than roughly 10 m at the equator. Endpoints are always kept. Returns the retained points and how many were removed. Local computation: no network call, no quota.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| points | array | yes | The polyline's coordinates, 2 or more. |
| tolerance_deg | number | yes | Douglas-Peucker tolerance in degrees, not metres. Around 0.0001 drops detail finer than roughly 10 m at the equator. |
Turn a place (address, POI, town) into coordinates. Ask two ways, and they combine: query is free text — one run-together string, the way a person types into a search box — and street, housenumber, city, postcode and country name the parts of an address separately. At least one of the two is required. Pass the parts whenever you already hold the address in parts (a form, a CRM row, a m
| Parameter | Type | Required | Notes |
|---|---|---|---|
| city | string/null | no | Structured component: town or city, e.g. "London". Matches the containing city as well as the immediate locality, so a suburb name works here too. |
| country | string/null | no | Structured component: ISO 3166-1 alpha-2 code or country name — "GB", "gb", "United Kingdom" and "UK" all mean the same country. A value naming no country is refused rather than quietly applied as a f |
| focus | no | Optional location bias: results near this point rank higher. | |
| housenumber | string/null | no | Structured component: house number, e.g. "10" or "221B". Only meaningful alongside street — a house number on its own excludes nearly everything and identifies nothing. |
| lang | string/null | no | Language of the place names to match and return, as a two-letter code. Defaults to "en", which is what makes English exonyms ("Munich", "Cologne", "Geneva") resolve to the place meant rather than a sa |
| limit | integer/null | no | Maximum number of results (1–50, default 10). |
| postcode | string/null | no | Structured component: postcode in any spacing or case — "SW1A 2AA" and "sw1a2aa" are one query. A bare UK outward code ("SW1A") selects the whole district. |
| query | string/null | no | Free-text place query, e.g. "Dover ferry terminal". Required unless at least one structured component is supplied. |
| street | string/null | no | Structured component: street name, e.g. "Downing Street". Matches the street of addresses and POIs (transliterated street names included) as well as the street itself. |
Read an asynchronous job submitted with submit_optimise_job: its status, and once it has finished, its result inline — exactly the body the synchronous tool would have returned. Status is queued, running, succeeded or failed; the answer's terminal field says whether the job will ever leave the status it is in, so poll while that is false. POLLING IS FREE: the gateway meters the submiss
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The job id returned by submit_optimise_job. |
Fetch a hosted style's latest theme document (the editable source) and the URL of its latest compiled MapLibre style. Use the theme to inspect current palette and layer overrides before editing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| style_id | string | yes | Hosted style id, e.g. "midnight-fleet-a1b2c3". |
Check what your own API key has spent, so you can decide mid-task whether to keep going. Reading it is free: it costs no quota. Optional from and to (YYYY-MM-DD UTC, inclusive, at most 92 days apart) bound the report; omitted, it covers the current month to date. Returns days (per-day, per-endpoint), totals per endpoint over the range, total_units, plus month_used_units against `monthl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| from | string/null | no | First day to report, YYYY-MM-DD (UTC) inclusive. Defaults to the first day of the current month. At most 92 days may separate from and to. |
| to | string/null | no | Last day to report, YYYY-MM-DD (UTC) inclusive. Defaults to today. |
Three to five short spoken lines an hour about the ground a route is on: one sentence, at the point the driver reaches the thing it is about, and then silence. Not a tour and not a chatbot. NOTHING IS GENERATED HERE: every line is a sentence a person wrote from a public-domain plaque inscription and a person reviewed, compiled into the gateway binary, so no model runs in this path and the lines ar
| Parameter | Type | Required | Notes |
|---|---|---|---|
| duration_s | number/null | no | That route's own duration, seconds: duration_s from the same answer. Supply it. Without it the silence budget falls back to a distance, and "three to five lines an hour" is a claim about time th |
| geometry_polyline6 | string | yes | The route shape, precision-6 encoded: geometry_polyline6 straight out of the route tool's answer. |
| max_lines | integer/null | no | Ceiling on how many lines come back, 1 to 50 (default 12). |
| max_offset_m | number/null | no | How near a plaque must come to the route before its line may be spoken, metres (default 60, hard ceiling 80). |
| min_gap_m | number/null | no | Least distance between two lines, metres (default 400). A floor under the time budget in every case. |
| min_gap_s | number/null | no | Least time between two lines, seconds (default 900, which is four an hour). Applied only with duration_s. |
| voice_format | string/null | no | Container to address each line's audio clip in: opus or m4a. Given, every line gains a clip with its synthesis cache key and URL. It NEVER synthesises: the key is a pure function of the sentence |
List the canonical place categories you can pass as category to nearby_places and search_along_route (and browse on with geocode). Each entry is a category token (the exact value to send, e.g. "fuel", "charging_station", "hgv_parking"), the aliases that colloquially name it ("petrol station", "EV charger", "lorry park"), and a one-line description of what it covers. Read this before
No parameter schema on file.
List everything a MapMap style theme can style: the first-party named bases a style can start from (pass one as create_style's base, or as the static-map API's style=), the named palette slots with their light/dark default colours, the skeleton layer ids (paint order) that set_layer_paint accepts, the OpenMapTiles source-layers extra layers may reference, the insertion slots (bottom, `mi
No parameter schema on file.
Snap a recorded GPS trace to the road network and say what it actually travelled over. Provide shape (2 to 2000 recorded points, oldest first) or encoded_polyline (the same trace as a polyline6 string) — not both — plus the costing it was travelled under: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". Costing decides which roads the trace may match onto, so a walk mat
| Parameter | Type | Required | Notes |
|---|---|---|---|
| costing | no | Costing model the trace was travelled under: auto (default), truck, bicycle, pedestrian or motor_scooter. It decides which roads the trace may be matched onto, so a walked trace matched as ` | |
| encoded_polyline | string/null | no | The trace as a Google encoded polyline with six digits of decimal precision (polyline6) — the geometry route and match_trace themselves return. Provide this or shape. |
| shape | array/null | no | The trace as an ordered list of recorded points, oldest first. Between 2 and 2000 points. Provide this or encoded_polyline. |
Compute a travel time/distance matrix between origins (rows) and destinations (columns). Costing "auto", "truck" (with optional truck profile as in route), "bicycle", "pedestrian" or "motor_scooter". Returns durations_s[i][j] in seconds and distances_m[i][j] in metres; null cells are unreachable pairs. Up to 10,000 cells per call (origins × destinations). Optional exclude_polygons for before
| Parameter | Type | Required | Notes |
|---|---|---|---|
| costing | no | Costing model: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| destinations | array | yes | Destination locations (matrix columns). |
| exclude_polygons | array/null | no | Areas to avoid — scenario analysis ("close this bridge and recompute the matrix"): an array of polygons, each an array of [lon, lat] pairs forming one exterior ring (GeoJSON-style, longitude FIRST). |
| origins | array | yes | Origin locations (matrix rows). |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck". |
Find places near a point, nearest first with distance in metres — by category (cafes, fuel, EV charging, parking), by name or brand ("the nearest Lloyds bank", "nearest Sainsbury's"), or both. Use this instead of geocode whenever the question is about what is NEAR a location: geocode ranks a brand's branches everywhere and only biases by proximity, so it will happily return a Lloyds in another cit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string/null | no | The kind of place to find. The gateway matches it against the index's lowercased OSM tag values (the value of the POI's amenity/shop/tourism/railway/… tag) — e.g. "cafe", "fuel", "charging_sta |
| fov_deg | number/null | no | Field of view: the full width in degrees of a cone centred on heading_deg, outside which results are dropped — it is the FULL width, so 90 keeps only what lies within 45 degrees either side of dead |
| heading_deg | number/null | no | Which way the user is facing, in degrees clockwise from true north (0 = north, 90 = east, 180 = south, 270 = west). Supply it and every result is also described from the user's point of view ("jus |
| lat | number | yes | Latitude of the search point in decimal degrees (−90 to 90). |
| limit | integer/null | no | Maximum number of results (1–10, default 5). |
| lon | number | yes | Longitude of the search point in decimal degrees (−180 to 180). |
| name | string/null | no | The name or brand of the place to find — "Lloyds", "Lloyds Bank", "Sainsbury's" — for "where is the nearest X" questions. Every word must appear in the place's name or one of its alternative names, ca |
| radius_m | integer/null | no | Maximum straight-line distance of any result from the point, in metres (1–100000, default 2500). |
England bus and coach stops near a point, nearest first. Pass lat and lon (WGS84), optional radius_m (1 to 2,000, default 500) and limit (1 to 50, default 10). Each stop carries its NaPTAN ATCO code id (pass it to next_departures), name, indicator (e.g. "Stop S"), locality, position, distance_m and bearing_deg from the point, and lines, the line names the Bus Open Data time
| Parameter | Type | Required | Notes |
|---|---|---|---|
| lat | number | yes | Latitude of the point, WGS84 degrees. |
| limit | integer/null | no | Most stops to return, 1 to 50 (default 10), nearest first. |
| lon | number | yes | Longitude of the point, WGS84 degrees. |
| radius_m | integer/null | no | Search radius in metres, 1 to 2,000 (default 500). |
Timetabled bus departures at one stop, from the Bus Open Data (BODS) timetables. Pass stop (the NaPTAN ATCO code nearby_stops returns), optional at (RFC 3339, default now; the index holds three service days from today), window_minutes (1 to 180, default 60) and limit (1 to 30, default 8). Each departure carries line, destination, operator, scheduled_at (local time) and trip, pl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| at | string/null | no | Start of the window, RFC 3339 (e.g. "2026-10-12T08:00:00+01:00"); default now. The index holds three service days from today. |
| limit | integer/null | no | Most departures to return, 1 to 30 (default 8). |
| stop | string | yes | The stop's NaPTAN ATCO code, as nearby_stops returns it. |
| window_minutes | integer/null | no | Window length, 1 to 180 minutes (default 60). |
Optimise multi-vehicle, multi-stop delivery plans (VRP). Provide vehicles (id, start/end, capacity, skills, time_window), jobs (id, location, service_s, delivery/pickup, skills, time_windows) and/or shipments (pickup+delivery pairs that ride the same vehicle). Costing "auto", "truck", "bicycle", "pedestrian" or "motor_scooter" (cargo-bike and courier fleets welcome): with a truck profile (
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avoid_zones | boolean/null | no | Keep the optimisation's travel-time matrix out of every zone the declared vehicle would be charged or banned in. Requires emissions. |
| costing | no | Costing model for the travel-time matrix: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| emissions | no | The fleet's emission declaration, for UK clean-air / low-emission zone assessment. On its own it annotates: the response's zones block names every zone containing one of the problem's own locations | |
| jobs | array | no | Single-stop jobs (at least one job or shipment overall). |
| relax_if_unassigned | no | Re-solve ONCE with these relaxations if the first solve leaves work unassigned, and say honestly which plan came back. At most one second solve, never beyond the caps you state, and the relaxed plan i | |
| shipments | array | no | Pickup+delivery pairs. |
| territories | array/null | no | Fleet territories: named polygons that bound which vehicle may serve which stop, referenced by vehicles[].territory_ids. These are request data — caller-drawn rounds, validated per call and never st |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; the travel-time matrix then respects dimensional and dangerous-goods restrictions, so the whole plan is truck-legal. | |
| vehicles | array | yes | The fleet (at least one vehicle, each with a start and/or end). |
Put a single run's stops in the best visiting order ("order my errands"). Provide start {lat, lon} and stops (1-100 entries of {location, label?, service_s?}); optionally an end destination or round_trip: true to return to the start. Costing "auto" = car, "truck" = lorry (pass truck as in route for a truck-legal order). Returns the stops in visit order with arrival offsets in seconds,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| costing | no | Costing model: "auto" (default) or "truck". | |
| end | no | Optional fixed final destination. Mutually exclusive with round_trip; omitted (and not a round trip), the run ends at whichever stop the solver visits last. | |
| round_trip | boolean | no | Return to start after the last stop (default false). |
| start | yes | Where the run starts. | |
| stops | array | yes | The stops to put in the best visiting order (1–100). |
| truck | no | Truck profile (dimensions + ADR declaration); requires costing "truck". The travel-time matrix then respects dimensional and dangerous-goods restrictions. |
What is over THERE: given a position and the direction the user is facing, the places inside that cone, and whether the ground and the buildings in between let them actually be seen. Use this for "what is that over there", "is there a pub in that direction", "what am I looking at". Use nearby_places instead when the question is about what is NEAR a point rather than what is in a direction. Provi
| Parameter | Type | Required | Notes |
|---|---|---|---|
| bearing_deg | number | yes | Which way the observer is facing, in degrees clockwise from true north (0 = north, 90 = east, 180 = south, 270 = west). Required: this tool answers "what is over there", and "there" has to point s |
| category | string/null | no | The kind of place to look for, from the same vocabulary nearby_places uses ("cafe", "pub", "fuel", "charging_station" …). Use "building" to ask what a named building over there is. At least one of ` |
| eye_height_m | number/null | no | Height of the observer's eye above the ground in metres (0–500, default 1.6, a standing adult). A driver's eye is nearer 1.2 m. |
| fov_deg | number/null | no | Full width in degrees of the cone centred on bearing_deg (1–360, default 60, so 30 degrees either side). The FULL width, not the half angle. |
| lat | number | yes | Latitude of the observer in decimal degrees (−90 to 90). |
| limit | integer/null | no | Maximum number of results (1–25, default 5). |
| lon | number | yes | Longitude of the observer in decimal degrees (−180 to 180). |
| name | string/null | no | A place name or brand to look for. At least one of category and name is required. |
| radius_m | integer/null | no | Maximum straight-line range in metres (1–5000, default 1000). |
| visible_only | boolean/null | no | When true, return only places whose visibility verdict is clear. Default false, which returns everything in the cone WITH its verdict, usually the better answer, because "it is there but you cannot |
Turn an itinerary into one navigable multi-stop route. Provide a start and stops (each a location {lat, lon} or a free-text name to geocode, plus optional dwell_minutes time at the stop), optional depart_at (RFC 3339) for absolute ETAs, optimise: true to reorder stops for the shortest day (VROOM solver), and return_to_start. Costing "auto", "truck" (with a truck profile the whole
| Parameter | Type | Required | Notes |
|---|---|---|---|
| costing | no | Costing model: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| depart_at | string/null | no | Departure time as RFC 3339 (e.g. "2026-07-18T09:00:00Z"); when given, every ETA is also returned as an absolute timestamp. |
| optimise | boolean | no | Reorder the stops for the shortest day (VROOM solver; requires the optimisation sidecar). Default false: visit in the given order. |
| return_to_start | boolean | no | End the day back at the start (default false). |
| start | yes | Where the day starts (name or location; dwell_minutes ignored). | |
| stops | array | yes | The stops to visit (1–20). Visited in the given order unless optimise is true. |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck". |
Order a handful of errands against a hard arrival time, and say honestly whether they fit. This is the "pick up a prescription, get petrol, and be at the school by quarter past three" tool. Give origin, destination (+ destination_name), arrive_by (RFC 3339 with an offset: convert "quarter past three" yourself), optional depart_at, and 1 to 5 errands. Each errand is EITHER a category
| Parameter | Type | Required | Notes |
|---|---|---|---|
| arrive_by | string | yes | The hard arrival time, RFC 3339 with an offset ("2026-09-21T15:15:00+01:00"). Convert "quarter past three" to an absolute instant in the driver's own offset before calling. |
| depart_at | string/null | no | When they set off, RFC 3339. Defaults to now. |
| destination | yes | Where they have to be by arrive_by. | |
| destination_name | string/null | no | What to call the destination in the answer ("the school"). |
| errands | array | yes | The errands, in any order: the answer decides the order. One to five. |
| max_detour_minutes | number/null | no | How far off the direct route a candidate place may sit, as a detour in minutes (default 12, at most 45). |
| origin | yes | Where the driver sets off from. |
Plan a whole electric-vehicle journey, charge stops included. Give origin and destination (plus optional waypoints) and a vehicle — a published profile ("small_hatch", "saloon", "suv", "van") and/or inline figures (battery_kwh, mass_kg, drag_area_m2, aux_kw, connectors) — with start_soc (default 0.9), min_arrival_soc (default 0.1), reserve_soc (default 0.1, the floor the charge must
| Parameter | Type | Required | Notes |
|---|---|---|---|
| ambient_temperature_c | number/null | no | Ambient temperature in °C. Derates traction energy from a published study; cabin heating belongs in the vehicle's aux_kw. |
| connectors | array/null | no | Keep only charge points offering at least one of these connector standards: "type2", "type1", "ccs", "chademo", "tesla", "domestic", "other". This narrows the vehicle's own set, never widens it. |
| destination | yes | Where it ends. | |
| max_detour_minutes | number/null | no | How far off the route a charge point may sit, as a detour in minutes (default 15, at most 120). |
| min_arrival_soc | number/null | no | Lowest acceptable state of charge on arrival (default 0.1). |
| min_kw | number/null | no | Keep only charge points with a usable connector rated at least this many kW (e.g. 50 for rapid charging only). |
| origin | yes | Where the journey starts. | |
| reserve_soc | number/null | no | The floor the state of charge must never fall below mid-route (default 0.1). Distinct from the arrival figure. |
| start_soc | number/null | no | State of charge at the start, 0–1 (default 0.9). |
| vehicle | no | The vehicle. Omitted ⇒ the published "saloon" default, and the answer says which vehicle it used. | |
| waypoints | array/null | no | Intermediate points the route must pass through, in order (at most 8). Charge stops are inserted around them. |
Compute the area reachable from an origin within one or more travel-time budgets — walkability/cyclability rings. Costing "pedestrian" answers "how far can I walk in 15 minutes?", "bicycle" the cycling equivalent; "auto", "truck" and "motor_scooter" work too (e.g. delivery coverage). contours_minutes lists the ring boundaries in minutes (1-10 values, each up to 120); set polygons true for fill
| Parameter | Type | Required | Notes |
|---|---|---|---|
| contours_minutes | array | yes | Contour boundaries in minutes of travel time, e.g. [5, 10, 15] for 5/10/15-minute rings. 1–10 values, each between 0 and 120 minutes. |
| costing | no | Travel mode: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| exclude_polygons | array/null | no | Areas to avoid — scenario analysis ("close this bridge and recompute reachability"): an array of polygons, each an array of [lon, lat] pairs forming one exterior ring (GeoJSON-style, longitude FIRST |
| origin | yes | Origin the reachable area is computed from. | |
| polygons | boolean/null | no | Return filled polygons instead of contour linestrings (default false). Polygons draw directly as a MapLibre fill layer. |
Re-plan a fleet part-way through its shift. Send the day back; nothing is stored. MapMap holds NO dispatch state — no plan, no vehicle position, no completion log — so a re-plan is not a delta against something we remember: you pass the ORIGINAL optimise_routes problem in full, plus progress (per vehicle: completed_stop_ids IN THE ORDER SERVED, an optional current_position, and `unavailabl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avoid_zones | boolean/null | no | Keep the optimisation's travel-time matrix out of every zone the declared vehicle would be charged or banned in. Requires emissions. |
| changes | no | Changes to the work itself. Optional, on the same condition. | |
| costing | no | Costing model for the travel-time matrix: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| emissions | no | The fleet's emission declaration, for UK clean-air / low-emission zone assessment. On its own it annotates: the response's zones block names every zone containing one of the problem's own locations | |
| jobs | array | no | Single-stop jobs (at least one job or shipment overall). |
| progress | array | no | Per-vehicle progress. Optional, but at least one progress entry or one change is required — a re-plan that reports nothing new is the original problem. |
| relax_if_unassigned | no | Re-solve ONCE with these relaxations if the first solve leaves work unassigned, and say honestly which plan came back. At most one second solve, never beyond the caps you state, and the relaxed plan i | |
| shipments | array | no | Pickup+delivery pairs. |
| territories | array/null | no | Fleet territories: named polygons that bound which vehicle may serve which stop, referenced by vehicles[].territory_ids. These are request data — caller-drawn rounds, validated per call and never st |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; the travel-time matrix then respects dimensional and dangerous-goods restrictions, so the whole plan is truck-legal. | |
| vehicles | array | yes | The fleet (at least one vehicle, each with a start and/or end). |
Report that the live world disagrees with the map — a closed road, a wrong or missing restriction, a bad speed limit, a missing road, a wrong one-way, or changed access. Use it when you observe the mismatch mid-task. Provide location {lat, lon}, a category (road_closed, wrong_restriction, wrong_speed_limit, missing_road, wrong_oneway, access_changed, other) and optionally a description, the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | yes | What kind of mismatch this is. | |
| description | string/null | no | Free-text detail of what was observed on the ground, e.g. "barrier across the lane, diversion signed via the B4009". Bounded length. |
| evidence_url | string/null | no | A URL backing the observation (photo, notice, news item), when one exists. Bounded length. |
| location | yes | Where the mismatch was observed (WGS84 decimal degrees). | |
| way_id | integer/null | no | The OSM way id the observation concerns, when the caller knows it. Optional — the report stands on its own as a first-party observation and is never tied to OSM data beyond this hint. |
Turn coordinates into the nearest places: addresses, POIs and localities with distance in metres. The inverse of geocode. Provide lat and lon; returns up to limit (default 5, max 10) results, nearest first, each with name, one-line label, lat/lon, type, address parts and distance_m, plus categories and a details object of display tags (opening_hours, website, phone, wikipedia, ...) on POI
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fov_deg | number/null | no | Field of view: the full width in degrees of a cone centred on heading_deg, outside which results are dropped — it is the FULL width, so 90 keeps only what lies within 45 degrees either side of dead |
| heading_deg | number/null | no | Which way the user is facing, in degrees clockwise from true north (0 = north, 90 = east, 180 = south, 270 = west). Supply it and every result is also described from the user's point of view ("jus |
| lat | number | yes | Latitude in decimal degrees (−90 to 90). |
| limit | integer/null | no | Maximum number of results (1–10, default 5). The hosted first-party index answers at most 5 nearest hits per lookup. |
| lon | number | yes | Longitude in decimal degrees (−180 to 180). |
Compute a turn-by-turn route between origin and destination (optionally via waypoints). Costing "auto" = car, "truck" = lorry, "bicycle", "pedestrian" = walking, "motor_scooter" = moped. Pass truck {height_m, width_m, length_m, gross_weight_t, hazmat, tunnel_code} to apply dimensional limits and the ADR dangerous-goods tunnel matrix to the search; pedestrian {use_lit 0-1, type "wheelchair"|"bl
| Parameter | Type | Required | Notes |
|---|---|---|---|
| avoid | array/null | no | Road features to avoid as a PREFERENCE. Rendered as the costing's willingness factor set to zero — a thumb on the scale, not a ban. The engine's own reference is explicit that a value of zero is not g |
| bicycle | no | Bicycle options (bicycle type, road/surface/hill preferences). Requires costing "bicycle". | |
| costing | no | Costing model: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| destination | yes | Route destination. | |
| emissions | no | The vehicle's emission declaration, for UK clean-air / low-emission zone assessment. Given, the response's zones block names every zone the route enters and what THIS vehicle pays there, with the pu | |
| exclude | array/null | no | Road features to exclude outright, rendered as the costing's hard exclusion flag. Two things follow from that and both matter: a hard exclusion can return NO ROUTE rather than a detour (excluding tunn |
| exclude_polygons | array/null | no | Areas to avoid — scenario analysis ("close this bridge and re-route"): an array of polygons, each an array of [lon, lat] pairs forming one exterior ring (GeoJSON-style, longitude FIRST). Roads inter |
| landmarks | boolean/null | no | Name landmarks in the turn instructions (default false): each manoeuvre that passes a recognisable place — a petrol station, a supermarket, a household-name chain — gains a landmark_instruction like |
| origin | yes | Route origin. | |
| pedestrian | no | Pedestrian options (lit-street preference, wheelchair/blind type, hiking difficulty). Requires costing "pedestrian". | |
| rationale | boolean/null | no | Explain the route (default false): re-routes with each declared truck constraint (truck costing) or avoidance-side routing preference (auto, bicycle, pedestrian, motor_scooter) relaxed and reports the |
| scenic | boolean/null | no | Ask whether there is a prettier way (default false, auto costing only). The route in geometry_polyline6 is NEVER swapped: what comes back is a peer offer beside it, in scenic, carrying the plain |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; when present, ADR dangerous-goods costing options are merged into the request. | |
| waypoints | array/null | no | Optional intermediate stops, visited in order between origin and destination. |
What a journey PASSES, in sentences ready to be read aloud, each with its position along the route. The named rivers and canals it crosses, the road it runs on and for how far, the settlements it goes through, the protected landscapes it enters and how high the road climbs: the things a passenger who knew the area would say. NONE OF THIS IS IN A ROUTE: a route is a list of movements and a river cr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| geometry_polyline6 | string | yes | The route shape, precision-6 encoded: geometry_polyline6 straight out of the route tool's answer. Nothing else is accepted: there is no origin/destination form, because this tool annotates a route |
| max_observations | integer/null | no | Ceiling on how many observations come back, 1 to 200 (default 40). |
| min_gap_m | number/null | no | Least distance along the route between two observations, metres (default 2000). A FLOOR, not a target: when the route holds more than max_observations, the gap widens past this on its own so the sur |
| units | string/null | no | Units for the spoken distances: miles (default) or kilometers. kilometres and km are accepted too. |
Find places (POIs) along a route with the REAL extra travel time of stopping at each — never a straight-line guess. Provide origin + destination (a route is computed) or an existing route's geometry_polyline6, plus a free-text query ("coffee", "EV charger", "truck stop") and max_detour_minutes (default 10). For a category intent ("fuel", "EV charger", "coffee") pass category instead of
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string/null | no | Explicit place category ("fuel", "cafe", "charging_station" — same vocabulary as nearby_places). Colloquial phrases are normalised server-side; prefer this over query for category intents. |
| costing | no | Costing model for the route and detour matrix: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| destination | no | Route destination. | |
| geometry_polyline6 | string/null | no | An existing route geometry as an encoded polyline6 (the route tool's geometry_polyline6). Provide either this or origin + destination, not both. |
| max_detour_minutes | number/null | no | Largest acceptable detour in minutes (default 10, at most 120). |
| max_results | integer/null | no | Maximum results (default 5, at most 25). |
| origin | no | Route origin (with destination, when no geometry is given). | |
| query | string | yes | Free-text POI query, e.g. "coffee", "EV charger", "truck stop". |
| truck | no | Truck profile (dimensions + ADR declaration). Requires costing "truck"; the detours then respect dimensional/ADR restrictions. |
Set one MapLibre paint property on one skeleton layer of a hosted style (e.g. layer_id "road-major", property "line-width", value 4 or an expression array) and publish the result as a new immutable style version. Layer ids come from list_style_layers. Returns the new version and style URL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| layer_id | string | yes | Skeleton layer id, e.g. "road-major". Call list_style_layers for the accepted ids. |
| property | string | yes | MapLibre paint property name, e.g. "line-width" or "fill-color". |
| style_id | string | yes | Hosted style id. |
| value | yes | The paint value (any MapLibre-valid JSON: number, colour string or expression array). |
Recolour one or more palette slots of a hosted style (e.g. {"water": "#0b2038", "roadMajor": "#8a6d3b"}) and publish the result as a new immutable style version. Slot names come from list_style_layers; colours are CSS (#rgb/#rrggbb/#rrggbbaa/rgb()/hsl()). Returns the new version and style URL.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| colours | object | yes | Palette overrides: slot name → CSS colour (e.g. {"water": "#0b2038"}). Call list_style_layers for the slot names. |
| style_id | string | yes | Hosted style id. |
OPERATOR WRITE, ADMIN ONLY. Asserts a short-lived closure (assert: {kind: closed}) or speed ({kind: speed_override, speed_kph}, 1 to 120) on named OSM way_ids (1 to 20) and direction (forward, backward or both, default both), for ttl_secs (60 to 86400), with a reason and an optional evidence_url. The record expires on its own, ranks below official closures and is logged with the reas
| Parameter | Type | Required | Notes |
|---|---|---|---|
| assert | yes | closed or a speed in km/h (1..=120). | |
| direction | no | Carriageway, default both. | |
| evidence_url | string/null | no | Evidence link, if any. |
| reason | string | yes | Why, for the audit log and the incidents endpoint note. |
| ttl_secs | integer | yes | Lifetime, seconds, 60..=86400. |
| way_ids | array | yes | OSM way ids to assert on; at most 20. |
Send MapMap a structured integration retro (problems, gotchas, wins, docs gaps). Call at most once, after your MapMap integration works or you stop trying, and only if the developer has approved sending feedback to MapMap. Sends ONLY the structured fields in this schema to MapMap: there is no field for a transcript, a prompt, source code, file contents or coordinates. The free-text fields are shor
| Parameter | Type | Required | Notes |
|---|---|---|---|
| agent_name | string/null | no | The submitting agent's name, e.g. "Claude Code" (at most 100 bytes). |
| docs_gaps | array | no | Documentation gaps hit (at most 20 entries × 500 bytes). |
| gotchas | array | no | Surprises/traps worth documenting (at most 20 entries × 500 bytes). |
| problems | array | no | Problems hit during the integration (at most 20). |
| sdk_version | string/null | no | MapMap SDK version integrated against, when known (at most 50 bytes). |
| what_built | string | yes | What was built with MapMap, in one or two sentences (required, at most 500 bytes). |
| wins | array | no | What went well (at most 20 entries × 500 bytes). |
Submit a problem too large to solve inside one request to the asynchronous lane, and get a job id back. Set kind to "optimise", "replan" or "matrix", and pass problem in EXACTLY the shape the matching synchronous tool takes — optimise_routes input, replan_routes input, or matrix input. Moving a working synchronous call onto this lane changes nothing but which tool you call it with. A fie
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | yes | Which problem this is. It selects both the body shape below and the ceiling the submission is judged against. | |
| problem | yes | The problem itself, in exactly the shape the synchronous tool takes — optimise_routes input for optimise, replan_routes input for replan, matrix input for matrix. Moving a working synchron | |
| webhook_url | string/null | no | Optional HTTPS URL to POST a signed {job_id, kind, status, result_url} notification to when the job finishes. The RESULT is never pushed — the notification says where to fetch it. Requires a webhook |
Check whether a dataset's DECLARED coordinate reference system actually describes its own coordinates, before you draw it on a map. Catches the failures that are otherwise silent: swapped lat/lon axes, degrees labelled as metres, and Web Mercator or another projection mislabelled with a UTM or national-grid code. Pass the declared CRS (e.g. "EPSG:4326") and a sample of the raw coordinates as {x, y
| Parameter | Type | Required | Notes |
|---|---|---|---|
| coordinates | array | yes | A sample of the dataset's coordinates. A few dozen is plenty; the check is about ranges and spans, not volume. |
| declared_crs | string | yes | The CRS the dataset claims, e.g. "EPSG:4326", "EPSG:32610", "EPSG:3857", "EPSG:27700". |
Check whether places (and itineraries) an AI mentioned are real, findable and physically possible. Pass structured claims (reliable, and the only path that supports itinerary feasibility) or free text (best-effort quoted-phrase extraction). Each claim resolves to exactly one of three verdicts, never a boolean: "verified" (matched a real place, with its stable id and the source/date of the evid
| Parameter | Type | Required | Notes |
|---|---|---|---|
| claims | array/null | no | Structured claims — the reliable path, and the only path that supports itinerary feasibility. Mutually exclusive with text. Max 20 per request. |
| costing | no | Costing for feasibility legs: "auto" (default), "truck", "bicycle", "pedestrian" or "motor_scooter". | |
| text | string/null | no | Free text to extract place claims from (best-effort heuristic: quoted phrases and Title Case runs after "at/in/near/to/from/ visiting" — not NLP or an LLM call, and it does not attempt itinerary feasi |
Forecast weather along a route, each sample read for the hour you actually reach it rather than the weather right now. Pass the route's shape (an encoded polyline6, the route tool's geometry_polyline6), optional depart_at (RFC 3339, default now), the route's duration_s (from route; omitted, an 80 km/h average is assumed and duration_source says so) and optional sample_interval_m (def
| Parameter | Type | Required | Notes |
|---|---|---|---|
| depart_at | string/null | no | Departure time, RFC 3339 (e.g. "2026-10-12T14:00:00Z"); defaults to now. Forecasts reach about 16 days ahead; samples past that answer unavailable. |
| duration_s | number/null | no | The route's duration in seconds, used to work out when you reach each sample. Pass the route tool's duration; omitted, a generic 80 km/h average is assumed and duration_source says so. |
| sample_interval_m | number/null | no | Distance between samples in metres (default 25,000, clamped to 5,000 to 100,000; at most 40 samples per route). |
| shape | string | yes | The route shape as an encoded polyline6 (the route tool's geometry_polyline6). |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install MapMap or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish MapMap can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.