General

This guide is for anyone who wants to use AI with ArcGIS Location Services through MCP. This includes developers building AI-powered applications and users working with AI clients. You don’t need to be an experienced developer to get started.

Some current known limitations of the beta version of MCP for ArcGIS Location Services include:

  • When generating a static map, the image only renders in PNG format. Some clients do not support rendering images in agent responses, which can lead to images not displaying properly.
  • Advanced routing capabilities such as fleet routing and location-allocation solving are not currently available.

Authentication

  • Portal service > General privileges > Apps and capabilities > Allow beta access
  • Location services > Geocoding > Geocode (stored)1
  • Location services > Routing > Simple routing
  • Location services > Elevation > Elevation service
  • Location services > Static maps > Static maps service
1 This privilege is only available for ArcGIS Location Platform accounts with pay-as-you-go enabled.

Yes, you can use either user authentication User authentication is a type of authentication that allows users with an ArcGIS account to sign into an application and allow it to access ArcGIS content, services, and resources on their behalf. The typical authorization protocol used is OAuth2.0. Learn more or app authentication App authentication is a type of authentication that grants a short-lived access token based on an OAuth 2.0 client ID and client secret, authorizing an application to access ArcGIS services and items. Learn more with OAuth if your MCP client supports it.

Troubleshooting

No. Currently, MCP for ArcGIS Location Services (beta) is only available via a hosted URL using the Streamable HTTP transport protocol.

The Static Map tools return map images in .png format. Be aware that some clients, such as Microsoft Copilot, do not support rendering images in agent responses by default. See the Microsoft documentation to see how an administrator can enable this capability.

Tools are filtered based on the privileges of the access token. Ensure that your token has all of the necessary privileges.

To use geocoding with the MCP server, your access token must include the Location services > Geocoding > Geocode (stored) privilege. This privilege is only available in ArcGIS Location Platform accounts with pay-as-you-go enabled. To learn more, go to ArcGIS Location Platform > Billing.

Some MCP clients, such as Claude Desktop, have limits on the payload size of an MCP tool response. Large map requests produce base64-encoded image responses which may exceed these client limits.

To reduce the response size:

  • Request a smaller image width and height.
  • Reduce the number of points, polylines, or polygons included in the map.
  • Change the extent so it is zoomed into a more focused area.
ProblemSolution
Authentication errors (401 / 403)Ensure the token is valid, not expired, and correctly formatted as Bearer <token>. Also confirm your API key has all the necessary privileges to access the service(s).
Cannot read properties of undefined (reading 'bind')This is a Visual Studio Code specific error. Check for updates and restart Visual Studio Code.
MCP server will not loadUpdate your MCP client to the latest version, then restart the application. Older versions of Visual Studio Code may not support the MCP tool schema.
Connection failed or timed outCheck your internet connection and confirm the MCP server URL is correct and reachable from your network.
Tool not found errorVerify that you are connected to the correct MCP instance and that the access token is prefixed with Bearer .
Geocoding results seem inaccurateClean and standardize input addresses before sending requests. Ambiguous formatting or heavy typos can reduce geocoding accuracy.
MCP shows disconnected in the clientReconnect the MCP server and verify that authentication settings were saved correctly in the client configuration. The connection may also drop when restarting or closing the MCP client.
MCP error -32602: failed to deserialize parameters: invalid type: map, expected a stringThis error can occur when the client sends a request body that does not match the expected schema. Check the request payload for formatting issues or missing required fields. For example, the payload may need to be JSON-stringified.