Skip to main content
Glama

QGIS Python Build and Release License

QGIS MCP [PL]

English | Polski


English

1. Project description

QGIS MCP is a local MCP server that lets Claude Desktop (others as well) see and act on the QGIS project you currently have open — list and edit layers, styling, labels, and selections, run Processing algorithms, query and edit attributes, geocode addresses, and even execute arbitrary Python against the live project — all without leaving your machine.

The system is made of two cooperating processes that never share code:

Claude Desktop
   | stdio (MCP)
   v
server/            local Python process, connects over TCP — never imports qgis.*
   | 127.0.0.1:9876, newline-delimited JSON
   v
plugin/qgis_mcp/   QGIS plugin, runs inside QGIS's own interpreter
   v
QgsProject.instance()  (the project you have open)
  • server/ is what Claude Desktop launches and talks MCP to.

  • plugin/qgis_mcp/ is a QGIS plugin that runs a small command server inside QGIS and answers requests from server/ over a loopback-only socket (127.0.0.1) — nothing is ever exposed to the network.

Because everything runs locally over 127.0.0.1, your project data never leaves your machine except for the parts of the conversation you share with Claude.

2. Requirements

  • QGIS 3.22 or newer, installed and runnable on your machine.

  • Claude Desktop, installed and signed in.

  • Python 3.12+ to run the local MCP server (a dedicated virtual environment is created for it; it does not use QGIS's bundled Python).

  • macOS, Windows, or Linux — installing the plugin through QGIS's Plugin Manager (see below) works on all platforms. Some developer-only scripts in this repo (scripts/deploy_plugin.sh) are macOS-specific and are not needed for normal use.

3. Installing the QGIS Plugin

The plugin is distributed as a .zip file attached to the project's GitHub Releases page (qgis_mcp-<version>.zip).

  1. Download the latest qgis_mcp-<version>.zip from the Releases page.

  2. In QGIS, open Plugins → Manage and Install Plugins…

  3. Go to the Install from ZIP tab.

  4. Select the downloaded .zip file and click Install Plugin.

  5. Make sure QGIS MCP is checked/enabled in the plugin list.

Once enabled, the plugin automatically starts a command server listening on 127.0.0.1:9876 — there is nothing else to click or start. You can confirm it's running from the small toolbar icon / menu entry the plugin adds; that toggle only lets you stop the server, since it starts on its own so Claude Desktop can always reach it.

If you install a newer version of the plugin later, restart QGIS afterwards to make sure the updated code is loaded.

4. Downloading the server & configuring Claude Desktop

a) Get the server code

This project is managed with uv. With uv installed:

git clone https://github.com/piatkowski/qgis-mcp.git
cd qgis-mcp
uv sync

This creates a .venv and installs the exact dependency versions from uv.lock (fastmcp, httpx). Nothing from qgis.* is required here — this environment is completely separate from QGIS.

If you don't have uv installed, plain pip works too — dependencies are declared in pyproject.toml, no requirements.txt needed:

git clone https://github.com/piatkowski/qgis-mcp.git
cd qgis-mcp
python3 -m venv .venv
.venv/bin/pip install -e .

This installs the same packages, just without pinning to the exact locked versions in uv.lock.

b) Point Claude Desktop at it

Open Claude Desktop's config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Add (or merge) an entry under mcpServers, using the absolute path to the .venv you just created:

{
  "mcpServers": {
    "qgis-mcp": {
      "command": "/absolute/path/to/qgis-mcp/.venv/bin/python",
      "args": ["-m", "server"]
    }
  }
}

On Windows, command would instead point at ...\qgis-mcp\.venv\Scripts\python.exe.

c) Restart Claude Desktop

Quit and reopen Claude Desktop. With QGIS open and the plugin enabled, Claude should now be able to list and use the QGIS MCP tools.

d) Verify the connection (optional, for troubleshooting)

With QGIS running and the plugin enabled, you can check the two sides can talk directly from a terminal:

.venv/bin/python -c "from server.bridge import request; print(request('ping'))"

A successful response confirms the server can reach the plugin's command server inside QGIS.

5. Available tools

Related MCP server: QGISMCP

1. QGIS Project & Session

Tool

Description

qgis_ping

Check connection to QGIS and API version.

project_open

Open a .qgs/.qgz file.

project_save

Save project (with "save as" option).

project_new

Create a new empty project.

project_info

Project metadata: CRS, path, layer count, extent.

project_set_crs

Set project CRS (e.g. EPSG:2180).

project_set_metadata

Title, author, abstract, keywords.

project_list_layers

List layers with ID, type, CRS, visibility.

project_snapshot

Snapshot project state to JSON (backup/rollback).

qgis_run_python

Execute arbitrary PyQGIS code (expert mode, gated).

qgis_list_algorithms

List Processing algorithms with text filter.

qgis_algorithm_help

Description of parameters for a selected algorithm.

qgis_run_algorithm

Run any Processing algorithm with parameters.

2. Map Navigation & View

Tool

Description

map_zoom_to_extent

Zoom to given bbox + CRS.

map_zoom_to_layer

Zoom to layer extent.

map_zoom_to_selection

Zoom to selected features.

map_zoom_full

Zoom to full project extent.

map_zoom_scale

Set map scale (e.g. 1:10000).

map_pan_to

Center view on coordinates.

map_zoom_to_place

Zoom to place by name (via geocoder).

