mapsi-mcp
mapsi-mcp
MCP server for Mapsi — 18 geospatial tools for AI coding assistants. Connect Claude Code, Cursor, Windsurf, or any MCP-compatible IDE directly to Mapsi APIs.
OpenStreetMap-based · Self-hosted infrastructure · No Google Maps vendor lock-in
Quick Start
1. Get your API key at mapsi.dev/console/api-keys (free tier: 1,000 calls/day, no credit card)
2. Add the config to your IDE:
Claude Code / Claude Desktop
Add to ~/.claude.json (or .mcp.json in your project root):
{
"mcpServers": {
"mapsi": {
"command": "npx",
"args": ["-y", "mapsi-mcp"],
"env": { "MAPSI_API_KEY": "msk_your_key_here" }
}
}
}Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"mapsi": {
"command": "npx",
"args": ["-y", "mapsi-mcp"],
"env": { "MAPSI_API_KEY": "msk_your_key_here" }
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json — same JSON format as Cursor above.
VS Code + Cline
Open Cline settings → MCP Servers → Add server → paste:
{
"mapsi": {
"command": "npx",
"args": ["-y", "mapsi-mcp"],
"env": { "MAPSI_API_KEY": "msk_your_key_here" }
}
}Zed
Add to your Zed settings under "context_servers":
{
"mapsi-mcp": {
"command": { "path": "npx", "args": ["-y", "mapsi-mcp"] },
"env": { "MAPSI_API_KEY": "msk_your_key_here" }
}
}3. Restart your IDE — then ask your AI in plain English.
Related MCP server: Mapbox MCP Server
What You Can Ask Your AI
Geocode all addresses in my CSV and add lat/lon columns
Build an address autocomplete input for this React form using Mapsi
Draw a 20-minute drive isochrone from our warehouse at this coordinate
Find the 5 nearest hospitals to this coordinate
Migrate this Google Maps geocoding call to Mapsi
Add a MapLibre map with Mapsi light tiles and drop markers from this array
Calculate a distance matrix between 10 warehouses and 50 delivery stops
Snap this GPS trace to the road network and calculate total distanceAvailable Tools (18)
Geocoding
Tool | Description |
| Address or place name → lat/lon. Returns confidence score (0–1); treat scores below 0.6 as ambiguous. |
| lat/lon → formatted address, street, city, postcode, country. |
| Real-time address suggestions as user types (min 2 chars). For UI input fields. |
| Standardize messy/inconsistent addresses. Returns structured fields + coordinates. |
| IANA timezone name + UTC offset + DST status for any coordinate. |
| Altitude in metres for any coordinate (~30m resolution globally). |
Routing
Tool | Description |
| Turn-by-turn directions. Modes: auto, truck, bicycle, pedestrian, motor_scooter. |
| Reachability polygon within N minutes or N metres. Returns GeoJSON for MapLibre/Leaflet. |
| Travel time + distance matrix for up to 50×50 origin-destination pairs in one call. |
| Snap a GPS trace to the road network. Coordinates are [lon, lat] order (GeoJSON). |
| Find nearest routable road point. Call this if |
Places
Tool | Description |
| Find nearby POIs by category (restaurant, hospital, pharmacy, ATM…). Returns name, coords, categories. |
Spatial
Tool | Description |
| Admin hierarchy for a coordinate: country, region, city, neighbourhood. |
| Convert coordinate to H3 hexagonal grid cell at resolution 0–15. |
Batch
Tool | Description |
| Geocode up to 30,000 addresses in a single call. Never loop |
| Reverse geocode multiple coordinates in one call. |
Tiles
Tool | Description |
| MapLibre GL style URL. Styles: light, dark, streets, topo, grayscale, black, white, liberty. |
| Static PNG map URL for use in |
Auth
API calls:
X-API-Keyheader (handled automatically by the MCP server)Tile URLs:
?key=query param (browser-safe; returned byget_tile_style_url)
Common Patterns for Agents
Geocode once, reuse the result:
Don't re-geocode the same address twice within a session. Cache the lat/lon and pass it directly to route, isochrone, and places_search.Bulk data → batch tools:
For more than 1 address or coordinate pair, always use batch_geocode / batch_reverse_geocode.Route fails → nearest_road first:
If route returns an error near the origin or destination, call nearest_road to snap the point to a routable road, then retry route with the snapped coordinates.Isochrone — time vs distance:
Use contours_minutes for time-based reachability (delivery ETAs, commute zones).
Use contours_meters for fixed-radius circles on the road network.
Provide only one, not both.Pricing
Plan | Calls/day | Batch size |
Free | 1,000 | 10 |
Growth | 50,000 | 5,000 |
Business | Unlimited | 30,000 |
Full pricing at mapsi.dev/pricing
Links
Website: mapsi.dev
API docs: mapsi.dev/docs
AI prompts: mapsi.dev/prompts-for-ai
GitHub: github.com/algolayer/mapsi-mcp
Support: support@mapsi.dev
License
MIT — algolayer.com
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/algolayertechnologies/mapsi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server