{"type":"mcp_client","name":"qgis_mcp","description":"QGISMCP integrates QGIS with Claude AI via the Model Context Protocol, enabling Claude to control QGIS for tasks like project creation, layer manipulation, and code execution. It uses a QGIS","category":"AI","language":"Python","stars":1002,"forks":38,"owner":"jjsantos01","github_url":"https://github.com/jjsantos01/qgis_mcp","homepage":null,"setup":"## Setup\n\n1.  **Prerequisites:** Install QGIS 3.X, Cloud desktop, Python 3.10 or newer, and the uv package manager.\n2.  **Install uv:** Use `brew install uv` on Mac, `powershell -ExecutionPolicy ByPass -c \"irm https://astral.sh/uv/install.ps1 | iex\"` on Windows Powershell, or follow the instructions on the [Install uv](https://docs.astral.sh/uv/getting-started/installation/) website.\n3.  **Download code:** Clone the repository using `git clone git@github.com:jjsantos01/qgis_mcp.git`.\n4.  **QGIS plugin:** Copy the `qgis_mcp_plugin` folder to your QGIS profile plugins folder (e.g., `C:\\Users\\USER\\AppData\\Roaming\\QGIS\\QGIS3\\profiles\\default\\python\\plugins` on Windows or `~/Library/Application\\ Support/QGIS/QGIS3/profiles/default/python/plugins` on MacOS), then enable the QGIS MCP plugin in QGIS.\n5.  **Claude for Desktop Integration:** Add the QGIS MCP server configuration to `claude_desktop_config.json` (accessible via `Claude` > `Settings` > `Developer` > `Edit Config`):\n\n```json\n{\n    \"mcpServers\": {\n        \"qgis\": {\n            \"command\": \"uv\",\n            \"args\": [\n                \"--directory\",\n                \"/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp\",\n                \"run\",\n                \"qgis_mcp_server.py\"\n            ]\n        }\n\n    }\n}\n```\n\n6. **Starting the Connection:** In QGIS, go to `plugins` -> `QGIS MCP`-> `QGIS MCP` and click \"Start Server\".","tools":"## Available Tools\n\n1.  Two-way communication (Connect Claude AI to QGIS through a socket-based server).\n2.  Project manipulation (Create, load and save projects in QGIS).\n3.  Layer manipulation (Add and remove vector or raster layers to a project).\n4.  Execute processing (Execute processing algorithms from the Processing Toolbox).\n5.  Code execution (Run arbitrary Python code in QGIS from Claude).\n6.  `ping` (Simple ping command to check server connectivity).\n7.  `get_qgis_info` (Get QGIS information about the current installation).\n8.  `load_project` (Load a QGIS project from the specified path).\n9.  `create_new_project` (Create a new project and save it).\n10. `get_project_info` (Get current project information).\n11. `add_vector_layer` (Add a vector layer to the project).\n12. `add_raster_layer` (Add a raster layer to the project).\n13. `get_layers` (Retrieve all layers in the current project).\n14. `remove_layer` (Remove a layer from the project by its ID).\n15. `zoom_to_layer` (Zoom to the extent of a specified layer).\n16. `get_layer_features` (Retrieve features from a vector layer with an optional limit).\n17. `execute_processing` (Execute a processing algorithm with the given parameters).\n18. `save_project` (Save the current project to the given path).\n19. `render_map` (Render the current map view to an image file).\n20. `execute_code` (Execute arbitrary PyQGIS code provided as a string)","faq":null,"created_at":"2025-03-12T21:09:53+00:00","updated_at":"2025-03-28T20:45:07+00:00","source_url":"https://model-context-protocol.com/clients/qgis-plugin-llm-model-context-protocol","related_articles":[]}