Skip to main content
Glama
lutfiArahaman

ArcGIS Pro MCP Bridge

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
pingA

Test the connection to ArcGIS Pro and get the full project status: version, project path, list of maps/scenes/globes, active map, and whether a view is currently open. Always call this first to understand the current state before running any other operations.

get_project_infoA

Get information about the currently open ArcGIS Pro project: file path, geodatabase, and list of maps.

get_active_map_nameA

Get the name of the active map currently shown in ArcGIS Pro.

list_layersA

List all layers in the active map (or a specific map by name).

Args: map_name: Optional map name. If empty, uses the active map.

add_vector_layerA

Add a vector layer (shapefile, feature class, GeoJSON, etc.) to the active map.

Args: path: Full path to the data source (e.g. C:/data/roads.shp or a feature class path)

add_raster_layerA

Add a raster layer (GeoTIFF, IMG, etc.) to the active map.

Args: path: Full path to the raster file (e.g. C:/data/dem.tif)

remove_layerA

Remove a layer from the active map by name.

Args: name: Exact layer name as shown in the Contents pane

zoom_to_layerA

Zoom and pan the active map view to show the full extent of a layer.

Args: name: Exact layer name as shown in the Contents pane

count_featuresA

Count the total number of features (rows) in a layer.

Args: layer: Exact layer name as shown in the Contents pane

select_by_attributeA

Select features in a layer using a SQL WHERE clause.

Args: layer: Exact layer name as shown in the Contents pane where_clause: SQL expression (e.g. "population > 100000" or "type = 'road'") selection_type: NEW_SELECTION, ADD_TO_SELECTION, REMOVE_FROM_SELECTION, SUBSET_SELECTION (default: NEW_SELECTION)

update_featuresA

Update attribute values on features matching a WHERE clause. Sets the same field value(s) on every matching row (bulk update). For per-row computed values (e.g. incrementing a counter), use execute_python with an UpdateCursor instead.

Args: layer: Exact layer name as shown in the Contents pane where_clause: SQL expression selecting which rows to update (e.g. "STATUS = 'Pending'"). Pass "" to update every row in the layer — be deliberate about this. updates: Dict of {field_name: new_value} applied to every matching row, e.g. {"STATUS": "Verified", "REVIEWED_BY": "GIS Team"}

save_projectA

Save the current ArcGIS Pro project.

run_geoprocessingB

Run any ArcPy geoprocessing tool by its dotted name.

Args: tool: Dotted tool name, e.g. "analysis.Buffer", "management.CopyFeatures", "conversion.FeatureClassToShapefile" params: List of positional parameters for the tool, e.g. ["roads", "output_buf", "100 Meters"]

Example: run_geoprocessing("analysis.Buffer", ["C:/data/roads.shp", "C:/data/roads_buf.shp", "500 Meters"])

list_fieldsA

List all fields in a dataset (shapefile, feature class, table, layer name, etc.) with field type, length, and alias. Use this before building WHERE clauses or running attribute operations.

Args: dataset: Full path to dataset, or layer name as shown in Contents pane

list_feature_classesA

List feature classes in a workspace (folder, GDB, or feature dataset).

Args: workspace: Path to workspace/GDB (e.g. C:/data/mydb.gdb). Uses current workspace if empty. pattern: Wildcard filter, e.g. "road*" (default: "*") feature_type: Filter by geometry — Point, Line, Polygon, etc. (default: all)

list_rastersA

List raster datasets in a workspace.

Args: workspace: Path to workspace/folder. Uses current workspace if empty. pattern: Wildcard filter (default: "*") raster_type: Filter by type — TIF, IMG, GRID, etc. (default: all)

list_tablesA

List standalone tables in a workspace (GDB tables, DBF files, etc.).

Args: workspace: Path to workspace. Uses current workspace if empty. pattern: Wildcard filter (default: "*")

set_workspaceA

