Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Server capabilities have not been inspected yet.

Tools

Functions exposed to the LLM to take actions

NameDescription
read_file_gpd

Reads a geospatial file and returns stats and a data preview.

append_gpd

Reads two shapefiles directly, concatenates them vertically.

merge_gpd

Merges two shapefiles based on common attribute columns, This function performs a database-style join, not a spatial join. Args: left_shapefile_path: Path to the left shapefile. The geometry from this file is preserved. right_shapefile_path: Path to the right shapefile to merge. output_path: Path to save the merged output shapefile. how: Type of merge. One of 'left', 'right', 'outer', 'inner'. Defaults to 'inner'. on: Column name to join on. Must be found in both shapefiles. left_on: Column name to join on in the left shapefile. right_on: Column name to join on in the right shapefile. suffixes: Suffix to apply to overlapping column names.

overlay_gpd

Overlay two GeoDataFrames using geopandas.overlay. Args: gdf1_path: Path to the first geospatial file. gdf2_path: Path to the second geospatial file. how: Overlay method ('intersection', 'union', 'identity', 'symmetric_difference', 'difference'). output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

dissolve_gpd

Dissolve geometries by attribute using geopandas.dissolve. Args: gdf_path: Path to the geospatial file. by: Column to dissolve by (optional). output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

explode_gpd

Split multi-part geometries into single parts using geopandas.explode. Args: gdf_path: Path to the geospatial file. output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

clip_vector

Clip vector geometries using geopandas.clip. Args: gdf_path: Path to the input geospatial file. clip_path: Path to the clipping geometry file. output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

sjoin_gpd

Spatial join between two GeoDataFrames using geopandas.sjoin. Args: left_path: Path to the left geospatial file. right_path: Path to the right geospatial file. how: Type of join ('left', 'right', 'inner'). predicate: Spatial predicate ('intersects', 'within', 'contains', etc.). output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

sjoin_nearest_gpd

Nearest neighbor spatial join using geopandas.sjoin_nearest. Args: left_path: Path to the left geospatial file. right_path: Path to the right geospatial file. how: Type of join ('left', 'right'). max_distance: Optional maximum search distance. output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

point_in_polygon

Check if points are inside polygons using spatial join (predicate='within'). Args: points_path: Path to the point geospatial file. polygons_path: Path to the polygon geospatial file. output_path: Optional path to save the result. Returns: Dictionary with status, message, and output info.

write_file_gpd

Export a GeoDataFrame to a file (Shapefile, GeoJSON, GPKG, etc.). Args: gdf_path: Path to the input geospatial file. output_path: Path to save the exported file. driver: Optional OGR driver name (e.g., 'ESRI Shapefile', 'GeoJSON', 'GPKG'). Returns: Dictionary with status and message.

buffer

Create a buffer around a geometry.

intersection

Find intersection of two geometries.

union

Combine two geometries.

difference

Find difference between geometries.

symmetric_difference

Find symmetric difference between geometries.

convex_hull

Calculate convex hull of a geometry.

envelope

Get bounding box of a geometry.

minimum_rotated_rectangle

Get minimum rotated rectangle of a geometry.

get_centroid

Get the centroid of a geometry.

get_bounds

Get the bounds of a geometry.

get_coordinates

Get the coordinates of a geometry.

get_geometry_type

Get the type of a geometry.

rotate_geometry

Rotate a geometry.

scale_geometry

Scale a geometry.

translate_geometry

Translate a geometry.

triangulate_geometry

Create a triangulation of a geometry.

voronoi

Create a Voronoi diagram from points.

unary_union_geometries

Create a union of multiple geometries.

get_length

Get the length of a geometry.

get_area

Get the area of a geometry.

is_valid

Check if a geometry is valid.

make_valid

Make a geometry valid.

simplify

Simplify a geometry.

snap_geometry

