← Back to directory
Q

QGISMCP

Community
Connect Claude AI to QGIS Desktop via the Model Context Protocol.
Category
Other #217 of 230
Stars
★ 1.1k Popular
Transport
stdio (local process)
Runtime
Python 3.10+
Credentials
No credential needed
Last commit
⚠
Tools
15
30FMRS · D

A practical server for integrating QGIS with Claude AI via MCP, offering a wide range of tools for GIS automation. However, it requires direct access to QGIS desktop and arbitrary code execution, which poses security risks and is not suitable for novice users or insecure environments.

Strongest · Setup experience 10/20 Weakest · Security and permissions 3/20

Reliability
4/20
Security and permissions
3/20
Maintenance
3/20
Documentation
10/20
Setup experience
10/20
Why each score
Reliability 4/20
Only the README was supplied; no server source, tests, or CI exist to verify the MCP init handshake or that declared tools match real behavior. A happy path is plausible from the docs, but reproducibility and error-path evidence are missing, so the score is low.
Security and permissions 3/20
The server exposes execute_code for LLM-driven arbitrary PyQGIS execution, with no documented confirmation or approval step, and the socket server has no described authentication or data boundary. This is an unconfirmed remote-command default, triggering the 0-4 red-line range; score is 3.
Maintenance 3/20
The repo is not archived and has open issues, but there is no evidence of commits, releases, or versioning; the license is unknown and no security-response channel is documented. Stars are discovery signals only; maintenance governance evidence is insufficient.
Documentation 10/20
The README is fairly complete with prerequisites, plugin installation, Claude config, a tool list, and an example workflow; however, troubleshooting, detailed tool parameters, limitations, and permission/data-flow disclosures are missing. Several assumptions such as absolute paths and local socket behavior are unexplained.
Setup experience 10/20
Instructions are clear and include uv, plugin copying, and a Claude Desktop JSON config example; however, setup is entirely manual and fragile, with no automated installer or CI verification. Cross-platform paths are shown, but hidden pitfalls remain.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local filesRuns commands or code

Best for

  • GIS users and developers who want to leverage Claude AI for natural language interaction and automation of QGIS tasks.
  • Those familiar with QGIS and Python who want to streamline their workflows.
  • Users needing to automate complex GIS operations such as loading layers, running processing algorithms, and generating maps.

Not for

  • Users expecting a server that works without a local QGIS installation.
  • Beginners unfamiliar with QGIS and PyQGIS.
  • Users requiring production-grade or enterprise support.
  • Those who need remote or cloud-based GIS capabilities.

Required permissions

  • File system access: load and save projects, read layer files, render maps.
  • Network access: socket communication between the MCP server and the QGIS plugin.
  • Code execution: execute_code allows arbitrary Python code in the QGIS environment, subject to QGIS's permissions.

Risks and side effects

  • Arbitrary code execution poses security risks; malicious prompts could cause data loss or system damage.
  • Potential overwriting of projects or output files, especially when processing large datasets.
  • The communication between the QGIS plugin and MCP server is not encrypted and could be intercepted on a local network.
  • The plugin and server are not officially endorsed by QGIS or Claude; they may have bugs or lack maintenance.

Setup

Before you start

Runtime:Python 3.10+

Prerequisites: QGIS 3.X (only tested on 3.22), Claude Desktop, Python 3.10 or newer, and the uv package manager. After installing uv, clone the repository, copy the qgis_mcp_plugin folder to your QGIS profile's plugins directory, then enable the QGIS MCP plugin via the QGIS plugin manager. For Claude Desktop, edit claude_desktop_config.json to add the MCP server configuration, specifying the uv command and the absolute path to src/qgis_mcp/qgis_mcp_server.py.

claude_desktop_config.json
{
  "mcpServers": {
    "qgis": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp",
        "run",
        "qgis_mcp_server.py"
      ]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "qgis": {
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp",
        "run",
        "qgis_mcp_server.py"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add qgis -- uv --directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp run qgis_mcp_server.py

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

Start the QGIS MCP plugin's socket server inside QGIS, then check that the hammer icon with QGIS MCP tools appears in Claude Desktop; a successful ping call proves the connection works.

Troubleshooting

  1. Ensure the QGIS plugin is correctly installed and enabled; restart QGIS if necessary.
  2. Ensure the MCP server is started in QGIS (Plugins menu → QGIS MCP → Start Server).
  3. Check the command and path in the Claude Desktop configuration, especially absolute paths.
  4. Ensure uv is installed and in your PATH, or use the full path.
  5. Check firewall or security software that might block local socket communication between QGIS and Python.

Things to try

Once connected, you can ask your AI assistant things like:

  • Ping the QGIS server to check the connection.
  • Create a new project, save it to my documents folder, and load a vector layer named 'Colonies'.
  • List all layers in the current project and show the first 10 features of the population layer.
  • Run the centroid algorithm on the 'Cities' layer, render the map to a PNG, then save the project.

Tools 15

ping read-only
Simple ping command to check server connectivity.
get_qgis_info read-only
Get QGIS information about the current installation.
load_project read-only
Load a QGIS project from the specified path.
create_new_project writes
Create a new project and save it.
get_project_info read-only
Get current project information.
add_vector_layer writes
Add a vector layer to the project.
add_raster_layer writes
Add a raster layer to the project.
get_layers read-only
Retrieve all layers in the current project.
Show 7 more tools
remove_layer destructive
Remove a layer from the project by its ID.
zoom_to_layer read-only
Zoom to the extent of a specified layer.
get_layer_features read-only
Retrieve features from a vector layer with an optional limit.
execute_processing writes
Execute a processing algorithm with the given parameters.
save_project writes
Save the current project to the given path.
render_map writes
Render the current map view to an image file.
execute_code destructive
Execute arbitrary PyQGIS code provided as a string.

Use cases

Prompt-assisted GIS project creation and layer management.
Running spatial analysis processing algorithms.
Executing PyQGIS code through natural language commands.
Rendering maps for visualization.

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

QGISMCP connects QGIS to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control QGIS. This integration enables prompt-assisted project creation, layer loading, code execution and more. The project is strongly based on the BlenderMCP project. It consists of two main components: a QGIS plugin (creates a socket server within QGIS to receive and execute commands) and an MCP server (implements the MCP protocol and connects to the plugin).

Similar servers

BioMCP 75 · B

One binary. One grammar. Evidence from the biomedical sources you already trust.

★ 654 · Tools 11 Compare with this →

Source revision e37bf6f095e1 Data synced 2026-10-12 Read the FMRS scoring method