map_zoom_to_teryt

Zoom to administrative unit by TERYT code.

map_rotate

Rotate map by given angle.

map_get_extent

Current view extent in selected CRS.

map_get_scale

Current map scale.

map_screenshot

Render view to PNG (returned as image).

map_set_background

Set canvas background color.

map_refresh

Refresh the map canvas.

map_identify_at_point

"Click" at a point: returns attributes of all visible layers.

3. Layer Management

Tool

Description

layer_add_vector

Load vector file (SHP, GPKG, GeoJSON, GML).

layer_add_raster

Load raster (GeoTIFF, ECW, JP2).

layer_add_from_uri

Add layer from any provider URI.

layer_remove

Remove a layer.

layer_rename

Rename a layer.

layer_set_visibility

Toggle layer visibility on/off.

layer_set_opacity

Set opacity 0–100%.

layer_reorder

Change layer order in the layer tree.

layer_group_create

Create a layer group.

layer_move_to_group

Move layer into a group.

layer_duplicate

Duplicate a layer.

layer_set_scale_visibility

Scale-dependent visibility.

layer_info

CRS, geometry type, feature count, extent, source, encoding.

layer_set_crs

Assign/fix layer CRS (without reprojection).

layer_reproject

Reproject to a new CRS (e.g. 4326 → 2180).

layer_set_temporal

Configure layer temporal properties.

4. Symbology, Labels & Style

Tool

Description

style_set_single_symbol

Single symbol renderer (color, outline, size).

style_set_categorized

Categorized renderer by field.

style_set_graduated

Graduated renderer (quantiles, natural breaks).

style_set_rule_based

Rule-based renderer with expressions.

style_set_heatmap

Heatmap renderer for point layers.

style_set_cluster

Point cluster renderer.

style_load_qml

Load style from QML/SLD file.

style_save_qml

Export layer style to file.

style_copy_between_layers

Copy style between layers.

style_set_raster_renderer

Singleband pseudocolor / hillshade / RGB renderer.

labels_enable

Enable labels from field or expression.

labels_configure

Font, buffer, placement, priority, collision settings.

labels_disable

Disable labels.

style_set_blend_mode

Set layer blend mode.

5. Selection, Queries & Attributes

Tool

Description

features_select_by_expression

Select features by QGIS expression.

features_select_by_rectangle

Select features by bounding box.

features_select_by_location

Select by spatial relation to another layer.

features_clear_selection

Clear current selection.

features_get_selected

Attributes and geometries of selected features.

features_get

Retrieve N features with filter and limit.

features_count

Count features matching a condition.

attributes_list_fields

List fields, types, lengths.

attributes_add_field

Add a new field.

attributes_delete_field

Delete a field.

attributes_rename_field

Rename a field.

attributes_calculate

Field calculator (expression → field).

attributes_update_feature

Edit attribute values of a specific feature.

attributes_statistics

Min/max/mean/median/sum/stddev for a field.

attributes_unique_values

Unique values of a field.

layer_set_subset_filter

Layer query filter (SQL WHERE clause).

layer_join

Attribute join of two layers by key field.

layer_set_filter_teryt

Quick filter by TERYT code (commune/county/voivodeship).

6. Vector Editing

Tool

Description

edit_start

Begin an edit session.

edit_commit

Commit changes in the edit session.

edit_rollback

Roll back changes in the edit session.

feature_add

Add feature from WKT/GeoJSON geometry + attributes.

feature_delete

Delete feature by ID.

feature_modify_geometry

Replace feature geometry.

layer_create_memory

Create a temporary (scratch) layer with a given schema.

layer_create_gpkg

Create a new layer in a GeoPackage.

geometry_fix

Fix invalid geometries.

geometry_validate

Report topological/geometric errors.

topology_check_overlaps

Detect overlaps between polygons.

topology_check_gaps

Detect gaps between polygons.

snap_configure

Configure snapping settings (tolerance, mode).

7. Vector Geoprocessing

Tool

Description

vector_buffer

Buffer at given distance (with segments, dissolve).

vector_intersect

Intersect layers.

vector_union

Union layers.

vector_difference

Difference between layers.

vector_clip

Clip to mask layer.

vector_dissolve

Dissolve/aggregate by field.

vector_centroid

Generate centroids.

vector_convex_hull

Convex hull.

vector_concave_hull

Concave hull.

vector_voronoi

Voronoi diagram.

vector_delaunay

Delaunay triangulation.

vector_simplify

Simplify geometry.

vector_smooth

Smooth lines.

vector_merge_layers

Merge multiple layers.

vector_split_by_attribute

Split layer by field value.

vector_reproject_batch

Batch reproject files in a directory.

vector_spatial_join

Spatial join with aggregation.

vector_nearest_neighbor

Nearest neighbor + distance.

vector_distance_matrix

Distance matrix.

vector_random_points

Generate random points in polygon/on layer.

vector_grid_create

Create regular grid (square/hexagonal).

vector_points_in_polygon

Count points in polygons.

vector_line_intersections

Line intersection points.

vector_extract_by_location

Extract features by spatial relation.

vector_geometry_columns

Add area/length/x/y fields (in metres, Polish grid).

8. Raster & Terrain Analysis

Tool

Description

raster_info

Size, pixel size, bands, CRS, statistics, nodata.

raster_clip_by_extent

Clip raster to bounding box.

raster_clip_by_mask