Snap one geometry to another using shapely.ops.snap. Args: geometry1: WKT string of the geometry to be snapped. geometry2: WKT string of the reference geometry. tolerance: Distance tolerance for snapping. Returns: Dictionary with status, message, and snapped geometry as WKT.

nearest_point_on_geometry

Find the nearest point on geometry2 to geometry1 using shapely.ops.nearest_points. Args: geometry1: WKT string of the first geometry (e.g., a point). geometry2: WKT string of the second geometry. Returns: Dictionary with status, message, and the nearest point as WKT.

normalize_geometry

Normalize the orientation/order of a geometry using shapely.normalize. Args: geometry: WKT string of the geometry. Returns: Dictionary with status, message, and normalized geometry as WKT.

geometry_to_geojson

Convert a Shapely geometry (WKT) to GeoJSON using shapely.geometry.mapping. Args: geometry: WKT string of the geometry. Returns: Dictionary with status, message, and GeoJSON representation.

geojson_to_geometry

Convert GeoJSON to a Shapely geometry using shapely.geometry.shape. Args: geojson: GeoJSON dictionary. Returns: Dictionary with status, message, and geometry as WKT.

zonal_statistics

Calculate statistics of raster values within polygons (zonal statistics). Args: raster_path: Path to the raster file. vector_path: Path to the vector file (polygons). stats: List of statistics to compute (e.g., ["mean", "min", "max", "std"]). Returns: Dictionary with status, message, and statistics per polygon.

reclassify_raster

Reclassify raster values using a mapping dictionary. Args: raster_path: Path to the input raster. reclass_map: Dictionary mapping old values to new values (e.g., {1: 10, 2: 20}). output_path: Path to save the reclassified raster. Returns: Dictionary with status and message.

focal_statistics

Compute focal (moving window) statistics on a raster. Args: raster_path: Path to the input raster. statistic: Statistic to compute ('mean', 'min', 'max', 'std'). size: Window size (odd integer). output_path: Optional path to save the result. Returns: Dictionary with status, message, and output path if saved.

hillshade

Generate hillshade from a DEM raster. Args: raster_path: Path to the DEM raster. azimuth: Sun azimuth angle in degrees. angle_altitude: Sun altitude angle in degrees. output_path: Optional path to save the hillshade raster. Returns: Dictionary with status, message, and output path if saved.

write_raster

Write a numpy array to a raster file using metadata from a reference raster. Args: array: 2D or 3D list (or numpy array) of raster values. reference_raster: Path to a raster whose metadata will be copied. output_path: Path to save the new raster. dtype: Optional data type (e.g., 'float32', 'uint8'). Returns: Dictionary with status and message.

metadata_raster

Open a raster dataset in read-only mode and return metadata.

This tool supports two modes based on the provided string:

  1. A local filesystem path (e.g., "D:\Data\my_raster.tif").

  2. An HTTPS URL (e.g., "https://example.com/my_raster.tif").

The input must be a single string that is either a valid file path on the local machine or a valid HTTPS URL pointing to a raster.

get_raster_crs

Retrieve the Coordinate Reference System (CRS) of a raster dataset.

Opens the raster (local path or HTTPS URL), reads its DatasetReader.crs attribute as a PROJ.4-style dict, and also returns the WKT representation.

clip_raster_with_shapefile

Clip a raster dataset using polygons from a shapefile and write the result. Converts the shapefile's CRS to match the raster's CRS if they are different.

Parameters:

  • raster_path_or_url: local path or HTTPS URL of the source raster.

  • shapefile_path: local filesystem path to a .shp file containing polygons.

  • destination: local path where the masked raster will be written.

resample_raster

Resample a raster dataset by a scale factor and save the result.

Parameters:

  • source: local path or HTTPS URL of the source raster.

  • scale_factor: multiplicative factor for width/height (e.g., 0.5 to halve resolution, 2.0 to double).

  • resampling: resampling method name: "nearest", "bilinear", "cubic", etc.

  • destination: local filesystem path for the resampled raster.

