Neshan MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NESHAN_API_KEY | Yes | Your Neshan API key. Get it from https://platform.neshan.org | |
| NESHAN_KEY_STATIC | No | Optional per-service API key for static maps. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| neshan_searchC | Search for places, addresses and POIs near a location in Iran. |
| neshan_reverse_geocodeA | Convert coordinates into a human-readable Persian address. |
| neshan_geocodeA | Convert a free-text Persian address into geographic coordinates. Cheaper than neshan_geocode_plus — prefer this by default. Switch to neshan_geocode_plus only when the address includes a plaque (پلاک) number or refers to a point of interest by name, which this endpoint does not resolve. |
| neshan_geocode_plusA | Geocode an address that includes a plaque (پلاک) number or a named point of interest — neshan_geocode can't resolve those. More expensive than neshan_geocode, so only use this when plaque/POI resolution is actually needed. Whenever available, pass city, province, a bias location, and/or a bounding box: all of them improve geocoding accuracy regardless of whether plaque/POI resolution is involved. |
| neshan_directionA | Calculate a route between two points, choosing how traffic is modeled. |
| neshan_distance_matrixB | Compute travel distance and duration for every origin-destination pair. |
| neshan_tspB | Find the optimal visiting order for multiple destinations (TSP). |
| neshan_map_matchingC | Snap a sequence of GPS points onto the road network (map matching). |
| neshan_isochroneA | Calculate the reachable area from a point within a given time or distance (isochrone). Returns a GeoJSON FeatureCollection. Each feature's geometry is a Polygon or LineString (controlled by 'polygon') and properties.metric is 'time' or 'distance'. Both distance and time can be requested simultaneously. |
| neshan_static_mapC | Render a static map image (PNG) centered on a coordinate. |
| neshan_static_map_arcA | Render a static map image (PNG) with a curved arc line between two points. Useful for visualising geographic connections, travel reports, or origin-destination relationships on a map without performing full routing. |
| neshan_map_viewA | Generate an interactive Neshan map HTML file and save it locally. Creates a fully interactive map page using the Neshan Maps SDK. Supports markers with popups and route polylines drawn on the map. The map auto-fits to show all markers and routes. Open the returned file_path in any browser to view the map. |
| neshan_traffic_analyticsA | Analyse historical traffic patterns around a location. Returns three things:
|
| neshan_vrp_logisticB | Solve a Vehicle Routing Problem (VRP) for logistics / delivery optimization. Assigns a set of jobs to vehicles starting from a depot, minimising total distance or duration, respecting vehicle capacities, skills, and time windows. See each object's field descriptions in the tool schema for exact shape. |
| neshan_get_point_by_hashA | Fetch full details of a place using its poiHash from neshan_search results. Only works for items where neshan_search marked 'verified_details_available: true' (owner-claimed places). This call is expensive — use it selectively for specific candidates you need confirmed details on (precise address, category, working hours, region), not as a blanket follow-up for every search result. |
| neshan_deeplinkA | Generate Neshan app deeplinks for showing a point or navigating between two points. If the Neshan app is installed the link opens it directly; otherwise it falls back to the Neshan web app. Returns both Android/Web and iOS variants. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Each tool has a clearly distinct purpose: geocoding (with two variants clearly differentiated), routing, distance matrix, isochrones, map matching, search, reverse geocoding, static maps (standard and arc), traffic analytics, deeplinks, TSP, and VRP. No two tools overlap, and descriptions provide explicit guidance on when to use each.
All tool names follow a consistent 'neshan_' prefix followed by a descriptive snake_case name (e.g., 'neshan_direction', 'neshan_geocode_plus', 'neshan_vrp_logistic'). The naming pattern is uniform and predictable across all 16 tools.
With 16 tools covering geocoding, routing, search, static maps, traffic, optimization, and more, the count is well-scoped for a comprehensive mapping server. Each tool serves a distinct function without redundancy or excessive granularity.
The tool surface is remarkably complete for a mapping API server. It includes forward/reverse geocoding, routing, distance matrix, isochrones, map matching, search, static maps (with arc variant), traffic analytics, deeplinks, interactive map view, TSP, and VRP. No obvious gaps for core mapping workflows.