Clip raster by mask layer.

raster_reproject

Warp raster to another CRS.

raster_merge

Mosaic raster tiles (e.g. GUGiK DTM tiles).

raster_calculator

Raster calculator with expression.

raster_resample

Change raster resolution.

raster_to_vector

Vectorize raster (polygonize).

vector_to_raster

Rasterize vector layer.

raster_zonal_statistics

Zonal statistics by polygon zones.

raster_sample_points

Sample raster values at point locations.

dem_slope

Compute slope from DEM.

dem_aspect

Compute aspect from DEM.

dem_hillshade

Generate hillshade from DEM.

dem_contours

Generate contour lines at given interval.

dem_profile

Elevation profile along a line.

dem_viewshed

Viewshed analysis from a point.

dem_fill_sinks

Fill sinks in DEM.

dem_watershed

Watersheds and flow direction analysis.

dem_get_elevation

DTM elevation at a point (also via GUGiK API).

9. Geocoding & Addresses (PL)

Tool

Description

geocode_nominatim

OSM/Nominatim geocoding restricted to Poland.

geocode_photon

Geocoding with autocomplete suggestions.

geocode_reverse

Coordinates → address (reverse geocoding).

geocode_gugik_prg

Geocoding via PRG address points (GUGiK service).

geocode_batch_csv

Batch geocode CSV/address table.

teryt_lookup

Search TERYT codes: voivodeship/county/commune/locality.

teryt_to_geometry

Administrative unit boundary by TERYT code.

uldk_by_parcel_id

Cadastral parcel geometry from ULDK by identifier.

uldk_by_point

Identify parcel at coordinates (ULDK).

uldk_get_region

Retrieve precinct/commune/county geometry from ULDK.

prng_search

Search the State Register of Geographical Names (PRNG).

emuia_search

Address points / streets from EMUiA.

kodpocztowy_lookup

Lookup by postal code.

10. Routing & Networks

Tool

Description

route_osrm

Car/bike/walking route (geometry, time, distance).

route_valhalla

Routing with profiles and avoidances (optional self-hosted).

route_matrix

Time/distance matrix many-to-many.

route_isochrone

Isochrones/isodistances from a point.

route_optimize_tsp

Point order optimization (Travelling Salesman Problem).

network_shortest_path_layer

Shortest path on own network layer (QGIS Network Analysis).

network_service_area

Service area from a point on road network.

osm_overpass_query

Fetch OSM data with Overpass QL query to layer.

osm_download_by_tag

Quick download POI by key=value in bbox/commune.

osm_download_roads_pl

Download road network for an area in Poland.

11. OGC Services & Polish Data Sources

Tool

Description

ows_list_capabilities

Read GetCapabilities (WMS/WMTS/WFS/WCS).

wms_add_layer

Add WMS layer with URL, name and style.

wmts_add_layer

Add WMTS layer with matrix set selection.

wfs_add_layer

Add WFS layer with filter and feature limit.

wcs_add_layer

Add WCS layer (e.g. DTM as coverage).

xyz_add_layer

Add XYZ tile layer (OSM, raster backgrounds).

wms_get_feature_info

GetFeatureInfo at a point.

geoportal_add_service

Catalog of ready-made National Geoportal services (short IDs instead of URLs).

gugik_ortofoto

Orthophoto map (current and archive, year selection).

gugik_nmt_wms

Digital Terrain Model as WMS/WCS.

gugik_nmpt

Digital Surface Model (nDSM).

gugik_download_nmt_tiles

Download DTM/DSM tiles (ASCII GRID/ARC) for extent.

gugik_download_lidar

Download LAZ point clouds for extent.

gugik_bdot10k

Download BDOT10k for county (GML → GPKG).

gugik_bdoo

General Geographic Objects Database (BDOO).

gugik_prg_boundaries

PRG administrative boundaries (voiv./county/commune/precincts).

gugik_kieg_wms

National Land Registry Integration — parcels and buildings.

gugik_kiub

National Land and Building Utility Integration.

gugik_osnowa

Geodetic control points.

gugik_skorowidze

Map sheet indexes (grid codes, coverage extents).

12. Coordinate Systems (PL Specifics)

Tool

Description

crs_list_polish

List of Polish CRS: 2180, 2176–2179, 3120, 4326, 3857.

crs_transform_point

Transform coordinates between CRS systems.

crs_detect_zone_2000

Select appropriate PUWG 2000 zone for an area.

crs_height_transform

