arcpro-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ARCPRO_MCP_HOST | No | Bridge host | 127.0.0.1 |
| ARCPRO_MCP_PORT | No | Bridge port | 18748 |
| ARCPRO_MCP_AUDIT_LOG | No | Audit log path (empty to disable) | ~/.arcpro_mcp/audit.log |
| ARCPRO_MCP_LOG_LEVEL | No | Server log level | INFO |
| ARCPRO_MCP_TRANSPORT | No | Transport type: stdio or streamable-http | stdio |
| ARCPRO_MCP_ALLOW_EXEC | No | Enable execute_python tool (set to '1' or 'true') |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| completions | {} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pingA | Check connectivity to the ArcGIS Pro bridge and read project status: ArcGIS Pro version, project path, list of maps, the active map, and whether a map view is open. Always call this first. |
| get_project_infoA | Get the current project: .aprx path, default geodatabase, and the maps it contains (with their spatial reference). |
| add_vector_layerA | Add a vector layer (shapefile, feature class, GeoJSON, GeoPackage, ...) to the active map (or a named map). Confirm the path with list_directory first. |
| add_raster_layerB | Add a raster layer (GeoTIFF, IMG, ...) to the active map (or a named map). |
| remove_layerA | Remove a layer from a map by name. This cannot be undone. |
| set_layer_visibilityC | Show or hide a layer on the map. |
| zoom_to_layerA | Zoom the active map view to a layer's full extent. Requires an open map view. |
| create_mapB | Create a new map in the project. Open it in ArcGIS Pro to view it. |
| save_projectB | Save the current ArcGIS Pro project (.aprx). |
| run_geoprocessingA | Run any ArcPy geoprocessing tool by its dotted name with positional parameters. Examples: tool='analysis.Buffer', params=['roads', 'roads_buf', '500 Meters']; tool='management.Project', params=[input, output, 32650]. ALWAYS check the input coordinate system with describe_data before distance/area operations — reproject first if the data is geographic (degrees). Outputs are overwritten if they already exist. Returns tool outputs and arcpy messages. |
| get_workspaceA | Get the current arcpy.env.workspace (default location for GP inputs/outputs). |
| set_workspaceA | Set arcpy.env.workspace — the default location for inputs/outputs when a full path is not given (e.g. a folder or a file geodatabase path). |
| list_layersA | List layers in the active map (or a named map). Returns each layer's name, visibility, and whether it is a feature/raster/group layer. |
| list_fieldsA | List the fields of a dataset or layer (name, alias, type, length). Use before building SQL where-clauses or attribute operations. |
| count_featuresB | Count the features (rows) in a layer in the active map. |
| get_layer_featuresA | Preview rows from a layer's attribute table. limit caps rows (default 10, max 50). fields optionally restricts which columns are returned. |
| get_unique_valuesA | Return distinct values of a field — useful before building where-clauses or categorized symbology. limit caps the number of values returned. |
| list_layoutsA | List print layouts in the project with page size and units. |
| create_layoutC | Create a print layout with a map frame already added. units: INCH (default), CENTIMETER, MILLIMETER, POINT. Then call export_layout to write it to disk. |
| export_layoutA | Export a layout to a file. format: PDF (default), PNG, JPG, BMP, TIF, SVG, EPS. dpi applies to raster formats (default 150). output is a full file path. |
| list_directoryA | List files in a directory, optionally filtered by a glob pattern (e.g. '*.shp'). Use this to confirm exact filenames before loading data — never guess paths. |
| describe_dataA | Describe a dataset: data type, geometry/shape type, feature count, extent, and coordinate system (name, WKID, geographic vs projected, linear unit). Always check this before any distance- or area-based geoprocessing. |
| list_feature_classesA | List feature classes in a workspace (folder, file geodatabase, or feature dataset). pattern filters by name; geometry_type filters by Point/Polyline/Polygon. |
| select_by_attributeA | Select features in a layer using a SQL where-clause (e.g. "population > 100000"). selection_type: NEW_SELECTION (default), ADD_TO_SELECTION, REMOVE_FROM_SELECTION, SUBSET_SELECTION. Returns the selected feature count. Use list_fields and get_unique_values first to build a valid clause. |
| clear_selectionA | Clear the active selection on a layer. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| project_info | Current ArcGIS Pro project metadata, maps, and active map |
| llms_context | Capabilities summary and usage tips for the LLM |
Latest Blog Posts
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/qiobn/arcpro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server