reproject_raster

Reproject a raster dataset to a new CRS and save the result.

Parameters:

  • source: local path or HTTPS URL of the source raster.

  • target_crs: target CRS string (e.g., "EPSG:4326").

  • destination: local filesystem path for the reprojected raster.

  • resampling: resampling method: "nearest", "bilinear", "cubic", etc.

extract_band

Extract a specific band from a multi-band raster and save it as a single-band GeoTIFF.

Parameters:

  • source: path or URL of the input raster.

  • band_index: index of the band to extract (1-based).

  • destination: path to save the extracted band raster.

raster_band_statistics

Calculate min, max, mean, and std for each band of a raster.

Parameters:

  • source: path to input raster (local or URL).

tile_raster

Split a raster into square tiles of a given size and save them individually.

Parameters:

  • source: input raster path.

  • tile_size: size of each tile (e.g., 256 or 512).

  • destination_dir: directory to store the tiles.

raster_histogram

Compute histogram of pixel values for each band.

Parameters:

  • source: path to input raster.

  • bins: number of histogram bins.

compute_ndvi

Compute NDVI (Normalized Difference Vegetation Index) and save to GeoTIFF.

Parameters:

  • source: input raster path.

  • red_band_index: index of red band (1-based).

  • nir_band_index: index of near-infrared band (1-based).

  • destination: output NDVI raster path.

raster_algebra

Perform algebraic operations (addition or subtraction) on two raster bands, handling alignment issues automatically.

Parameters:

  • raster1: Path to the first raster (.tif).

  • raster2: Path to the second raster (.tif).

  • band_index: Index of the band to process (1-based index).

  • operation: Either "add" or "subtract" to specify the calculation.

  • destination: Path to save the result as a new raster.

The function aligns rasters if needed, applies the selected operation, and saves the result.

concat_bands

Concatenate multiple single-band raster files into one multi-band raster, handling alignment issues automatically.

Parameters:

  • folder_path: Path to folder containing input raster files (e.g. GeoTIFFs).

  • destination: Path to output multi-band raster file.

Notes:

  • Files are read in sorted order by filename.

  • If rasters have mismatched CRS, resolution, or dimensions, they are aligned automatically.

weighted_band_sum

Compute a weighted sum of all bands in a raster using specified weights.

Parameters:

  • source: Path to the input multi-band raster file.

  • weights: List of weights (must match number of bands and sum to 1).

  • destination: Path to save the output single-band raster.

transform_coordinates

Transform coordinates between CRS.

project_geometry

Project a geometry between CRS.

get_crs_info

Get information about a CRS.

get_available_crs

Get list of available CRS.

get_geod_info

Get information about a geodetic calculation.

calculate_geodetic_distance

Calculate geodetic distance between points.

calculate_geodetic_point

Calculate point at given distance and azimuth.

calculate_geodetic_area

Calculate area of a polygon using geodetic calculations.

get_utm_zone

Get UTM zone for given coordinates.

get_utm_crs

Get UTM CRS for given coordinates.

get_geocentric_crs

Get geocentric CRS for given coordinates.

getis_ord_g

Compute Getis-Ord G for global hot spot analysis.

morans_i

Compute Moran's I Global Autocorrelation Statistic.

gearys_c

Compute Global Geary's C Autocorrelation Statistic.

gamma_statistic

Compute Gamma Statistic for spatial autocorrelation.

moran_local

Local Moran's I.

getis_ord_g_local

Local Getis-Ord G.

join_counts

Global Binary Join Counts.

join_counts_local

Local Join Counts.

adbscan

Adaptive DBSCAN clustering (requires coordinates, no dependent_var).

weights_from_shapefile

Create a spatial weights (W) from a shapefile using contiguity.

  • contiguity: 'queen' or 'rook' (default 'queen')

  • id_field: optional attribute name to use as observation IDs

distance_band_weights

