Mmcp.market

Mapsi MCP server

by algolayertechnologies·io.github.algolayertechnologies/mapsi-mcp·v1.0.0

Geocoding, routing, isochrone, H3, elevation and 13 more geospatial tools via OpenStreetMap.

C55/100grade C
What users say
No reviews yet
Be the first
Safety scan
C55/100

full report

Adoption
Not measured yet

Usage numbers are collected on the next scan

Reviews

Write one

Nobody has reviewed Mapsi yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Mapsi tools (18)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • autocomplete

    Get real-time address suggestions as a user types in an input field. Returns: array of suggestions each with { text, label, lat, lon }. WHEN TO USE: ONLY for powering a live address input field in a UI. Minimum 2 characters. DO NOT USE IN AGENTS: Agents should call geocode directly with a complete address. Autocomplete is a UI tool, not an agent tool — it returns partial matches, not reliable coor

  • batch_geocode

    Geocode multiple addresses in a single API request. Returns: { results: [{ input, formatted_address, lat, lon, confidence, status }] }. Results are in the same order as the input array. status is "ok" or "not_found". PERFORMANCE: Always use batch_geocode for 2+ addresses. Never loop geocode calls — batch is far faster and uses fewer API credits. CACHING: Deduplicate your address list before callin

  • batch_reverse_geocode

    Reverse geocode multiple coordinates in a single API request. Returns: { results: [{ lat, lon, formatted_address, street, city, postcode, country, country_code }] }. Results are in the same order as the input array. PERFORMANCE: Always use batch_reverse_geocode for 2+ coordinates. Never loop reverse_geocode calls. USE FOR: Enriching GPS log exports, converting coordinate datasets to readable addre

  • elevation

    Get the elevation (altitude above sea level in metres) for a geographic coordinate. Returns: { elevation_m (number) }. WHEN TO USE: Fitness/hiking apps, drone routing (terrain clearance), flood risk analysis, gradient calculation for cycling routes. NOTE: Elevation data has ~30m horizontal resolution globally; higher resolution available in some regions.

  • geocode

    Convert an address or place name into WGS84 coordinates (lat/lon). Returns: formatted_address (string), coordinates {lat, lon}, city, country, confidence (0–1). WHEN TO USE: When you have a human-readable address and need lat/lon. DO NOT USE: For coordinates-to-address (use reverse_geocode). For real-time user typing (use autocomplete). CONFIDENCE: Score below 0.6 means the result is ambiguous — a

  • get_static_map_url

    Build a URL for a static PNG map image centered on a location. Returns: { url, auth_note, html_example }. USE FOR: Email templates, PDF reports, social sharing previews, server-side image generation. No JavaScript needed. ZOOM GUIDE: - 1–4: Country/continent - 6–8: Region/state - 10–11: City - 12–13: Neighbourhood - 14–16: Street level (most common) - 17–19: Building/parcel AUTH: For server-side u

  • get_tile_style_url

    Get the MapLibre GL style URL for Mapsi map tiles. Returns: { style_url, usage_note, maplibre_example }. AUTH NOTE: Tile auth uses ?key= query param in the URL, NOT the X-API-Key header. This is intentional — tile URLs must be usable in browser <img> tags and MapLibre without exposing headers. STYLES: - light: Minimal, pale, ideal for data overlays (default) - dark: Dark mode, high contrast for da

  • h3_index

    Convert a coordinate to an H3 hexagonal grid cell index at a given resolution. Returns: { h3_index (string), resolution, center_lat, center_lon }. Resolution guide (area per cell): - 5: ~250 km² — country/large region level - 7: ~5 km² — city neighbourhood level (most common for analytics) - 9: ~0.1 km² — city block level - 12: ~0.003 km² — building level USE FOR: Spatial aggregation, density heat

  • isochrone

    Generate a reachability polygon — the geographic area reachable from a point within a given time or distance. Returns: GeoJSON FeatureCollection with one Polygon per contour. Each polygon is the boundary of the reachable area. CONTOURS — you must provide EITHER contours_minutes OR contours_meters, not both and not neither: - contours_minutes: [5, 10, 15] returns 3 nested polygons for 5, 10, 15 min

  • map_match

    Snap a raw GPS trace to the road network to correct GPS drift and determine the actual route taken. Returns: { matched_points: [{lat,lon}], confidence (0–1), geometry (GeoJSON LineString of matched route) }. COORDINATE FORMAT — CRITICAL: The coordinates array uses [longitude, latitude] order (GeoJSON convention), NOT [latitude, longitude]. Correct: [[-0.1276, 51.5074], [-0.1279, 51.5078]] ← [lon,

  • matrix

    Calculate travel times and distances between multiple origins and destinations in a single request. Returns: { sources: [{lat,lon}], targets: [{lat,lon}], durations: [[sec,...]], distances: [[km,...]] } durations[i][j] = travel time in seconds from origin i to destination j. distances[i][j] = distance in km from origin i to destination j. PERFORMANCE: Always prefer matrix over calling route in a l

  • nearest_road

    Find the nearest point on the road network to a given coordinate. Returns: { lat, lon, distance_m (distance from input to snapped point), road_name }. WHEN TO USE: Snap waypoints to routable roads before calling route. Also call this if route returns "no route found" — the waypoint may be in a park, building, or off-road area. RECOVERY: If route fails, call nearest_road on origin and destination,

  • normalize_address

    Normalize and standardize a messy or inconsistently formatted address string. Returns: { formatted_address, street, housenumber, city, postcode, country, country_code, lat, lon }. WHEN TO USE: When cleaning user-submitted data, deduplicating a CRM, or standardizing addresses before batch processing. Also geocodes the address as a side-effect (lat/lon included). DO NOT USE: If you just need coordin

  • places_search

    Find points of interest, businesses, and landmarks near a geographic coordinate. Returns: array of { name, lat, lon, categories: [string], address, distance_m }. QUERY: Use category keywords (restaurant, pharmacy, hospital, supermarket, ATM, petrol station, parking) or specific names ("Starbucks", "IKEA"). RADIUS: Default 1000m (1km). Increase for rural areas, decrease for dense urban. Max ~50000m

  • point_in_polygon

    Get the full administrative hierarchy for a geographic coordinate. Returns: { country, country_code (ISO 3166-1 alpha-2), region (state/province), county, city, suburb, neighbourhood }. Not all levels are present for every location — rural coordinates may return only country and region. USE FOR: Territory assignment, tax region detection, locale/language inference, delivery zone validation, "what

  • reverse_geocode

    Convert geographic coordinates (lat/lon) into a human-readable address. Returns: formatted_address, street, housenumber, city, postcode, country, country_code. WHEN TO USE: When you have coordinates and need a readable address (e.g. from GPS, user map click, or API response). DO NOT USE: When you already have a formatted_address — no need to reverse geocode it. GRANULARITY: Use the layers paramete

  • route

    Get turn-by-turn directions between two or more waypoints. Returns: { distance_km, duration_sec, legs: [{ steps: [{ instruction, distance_km, duration_sec }] }], geometry (GeoJSON LineString) }. WAYPOINT ORDER: First element = origin, last = destination. Intermediate elements are via-points in order. TRAVEL MODES: auto (car), truck (HGV — applies weight/height/hazmat restrictions), bicycle, pedest

  • timezone

    Get the IANA timezone for a geographic coordinate. Returns: { timezone (IANA name), utc_offset_hours, utc_offset_seconds, dst_active }. Examples of IANA timezone names: "Europe/Paris", "America/New_York", "Asia/Kolkata". WHEN TO USE: Scheduling delivery ETAs, converting server timestamps to local time, detecting user timezone from coordinates.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan11 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitystatic API keys via environment variables6/15
  • Maintenancerepository not readable: repo not found3/15
  • Maintainer identityno repository or website to verify2/10
Overall 55/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

Install directly

Runs npx -y mapsi-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add mapsi-mcp -- npx -y mapsi-mcp
Add to Cursor

Mapsi: common questions

Is Mapsi MCP server safe?
With care: it is graded C, so read the findings first (55/100). Read the Mapsi safety report
How do I install Mapsi?
It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
Does Mapsi need an API key?
Yes. The registry entry asks for MAPSI_API_KEY.
Is Mapsi maintained?
The latest release is v1.0.0.

More from algolayertechnologies →