Height transformation (Kronstadt'86 ↔ EVRF2007-NH, PL-geoid2021).

crs_assign_by_guess

Detect probable CRS based on coordinate range.

13. Print Layouts & Export

Tool

Description

layout_create

Create new print layout with given format and orientation.

layout_add_map

Add map frame with extent and scale.

layout_add_legend

Add legend (with layer filtering).

layout_add_scalebar

Add scale bar.

layout_add_north_arrow

Add north arrow.

layout_add_label

Add text/title with expressions.

layout_add_table

Add attribute table to layout.

layout_export

Export to PDF/PNG/SVG at given DPI.

atlas_configure

Configure atlas by coverage layer (e.g. sheets, communes).

atlas_export

Serial atlas export.

layout_list

List all layouts in the project.

14. Miscellaneous

Tool

Description

plugin_list

List installed plugins and their status.

plugin_toggle

Enable/disable a plugin.

pointcloud_add

Load LAS/LAZ/COPC as point cloud layer.

pointcloud_filter_class

Filter by classification (ground, buildings, vegetation).

pointcloud_to_dem

Generate DTM/DSM from point cloud.

mesh_add

Load mesh layer (e.g. hydraulic models).

chart_from_layer

Chart from attribute data (histogram, scatter, bar).

report_layer_summary

Text summary of layer (schema, statistics, data quality).

expression_evaluate

Evaluate QGIS expression in layer context.

expression_help

List of expression functions with descriptions.

batch_process_folder

Batch run algorithm on files in a directory.

task_status

Status of long-running operation (download, processing).

cache_clear

Clear cache of downloaded external data.

log_get

Latest entries from Log Messages Panel (diagnostics).

6. Troubleshooting

  • Claude doesn't show any QGIS tools / can't connect. Check that the mcpServers entry in claude_desktop_config.json uses an absolute path to .venv/bin/python (or .venv\Scripts\python.exe on Windows), that the JSON is valid, and that you fully restarted Claude Desktop after editing it.

  • Tool calls fail with a connection/timeout error. Make sure QGIS is running and the QGIS MCP plugin is enabled (check Plugins → Manage and Install Plugins). The plugin must be running inside QGIS for the server to reach it — the server only relays requests, it does not run QGIS itself.

  • Error message starts with [BridgeTimeout] or [BridgeError]. These indicate the server couldn't reach the plugin's socket at 127.0.0.1:9876 in time — QGIS may be closed, busy, or the plugin may not be enabled. Errors prefixed with a different type (e.g. [LayerNotFound], [UnsupportedLayerType]) come from the plugin itself and describe why the requested operation failed, not a connection problem.

  • You just installed/updated the plugin and nothing changed. QGIS does not hot-reload plugin code. Restart QGIS after installing a new version.

  • Port 9876 already in use / need a different port. Both sides read QGIS_MCP_HOST / QGIS_MCP_PORT environment variables independently. Set both consistently — for the server, in the env section of its mcpServers config entry; for the plugin, in the environment QGIS itself is launched with.

  • The plugin refuses to bind to a non-127.0.0.1 address. This is intentional: the command server only ever listens on loopback, by design, so nothing on your QGIS project is ever reachable from the network.

  • A geocoding tool fails with a clear error about authentication. A couple of external geocoding endpoints require credentials that aren't publicly documented; those tools intentionally raise a clear error instead of silently failing.


Polski

1. Opis projektu

QGIS MCP to lokalny serwer MCP, który pozwala Claude Desktop (i nie tylko) widzieć i wykonywać akcje na aktualnie otwartym projekcie QGIS — wyświetlać i edytować warstwy, stylowanie, etykiety oraz zaznaczenia, uruchamiać algorytmy Processing, odczytywać i edytować atrybuty, geokodować adresy, a nawet wykonywać dowolny kod Pythona na żywym projekcie — wszystko lokalnie, bez opuszczania Twojego komputera.

System składa się z dwóch współpracujących procesów, które nigdy nie dzielą kodu:

Claude Desktop
   | stdio (MCP)
   v
server/            lokalny proces Pythona, łączy się przez TCP — nigdy nie importuje qgis.*
   | 127.0.0.1:9876, dane JSON oddzielone znakiem nowej linii
   v
plugin/qgis_mcp/   wtyczka QGIS, działa wewnątrz interpretera samego QGIS
   v
QgsProject.instance()  (otwarty projekt)
  • server/ to proces uruchamiany przez Claude Desktop, komunikujący się z nim przez MCP.

  • plugin/qgis_mcp/ to wtyczka QGIS, która uruchamia niewielki serwer poleceń wewnątrz QGIS i odpowiada na żądania z server/ przez gniazdo dostępne wyłącznie lokalnie (127.0.0.1) — nic nie jest udostępniane w sieci.

Ponieważ wszystko działa lokalnie na 127.0.0.1, dane Twojego projektu nie opuszczają komputera, poza fragmentami rozmowy, którymi sam(a) zdecydujesz się podzielić z Claude.

2. Wymagania

  • QGIS w wersji 3.22 lub nowszej, zainstalowany i uruchamialny na Twoim komputerze.

  • Claude Desktop, zainstalowany i zalogowany.

  • Python 3.12+ do uruchomienia lokalnego serwera MCP (tworzone jest dla niego dedykowane środowisko wirtualne; nie korzysta z Pythona dołączonego do QGIS).

  • macOS, Windows lub Linux — instalacja wtyczki przez menedżer wtyczek QGIS (patrz niżej) działa na wszystkich platformach. Niektóre skrypty deweloperskie w tym repozytorium (scripts/deploy_plugin.sh) są przeznaczone wyłącznie dla macOS i nie są potrzebne do normalnego użytkowania.

3. Instalacja wtyczki QGIS

Wtyczka jest dystrybuowana jako plik .zip dołączony do strony GitHub Releases projektu (qgis_mcp-<wersja>.zip).

  1. Pobierz najnowszy plik qgis_mcp-<wersja>.zip ze strony Releases.

  2. W QGIS otwórz Wtyczki → Zarządzaj i instaluj wtyczki…

  3. Przejdź do zakładki Zainstaluj z ZIP.

  4. Wybierz pobrany plik .zip i kliknij Zainstaluj wtyczkę.

  5. Upewnij się, że wtyczka QGIS MCP jest zaznaczona/włączona na liście wtyczek.

Po włączeniu wtyczka automatycznie uruchamia serwer poleceń nasłuchujący na 127.0.0.1:9876 — nie trzeba nic dodatkowo klikać ani uruchamiać. Działanie serwera można potwierdzić z poziomu małej ikony na pasku narzędzi / wpisu w menu dodawanego przez wtyczkę; ten przełącznik pozwala jedynie celowo zatrzymać serwer, ponieważ uruchamia się on sam, tak by Claude Desktop zawsze mógł się z nim połączyć.

Jeśli w przyszłości zainstalujesz nowszą wersję wtyczki, zrestartuj potem QGIS, aby mieć pewność, że wczytany zostanie zaktualizowany kod.

4. Pobranie serwera i konfiguracja w Claude Desktop

a) Pobierz kod serwera

