Gis MCP vs QGIS MCP

A side-by-side look at the Gis MCP and QGIS MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Gis MCP logoGis MCPLocation Services · Local subprocess (stdio)A Model Context Protocol (MCP) server implementation that connects Large Language Models (LLMs) to GIS operations using GIS libraries, enabling AI assistants to perform accurate geospatial operations and transformations.63GoodAuth: not declaredQGIS MCP logoQGIS MCPLocation Servicesconnects QGIS Desktop to Claude AI through the MCP. This integration enables prompt-assisted project creation, layer loading, code execution, and more.53GoodAuth: no auth required

Verdict: choose Gis MCP for location services work as a local process; choose QGIS MCP for location services. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Gis MCP logoChoose Gis MCP when

  • You need dedicated capabilities in the Location Services domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like read_file_gpd, append_gpd, merge_gpd.
Explore Gis MCP

QGIS MCP logoChoose QGIS MCP when

  • You need dedicated capabilities in the Location Services domain.
  • Its auth model fits you: No auth required.
  • You want tools like ping, get_qgis_info, load_project.
Explore QGIS MCP

Feature & specification comparison

Rows where the two servers differ are marked.

SpecGis MCP logoGis MCPQGIS MCP logoQGIS MCP
CategoryLocation ServicesLocation Services
Quality signal63/100 · Good53/100 · Good
Install commandConfirmedNot confirmed yet
TransportLocal subprocess (stdio)—
AuthNot declaredNo auth required
PricingNot declaredFree
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars1981,131
Directory activity 1 views 0 installs 0 upvotes 4 views 0 installs 0 upvotes
Tools8715

Tools & capabilities

Gis MCP tools 87

  • read_file_gpdReads a geospatial file and returns stats and a data preview.
  • append_gpdReads two shapefiles directly, concatenates them vertically.
  • merge_gpdMerges 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_gpdOverlay 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_gpdDissolve 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_gpdSplit 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_vectorClip 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_gpdSpatial 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_gpdNearest 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_polygonCheck 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_gpdExport 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.
  • bufferCreate a buffer around a geometry.
  • +75 more on the listing page

QGIS MCP tools 15

  • pingSimple ping command to check server connectivity
  • get_qgis_infoGet QGIS information about the current installation
  • load_projectLoad a QGIS project from the specified path
  • create_new_projectCreate a new project and save it
  • get_project_infoGet current project information
  • add_vector_layerAdd a vector layer to the project
  • add_raster_layerAdd a raster layer to the project
  • get_layersRetrieve all layers in the current project
  • remove_layerRemove a layer from the project by its ID
  • zoom_to_layerZoom to the extent of a specified layer
  • get_layer_featuresRetrieve features from a vector layer with an optional limit
  • execute_processingExecute a processing algorithm with the given parameters
  • +3 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Gis MCP

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "mahdin75-gis-mcp": {
      "command": "uvx",
      "args": [
        "gis-mcp"
      ]
    }
  }
}

QGIS MCP

No confirmed install command for QGIS MCP yet — follow the setup steps linked from its listing page rather than a guessed package name.

Frequently asked questions

Gis MCP is categorized under Location Services and uses a local stdio subprocess. QGIS MCP belongs to Location Services and uses an install path we have not confirmed yet. Pick Gis MCP for location services work and QGIS MCP for location services.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. QGIS MCP has no confirmed install command yet — follow its own setup instructions.

Gis MCP has no declared pricing — check the project's own site. QGIS MCP is listed as free. Auth: no auth required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add mahdin75-gis-mcp and qgis-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Gis MCP has a quality signal of 63/100 (Good) with 1 views, 0 installs and 198 GitHub stars. QGIS MCP has 53/100 (Good) with 4 views, 0 installs and 1,131 GitHub stars.