Skip to main content
Glama
nkarasiak

QGIS MCP

by nkarasiak

Start Processing Job

start_processing_job

Run long QGIS Processing algorithms as background tasks, returning a job ID instantly while QGIS remains usable. Use for operations exceeding a minute, then poll or cancel the job as needed.

Instructions

Run a Processing algorithm as a QGIS background task, with no time limit, and return its job id at once. QGIS stays usable while it runs. Poll get_processing_job for progress and the result; cancel_processing_job stops it. Use it instead of execute_processing for anything that may take more than a minute. Same parameters as execute_processing. A 'TEMPORARY_OUTPUT'/'memory:' vector (feature sink) output needs load_results=True, since that memory layer ends with the job; temporary files stay on disk. Algorithms that must run on QGIS's main thread are refused: use execute_processing for those.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
algorithmYes
ellipsoidNo
parametersYes
load_resultsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.15.0

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and excels: it discloses that the job runs asynchronously with no time limit, QGIS remains usable, the tool returns a job ID immediately, and it mentions polling via get_processing_job, cancellation via cancel_processing_job, memory-layer cleanup behavior, and main-thread refusal. It leaves little ambiguity about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and every sentence adds distinct value: purpose, non-blocking nature, polling/cancellation references, usage guideline, parameter reference, memory-layer nuance, and main-thread restriction. No filler; it is well-structured and logically ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a background job starter with no output schema, so the description must explain the return value and how to interact with the job. It covers the return (job ID), how to get progress/result (get_processing_job), how to stop it (cancel_processing_job), when to use it vs alternatives, and the special load_results requirement. It is complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does by explaining the load_results parameter's behavior for memory layers and by referencing 'Same parameters as execute_processing,' which points to a sibling for detailed semantics. However, it does not define algorithm, parameters, or ellipsoid directly, relying on the reference. This is helpful but not fully self-contained, hence a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs a Processing algorithm as a background task, returns a job ID immediately, and distinguishes itself from execute_processing (synchronous) and the job-management tools (get_processing_job, cancel_processing_job). It names the specific verb and resource, making the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use it instead of execute_processing for anything that may take more than a minute' and 'Algorithms that must run on QGIS's main thread are refused: use execute_processing for those.' It also explains when load_results=True is required for memory layers, providing clear when-to-use and when-not-to-use guidance with named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools