QGIS MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QGIS_PYTHON | No | Path to the QGIS Python executable (e.g. C:\Program Files\QGIS 3.44.5\bin\python-qgis.bat), used if QGIS auto-detection fails. | |
| QGIS_PROCESS | No | Path to the QGIS process, used if QGIS auto-detection fails. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| qgis_statusB | Check the connection to the QGIS plugin, return QGIS version and project. / კავშირის შემოწმება. |
| run_pyqgisB | Execute PyQGIS code inside the running QGIS session. Variables: iface, project, QgsProject, qgis.
Print output is returned; assign to |
| list_layersB | List layers of the open project (id, name, type, crs, extent, visibility). / ფენების სია. |
| layer_infoB | Details of one layer by id or name: fields, feature count, geometry, raster size. / ფენის ინფო. |
| add_layerC | Add a layer from a file/URI. type: 'vector' or 'raster'. provider defaults to ogr/gdal. / ფენის დამატება. |
| remove_layerC | Remove a layer by id or name. / ფენის წაშლა პროექტიდან. |
| export_mapB | Render the map to an image (png/jpg). extent=[xmin,ymin,xmax,ymax] in project CRS; default = canvas. / რუკის ექსპორტი. |
| project_infoB | Current project file, title, CRS, layer count. / პროექტის ინფო. |
| save_projectB | Save the project (to |
| load_projectC | Open a .qgz/.qgs project. / პროექტის ჩატვირთვა. |
| headless_commandB | Run any command (list_layers, layer_info, add_layer, export_map, run_pyqgis, ...) WITHOUT the QGIS GUI.
Pass |
| headless_algorithmC | Run a QGIS Processing algorithm (e.g. 'native:buffer') headlessly with a parameters dict. / Processing ალგორითმი. |
| headless_list_algorithmsC | List Processing algorithms via qgis_process, optionally filtered by text. / ალგორითმების სია. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Several capabilities are duplicated across GUI and headless modes: headless_command can invoke list_layers, layer_info, add_layer, export_map, and run_pyqgis, so an agent must decide between equivalent entry points. qgis_status and project_info also overlap in project details. The descriptions do explain GUI vs. headless context, but the boundaries remain somewhat loose.
Most names use snake_case, and the headless_* family is consistent. However the set mixes verb_noun (list_layers, add_layer, export_map) with noun_phrase (qgis_status, layer_info, project_info) and a proper-noun verb (run_pyqgis), so the pattern is readable but not uniform.
13 tools is reasonable for a QGIS bridge covering project, layer, export, scripting, and headless-processing workflows. The only redundancy is the meta headless_command, but it does not push the count into bloat.
Core workflows are covered: project load/save/info/status, layer add/remove/list/info, map export, PyQGIS, and headless Processing algorithms. Explicit layer update, project creation, and styling operations are absent, but run_pyqgis/headless_command provide escape hatches for many gaps.