AgentXM

MapMap

mcp remote · streamable-http · v1.1.0 · source: crawl

https://mcp.mapmap.ai/mcp

https://github.com/Mapmapai/mapmap

Maps for agents: truck/ADR routing, geocoding, places, matrices, isochrones, EV and fleet planning.

AgentXM badge

Works

70

Verified Oct 31, 2026 · p50 11780 ms · p95 11913 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'sn-mcp'
tools_listed15pass55 tools
schema_complete15fail28 of 55 tools have a description and a typed schema
latency_p5010failp50 11780 ms
latency_p955failp95 11913 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10passno patterns found
scope5passno execution-style tools

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (55)

NameDescriptionSchema
check_style_contrastAudit 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 inlinincomplete
geo_lengthTotal 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 qtyped
camera_incidentsRoad 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, mtyped
cheapest_charging_along_routeFind 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 existinincomplete
cheapest_fuel_along_routeFind 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 roincomplete
check_adr_tunnelCheck 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").typed
check_clearance_on_routeMeasure 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 restrictincomplete
clusterGroup 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 hertyped
create_styleCreate 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 listincomplete
elevationSample 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. Returnstyped
events_in_areaEarthquakes, volcano alerts and satellite fire detections in a bounding box, for display. Pass `bbox` [west, south, east, north] (WGS84), optional `types` (quake, volcano, fire; default all), `min_magtyped
plan_dayTurn 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), opincomplete
geo_areaArea 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 zontyped
geo_bboxThe 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.typed
geo_bearingInitial 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 incomplete
geo_centroidThe 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.typed
geo_destinationThe 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 incomplete
geo_distanceDistance 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 tincomplete
geo_nearest_point_on_lineThe 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 thincomplete
geo_point_in_polygonWhether 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 outincomplete
geo_simplifyReduce 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. Etyped
geocodeTurn 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`incomplete
get_jobRead 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`, `typed
get_styleFetch 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.typed
get_usageCheck 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 apatyped
heritage_narrationThree 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 IStyped
list_place_categoriesList 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.typed
list_style_layersList 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 wtyped
match_traceSnap 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 stincomplete
matrixCompute 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_scooteincomplete
reverse_geocodeTurn 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, netyped
routeCompute 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` incomplete
nearby_placesFind 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 thistyped
nearby_stopsEngland 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 ATCtyped
next_departuresTimetabled 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 typed
optimise_routesOptimise 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/incomplete
order_stopsPut 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 `incomplete
places_in_viewWhat 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 "whatyped
plan_errandsOrder 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 `origincomplete
plan_ev_routePlan 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") aincomplete
reachable_areaCompute 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 cyclingincomplete
replan_routesRe-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 sincomplete
report_map_issueReport 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 misincomplete
route_observationsWhat 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 goestyped
search_along_routeFind 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 `geometincomplete
set_layer_paintSet 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 stincomplete
set_paletteRecolour 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_layerstyped
set_temporary_closureOPERATOR 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,incomplete
space_weather_nowThe planetary Kp index and the NOAA SWPC OVATION aurora forecast right now. No input. Returns `kp` (0 to 9) with its time, the forecast's valid time, the peak aurora probability and `aurora_png_url` (typed
submit_integration_retroSend 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 sendityped
submit_optimise_jobSubmit 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 matcincomplete
validate_geodataCheck 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 axestyped
verify_placesCheck 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 `tincomplete
weather_along_routeForecast 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_polyltyped
weather_framesThe NOAA GFS forecast frames MapMap publishes for drawing weather on a map: 17 frames (0 to 48 hours every 3 hours) of the newest run, each with URLs for the global rain, temperature, cloud, gust and typed

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/ai-mapmap-mapmap.svg)](https://app.agent-xm.com/a/ai-mapmap-mapmap)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.