| name | qgis |
| description | Geospatial analysis and GIS operations via QGIS. 51 MCP tools covering layer management, feature editing, processing algorithms, rendering, styling, plugin development, and system management. Uses nkarasiak/qgis-mcp plugin (port 9877) with length-prefixed framing and FastMCP MCP server. Use when doing geospatial analysis, creating maps, or working with GIS data.
|
| version | 3.0.0 |
| author | agentbox-claude |
| mcp_server | true |
| protocol | fastmcp |
| entry_point | uv run --project /home/devuser/workspace/qgis-mcp src/qgis_mcp/server.py |
| port | 9877 |
| dependencies | ["qgis","uv"] |
QGIS Skill
Geospatial analysis and GIS operations via the nkarasiak/qgis-mcp plugin and FastMCP server.
When to Use This Skill
- Calculate distances between geographic points
- Create buffer zones around features (proximity analysis)
- Transform coordinates between CRS (GPS to Web Mercator)
- Load and manipulate geospatial layers (Shapefile, GeoJSON, GeoPackage)
- Perform geoprocessing operations (intersect, union, difference, clip)
- Export map images for reports or web display
- Query features with spatial filters
- Style layers with categorized or graduated symbology
- Run QGIS processing algorithms programmatically
- Manage project variables, settings, bookmarks
- Render maps and take canvas screenshots
When Not To Use
- For non-geographic image processing (resize, crop, filter) -- use the imagemagick skill instead
- For 3D modelling and scene rendering -- use the blender skill instead
- For generic diagrams and flowcharts -- use the mermaid-diagrams skill instead
- For data analysis without a spatial component -- use the jupyter-notebooks or pytorch-ml skills instead
Architecture
Claude Code (MCP Client)
|
| MCP Protocol (stdio)
v
FastMCP Server (uv run src/qgis_mcp/server.py)
|
| TCP Socket (length-prefixed framing, port 9877)
v
QGIS Desktop (Display :1) with qgis_mcp_plugin
The nkarasiak/qgis-mcp plugin uses length-prefixed binary framing (4-byte big-endian uint32 header followed by JSON payload), not newline-delimited JSON. The FastMCP server handles this protocol automatically.
Plugin Source
Cloned at: /home/devuser/workspace/qgis-mcp
Symlinked to QGIS at: ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qgis_mcp_plugin
Auto-Install / Verification
Before using QGIS tools, verify the plugin is installed:
ls -la ~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qgis_mcp_plugin
ln -s /home/devuser/workspace/qgis-mcp/qgis_mcp_plugin \
~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qgis_mcp_plugin
git clone https://github.com/nkarasiak/qgis-mcp /home/devuser/workspace/qgis-mcp
ln -s /home/devuser/workspace/qgis-mcp/qgis_mcp_plugin \
~/.local/share/QGIS/QGIS3/profiles/default/python/plugins/qgis_mcp_plugin