Data as of

QGISMCP for Claude Code: Setup & Config

Claude Code: QGISMCP links Claude Desktop to QGIS through a plugin and Python MCP server.

What you can do with QGISMCP in Claude Code

A live QGIS bridge spanning layer operations, processing algorithms, custom code, and map output.

  • Create and save GIS projects through Claude.
  • Render map images after assisted styling or analysis.

Before you start: QGISMCP in Claude Code

  • QGIS 3.x; README testing was limited to 3.22
  • Python 3.10 or later
  • uv
  • Claude Desktop
  • The enabled QGIS MCP plugin and its running socket server

Replace the documented absolute-path placeholder with the checkout location. Copy qgis_mcp_plugin into the active profile's plugins directory, restart QGIS, enable it, then use its Start Server action. No required environment variables are stated.

QGISMCP Claude Code configuration

  1. Choose Claude Code configuration scope

    For QGISMCP, open Project scope: .mcp.json at the repository root. Project JSON: merge into mcpServers; user scope: use the CLI.

  2. Add QGISMCP to Claude Code

    Use the qgis_mcp entry below in mcpServers. Keep QGISMCP's documented stdio connection fields and your other Claude Code entries.

  3. Check QGISMCP in Claude Code

    QGISMCP: Inspect claude mcp list and /mcp status.

Config file · Project scope: .mcp.json at the repository root

JSON
{
  "mcpServers": {
    "qgis_mcp": {
      "type": "stdio",
      "command": "uv",
      "args": [
        "--directory",
        "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp",
        "run",
        "qgis_mcp_server.py"
      ],
      "env": {}
    }
  }
}

CLI (POSIX shell)
claude mcp add-json --scope project 'qgis_mcp' '{"type":"stdio","command":"uv","args":["--directory","/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp","run","qgis_mcp_server.py"],"env":{}}'

QGISMCP tools available to Claude Code

QGISMCP's stored tool list documents 15 tools; compare it with Claude Code's connected tool list, because the stored list is not a live check.

ping

For QGISMCP's ping, review the permission request and arguments in Claude Code before approval.

get_qgis_info

For QGISMCP's get_qgis_info, review the permission request and arguments in Claude Code before approval.

load_project

For QGISMCP's load_project, review the permission request and arguments in Claude Code before approval.

Open a project from a supplied filesystem path.

create_new_project

For QGISMCP's create_new_project, review the permission request and arguments in Claude Code before approval.

Create and save a new QGIS project.

get_project_info

For QGISMCP's get_project_info, review the permission request and arguments in Claude Code before approval.

Inspect information about the active project.

add_vector_layer

For QGISMCP's add_vector_layer, review the permission request and arguments in Claude Code before approval.

Load vector data as a project layer.

add_raster_layer

For QGISMCP's add_raster_layer, review the permission request and arguments in Claude Code before approval.

get_layers

For QGISMCP's get_layers, review the permission request and arguments in Claude Code before approval.

remove_layer

For QGISMCP's remove_layer, review the permission request and arguments in Claude Code before approval.

Remove a layer using its identifier.

zoom_to_layer

For QGISMCP's zoom_to_layer, review the permission request and arguments in Claude Code before approval.

get_layer_features

For QGISMCP's get_layer_features, review the permission request and arguments in Claude Code before approval.

execute_processing

For QGISMCP's execute_processing, review the permission request and arguments in Claude Code before approval.

save_project

For QGISMCP's save_project, review the permission request and arguments in Claude Code before approval.

Save the active project at a requested path.

render_map

For QGISMCP's render_map, review the permission request and arguments in Claude Code before approval.

Export the current map view as an image file.

execute_code

For QGISMCP's execute_code, review the permission request and arguments in Claude Code before approval.

Run arbitrary PyQGIS source supplied as a string.

QGISMCP: full stored tool descriptions

Troubleshooting QGISMCP in Claude Code

  • If QGISMCP fails to start, check uv, the working directory, and Claude Code's selected scope; inspect claude mcp list and /mcp.
  • QGISMCP uses stdio here: Claude Code must keep the configured process running; protocol output belongs on stdout and diagnostics on stderr.
  • Known limitation: Requires manual plugin installation and starting its server in QGIS.
  • Known limitation: The README reports testing only on QGIS 3.22.
  • Known limitation: Arbitrary Python execution carries an explicit caution in the README.
  • General Claude Code troubleshooting lives in the /clients/claude-code guide.

QGISMCP — details. Claude Code guide

Frequently asked questions

Register QGISMCP with the displayed claude mcp add-json --scope project command, or merge the JSON into .mcp.json at the repository root.

Claude Code's qgis_mcp example uses stdio.

QGISMCP's Claude Code configuration invokes uv.

QGISMCP's stored list contains 15 tools, including ping, get_qgis_info, load_project. Compare those names with Claude Code's connected tool list; the stored list is not a live check.

No. The Python MCP server connects to a plugin running inside QGIS, so both components are needed.

Not stated in the README. The supplied structured license field is also empty.