Thank you for your interest in contributing! 🎉
This project connects QGIS to Claude AI through the Model Context Protocol (MCP)). Your help in improving this integration is very welcome.
-
Fork the Repository
Clone your fork locally:git clone git@github.com:YOUR-USERNAME/qgis_mcp.git cd qgis_mcp -
Install Prerequisites
- QGIS 3.X (tested on 3.22)
- Python 3.10 or newer
- uv package manager
- Claude desktop
On Mac:
brew install uv
On Windows Powershell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" -
Set Up the QGIS Plugin
Create a symlink from this repo’sqgis_mcp_pluginfolder to your QGIS profile plugin directory.On Mac:
ln -s $(pwd)/qgis_mcp_plugin ~/Library/Application\ Support/QGIS/QGIS3/profiles/default/python/plugins/qgis_mcp
On Windows Powershell:
$src = "$(pwd)\qgis_mcp_plugin" $dst = "$env:APPDATA\QGIS\QGIS3\profiles\default\python\plugins\qgis_mcp" New-Item -ItemType SymbolicLink -Path $dst -Target $src
Restart QGIS, go to
Plugins>Manage and Install Plugins, search for QGIS MCP, and enable it. -
Configure Claude Desktop
Add the server configuration toclaude_desktop_config.json:{ "mcpServers": { "qgis": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/qgis_mcp/src/qgis_mcp", "run", "qgis_mcp_server.py" ] } } }
- Start the QGIS plugin (
Plugins>QGIS MCP>Start Server). - Run the MCP server via Claude Desktop integration.
- Make your changes and test locally.
- Keep PRs focused on a single change.
- Write clear commit messages.
- Update docs if behavior changes.
- Be cautious when using
execute_code(it runs arbitrary PyQGIS).
- Use GitHub Issues.
- Include OS, QGIS version, and error logs where relevant.