Skip to main content
Glama
ArcGIS Location Services MCP Server

ArcGIS Location Services MCP Server

by lwsinclair

ArcGIS Location Services MCP Server

MCP Server for ArcGIS Location Services.

Tools

  1. geocode

    • Search for an address, place, or point of interest

    • Inputs:

      • singleLine (string): Complete address in a single string

      • address (string): Place name or partial address

      • location (string, optional): Nearby point in "longitude,latitude" format

      • category (string, optional): POI category to search for

    • Returns: Matching locations with addresses, coordinates, and match scores

  2. reverse_geocode

    • Convert geographic coordinates to an address

    • Inputs:

      • location (string): Location as "longitude,latitude"

      • outFields (string, optional): Fields to include in response

    • Returns: Address information, location type, and address components

  3. find_nearby_places

    • Find nearby places and points of interest

    • Inputs:

      • x (number): Longitude of center point

      • y (number): Latitude of center point

      • pageSize (number, optional): Number of results to return

      • categories (string, optional): Category filter

      • radius (number, optional): Search radius in meters

      • includeDetails (boolean, optional): Whether to include detailed place information

      • detailsLimit (number, optional): Maximum number of places to get details for

    • Returns: List of places with names, addresses, categories, and optional details

  4. get_directions

    • Get detailed turn-by-turn directions between locations

    • Input:

      • stops (string): Semicolon-separated list of "longitude,latitude" pairs

    • Returns: Route summary with distance, time, and turn-by-turn directions

  5. get_elevation

    • Get elevation data for locations on land or water

    • Inputs:

      • lon and lat (numbers, optional): Coordinates for a single point

      • coordinates (string, optional): JSON array of [lon, lat] pairs for multiple points

      • relativeTo (string, optional): Reference point for elevation measurement

    • Returns: Elevation data with reference datum and spatial reference

  6. get_basemap_tile

    • Access static basemap tiles service with different styles

    • Inputs:

      • version (string, optional): API version

      • style_base (string, optional): Base style category

      • style_name (string, optional): Map style name

      • row, level, column (numbers, optional): Tile coordinates

    • Returns: Basemap tile information and status

Related MCP server: mcp-opencages

Setup

Installing via Smithery

To install arcgis-location-services-mcp for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @puran1218/arcgis-location-services-mcp --client claude

API Key

Get an ArcGIS Developer API key by creating an account at ArcGIS Location Platform and generating an API key.

Usage with Claude Desktop

Add the following to your claude_desktop_config.json in Claude for Desktop:

{
  "mcpServers": {
    "arcgis-location-services": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\ABSOLUTE\\PATH\\TO\\ArcGIS-Location-Services-MCP-Server",
        "run",
        "main.py"
      ],
      "env": {
        "ARCGIS_LOCATION_SERVICE_API_KEY": "<YOUR_API_KEY>"
      }
    }
  }
}

License

This MCP server is provided as-is. Usage of ArcGIS Location Services is subject to Esri's terms of service.

Available Tools

6 tools
find_nearby_placesB

Find nearby places and points of interest with optional detailed information.

Args:
    x: Longitude of the center point (e.g., -122.4194)
    y: Latitude of the center point (e.g., 37.7749)
    pageSize: Number of results to return (default: 20)
    categories: Optional category filter (e.g., "restaurant", "hotel", "coffee")
    radius: Search radius in meters (default: 5000)
    includeDetails: Whether to include full details for each place (default: False)
    detailsLimit: Maximum number of places to get details for when includeDetails=True (default: 3)

Inputs: x (required), y (required), radius, pageSize, +3 more.

geocodeB

Search for an address, place or point of interest.

Args:
    singleLine: Complete address in a single string (e.g., "1600 Pennsylvania Ave NW, DC")
    address: Place name or address (e.g., "Starbucks" or "380 New York St")
    location: Optional point to search near, as "longitude,latitude" (e.g., "-122.4194,37.7749")
    category: Optional POI category to search for (e.g., "gas station")
    outFields: Fields to return in the response (default: all fields)

Inputs: address, category, location, outFields, +1 more.

get_basemap_tileB

Access static basemap tiles service with different styles.

Args:
    version: API version (default: v1)
    style_base: The base style category (default: arcgis)
    style_name: Map style name (e.g., navigation, streets, satellite)
    row: Tile row coordinate
    level: Zoom level
    column: Tile column coordinate

Inputs: row, level, column, version, +2 more.

get_directionsA

Get detailed turn-by-turn directions between locations.

Args:
    stops: Two or more locations as a semicolon-separated list of "longitude,latitude" pairs
          (e.g., "-122.68782,45.51238;-122.690176,45.522054")

Inputs: stops (required).

get_elevationA

Get elevation for locations on land or water.

Args:
    lon: Longitude of a single point (e.g., -117.195)
    lat: Latitude of a single point (e.g., 34.065)
    coordinates: JSON array of [lon, lat] pairs for multiple points (e.g., "[[-117.182, 34.0555],[-117.185, 34.057]]")
    relativeTo: Reference point for elevation measurement (e.g., "meanSeaLevel", "ellipsoid")

Inputs: lat, lon, relativeTo, coordinates.

reverse_geocodeA

Convert geographic coordinates to an address.

Args:
    location: Location as "longitude,latitude" (e.g., "-79.3871,43.6426")
    outFields: Fields to include in the response (default: all fields)

Inputs: location (required), outFields.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a distinct purpose: basemap tiles, nearby places, geocoding, reverse geocoding, directions, and elevation. No overlap in functionality.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in snake_case, such as get_basemap_tile, find_nearby_places, geocode, reverse_geocode, get_directions, get_elevation. The naming is clear and predictable.

    Tool Count5/5

    With 6 tools, the server covers essential location services without being sparse or overwhelming. Each tool serves a specific function, and the count is well-scoped for the domain.

    Completeness4/5

    The tool set includes core GIS operations: tile access, POI search, geocoding, reverse geocoding, directions, and elevation. Minor gaps exist, such as missing batch geocoding or spatial queries, but the surface is reasonably complete for a basic location services server.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables forward and reverse geocoding using the OpenCage API, allowing conversion between addresses and coordinates.
      330 npm
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables geocoding, reverse geocoding, elevation profiles, static map PNGs, and coordinate reprojection using MapTiler's OpenStreetMap data.
      145 npm
      MIT