Ten projekt jest zarządzany za pomocą uv. Mając zainstalowane uv:

git clone https://github.com/piatkowski/qgis-mcp.git
cd qgis-mcp
uv sync

To polecenie tworzy .venv i instaluje dokładnie te wersje zależności, które są zapisane w uv.lock (fastmcp, httpx). Nie jest tu potrzebne nic z qgis.* — to środowisko jest całkowicie odseparowane od QGIS.

Jeśli nie masz zainstalowanego uv, zwykły pip też zadziała — zależności są zadeklarowane w pyproject.toml, plik requirements.txt nie jest potrzebny:

git clone https://github.com/piatkowski/qgis-mcp.git
cd qgis-mcp
python3 -m venv .venv
.venv/bin/pip install -e .

Zainstaluje to te same pakiety, tylko bez przypięcia do dokładnych, zablokowanych wersji z uv.lock.

b) Wskaż serwer w Claude Desktop

Otwórz plik konfiguracyjny Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Dodaj (lub połącz z istniejącą zawartością) wpis w sekcji mcpServers, używając bezwzględnej ścieżki do utworzonego przed chwilą .venv:

{
  "mcpServers": {
    "qgis-mcp": {
      "command": "/absolute/path/to/qgis-mcp/.venv/bin/python",
      "args": ["-m", "server"]
    }
  }
}

W systemie Windows command powinno wskazywać zamiast tego na ...\qgis-mcp\.venv\Scripts\python.exe.

c) Zrestartuj Claude Desktop

Zamknij i uruchom ponownie Claude Desktop. Przy otwartym QGIS i włączonej wtyczce Claude powinien teraz widzieć i móc używać narzędzi QGIS MCP.

d) Sprawdzenie połączenia (opcjonalnie, do diagnostyki)

Przy uruchomionym QGIS i włączonej wtyczce można bezpośrednio sprawdzić z terminala, czy obie strony się komunikują:

.venv/bin/python -c "from server.bridge import request; print(request('ping'))"

Poprawna odpowiedź potwierdza, że serwer może dotrzeć do serwera poleceń wtyczki działającego wewnątrz QGIS.

5. Lista narzędzi

1. Projekt i sesja QGIS

Narzędzie

Opis

qgis_ping

Sprawdzenie połączenia z QGIS i wersji API.

project_open

Otwarcie pliku .qgs/.qgz.

project_save