Create a distance-based spatial weights (W) object from point data.

  • data_path: path to point shapefile or GeoPackage

  • threshold: distance threshold for neighbors (in CRS units, e.g., meters)

  • binary: True for binary weights, False for inverse distance weights

  • id_field: optional attribute name to use as observation IDs

knn_weights

Create a k-nearest neighbors spatial weights (W) object from point data.

  • data_path: path to point shapefile or GeoPackage

  • k: number of nearest neighbors

  • id_field: optional attribute name to use as observation IDs

build_transform_and_save_weights

Pipeline: Read shapefile, build spatial weights, optionally transform, and save to file.

Parameters:

  • data_path: Path to point shapefile or GeoPackage

  • method: 'queen', 'rook', 'distance_band', 'knn'

  • id_field: Optional field name for IDs

  • threshold: Distance threshold (required if method='distance_band')

  • k: Number of neighbors (required if method='knn')

  • binary: True for binary weights, False for inverse distance (DistanceBand only)

  • transform_type: 'r', 'v', 'b', 'o', or 'd' (optional)

  • output_path: File path to save weights

  • format: 'gal' or 'gwt'

  • overwrite: Allow overwriting if file exists

ols_with_spatial_diagnostics_safe

Safe MCP pipeline: Read shapefile, build/load W, convert numeric, check NaNs, run OLS.

Parameters:

  • data_path: path to shapefile or GeoPackage

  • y_field: dependent variable column name

  • x_fields: list of independent variable column names

  • weights_path: optional path to existing weights file (.gal or .gwt)

  • weights_method: 'queen', 'rook', 'distance_band', or 'knn' (used if weights_path not provided)

  • id_field: optional attribute name to use as observation IDs

  • threshold: required if method='distance_band'

  • k: required if method='knn'

  • binary: True for binary weights (DistanceBand only)

build_and_transform_weights

Build and transform spatial weights in one step.

Parameters:

  • data_path: Path to point shapefile or GeoPackage

  • method: 'queen', 'rook', 'distance_band', or 'knn'

  • id_field: Optional field name for IDs

  • threshold: Distance threshold (required if method='distance_band')

  • k: Number of neighbors (required if method='knn')

  • binary: True for binary weights, False for inverse distance (DistanceBand only)

  • transform_type: 'r', 'v', 'b', 'o', or 'd'

spatial_markov

Run giddy Spatial Markov on a panel (n regions x t periods) from a shapefile.

dynamic_lisa

Run dynamic LISA (directional LISA) with giddy.directional.Rose.

Returns sector counts, angles, vector lengths, and (optionally) permutation p-values.

gm_lag

Run spreg.GM_Lag (spatial 2SLS / GMM-IV spatial lag model) on a cross-section.

Returns coefficients with SE/z/p, fit metrics, (optional) AK test, and a small data preview.

save_results

MCP Tool: Save any GIS-MCP result dict to files, only when the user requests.

Args: data: The dictionary returned by any GIS-MCP tool. filename: Base filename without extension. formats: List of formats to save (default = all). folder: Target folder (relative to configured storage directory, or absolute path).

Returns: Dict with 'saved_files' mapping format -> path.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_geopandas_ioList available GeoPandas I/O operations.
get_geopandas_joinsList available GeoPandas join operations.
get_basic_operationsList available basic geometric operations.
get_geometric_propertiesList available geometric property operations.
get_transformationsList available geometric transformations.
get_advanced_operationsList available advanced operations.
get_measurementsList available measurement operations.
get_validation_operationsList available validation operations.
get_shapely_util_operationsList available Shapely utility/advanced operations.
get_rasterio_operationsList available rasterio operations.
get_crs_transformationsList available CRS transformation operations.
get_crs_info_operationsList available CRS information operations.
get_geodetic_operationsList available geodetic operations.
get_spatial_operationsList available spatial analysis operations. This is for esda library. They are using pysal library.

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/mahdin75/gis-mcp'

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