Set arcpy.env.workspace — the default location for inputs/outputs when no full path is provided to geoprocessing tools.

Args: workspace: Full path to folder or GDB (e.g. C:/data or C:/data/mydb.gdb)

get_workspaceA

Get the current arcpy.env.workspace setting.

clear_selectionA

Clear any active selection on a layer.

Args: layer: Exact layer name as shown in the Contents pane

get_unique_valuesA

Get all unique values in a field. Useful for exploring data and building WHERE clauses for select_by_attribute.

Args: layer: Exact layer name as shown in the Contents pane field: Field name to get unique values for limit: Max number of unique values to return (default: 100)

set_layer_visibilityA

Toggle a layer's visibility in the Contents pane.

Args: layer: Exact layer name as shown in the Contents pane visible: True to show, False to hide

create_mapA

Create a new map in the current ArcGIS Pro project. After creation, open it by double-clicking it in the Catalog pane under Maps.

Args: name: Name for the new map (default: "Map")

describe_dataA

Describe a dataset — returns coordinate system, geometry type, extent, and data type. Use this to verify a file exists and check its projection before geoprocessing.

Args: path: Full path to the dataset (shapefile, raster, feature class, GDB, etc.)

list_directoryA

List files in a directory, optionally filtered by pattern.

Args: path: Full path to the directory (e.g. C:/Users/User/Documents/Rusunawa) pattern: Glob pattern to filter results (e.g. ".shp", ".tif", default: "*")

create_layoutA

Create a new layout in the project with a map frame already added. After creation, call export_layout() to export it as PDF/PNG/etc.

Args: name: Layout name (default: "Layout") map_name: Map to put in the frame — uses active map if empty width: Page width (default: 11) height: Page height (default: 8.5) units: Page units — INCH, CENTIMETER, MILLIMETER, POINT (default: INCH) margin: Frame margin from page edge in page units (default: 0.5)

execute_pythonA

Execute arbitrary Python/arcpy code inside the ArcGIS Pro bridge. Use this for complex arcpy.mp operations not covered by other tools.

Available variables: arcpy, os, proj (the ArcGISProject), get_map() Set result = in your code to return data. print() output is captured and returned as 'stdout'.

Example: code = """ m = proj.listMaps()[0] result = [lyr.name for lyr in m.listLayers()] """

list_layoutsA

List all layouts in the current ArcGIS Pro project with their page size and units.

export_layoutA

Export a layout to a file (PDF, PNG, JPG, BMP, TIF, SVG, or EPS).

Args: name: Exact layout name as shown in the Catalog pane output: Full output file path including extension (e.g. C:/output/map.pdf) format: Export format — PDF, PNG, JPG, BMP, TIF, SVG, EPS (default: PDF) dpi: Resolution in dots per inch for raster formats (default: 150)

get_layer_featuresA

Preview rows from a layer's attribute table.

Args: layer: Exact layer name as shown in the Contents pane limit: Number of rows to return (default: 10) fields: List of field names to include. If empty, returns all non-geometry fields.

publish_web_layerA

Publish a layer as a hosted feature service to ArcGIS Online / Enterprise, using whichever portal is currently active in ArcGIS Pro. Always confirm with the user before calling this — it creates or overwrites content on their portal account.

Publishes over REST via the ArcGIS API for Python (reusing your existing Pro sign-in — no separate login needed), not the classic arcpy.server pipeline, which doesn't work reliably from this bridge. Can take up to ~30-60s for typical layers; this is normal, don't treat a slow response as a failure.

Args: layer: Exact layer name as shown in the Contents pane service_name: Name for the hosted feature service (must be unique in the target folder) summary: Short description shown on the portal item (optional) tags: Comma-separated tags for the portal item (optional) public: Share publicly if True; private (owner-only) if False (default: False) overwrite: Overwrite an existing service with the same name if True (default: False)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/lutfiArahaman/MCP_ALAMI1'

If you have feedback or need assistance with the MCP directory API, please join our Discord server