Zapis projektu (z opcją „save as").

project_new

Nowy pusty projekt.

project_info

Metadane projektu: CRS, ścieżka, liczba warstw, zakres.

project_set_crs

Ustawienie CRS projektu (np. EPSG:2180).

project_set_metadata

Tytuł, autor, abstrakt, słowa kluczowe.

project_list_layers

Lista warstw z ID, typem, CRS, widocznością.

project_snapshot

Zrzut stanu projektu do JSON (backup/rollback).

qgis_run_python

Wykonanie dowolnego kodu PyQGIS (tryb ekspercki, gated).

qgis_list_algorithms

Lista algorytmów Processing z filtrem tekstowym.

qgis_algorithm_help

Opis parametrów wybranego algorytmu.

qgis_run_algorithm

Uruchomienie dowolnego algorytmu Processing z parametrami.

2. Nawigacja i widok mapy

Narzędzie

Opis

map_zoom_to_extent

Zoom do podanego bbox + CRS.

map_zoom_to_layer

Zoom do zasięgu warstwy.

map_zoom_to_selection

Zoom do zaznaczonych obiektów.

map_zoom_full

Zoom do pełnego zasięgu projektu.

map_zoom_scale

Ustawienie skali (np. 1:10000).

map_pan_to

Wycentrowanie na współrzędnych.

map_zoom_to_place

Zoom do miejsca po nazwie (przez geokoder).

map_zoom_to_teryt

Zoom do jednostki administracyjnej po kodzie TERYT.

map_rotate

Obrót mapy o zadany kąt.

map_get_extent

Aktualny zasięg widoku w wybranym CRS.

map_get_scale

Aktualna skala.

map_screenshot

Render widoku do PNG (zwrot jako obraz).

map_set_background

Kolor tła kanwy.

map_refresh

Odświeżenie kanwy.

map_identify_at_point

„Kliknięcie" w punkt: atrybuty wszystkich widocznych warstw.

3. Zarządzanie warstwami

Narzędzie

Opis

layer_add_vector

Wczytanie pliku wektorowego (SHP, GPKG, GeoJSON, GML).

layer_add_raster

Wczytanie rastra (GeoTIFF, ECW, JP2).

layer_add_from_uri

Warstwa z dowolnego URI providera.

layer_remove

Usunięcie warstwy.

layer_rename

Zmiana nazwy.

layer_set_visibility

Włącz/wyłącz widoczność.

layer_set_opacity

Przezroczystość 0–100%.

layer_reorder

Zmiana kolejności w drzewie warstw.

layer_group_create

Utworzenie grupy warstw.

layer_move_to_group

Przeniesienie warstwy do grupy.

layer_duplicate

Duplikat warstwy.

layer_set_scale_visibility

Widoczność zależna od skali.

layer_info

CRS, geometria, liczba obiektów, zakres, źródło, encoding.

layer_set_crs

Nadanie/naprawa CRS warstwy (bez reprojekcji).

layer_reproject

Reprojekcja do nowego CRS (np. 4326 → 2180).

layer_set_temporal

Konfiguracja właściwości czasowych warstwy.

4. Symbolizacja, etykiety, styl

Narzędzie

Opis

style_set_single_symbol

Jednolity symbol (kolor, obrys, rozmiar).

style_set_categorized

Renderer kategoryzowany wg pola.

style_set_graduated

Renderer stopniowany (kwantyle, natural breaks).

style_set_rule_based

Renderer regułowy z wyrażeniami.

style_set_heatmap

Mapa ciepła dla punktów.

style_set_cluster

Klastrowanie punktów.

style_load_qml

Wczytanie stylu z pliku QML/SLD.

style_save_qml

Eksport stylu warstwy.

style_copy_between_layers

Kopiowanie stylu między warstwami.

style_set_raster_renderer

Singleband pseudocolor / hillshade / RGB.

labels_enable

Włączenie etykiet z pola lub wyrażenia.

labels_configure

Czcionka, bufor, placement, priorytet, kolizje.

labels_disable

Wyłączenie etykiet.

style_set_blend_mode

Tryb mieszania warstwy.

5. Selekcja, zapytania, atrybuty

Narzędzie

Opis

features_select_by_expression

Selekcja wyrażeniem QGIS.

features_select_by_rectangle

Selekcja bbox.

features_select_by_location

Selekcja relacją przestrzenną wobec innej warstwy.

features_clear_selection

Czyszczenie zaznaczenia.

features_get_selected

Atrybuty i geometrie zaznaczonych obiektów.

features_get

Pobranie N obiektów z filtrem i limitem.

features_count

Liczba obiektów spełniających warunek.

attributes_list_fields

Lista pól, typy, długości.

attributes_add_field

Dodanie pola.

attributes_delete_field

Usunięcie pola.

attributes_rename_field

Zmiana nazwy pola.

attributes_calculate

Kalkulator pól (wyrażenie → pole).

attributes_update_feature

Edycja wartości konkretnego obiektu.

attributes_statistics

Min/max/średnia/mediana/suma/odchylenie dla pola.

attributes_unique_values

Unikalne wartości pola.

layer_set_subset_filter

Filtr zapytania na warstwie (SQL WHERE).

layer_join

Złączenie atrybutowe dwóch warstw po kluczu.

layer_set_filter_teryt

Szybki filtr po kodzie TERYT (gmina/powiat/woj.).

6. Edycja wektorowa

Narzędzie

Opis

edit_start

Rozpoczęcie sesji edycyjnej.

edit_commit

Zatwierdzenie zmian w sesji edycyjnej.

edit_rollback

Cofnięcie zmian w sesji edycyjnej.

feature_add

Dodanie obiektu z geometrii WKT/GeoJSON + atrybuty.

feature_delete

Usunięcie obiektu po ID.

feature_modify_geometry

Podmiana geometrii obiektu.

layer_create_memory

Warstwa tymczasowa (scratch) o zadanym schemacie.

layer_create_gpkg

Nowa warstwa w GeoPackage.

geometry_fix

Naprawa nieprawidłowych geometrii.

geometry_validate

Raport błędów topologicznych/geometrycznych.

topology_check_overlaps

Wykrycie nakładek między poligonami.

topology_check_gaps

Wykrycie szczelin.

snap_configure

Ustawienia przyciągania (tolerancja, tryb).

7. Geoprocessing wektorowy

Narzędzie

Opis

vector_buffer

Bufor o zadanej odległości (z segmentami, dissolve).

vector_intersect

Przecięcie warstw.

vector_union

Suma warstw.

vector_difference

Różnica warstw.

vector_clip

Przycięcie do maski.

vector_dissolve

Agregacja wg pola.

vector_centroid

Centroidy.

vector_convex_hull

Otoczka wypukła.

vector_concave_hull

Otoczka wklęsła.

vector_voronoi

Diagram Woronoja.

vector_delaunay

Triangulacja Delaunaya.

vector_simplify

Uproszczenie geometrii.

vector_smooth

Wygładzenie linii.

vector_merge_layers

Scalenie wielu warstw.

vector_split_by_attribute

Podział warstwy wg pola.

vector_reproject_batch

Masowa reprojekcja plików w katalogu.

vector_spatial_join

Złączenie przestrzenne z agregacją.

vector_nearest_neighbor

Najbliższy sąsiad + odległość.

vector_distance_matrix

Macierz odległości.

vector_random_points

Losowe punkty w poligonie/na warstwie.

vector_grid_create

Siatka regularna (kwadratowa/heksagonalna).

vector_points_in_polygon

Zliczanie punktów w poligonach.

vector_line_intersections

Punkty przecięć linii.

vector_extract_by_location

Ekstrakcja relacją przestrzenną.

vector_geometry_columns

Dodanie pól area/length/x/y (w metrach, PUWG).

8. Raster i analizy terenu

Narzędzie

Opis

raster_info

Rozmiar, piksel, pasma, CRS, statystyki, nodata.

raster_clip_by_extent

Przycięcie do bbox.

raster_clip_by_mask

Przycięcie warstwą maski.

raster_reproject

Warp do innego CRS.

raster_merge

Mozaikowanie arkuszy (np. kafle NMT GUGiK).

raster_calculator

Kalkulator rastrowy z wyrażeniem.

raster_resample

Zmiana rozdzielczości.

raster_to_vector

Wektoryzacja (polygonize).

vector_to_raster

Rasteryzacja.

raster_zonal_statistics

Statystyki strefowe wg poligonów.

raster_sample_points

Próbkowanie wartości w punktach.

dem_slope

Nachylenie stoku.

dem_aspect

Ekspozycja stoku.

dem_hillshade

Cieniowanie rzeźby terenu.

dem_contours

Poziomice o zadanym cięciu.

dem_profile

Profil wysokościowy wzdłuż linii.

dem_viewshed

Analiza widoczności z punktu.

dem_fill_sinks

Wypełnianie zagłębień.

dem_watershed

Zlewnie i kierunki spływu.

dem_get_elevation

Wysokość NMT w punkcie (także przez API GUGiK).

9. Geokodowanie i adresy (PL)

Narzędzie

Opis

geocode_nominatim

Geokodowanie OSM/Nominatim z ograniczeniem do PL.

geocode_photon

Geokodowanie z podpowiedziami (autocomplete).

geocode_reverse

Współrzędne → adres.

geocode_gugik_prg

Geokodowanie po punktach adresowych PRG (usługa GUGiK).

geocode_batch_csv

Masowe geokodowanie pliku CSV/tabeli adresów.

teryt_lookup

Wyszukiwanie kodów TERYT: województwo/powiat/gmina/miejscowość.

teryt_to_geometry

Granica jednostki administracyjnej po kodzie TERYT.

uldk_by_parcel_id

Geometria działki ewidencyjnej z ULDK po identyfikatorze.

uldk_by_point

Identyfikacja działki pod współrzędnymi (ULDK).

uldk_get_region

Pobranie obrębu/gminy/powiatu jako geometrii z ULDK.

prng_search

Wyszukiwanie w Państwowym Rejestrze Nazw Geograficznych.

emuia_search

Punkty adresowe / ulice z EMUiA.

kodpocztowy_lookup

Wyszukiwanie po kodzie pocztowym.

10. Routing i sieci

Narzędzie

Opis

route_osrm

Trasa samochód/rower/pieszo (geometria, czas, dystans).

route_valhalla

Routing z profilami i unikaniem (opcjonalnie własna instancja).

route_matrix

Macierz czasów/odległości wiele-do-wielu.

route_isochrone

Izochrony/izodystanse od punktu.

route_optimize_tsp

Optymalizacja kolejności punktów (problem komiwojażera).

network_shortest_path_layer

Najkrótsza ścieżka na własnej warstwie sieciowej (QGIS Network Analysis).

network_service_area

Obszar obsługi od punktu po sieci drogowej.

osm_overpass_query

Pobranie danych OSM zapytaniem Overpass QL do warstwy.

osm_download_by_tag

Szybkie pobranie POI wg klucza=wartość w bbox/gminie.

osm_download_roads_pl

Pobranie sieci drogowej dla obszaru w Polsce.

11. Usługi OGC i polskie źródła danych

Narzędzie

Opis

ows_list_capabilities

Odczyt GetCapabilities (WMS/WMTS/WFS/WCS).

wms_add_layer

Dodanie warstwy WMS z URL, nazwą i stylem.

wmts_add_layer

Dodanie WMTS z wyborem matrix set.

wfs_add_layer

Dodanie WFS z filtrem i limitem obiektów.

wcs_add_layer

Dodanie WCS (np. NMT jako coverage).

xyz_add_layer

Dodanie warstwy XYZ (OSM, tła rastrowe).

wms_get_feature_info

GetFeatureInfo w punkcie.

geoportal_add_service

Katalog gotowych usług Geoportalu Krajowego (skrótowe ID zamiast URL-i).

gugik_ortofoto

Ortofotomapa (aktualna i archiwalna, wybór roku).

gugik_nmt_wms

Numeryczny Model Terenu jako WMS/WCS.

gugik_nmpt

Numeryczny Model Pokrycia Terenu.

gugik_download_nmt_tiles

Pobranie kafli NMT/NMPT (ASCII GRID/ARC) dla zasięgu.

gugik_download_lidar

Pobranie chmur punktów LAZ dla zasięgu.

gugik_bdot10k

Pobranie BDOT10k dla powiatu (GML → GPKG).

gugik_bdoo

Baza Danych Obiektów Ogólnogeograficznych.

gugik_prg_boundaries

Granice administracyjne PRG (woj./pow./gm./obręby).

gugik_kieg_wms

Krajowa Integracja Ewidencji Gruntów (działki, budynki).

gugik_kiub

Krajowa Integracja Uzbrojenia Terenu / budynków.

gugik_osnowa

Punkty osnowy geodezyjnej.

gugik_skorowidze

Skorowidze arkuszy (godła map, zasięgi opracowań).

12. Układy współrzędnych (specyfika PL)

Narzędzie

Opis

crs_list_polish

Lista polskich CRS: 2180, 2176–2179, 3120, 4326, 3857.

crs_transform_point

Przeliczenie współrzędnych między układami.

crs_detect_zone_2000

Dobór właściwej strefy PUWG 2000 dla obszaru.

crs_height_transform

Transformacja wysokości (Kronsztadt'86 ↔ EVRF2007-NH, geoida PL-geoid2021).

crs_assign_by_guess

Wykrycie prawdopodobnego CRS na podstawie zakresu współrzędnych.

13. Kompozycje wydruku i eksport

Narzędzie

Opis

layout_create

Nowa kompozycja o zadanym formacie i orientacji.

layout_add_map

Ramka mapy z zasięgiem i skalą.

layout_add_legend

Legenda (z filtrowaniem warstw).

layout_add_scalebar

Podziałka liniowa.

layout_add_north_arrow

Strzałka północy.

layout_add_label

Tekst/tytuł z wyrażeniami.

layout_add_table

Tabela atrybutów w kompozycji.

layout_export

Eksport do PDF/PNG/SVG w zadanym DPI.

atlas_configure

Atlas wg warstwy pokrycia (np. arkusze, gminy).

atlas_export

Seryjny eksport atlasu.

layout_list

Lista kompozycji w projekcie.

14. Pozostałe

Narzędzie

Opis

plugin_list

Zainstalowane wtyczki i status.

plugin_toggle

Włączenie/wyłączenie wtyczki.

pointcloud_add

Wczytanie LAS/LAZ/COPC jako warstwy chmury punktów.

pointcloud_filter_class

Filtrowanie po klasyfikacji (grunt, budynki, roślinność).

pointcloud_to_dem

Generowanie NMT/NMPT z chmury punktów.

mesh_add

Wczytanie warstwy mesh (np. modele hydrauliczne).

chart_from_layer

Wykres z danych atrybutowych (histogram, scatter, słupki).

report_layer_summary

Tekstowe podsumowanie warstwy (schemat, statystyki, jakość danych).

expression_evaluate

Ewaluacja wyrażenia QGIS w kontekście warstwy.

expression_help

Lista funkcji wyrażeń z opisem.

batch_process_folder

Wsadowe uruchomienie algorytmu na plikach z katalogu.

task_status

Status długotrwałej operacji (pobieranie, przetwarzanie).

cache_clear

Czyszczenie cache pobranych danych zewnętrznych.

log_get

Ostatnie wpisy z Log Messages Panel (diagnostyka).


6. Rozwiązywanie problemów

  • Claude nie pokazuje żadnych narzędzi QGIS / nie może się połączyć. Sprawdź, czy wpis mcpServers w claude_desktop_config.json używa bezwzględnej ścieżki do .venv/bin/python (lub .venv\Scripts\python.exe w Windows), czy JSON jest poprawny, oraz czy Claude Desktop został w pełni zrestartowany po edycji pliku.

  • Wywołania narzędzi kończą się błędem połączenia/przekroczenia czasu. Upewnij się, że QGIS jest uruchomiony, a wtyczka QGIS MCP jest włączona (Wtyczki → Zarządzaj i instaluj wtyczki). Wtyczka musi działać wewnątrz QGIS, aby serwer mógł się z nią połączyć — sam serwer jedynie przekazuje żądania, nie uruchamia QGIS.

  • Komunikat błędu zaczyna się od [BridgeTimeout] lub [BridgeError]. Oznacza to, że serwer nie zdążył połączyć się z gniazdem wtyczki na 127.0.0.1:9876 — QGIS może być zamknięty, zajęty, albo wtyczka może być wyłączona. Błędy z innym prefiksem (np. [LayerNotFound], [UnsupportedLayerType]) pochodzą z samej wtyczki i opisują, dlaczego żądana operacja się nie powiodła — to nie jest problem z połączeniem.

  • Właśnie zainstalowano/zaktualizowano wtyczkę i nic się nie zmieniło. QGIS nie wczytuje kodu wtyczek na gorąco. Po instalacji nowej wersji zrestartuj QGIS.

  • Port 9876 jest zajęty / potrzebny inny port. Obie strony niezależnie odczytują zmienne środowiskowe QGIS_MCP_HOST / QGIS_MCP_PORT. Ustaw je spójnie po obu stronach — dla serwera w sekcji env jego wpisu w mcpServers, dla wtyczki w środowisku, w którym uruchamiany jest sam QGIS.

  • Wtyczka odmawia nasłuchiwania na adresie innym niż 127.0.0.1. To celowe zachowanie: serwer poleceń zawsze nasłuchuje wyłącznie lokalnie, dzięki czemu nic w Twoim projekcie QGIS nigdy nie jest dostępne z sieci.

  • Narzędzie geokodowania kończy się jasnym błędem dotyczącym uwierzytelnienia. Część zewnętrznych usług geokodowania wymaga danych uwierzytelniających, które nie są publicznie udokumentowane; te narzędzia celowo zgłaszają czytelny błąd zamiast działać w sposób pozornie poprawny, a w rzeczywistości zwodniczy.

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/piatkowski/qgis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server