QGIS MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| pingA | Simple ping command to check server connectivity |
| get_qgis_infoC | Get QGIS information |
| load_projectB | Load a QGIS project from the specified path. |
| create_new_projectC | Create a new project a save it |
| get_project_infoC | Get current project information |
| add_vector_layerC | Add a vector layer to the project. |
| add_raster_layerC | Add a raster layer to the project. |
| get_layersA | Retrieve all layers in the current project. |
| remove_layerB | Remove a layer from the project by its ID. |
| zoom_to_layerC | Zoom to the extent of a specified layer. |
| get_layer_featuresB | Retrieve features from a vector layer with an optional limit. |
| execute_processingC | Execute a processing algorithm with the given parameters. |
| save_projectA | Save the current project to the given path, or to the current project path if not specified. |
| render_mapC | Render the current map view to an image file with the specified dimensions. |
| execute_codeC | Execute arbitrary PyQGIS code provided as a string. |
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 15 tools
Most tools have distinct purposes, such as add_raster_layer vs. add_vector_layer, but execute_code and execute_processing could be confused as both involve running code or algorithms. The descriptions help clarify, but there is some overlap in their broad functionality.
Tool names consistently follow a verb_noun pattern throughout, such as add_raster_layer, get_layer_features, and save_project. There are no deviations in naming conventions, making the set predictable and readable.
With 15 tools, the count is well-scoped for a QGIS server, covering core operations like project management, layer handling, and rendering. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool surface provides good coverage for QGIS workflows, including project CRUD (create, load, save), layer operations (add, get, remove, zoom), and rendering. Minor gaps exist, such as no direct tool for editing layer attributes or styling, but agents can work around this with execute_code.