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') |
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": 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- 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/qiobn/arcpro-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server