pingLABSCO SUMMARY
Hands on a live QGIS session, up to and including running Python inside it.
Most of what it does is ordinary GIS chores — load these layers, run that algorithm, render the view — carried out by describing them instead of clicking through them. The code-execution tool makes the range open-ended: anything PyQGIS can do, it can do, which is why this belongs on a desktop you control rather than a shared machine.
What it is
A QGIS plugin plus a local server: the plugin opens a socket server inside QGIS, the server speaks MCP to your client and relays commands to it. With both running, an assistant can create or load a project, add and remove layers, run Processing algorithms and render the map in the instance in front of you. The project is built on the approach of BlenderMCP.
What you get
- Projects created, loaded and saved at a path you name
- Vector and raster layers added, listed, removed and zoomed to
- Features read back out of a vector layer, with a limit you set
- Any algorithm in the Processing Toolbox run with your parameters
- The current map view rendered out to an image file
- Arbitrary PyQGIS code executed inside the application — the widest tool in the set, and the one to decide about deliberately
- A connectivity check and a report on the QGIS installation it is attached to
Requirements
QGIS with the plugin folder copied into your QGIS profile and enabled from the plugin manager, Python with the uv package manager for the server side, and the socket server started from the plugin's own menu before your client connects. The author reports testing against a single QGIS release.
Setup effort
Build from source — git clone https://github.com/jjsantos01/qgis_mcp.git
USE CASES
Building a map from a description
Start a project, drop in the vector and raster layers you name, and save it where you want it.
Rerunning last week's analysis with new parameters
Open the saved project, run the Processing algorithm again with the values you changed, and save the result back.
Producing a figure for a report
Zoom to the layer that matters and render the map view straight to an image file.
Checking what is in a layer before you trust it
List what the project has loaded, then read a sample of features out of the layer in question.
Doing the thing that has no Processing algorithm
Run PyQGIS directly against the open project — styling, classification, anything the toolbox does not cover.
Confirming the two halves are actually talking
Ping the plugin before a long session, so a socket that never started shows up now rather than three commands in.
15 tools
Listed in project docs. Your client may show a different list.
get_qgis_infoload_projectcreate_new_projectget_project_infoadd_vector_layeradd_raster_layerget_layersremove_layerzoom_to_layerget_layer_featuresexecute_processingsave_projectrender_mapexecute_codeBEFORE YOU INSTALL
What to know first
Tools you get
15 tools named in the project's documentation.
Requires
- QGIS 3.X
- Python 3.10 or later
- uv
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/jjsantos01/qgis_mcp.gitCopy the folder qgis_mcp_plugin and its content into your QGIS profile plugins folder: in QGIS go to Settings -> User profiles -> Open active profile folder, then go to Python/plugins and paste the folder qgis_mcp_plugin.
Close QGIS and open it again. Go to Plugins > Installing and Managing Plugins, select the All tab, search for "QGIS MCP" and mark the QGIS MCP checkbox.
In QGIS, go to Plugins > QGIS MCP > QGIS MCP and click "Start Server".
MCP Clients
Claude Desktop
{
"mcpServers": {
"qgis": {
"command": "uv",
"args": [
"--directory",
"<YOUR_PATH_TO_PARENT_REPO_FOLDER_QGIS>",
"run",
"qgis_mcp_server.py"
]
}
}
}<YOUR_PATH_TO_PARENT_REPO_FOLDER_QGIS> is the full path of src/qgis_mcp inside the qgis_mcp folder you cloned; that is the folder holding qgis_mcp_server.py.