Enables AI systems to perform complex GIS operations in QGIS through a socket-based architecture that exposes geospatial...
Created byApr 22, 2025
QGISMCP - QGIS Model Context Protocol Integration
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.
Code execution: Run arbitrary Python code in QGIS from Claude. Very powerful, but also be very cautious using this tool.
Components
The system consists of two main components:
[QGIS plugin](/qgis_mcp_plugin/): A QGIS plugin that creates a socket server within QGIS to receive and execute commands.
[MCP Server](/src/qgis_mcp/qgis_mcp_server.py): A Python server that implements the Model Context Protocol and connects to the QGIS plugin.
Installation
Prerequisites
QGIS 3.X (only tested on 3.22)
Cloud desktop
Python 3.10 or newer
uv package manager:
If you're on Mac, please install uv as
On Windows Powershell
Otherwise installation instructions are on their website: Install uv
** Do not proceed before installing UV**
Download code
Download this repo to your computer. You can clone it with:
QGIS plugin
You need to copy the folder qgis_mcp_plugin and its content on your QGIS profile plugins folder.
You can get your profile folder in QGIS going to menu Settings -> User profiles -> Open active profile folder Then, go to Python/plugins and paste the folder qgis_mcp_plugin.
On a Windows machine the plugins folder is usually located at:
C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins and on MacOS:
~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins
Then close QGIS and open it again. Go to the menu option Plugins -> Installing and Managing Plugins, select the All tab and search for "QGIS MCP", then mark the QGIS MCP checkbox.
Claude for Desktop Integration
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
If you cann't find the "Developers tab" or the claude_desktop_config.json look at this documentation.
Usage
Starting the Connection
In QGIS, go to plugins -> QGIS MCP-> QGIS MCP
plugins menu
Click "Start Server"
start server
Using with Claude
Once the config file has been set on Claude, and the server is running on QGIS, you will see a hammer icon with tools for the QGIS MCP.
Claude tools
Tools
ping - Simple ping command to check server connectivity
get_qgis_info - Get QGIS information about the current installation
load_project - Load a QGIS project from the specified path
create_new_project - Create a new project and save it
get_project_info - Get current project information
add_vector_layer - Add a vector layer to the project
add_raster_layer - Add a raster layer to the project
get_layers - Retrieve all layers in the current project
remove_layer - Remove a layer from the project by its ID
zoom_to_layer - Zoom to the extent of a specified layer
get_layer_features - Retrieve features from a vector layer with an optional limit
execute_processing - Execute a processing algorithm with the given parameters
save_project - Save the current project to the given path
render_map - Render the current map view to an image file
execute_code - Execute arbitrary PyQGIS code provided as a string
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.
Code execution: Run arbitrary Python code in QGIS from Claude. Very powerful, but also be very cautious using this tool.
Components
The system consists of two main components:
[QGIS plugin](/qgis_mcp_plugin/): A QGIS plugin that creates a socket server within QGIS to receive and execute commands.
[MCP Server](/src/qgis_mcp/qgis_mcp_server.py): A Python server that implements the Model Context Protocol and connects to the QGIS plugin.
Installation
Prerequisites
QGIS 3.X (only tested on 3.22)
Cloud desktop
Python 3.10 or newer
uv package manager:
If you're on Mac, please install uv as
On Windows Powershell
Otherwise installation instructions are on their website: Install uv
** Do not proceed before installing UV**
Download code
Download this repo to your computer. You can clone it with:
QGIS plugin
You need to copy the folder qgis_mcp_plugin and its content on your QGIS profile plugins folder.
You can get your profile folder in QGIS going to menu Settings -> User profiles -> Open active profile folder Then, go to Python/plugins and paste the folder qgis_mcp_plugin.
On a Windows machine the plugins folder is usually located at:
C:\Users\USER\AppData\Roaming\QGIS\QGIS3\profiles\default\python\plugins and on MacOS:
~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins
Then close QGIS and open it again. Go to the menu option Plugins -> Installing and Managing Plugins, select the All tab and search for "QGIS MCP", then mark the QGIS MCP checkbox.
Claude for Desktop Integration
Go to Claude > Settings > Developer > Edit Config > claude_desktop_config.json to include the following:
If you cann't find the "Developers tab" or the claude_desktop_config.json look at this documentation.
Usage
Starting the Connection
In QGIS, go to plugins -> QGIS MCP-> QGIS MCP
plugins menu
Click "Start Server"
start server
Using with Claude
Once the config file has been set on Claude, and the server is running on QGIS, you will see a hammer icon with tools for the QGIS MCP.
Claude tools
Tools
ping - Simple ping command to check server connectivity
get_qgis_info - Get QGIS information about the current installation
load_project - Load a QGIS project from the specified path
create_new_project - Create a new project and save it
get_project_info - Get current project information
add_vector_layer - Add a vector layer to the project
add_raster_layer - Add a raster layer to the project
get_layers - Retrieve all layers in the current project
remove_layer - Remove a layer from the project by its ID
zoom_to_layer - Zoom to the extent of a specified layer
get_layer_features - Retrieve features from a vector layer with an optional limit
execute_processing - Execute a processing algorithm with the given parameters
save_project - Save the current project to the given path
render_map - Render the current map view to an image file
execute_code - Execute arbitrary PyQGIS code provided as a string