Skip to main content
Glama
nkarasiak

QGIS MCP

by nkarasiak

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.12.0

  • Disambiguation4/5

    Most tools have clear, specific purposes with descriptive names and detailed descriptions. A few pairs (render_map vs get_canvas_screenshot, apply_style_qml vs set_layer_style) overlap somewhat but are distinguishable by their descriptions. Overall, an agent can reliably select the right tool.

    Naming Consistency4/5

    The majority follow a verb_noun pattern (get_, set_, add_, create_, remove_, list_, export_, etc.), with a minority of algorithm-named tools (raster_calculator, zonal_statistics, spatial_join) that are standard GIS terms. The pattern is consistent enough to be predictable.

    Tool Count2/5

    At 118 tools, the set is enormous. While QGIS is a full-featured application, this server exposes far more surface area than typical MCP servers, making it overwhelming for agents to choose from. The count is beyond the 'too many' threshold and likely includes many rarely-used tools.

    Completeness4/5

    The tool surface covers virtually all core QGIS workflows: projects, layers, editing, styling, processing algorithms, print layouts, data connections, expressions, and more. Minor gaps exist (e.g., 3D map management, advanced symbology), but the coverage is exceptional for the domain.

  • Average 3.8/5 across 118 of 118 tools scored. Lowest: 2.2/5.

    See the Tool Scores section below for per-tool breakdowns.

    • 17 of 17 community issues answered or closed in the last 6 months
    • 92 commits in the last 12 weeks
    • Last stable release on
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under GPL 2.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior1/5

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

    No annotations provided. The description does not disclose any behavioral traits such as whether it can overwrite existing layouts, requires specific permissions, or produces any 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise but lacks sufficient content to be helpful. It is front-loaded but under-informative.

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

    Completeness1/5

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

    Given the tool has no output schema, no annotations, and one undocumented parameter, the description is severely incomplete. It doesn't explain what a print layout is, what the tool returns, or any constraints.

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

    Parameters1/5

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

    Schema description coverage is 0%, yet the description fails to explain the 'name' parameter (e.g., format, uniqueness constraints). It adds no meaning beyond the bare schema.

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

    Purpose4/5

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

    The description 'Create a new print layout' clearly states the verb and resource, distinguishing it from siblings like list_layouts, remove_layout, export_layout. However, it is essentially a restatement of the name and title, adding little extra clarity.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. For example, it doesn't clarify prerequisites (e.g., must have a project open) or contrast with other layout-related tools like add_layout_map.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits, but it only states the action without explaining side effects (e.g., whether the join is saved to the project or modifies data). The description adds no behavioral context beyond the bare action.

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

    Conciseness2/5

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

    The description is a single sentence, but conciseness must not sacrifice necessary information. It fails to include parameter details, usage context, or behavioral notes, making it under-specified rather than efficiently complete.

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

    Completeness1/5

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

    Given the tool has 5 parameters requiring detailed explanation (especially with 0% schema coverage), no output schema, and siblings to differentiate, the description is drastically incomplete. It lacks any context about what a table join entails in QGIS or how parameters interact.

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

    Parameters1/5

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

    Schema description coverage is 0%, yet the description provides no explanation of any parameter. The agent cannot understand what 'target_field', 'join_field', or 'prefix' mean or how they relate to the join operation.

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

    Purpose4/5

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

    The description states the verb 'Add' and the resource 'table join' applied to 'vector layer', making the core action clear. However, it does not distinguish this from the sibling tool 'spatial_join', which could cause confusion for an agent deciding which to use.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'spatial_join', nor are prerequisites or exclusions mentioned. The agent is left guessing about appropriate contexts.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic action and fails to mention side effects (e.g., overwriting files), required permissions, or the nature of the operation (e.g., whether it is destructive).

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

    Conciseness3/5

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

    The description is a single sentence and concise, but it is under-specified. It could be expanded with critical details while remaining concise, so it is average in this dimension.

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

    Completeness1/5

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

    Given no annotations, no output schema, and only two parameters, the description is highly incomplete. It lacks information about return values, error behavior, preconditions, and postconditions, making it insufficient for an AI agent to use correctly.

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

    Parameters1/5

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

    The input schema has 0% description coverage, and the tool description adds no meaning to the parameters 'layer_id' and 'path'. It does not explain expected formats, constraints, or relationships, leaving the agent to rely solely on parameter names.

    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 action ('Save'), the resource ('a layer's style'), and the output format ('QGIS QML file'), which is specific and distinguishes it from siblings like apply_style_qml that load styles from QML files.

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

    Usage Guidelines2/5

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

    No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like apply_style_qml or set_layer_style, nor does it mention prerequisites or context.

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

  • Behavior2/5

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

    No annotations provided. The description does not disclose behavioral traits like required permissions, error handling for invalid paths, or whether the layer is added to a specific group. Only a basic action is stated.

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

    Conciseness4/5

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

    Single sentence, direct and concise. However, it could include more detail without being verbose.

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

    Completeness2/5

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

    No output schema. Description lacks information on supported formats beyond GeoTIFF, layer naming behavior, and potential side effects. Incomplete for a tool with three parameters and no annotation support.

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

    Parameters2/5

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

    Schema coverage is 0%, yet description only mentions 'GeoTIFF, etc.' without explaining the three parameters. No details on 'name' (optional), 'path' (required), or 'provider' (default 'gdal') and its possible values.

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

    Purpose4/5

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

    The description clearly states the action ('Add') and the resource ('raster layer'), with an example format (GeoTIFF). It distinguishes from siblings like add_vector_layer and add_web_layer by specifying raster type.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as add_vector_layer or add_web_layer. No prerequisites or exclusions mentioned.

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

  • Behavior2/5

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

    The annotation 'idempotentHint: true' is present, but the description adds no behavioral details beyond that. It does not disclose whether selection replaces existing selection, whether the tool modifies data, or what happens on invalid input. For a tool that likely mutates state (selection), more transparency is needed.

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

    Conciseness4/5

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

    The description is a single sentence with no fluff, directly stating the action and methods. It is structured effectively for quick parsing, though it sacrifices completeness for brevity.

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

    Completeness2/5

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

    Given the lack of output schema and minimal description, the tool's completeness is insufficient. The agent is not informed about return values, error handling, or what constitutes a valid expression/FIDs. In the context of sibling tools like 'get_selection', the description should clarify how selection state changes.

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

    Parameters2/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 mentions 'by expression or feature IDs' but does not explain the format of the expression parameter or the fids array, nor does it clarify the relationship between these parameters. The agent is left to guess parameter semantics from the schema alone, which lacks descriptions.

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

    Purpose4/5

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

    The description clearly states the verb 'select' and resource 'features in a layer', and specifies two methods 'by expression or feature IDs'. This distinguishes it from siblings like 'clear_selection' or 'get_selection', though it does not clarify whether selection replaces or adds to existing selection.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool over alternatives, such as 'clear_selection' or 'get_selection', nor are there prerequisites or caveats about selection behavior (e.g., whether it clears previous selection). The agent must infer the context from the tool name alone.

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

  • Behavior3/5

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

    The annotation destructiveHint already signals that this tool can be destructive, and the description reinforces this by noting that incorrect settings can affect QGIS behavior. This adds a consequence dimension, but it does not disclose other behavioral traits such as persistence, whether a restart is required, whether the setting is validated, or if it overrides existing values. The description adds some value beyond the annotation but not rich context.

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

    Conciseness4/5

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

    The description is extremely concise, with two short sentences that front-load the core purpose ('Write a QGIS setting') and follow with a brief warning. Every word earns its place, but the brevity comes at the cost of missing essential parameter and usage details. It is efficient but under-specified.

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

    Completeness2/5

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

    For a tool with two simple string parameters and no output schema, the description is still incomplete. It lacks any mention of parameter semantics, valid settings, examples, or what the write operation returns (if anything). The warning about affecting QGIS behavior is helpful, but the overall context is insufficient for an agent to invoke the tool correctly without external knowledge of QGIS settings.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain what 'key' and 'value' mean or how they interact. The tool name and description imply a key-value pair, but there is no elucidation of valid keys, value formats, or examples. The description entirely fails to compensate for the schema's lack of parameter documentation.

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

    Purpose4/5

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

    The description clearly states 'Write a QGIS setting' with a specific verb and resource, distinguishing it from the sibling get_setting (read). However, it does not differentiate from set_project_variable or other setting-related tools, and the exact scope ('QGIS setting') remains somewhat generic without explaining whether it applies to global application settings or project-specific ones.

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

    Usage Guidelines2/5

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

    No explicit guidance is provided on when to use this tool versus alternatives. The only added context is a cautionary warning ('Use with care'), which implies cautious use but does not state prerequisites, exclusions, or suggest alternatives like get_setting for reading. The description fails to help the agent decide between this tool and its siblings.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It doesn't disclose that renaming is a destructive operation on the field schema, or whether permissions are needed. The rename action is implied but not elaborated.

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

    Conciseness4/5

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

    The description is a single, front-loaded sentence with no wasted words. It is concise, though it could benefit from slightly more detail without becoming verbose.

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

    Completeness2/5

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

    Given no output schema and a 3-parameter tool, the description is incomplete. It lacks information about constraints (e.g., old_name must exist), side effects (e.g., schema change), or behavioral notes. The tool is simple but the description under-delivers.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no meaning beyond parameter names. 'layer_id', 'old_name', 'new_name' are not explained (e.g., format requirements, valid values). The description fails to compensate for the schema's lack of descriptions.

    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 'Rename a field in a vector layer' uses a specific verb ('rename') and resources ('field', 'vector layer'), clearly distinguishing it from sibling tools like 'add_field' and 'delete_field'.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives (e.g., delete_field + add_field), no prerequisites, and no conditions for success.

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

  • Behavior2/5

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

    No annotations exist, so the description carries full burden. It only states the action but does not disclose what happens if the file is missing or invalid, whether it overwrites existing layers, or any side effects on the project. Minimal behavioral disclosure.

    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 one sentence with no wasted words. It is front-loaded with the action and resource, making it quick to parse.

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

    Completeness2/5

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

    Despite no output schema, the description lacks essential context about prerequisites (e.g., file existence, supported formats), side effects, and error conditions. For a tool that modifies the project, it is incomplete.

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

    Parameters1/5

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

    Schema description coverage is 0%; the description provides no additional meaning about the parameters (name, path, provider) beyond the schema. It does not explain defaults, constraints, or typical usage, leaving the agent uninformed.

    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 action ('Add') and the resource ('vector layer') with examples of file types (shapefile, GeoJSON, GeoPackage). It effectively distinguishes from sibling tools like 'add_raster_layer' and 'add_web_layer'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus other add tools (e.g., add_raster_layer, add_web_layer) or alternatives like load_project. No explicit exclusions or context provided.

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

  • Behavior2/5

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

    With no annotations, the description must disclose effects. It only states the action without explaining whether it modifies the layer permanently, is reversible, or affects only visual appearance. No mention of errors or 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.

    Conciseness4/5

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

    Single sentence, no wasted words. However, conciseness sacrifices completeness; additional details could be added without significant bloat.

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

    Completeness2/5

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

    Given low schema coverage and no output schema, the description is incomplete. It omits return value, error handling, and prerequisites. For a 2-param tool, more context is needed.

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

    Parameters2/5

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

    Schema coverage is 0%, so description must define parameters. 'path' and 'layer_id' are ambiguous: path could be local or remote, layer_id could be name or UUID. The description adds minimal meaning beyond the schema.

    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 action (apply), the resource (QGIS QML style file), and the target (layer). It distinguishes from sibling tools like save_style_qml (export) and set_layer_style (direct style setting without file).

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives like save_style_qml or set_layer_style. Does not mention prerequisites such as layer existence or file validity, nor exclusions.

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

  • Behavior2/5

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

    With no annotations, the description fails to disclose key behaviors such as whether the group is created if missing, side effects on layer order, or error handling. 'Move' alone is insufficient for full transparency.

    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?

    One sentence, no extraneous words, and the action is front-loaded. The description is appropriately concise for a simple operation.

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

    Completeness2/5

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

    For a tool with no annotations and no output schema, the description is too minimal. It omits important context about project scope, error handling, and default behavior, leaving gaps for reliable agent usage.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description adds no meaning beyond the parameter names. No details on constraints, formats, or relationships between layer_id and group_name are provided.

    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 action 'Move' and the resource 'a layer into a layer group', with specific identifier 'by group name'. It effectively distinguishes from siblings like 'create_layer_group' or 'add_vector_layer'.

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

    Usage Guidelines2/5

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

    No guidance provided on when to use this tool vs. alternatives, nor any exclusions or prerequisites (e.g., what happens if group doesn't exist). The description implies usage but lacks explicit context.

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

  • Behavior3/5

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

    The annotation sets 'destructiveHint: true', and the description's 'Remove' is consistent. However, there is no additional disclosure about what happens upon removal (e.g., permanent deletion, effect on other elements). The description does not contradict annotations.

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

    Conciseness4/5

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

    The description is very concise with a single sentence, no filler. It is front-loaded with the verb. However, it sacrifices necessary detail for brevity.

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

    Completeness2/5

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

    Given the simple tool, the description is incomplete: it does not specify how to provide the layout name (exact match?), nor the return value or success indicator. Since there is no output schema, the description should hint at what happens after removal.

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

    Parameters1/5

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

    The input schema has 0% coverage with no parameter description, and the description does not clarify the expected format of 'layout_name' (e.g., case-sensitivity, name vs title). No added value beyond the schema.

    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 action ('Remove') and the resource ('print layout'), with the scope 'from the project'. It distinguishes the tool from siblings like 'add_layout' and 'create_layout' which have opposite functions.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like 'list_layouts' to find layout names, or prerequisites such as having the layout open or saved. The description lacks any usage context.

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

  • Behavior3/5

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

    Annotations indicate idempotentHint=true, which the description does not contradict. The description adds that the tool returns inline and can save to disk, but does not disclose other behavioral aspects like file format or state changes beyond saving.

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

    Conciseness4/5

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

    Two efficient sentences front-loading the main purpose and output, with no extraneous words. Could be improved by briefly noting parameters, but remains concise and clear.

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

    Completeness3/5

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

    Lacks output schema, so description must explain return value; it does ('image inline'). However, it omits details on file format, behavior when path is null vs. string, and error handling. Adequate but with gaps.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must compensate. It only explains the 'path' parameter (optional save to file), but does not describe 'width' and 'height' parameters, leaving their meaning ambiguous.

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

    Purpose4/5

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

    The description clearly states it renders the current map canvas to an image and returns it inline or optionally saves to disk. However, it does not differentiate from the sibling tool 'get_canvas_screenshot', which may have similar functionality.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives like 'get_canvas_screenshot' or 'export_layout'. There are no context hints for when to use or avoid this tool.

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

  • Behavior2/5

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

    With no annotations, the description must carry full weight. It only states the action and the allowed types, but does not disclose side effects (e.g., permanent modification), required permissions, or error conditions (e.g., duplicate field name, incompatible layer type). The behavioral traits are minimally addressed.

    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 consists of two short sentences with no redundancy. The first sentence conveys the core purpose, and the second provides a list of valid field_type values. Every word earns its place.

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

    Completeness2/5

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

    For a mutation tool with five parameters and no annotations, the description is too sparse. It fails to mention return values, error conditions, or constraints (e.g., layer must be a vector layer in edit mode). The agent lacks enough context to invoke this tool confidently.

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

    Parameters2/5

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

    Schema description coverage is 0%, yet the description only adds value for field_type by listing the allowed values. Other parameters like layer_id, field_name, length, and precision are not explained at all. This partial compensation is insufficient for the low coverage.

    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 explicitly states the action ('Add a new field') and the target resource ('vector layer'). It also lists the valid field_type values, which distinguishes it from siblings like delete_field and rename_field. The verb+resource combination is specific and unambiguous.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., add_vector_layer, delete_field). There is no mention of prerequisites, such as whether the layer must be in editing mode or whether field names must be unique. The description does not help the agent decide when to use this tool.

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

  • Behavior2/5

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

    Discloses max_rows caps features and position/size units (mm), but lacks details on error handling, required permissions, or behavior when layer_id is invalid. With no annotations, more transparency is needed.

    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?

    Two concise sentences with no redundant information. Front-loads the core purpose and key parameter behavior.

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

    Completeness2/5

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

    Given 0% schema description coverage, no output schema, and 7 parameters, the description is too brief. It omits error conditions, required layer type, and default behavior. Incomplete for effective tool usage.

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

    Parameters2/5

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

    Description adds meaning for max_rows (capping) and position/size (mm units), but does not explain x, y, width, height defaults or the roles of layer_id and layout_name beyond being required. Schema coverage is 0%, so description must compensate more.

    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?

    Description clearly states the tool adds an attribute table for a vector layer to a print layout, using specific verb and resource. It distinguishes from sibling tools like add_layout_label or add_layout_map by specifying 'attribute table' for vector layer.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., add_layout_label for labels). No prerequisites or exclusions mentioned.

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

  • Behavior3/5

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

    The annotation indicates idempotency (readOnlyHint not present, but idempotentHint is true), so the bar is lower. The description does not add behavioral context beyond the annotation, nor does it mention side effects or edge cases like no selection existing.

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

    Conciseness4/5

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

    The description is a single short sentence, which is concise. However, it could be slightly more structured to include parameter details, but overall it is not verbose.

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

    Completeness3/5

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

    For a simple tool with one parameter and no output schema, the description covers the basic purpose but lacks additional context like error behavior or preconditions (e.g., does the layer exist?).

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not elaborate on the only parameter 'layer_id' (e.g., expected format, examples, or constraints). The description fails to add value beyond the schema.

    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 action ('clear') and the resource ('selection on a layer'), using a specific verb and noun. It distinguishes from sibling tools like 'select_features' and 'get_selection'.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives, such as when to clear selection vs. selecting an empty set or using other selection-related tools.

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

  • Behavior2/5

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

    Without annotations, the description only indicates the creation action. It omits details on error handling (e.g., duplicate group name, missing parent), side effects, or success feedback, which is minimal for a mutation tool.

    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 one sentence with two clauses, front-loading the primary action and appending the optional parameter. Every word is necessary, making it highly concise.

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

    Completeness3/5

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

    For a simple creation tool with two parameters and no output schema, the description adequately explains the core functionality. However, it could be more complete by noting interaction with existing groups, error states, or confirmation of success.

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

    Parameters3/5

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

    The description adds basic meaning to the two parameters: 'name' is the group name, 'parent' is optional and specifies the parent group. However, it does not clarify expected formats (e.g., full path) or constraints, adding only marginal value over the schema.

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

    Purpose4/5

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

    The description clearly states the tool creates a new layer group in the layer tree, using a specific verb and resource. It distinguishes from sibling tools like move_layer_to_group and remove_layer, but does not mention uniqueness constraints or layering order.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. The mention of optional parent group implies hierarchical use, but no prerequisites or when-not-to-use conditions are stated.

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

  • Behavior3/5

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

    No annotations exist, so the description carries the burden. It notes in-place modification and returns feature count, but the phrase 'Add (if missing)' is ambiguous about behavior when field already exists. Lacks disclosure on permissions, error handling, or reversibility.

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

    Conciseness4/5

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

    The description is concise (one sentence plus example) and front-loads the core action. However, it could be more structured with bullet points or clearer separation of parameter details.

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

    Completeness2/5

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

    With 6 parameters, no output schema, and no annotations, the description is incomplete. It does not cover edge cases, error states, or full parameter semantics, leaving significant gaps for an AI agent to use correctly.

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

    Parameters2/5

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

    With 0% schema coverage, the description must compensate. It explains field_type with defaults and gives an example using expression and field_name, but does not explain layer_id, length, or precision. Missing parameter details limit usability.

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

    Purpose4/5

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

    The description clearly states it adds and populates a field from a QGIS expression per feature in-place, with an example. It is specific and differentiates from generic sibling tools like add_field or evaluate_expression, though not explicitly.

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

    Usage Guidelines3/5

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

    The description implies usage for adding a computed field but does not explicitly state when to use this tool over alternatives like add_field or evaluate_expression. No direct comparison or exclusion criteria.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It only states 'Load a QGIS project' without detailing whether it replaces the current project, requires file existence, or any side effects. The agent cannot anticipate the behavior beyond the basic action.

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

    Conciseness4/5

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

    The description is a single sentence with no fluff. It is appropriately concise for a tool with one parameter, though some might argue it is under-specified.

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

    Completeness2/5

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

    The tool has no output schema, so the description should explain return values or success indicators. It lacks information about error handling, effect on the current project, and required permissions. Given the tool's simplicity, more context is needed.

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

    Parameters3/5

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

    Schema coverage is 0% (the path parameter has no description), but the description adds 'from a .qgs/.qgz file path', giving meaning about the expected file format. However, it does not specify path format (absolute/relative) or validation requirements.

    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 uses the specific verb 'Load' and clearly identifies the resource as 'a QGIS project'. Mentioning the file extensions .qgs/.qgz further clarifies the input scope. This clearly distinguishes from sibling tools like save_project and create_new_project.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as save_project or create_new_project. There is no mention of prerequisites, context, or when not to use it.

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

  • Behavior2/5

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

    Annotations provide idempotentHint=true. The description adds that the variable is accessible as @key, but fails to disclose other behavioral traits such as overwrite behavior, persistence, or scope. Minimal added value beyond annotations.

    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 extremely concise with two sentences, front-loaded with the verb, and contains no redundant words. Every sentence is purposeful.

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

    Completeness3/5

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

    For a simple tool with 2 parameters and no output schema, the description explains the purpose and usage. However, it lacks completeness by not specifying overwrite behavior, data type constraints on value, or that variables persist in the project file.

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

    Parameters2/5

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

    Schema description coverage is 0%, placing full burden on the description. However, the description does not explain parameter semantics (e.g., valid key format, value constraints, or reserved keys). It merely mentions key and value implicitly, providing no added meaning.

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

    Purpose4/5

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

    The description clearly states the verb 'Set' and resource 'project-level variable', and adds context about accessibility in expressions as @key. However, it does not explicitly distinguish from sibling tools like 'set_setting', which might be confused.

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

    Usage Guidelines3/5

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

    The description implies usage for setting variables used in expressions but provides no guidance on when not to use it or alternatives. No exclusions or context for selection among siblings.

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

  • Behavior2/5

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

    With no annotations, the description should detail behavioral traits. It only mentions dimensions in millimeters but fails to disclose side effects (e.g., overwriting existing map items), error conditions (e.g., layout not found), or coordinate system origin.

    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 a single, well-structured sentence with no filler. It front-loads the action and resource, directly stating the purpose and key details.

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

    Completeness2/5

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

    Given 5 required parameters, no annotations, and no output schema, the description is too brief. It omits prerequisites, return value, error handling, and interaction with other layout items, limiting the agent's ability to use it correctly.

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

    Parameters3/5

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

    Schema coverage is 0%, so the description must compensate. It indicates that position and size are in millimeters, adding context beyond the schema. However, it does not individually explain each parameter's meaning or valid ranges, leaving gaps.

    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 action (Add), the resource (a map item to a print layout), and the constraints (specified position and size in millimeters). It distinguishes from sibling tools like add_layout_label or add_layout_legend by specifying 'map item'.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives (e.g., add_layout_picture) or prerequisites (e.g., the layout must already exist). The agent has no context for selecting this tool over siblings.

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

  • Behavior2/5

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

    No annotations are provided, so the description must cover behavioral traits. It mentions file path and position/size in mm, but fails to disclose side effects (e.g., overwriting existing pictures), required layout existence, error handling, or return value. This is insufficient for a mutation tool.

    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 extremely concise, with two sentences that front-load the main purpose. Every word is necessary, and there is no redundant information.

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

    Completeness2/5

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

    Given the tool has 6 parameters, no annotations, and no output schema, the description is incomplete. It does not explain the required 'layout_name', does not specify output or error conditions, and lacks details on parameter interactions. A more complete description would include prerequisites and behavior.

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

    Parameters3/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 explains that 'path' is a file path and that numeric parameters represent millimeters. However, it does not explain the required 'layout_name' parameter, and the default values are not contextualized. The description adds some value but leaves gaps.

    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 title and description clearly state the tool adds a picture or SVG to a print layout, with specific examples (logo, north arrow). It distinguishes itself from sibling layout tools (e.g., add_layout_label, add_layout_map) by specifying its unique resource type.

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

    Usage Guidelines2/5

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

    The description does not provide guidance on when to use this tool versus alternatives, nor does it mention prerequisites or when not to use it. It merely states what it does, leaving the agent to infer usage context.

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

  • Behavior2/5

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

    No annotations are provided, and the description lacks behavioral details such as whether the layout must exist, side effects of adding a scale bar, or error conditions. Only the basic action is stated.

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

    Conciseness4/5

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

    Two concise sentences, front-loaded with the main action and a secondary sentence for style examples. No wasted words, but could include more structured parameter hints.

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

    Completeness2/5

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

    Given the lack of annotations and output schema, and 7 parameters with no explanation, the description is insufficient for complete understanding. It does not cover prerequisites, return value, or parameter behavior.

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

    Parameters2/5

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

    With 0% schema description coverage, the description does not explain the meaning of parameters like x, y, width, height, or map_item_id. Only 'style' is illustrated with examples, leaving the agent to guess the role of other parameters.

    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 action ('Add a scale bar') and the resource ('to a print layout'), with specific detail on linking to a map item. This distinguishes it from sibling tools like add_layout_label or add_layout_legend.

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

    Usage Guidelines3/5

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

    The description implies usage context (e.g., linked to a map item, style examples) but does not provide explicit when-to-use or when-not-to-use guidance, nor alternatives among layout tools.

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

  • Behavior2/5

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

    No annotations exist, and the description does not disclose behavioral traits such as whether the layer is temporary, if names must be unique, or what the return value is. The description only covers syntax, not behavior.

    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?

    Two concise sentences with no redundancy. Every sentence adds value (purpose + parameter details). Front-loaded with the core action.

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

    Completeness3/5

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

    The description covers the essential input details but fails to mention return values (e.g., layer ID or reference) or any side effects. Given no output schema, this is a notable gap.

    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?

    With 0% schema description coverage, the description adds substantial meaning by enumerating allowed geometry types and the fields array structure. However, it omits explanation for 'crs' and 'name', relying on their obviousness.

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

    Purpose4/5

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

    The description clearly states the tool creates a new in-memory vector layer, which distinguishes it from siblings like add_vector_layer that may load from files. The list of geometry types and fields format adds specificity.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., add_vector_layer for persistent layers). No exclusions or context provided.

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

  • Behavior2/5

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

    No annotations provided; description only mentions style inclusion but omits other behavioral details such as creation of new layer, permissions, or error conditions.

    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?

    Single sentence with no superfluous words; action and resource are front-loaded.

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

    Completeness3/5

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

    Lacks output description and error handling info, but for a simple duplication tool with two parameters, it is marginally adequate.

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

    Parameters2/5

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

    Schema has 0% coverage; description adds minimal meaning beyond names—only 'under a new name' hints at the new_name parameter but does not explain behavior when null or format constraints.

    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?

    Description clearly states the verb 'duplicate' and resource 'layer', explicitly including style preservation. It distinguishes from sibling tools like add_layer and remove_layer.

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

    Usage Guidelines2/5

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

    No guidance on when to use duplication over other operations, nor any prerequisites or restrictions.

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

  • Behavior3/5

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

    Annotations already indicate readOnlyHint=true. The description adds that it returns feature IDs and count, which is useful but not extensive. For a simple read operation, this is adequate.

    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 one sentence, front-loads the action and result, and contains no unnecessary words.

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

    Completeness4/5

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

    Given the tool has one parameter, an output schema (though not referenced), and a simple purpose, the description is mostly complete. It could mention that the selection may be empty, but overall sufficient.

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

    Parameters2/5

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

    The single parameter 'layer_id' is not described beyond its name and type. Schema coverage is 0%, so the description fails to add meaning such as how to obtain the layer ID or example values.

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

    Purpose4/5

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

    The description clearly states the verb 'Get', the resource 'current selection for a layer', and what is returned ('feature IDs and count'). It distinguishes from siblings like 'select_features' and 'clear_selection' implicitly, but does not explicitly contrast them.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as 'select_features' or 'get_layer_features'. Lacks context on appropriate usage scenarios.

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

  • Behavior2/5

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

    With no annotations provided, the description bears the full burden of behavioral disclosure. It reveals some behavior (disabling labels, setting attribute field) but omits important details such as what happens if field_name is null, if color is invalid, or if the layer_id does not exist. No mention of idempotency, side effects, or error handling.

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

    Conciseness4/5

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

    The description is concise, using two sentences and a brief list-like structure. It is front-loaded with the main purpose and immediately provides actionable usage hints. No extraneous information is present, though a more structured format could enhance readability.

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

    Completeness3/5

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

    Given the tool is a simple configuration setter, the description covers its core parameters and behavior adequately. However, it does not mention the return value (e.g., success/failure) or error scenarios. The lack of output schema increases the need for such details, which are missing.

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

    Parameters3/5

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

    The input schema has 5 parameters with 0% description coverage, so the description must add meaning. It explains enabled, field_name, font_size, and color, adding context beyond schema names (e.g., color as hex format). However, layer_id is not described, and font_size and color are only noted as optional with types. Overall, the description provides moderate added value.

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

    Purpose4/5

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

    The description clearly states that the tool configures labeling for a vector layer, using a specific verb ('configure') and resource ('labeling for a vector layer'). It lists the main parameters and their roles, but does not explicitly differentiate from sibling tools like 'get_layer_labeling' or 'set_layer_style', which perform related but distinct actions.

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

    Usage Guidelines3/5

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

    The description provides usage guidance for key parameters: setting enabled=false to disable labels, setting field_name for the attribute field, and noting optional parameters. However, it does not discuss when to use this tool versus alternatives (e.g., set_layer_property for generic layer properties) or provide any context on prerequisites or limitations.

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

  • Behavior2/5

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

    With no annotations, the description carries the full burden. It mentions prefix and in-memory output, but does not clarify whether the input polygon layer is modified or a new layer is created. Side effects and permissions are unaddressed.

    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 concise and front-loaded with the purpose. It uses a single sentence plus a compact code mapping, with no wasted words.

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

    Completeness2/5

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

    Given 6 parameters, no output schema, and no annotations, the description is incomplete. It explains some parameters but misses band, does not clarify layer modification behavior, and does not describe return values.

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

    Parameters3/5

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

    Schema coverage is 0%, so the description must compensate. It explains stats codes, prefix behavior, and output_path effect, adding value beyond the schema. However, it omits explanation for band and the required raster and polygon layers, leaving gaps.

    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 it computes per-polygon statistics from a raster, with a specific verb and resource. It distinguishes from siblings like sample_raster_values which work on points, making the purpose unambiguous.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives, nor does it specify when not to use it. It only describes default values and codes, not usage context.

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

  • Behavior3/5

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

    With no annotations, the description carries full burden. It hints at coordinate units (mm) and expression support, but does not disclose behavioral traits like whether the layout must exist, error handling, side effects, or if the operation is destructive. It provides some insight but is incomplete.

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

    Conciseness4/5

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

    The description is concise (two sentences), front-loads the purpose, and each sentence adds value. It could be slightly more structured or include more parameter hints, but it is efficient and clear.

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

    Completeness2/5

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

    Given 8 parameters, no output schema, and no annotations, the description only covers text, color, and vaguely coordinates. It omits explanation of required layout_name, width, height, font_size, and defaults. It lacks information about error conditions, behavior when layout doesn't exist, and return values, making it incomplete for confident use.

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

    Parameters3/5

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

    Schema coverage is 0%, so the description must compensate. It explains text dynamic content and color hex format, and implies coordinate units (mm) for x,y. However, it does not explain width, height, font_size, or layout_name, leaving many parameters ambiguous. The description adds partial meaning beyond the schema but is not comprehensive.

    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 action (Add), the resource (text label to a print layout), and provides specific details about dynamic content and color format. It distinguishes this tool from sibling tools like add_layout_legend or add_layout_map by focusing on labels.

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

    Usage Guidelines2/5

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

    The description does not provide any guidance on when to use this tool versus alternatives like add_layout_legend. It lacks context on prerequisites, conditions, or exclusions, leaving the agent without clear decision support.

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

  • Behavior2/5

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

    No annotations are provided, so the description must carry the full burden. It states the operation type (redo) but omits important behavioral details like what happens if there are no undone edits, whether an edit session is required, or whether the operation is reversible. This is a significant gap for a mutation tool.

    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?

    Single sentence, front-loaded, no wasted words. It efficiently conveys the core action and target, though it is minimal in content.

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

    Completeness2/5

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

    For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks context about when redo is applicable, how the 'steps' parameter works, and potential error conditions, making it insufficient for an agent to invoke confidently.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description does not mention layer_id or steps. The 'steps' parameter is ambiguous—its meaning as a count of undo steps is only inferable from the name, not from the description, which says 'operations' but does not clarify the parameter.

    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?

    Description uses specific verb 'Redo' and resource 'previously undone edit operations on a layer', clearly distinguishing from sibling 'undo_edits'. It is more than just a restatement of the title.

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

    Usage Guidelines3/5

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

    The phrase 'previously undone' implies usage after an undo, but it does not explicitly state when to use this vs alternatives like undo_edits, nor does it mention prerequisites such as being in an active editing session. Guidance is implied rather than explicit.

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

  • Behavior2/5

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

    Beyond the idempotentHint annotation, the description adds no behavioral context such as side effects, error handling, or state changes. It lists supported properties but does not disclose what happens if an invalid property or value is provided.

    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 a single sentence that front-loads the action and lists supported properties concisely. Every word serves a purpose, with no redundancy.

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

    Completeness3/5

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

    For a simple mutation tool with 3 required parameters and no output schema, the description covers the core action and property types but omits return behavior, error conditions, and confirmation of success. It is minimally complete.

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

    Parameters3/5

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

    The input schema has 0% description coverage, but the description compensates by listing possible values for the 'property' parameter and indicating expected formats (e.g., opacity 0.0-1.0). However, it does not explain 'layer_id' or the exact string format required for 'value'.

    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 verb 'Set' and the resource 'layer property', and lists specific supported properties (opacity, name, min_scale, max_scale, scale_visibility), distinguishing it from sibling tools that set other aspects like CRS or style.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., set_layer_visibility for visibility). The description does not mention context, prerequisites, or exclusions.

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

  • Behavior3/5

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

    The description notes that zooming to the full extent changes the map view, but does not elaborate on effects like animation, layer loading, or error handling. The idempotentHint annotation is consistent with the description.

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

    Conciseness4/5

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

    The description is a single clear sentence, efficient for a simple tool, though it could benefit from slightly more detail on the effect.

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

    Completeness3/5

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

    For a low-complexity tool with one parameter and no output schema, the description covers the essential purpose but omits usage context and parameter details that would improve completeness.

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

    Parameters2/5

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

    The single parameter layer_id is described only as 'the specified layer' with no details on format, source, or validation criteria, which is insufficient given 0% schema coverage.

    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 action (Zoom) and the target (the map canvas to the full extent of a specified layer), distinguishing it from sibling tools like set_canvas_extent or get_layer_extent.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives such as set_canvas_extent or when it is inappropriate, leaving the agent without context for selection.

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

  • Behavior2/5

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

    No annotations are provided. The description does not disclose behavioral traits such as whether existing atlas configuration is overwritten, required prerequisites (e.g., layout existence), or side effects of enabling/disabling the atlas.

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

    Conciseness4/5

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

    The description is concise, two sentences front-loading the core purpose. It could be slightly more structured but contains no fluff.

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

    Completeness3/5

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

    The description covers the atlas's core functionality but omits behavioral details like return values, error conditions, and the effect of the 'enabled' parameter. Given no output schema and no annotations, it is moderately complete.

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

    Parameters3/5

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

    With 0% schema description coverage, the description adds meaning by explaining coverage_layer and the three optional expressions. However, it fails to mention the 'enabled' parameter and does not fully clarify the formatting or requirements of the expression strings.

    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 configures a print layout's atlas, specifying that coverage_layer drives one page per feature. It distinguishes itself from sibling tools like export_atlas or add_layout_xxx by focusing solely on atlas configuration.

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

    Usage Guidelines3/5

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

    The description implies usage for setting up an atlas in a print layout but provides no explicit guidance on when to use this tool versus alternatives (e.g., other layout tools) or when not to use it.

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

  • Behavior3/5

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

    Annotations already provide destructiveHint=true, so the destructive nature is known. The description adds only the context 'from a vector layer', which is minimal. No disclosure of effects like permanent deletion or undo possibilities.

    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?

    Single sentence, no redundancy, efficient and front-loaded.

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

    Completeness3/5

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

    Given the simple tool (2 required string params, destructive annotation, no output schema), the description is minimally adequate but lacks details on restrictions (e.g., cannot delete system fields) or error conditions.

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

    Parameters2/5

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

    Schema coverage is 0%, but description does not explain the parameters beyond the names. The names (layer_id, field_name) are self-explanatory, yet the description adds no additional meaning like allowed formats or constraints.

    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 action (delete) and the resource (field from a vector layer), differentiating from sibling tools like add_field and rename_field.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives, no prerequisites or conditions mentioned (e.g., layer must exist, field must not be required).

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

  • Behavior3/5

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

    The description adds value beyond the `readOnlyHint` annotation by detailing the return content (IDs, names, types, visibility, type-specific info) and including `total_count`. However, it does not disclose any potential performance implications or other behavioral traits, so it meets the baseline but does not excel.

    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 extremely concise with only two sentences. The first sentence captures the core purpose, and the second adds necessary pagination details. No redundant or extraneous text. It is appropriately front-loaded and efficient.

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

    Completeness4/5

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

    For a simple read-only list tool with an output schema (not shown), the description provides sufficient context about what is returned and pagination. It does not cover error conditions or prerequisites, but given the tool's simplicity and the annotations, it is mostly complete.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must compensate but only states 'Use limit/offset for pagination', which does not explain the meaning or constraints of the parameters (e.g., default values, maximum values). The schema already provides defaults, but the description does not add meaningful semantic detail beyond that.

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

    Purpose4/5

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

    The description clearly states the tool lists layers in the current project and specifies the returned fields (IDs, names, types, visibility, type-specific info). It is specific about the resource and action, but does not explicitly distinguish it from the sibling `get_layer_tree` which provides a hierarchical view, so it loses a point for lack of sibling differentiation.

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

    Usage Guidelines3/5

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

    The description mentions using limit/offset for pagination, which is a usage guideline, but it does not provide any context on when to use this tool versus alternatives like `get_layer_tree` or what prerequisites exist (e.g., must have a project open). It gives partial guidance but lacks exclusions or comparisons.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the read-only behavior is known. The description adds the specific return fields but does not disclose error behavior (e.g., if plugin not found). Adequate but not rich.

    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?

    Single sentence with clear verb and resource. Efficiently lists key fields with no extraneous information. Front-loaded and well-structured.

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

    Completeness3/5

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

    Despite having an output schema (unknown content), the description covers return fields. However, it lacks parameter description and error handling details. Adequate for a simple read tool but not fully complete.

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

    Parameters2/5

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

    Schema description coverage is 0% for the required 'plugin_name' parameter. The description does not explain what 'plugin_name' is or how to obtain it (e.g., 'the name from list_plugins'). Insufficient compensation for low schema coverage.

    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?

    Description clearly states the verb 'get detailed info' and resource 'a specific plugin', listing the fields returned (name, enabled, version, etc.). This differentiates it from sibling 'list_plugins' which presumably lists all plugins.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives like 'list_plugins' or other get tools. The description implies usage for a specific plugin but does not contrast with siblings.

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

  • Behavior3/5

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

    Annotations already declare destructiveHint=true, so the description does not need to restate destructiveness. However, the description adds no further behavioral context (e.g., what happens to associated data, reversibility, authorization requirements). It is adequate but unremarkable.

    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 a single, concise sentence that front-loads the action and resource. No unnecessary words.

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

    Completeness3/5

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

    Given the tool's simplicity (one required parameter, no output schema), the description covers the basic purpose. However, it lacks usage guidance and contextual completeness, especially compared to the wealth of sibling tools.

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

    Parameters2/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 only mentions 'by its ID' but does not explain the format or expected value of bookmark_id (e.g., UUID, integer). This provides minimal added meaning over the schema.

    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 verb 'Remove', the resource 'spatial bookmark', and the method 'by its ID', making the purpose immediately clear and distinguishing it from siblings like 'add_bookmark' and 'get_bookmarks'.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. No context on prerequisites, when-not-to-use, or comparisons to siblings such as 'delete_features' or 'remove_layer'.

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

  • Behavior3/5

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

    Annotations already provide 'destructiveHint: true', which the description aligns with. The description adds no extra behavioral details beyond what annotations convey, such as permanence or 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.

    Conciseness4/5

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

    The description is extremely concise with a single sentence and no wasted words. It could benefit from structured information but remains efficient for its simple purpose.

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

    Completeness2/5

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

    For a destructive action with no output schema, the description should explain consequences (e.g., irreversibility, effect on themes currently applied) and provide minimal context. It falls short, leaving the agent without critical usage information.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must add meaning for the single parameter 'name'. It only repeats 'by name' without clarifying what constitutes a valid name (e.g., display name or identifier) or how to obtain it.

    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 action (remove), the resource (map theme), and the method (by name). It distinguishes well from sibling tools like 'add_map_theme' or 'get_map_themes'.

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

    Usage Guidelines3/5

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

    The description implies use when wanting to delete a theme, but provides no explicit guidance on when to use versus alternatives, prerequisites (e.g., theme must exist), or when not to use.

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

  • Behavior3/5

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

    The description reveals that it returns the actual number of steps undone and that it operates on the layer's own undo stack. However, it does not disclose side effects, permission needs, or behavior when no edits are available, which would be valuable given the lack of annotations.

    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?

    Two sentences, front-loaded with the action, no unnecessary words. Efficient and readable.

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

    Completeness3/5

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

    For a simple undo tool, the description is adequate but lacks edge-case behavior (e.g., no edits to undo, invalid or negative steps, interaction with editing sessions). Since there is no output schema, mentioning the return count helps but more details would improve completeness.

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

    Parameters2/5

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

    With 0% schema description coverage, the description must compensate but does not explicitly explain the 'layer_id' or 'steps' parameters. The phrase 'last edit operations' and 'how many steps' imply the 'steps' parameter, but no direct mapping or details are given.

    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 action (undo), the resource (layer), and the scope (its own undo stack), distinguishing it from siblings like redo_edits or rollback_edits. The return value is also specified.

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

    Usage Guidelines2/5

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

    No explicit guidance on when to use this tool versus alternatives. It implies usage for undoing layer edits but does not mention when not to use it or how it differs from rollback_edits or redo_edits.

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

  • Behavior2/5

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

    With no annotations, the description must disclose behavioral traits. It only states the basic action of adding a bookmark, without details on side effects, error handling, or permission requirements.

    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 a single, well-structured sentence that front-loads the core purpose and immediately directs the user to the key parameters. No extraneous information.

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

    Completeness3/5

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

    The description covers the basic purpose and parameter hints, but given the tool has 7 parameters and no output schema, it lacks context on possible outcomes, constraints, or differentiation from sibling tools.

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

    Parameters3/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 mentions 'name and extent (xmin/ymin/xmax/ymax) with CRS' but does not explain all parameters (e.g., 'group') or provide syntax details beyond the schema.

    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 verb 'Add' and the resource 'spatial bookmark', specifying the purpose of quick navigation. It also distinguishes from sibling tools like 'remove_bookmark' by focusing on adding.

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

    Usage Guidelines3/5

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

    The description implies usage for creating a navigation bookmark but does not explicitly state when to use it over alternative tools (e.g., other add_* tools). No exclusions or conditions are provided.

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

  • Behavior3/5

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

    With no annotations, description carries full burden. It discloses the create/update behavior and the source (current layer visibility). However, it does not mention return values, side effects on existing themes, or permissions needed. Adequate for a simple tool but could be more detailed.

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

    Conciseness4/5

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

    Two concise sentences convey essential information without fluff. Could include slightly more detail without being verbose, but remains efficient.

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

    Completeness3/5

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

    Given a single parameter and no output schema, description covers the basic action and update rule. However, it omits context like whether themes are project-level or file-based, and does not specify the effect on the current view. Adequate for a simple tool but not fully complete.

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

    Parameters2/5

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

    Schema description coverage is 0%, so description must compensate. It indirectly explains the 'name' parameter as the theme identifier by stating it will be updated if it exists. However, no further details (format, constraints) are provided, leaving the parameter underspecified.

    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?

    Description clearly states it creates or updates a map theme from the current layer visibility state, using a specific verb and resource. It distinguishes itself from siblings like apply_map_theme (which applies an existing theme) and remove_map_theme (which removes one).

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

    Usage Guidelines3/5

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

    Description implies when to use (to save current visibility) but does not explicitly contrast with alternatives like apply_map_theme or remove_map_theme. No explicit guidance on when not to use or prerequisites.

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

  • Behavior4/5

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

    Beyond the idempotentHint annotation, the description adds behavioral details: format-specific output (single file vs one per feature) and output_path semantics. It does not contradict annotations.

    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?

    Two sentences, no fluff, front-loaded with purpose. Every sentence adds value.

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

    Completeness3/5

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

    Adequate for a simple export tool, but missing parameter details for dpi and layout_name. No output schema, so description could hint at success/failure behavior.

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

    Parameters2/5

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

    With 0% schema description coverage, the description partially explains 'format' and 'output_path' but does not mention 'dpi' or 'layout_name', leaving two parameters unexplained.

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

    Purpose4/5

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

    The description clearly states the action 'Export a configured atlas' with a specific verb and resource. It differentiates format behavior for PDF vs image formats, but does not explicitly distinguish from sibling tools like export_layout or render_map.

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

    Usage Guidelines3/5

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

    The description mentions 'Call configure_atlas first', providing a prerequisite for usage. However, it does not specify when to use this tool versus alternatives (e.g., export_layout) or provide exclusions.

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

  • Behavior3/5

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

    Annotations declare idempotentHint=true, indicating no side effects on repeated calls. Description adds no additional behavioral context beyond the annotation.

    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?

    Single sentence, front-loaded, no unnecessary words. Every word earns its place.

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

    Completeness3/5

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

    For a simple setter with one parameter and idempotent annotation, the description is minimally adequate but lacks usage guidelines and parameter detail.

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

    Parameters3/5

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

    Schema coverage is 0%, so description must compensate. States 'by layer ID' which identifies the parameter's purpose but provides no details on format or constraints.

    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?

    Clearly states the action ('Set the active layer'), resource ('in the QGIS layer panel'), and method ('by layer ID'). Distinguishes from siblings like get_active_layer or zoom_to_layer.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., layer must exist) or when not to use it.

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

  • Behavior3/5

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

    The annotations already indicate idempotentHint: true, which tells the agent the operation is safe to retry. The description adds minimal behavioral context ('in the layer tree'), but does not explicitly describe side effects or state changes beyond what the schema implies. For a simple toggle, this is adequate but not exceptional.

    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 a single sentence of 12 words, front-loading the verb and noun. Every word contributes to the purpose, and there is no extraneous information.

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

    Completeness4/5

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

    For a tool with only two simple parameters and no output schema, the description covers the core functionality well. However, it omits important context such as the requirement that the layer must already exist or the behavior if the layer is already in the desired visibility state (though idempotency hint implies no error).

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

    Parameters2/5

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

    The input schema has 0% description coverage for parameters, and the tool description does not elaborate on the meaning of layer_id or visible. While visible's boolean nature is self-evident, the agent gains no additional semantic context beyond the parameter names.

    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 verb 'Set' and the resource 'layer's visibility', and explains 'show/hide on map'. It specifically distinguishes from sibling tools like set_layer_order or set_layer_crs, which modify other properties.

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

    Usage Guidelines2/5

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

    The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, such as requiring the layer to exist, or when to prefer this over other setter tools like set_layer_property.

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

  • Behavior2/5

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

    The destructiveHint annotation already signals mutation. The description adds that it returns a count of updated features, but does not disclose partial update behavior, validation, or permanence. Limited additional value beyond annotations.

    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?

    Extremely concise: one sentence plus an inline example. No superfluous words, all information is front-loaded.

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

    Completeness3/5

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

    For a two-parameter update tool with destructiveHint, the description covers purpose, parameter format, and return value. However, it omits error cases, validation, and whether updates are additive or replace old attributes. Adequate but not thorough.

    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 coverage is 0%, but the description explains the 'updates' parameter with a concrete example of the array structure. However, 'layer_id' is not described beyond its name. Partial compensation.

    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 'Update feature attributes' and provides an example format for the updates. This distinguishes it from sibling tools like add_features and delete_features.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives such as add_features or delete_features. The description only gives an example but no when-not-to or context.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden. It mentions basic behavior (link to map item, position in mm) but does not disclose potential side effects, error conditions, or required permissions. For a mutation tool, this is insufficient.

    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?

    Single sentence conveying core information without excess. Efficient and front-loaded.

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

    Completeness2/5

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

    Description is minimal for a tool with 7 parameters and no output schema. It lacks details on return value, error handling, and prerequisites (e.g., layout must exist). Needs more completeness for safe invocation.

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

    Parameters3/5

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

    Schema description coverage is 0%, requiring the description to compensate. It explains the meaning of x, y, width, height (in mm) and map_item_id (defaults to first map item), but does not cover title or layout_name. Partial compensation, baseline for 0% coverage is 4 if fully covered.

    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's purpose: adding a legend to a print layout. It specifies the key behavior (linked to a map item, defaults to first) and units (mm), distinguishing it from sibling add_layout_* tools.

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

    Usage Guidelines4/5

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

    The description provides context (default map item, units) but lacks explicit guidance on when to use vs alternatives. Given sibling tools are for different elements, usage is largely implied, so no major deduction.

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

  • Behavior3/5

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

    The annotation idempotentHint is present, indicating repeated applications have no additional effect. The description adds context by revealing that the tool modifies layer visibility to match the saved theme state, which is important because it changes the project's visual state. However, it doesn't mention error handling or prerequisites like the theme existing.

    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 a single, front-loaded sentence which fully states the purpose and effect in under 15 words. No wasted content.

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

    Completeness3/5

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

    The tool is simple with one parameter and no output schema, so complete guidance should clarify that 'name' refers to an existing theme. The description doesn't mention that the theme must have been created earlier or what happens if it doesn't exist. Given the simplicity, the description is close but lacks these important contextual details.

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

    Parameters2/5

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

    The schema has one required parameter 'name' with no description (0% coverage). The description mentions 'the theme' but doesn't explicitly state that the 'name' parameter is the map theme's name, nor does it clarify format or requirement that the theme must already exist. This leaves ambiguity despite the apparent simplicity.

    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 action: 'Apply a map theme' and explains the effect: 'restores the layer visibility state saved in the theme.' This distinguishes it from sibling tools like add_map_theme and remove_map_theme, which manage themes.

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

    Usage Guidelines3/5

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

    The description implies the use case—restoring a saved layer visibility state—but doesn't explicitly state when to prefer this over direct layer visibility tools like set_layer_visibility. It offers no exclusions or alternative tool references, so guidance is minimal.

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

  • Behavior2/5

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

    No annotations provided. Description implies a write operation but does not disclose behavior like overwrite policy, required permissions, or side effects (e.g., creating directories).

    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?

    Single sentence, no unnecessary words. Front-loaded with action and resource. Every word serves a purpose.

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

    Completeness4/5

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

    Simple tool with one parameter and no output schema. Description covers creation and save. Lacks details on error handling or file existence behavior, but sufficient for basic understanding.

    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?

    Only one parameter 'path' with 0% schema description coverage. The description clarifies that 'path' is where the project is saved, adding meaning beyond the schema.

    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?

    Description clearly states the action ('create'), resource ('new empty QGIS project'), and destination ('save it to the given path'), distinguishing it from siblings like 'load_project' or 'save_project'.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., load_project, save_project). No context about prerequisites or ideal scenarios.

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

  • Behavior3/5

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

    The description correctly identifies the destructive nature of the tool, which aligns with the 'destructiveHint' annotation. It adds context about the two filtering methods, but does not disclose further behavioral traits such as permanence, cascading effects, or what happens if no features match.

    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 a single, direct sentence that first states the purpose then adds the key constraint. Every word earns its place, with no redundancy.

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

    Completeness3/5

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

    For a simple delete operation with 3 parameters and no output schema, the description covers the selection methods but omits details like the necessity of 'layer_id' and potential return values (e.g., count of deleted features). It is minimally adequate but not rich.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description bears the full burden. It clarifies the mutual exclusivity of 'fids' and 'expression' and their types, but fails to describe the required 'layer_id' parameter at all. This omission leaves a significant gap for the agent.

    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 action ('Delete features') and the resource, specifying two distinct methods (by IDs or expression). This effectively distinguishes it from sibling tools like 'add_features' or 'update_features'.

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

    Usage Guidelines3/5

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

    The description provides constraints on usage ('Provide either fids or expression, not both'), but lacks guidance on when to choose this tool over alternatives like 'select_features' or 'update_features'. No explicit when-to-use or when-not-to-use context is given.

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

  • Behavior3/5

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

    Discloses that `as_layer=True` registers the result as a new layer (a mutation) and that non-layer mode returns at most 1000 rows. No annotations are provided, so the description carries the full burden; it covers key side effects but omits potential risks like write permissions or performance impacts.

    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?

    Two sentences pack all essential information without redundancy. Every clause adds meaning: the virtual layer mechanism, parameter behavior, and constraints. No fluff.

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

    Completeness2/5

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

    With 6 parameters, no output schema, and no annotations, the description should be more thorough. It omits the purpose of `uid_field` and `layer_name`, and does not describe the return structure for inline rows. The agent lacks critical information for correct invocation.

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

    Parameters3/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 explains `query`, `layers`, `as_layer`, and `geometry_field`, but does not describe `uid_field` or `layer_name`. This partial coverage adds value but leaves gaps for 2 of 6 parameters.

    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?

    Clearly states it executes SQL across loaded layers via a virtual layer, and distinguishes two modes: returning rows inline or creating a new layer. The verb 'execute' and resource 'SQL across loaded layers' is specific, and the description differentiates the tool from siblings that perform other operations.

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

    Usage Guidelines3/5

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

    Provides usage guidance for the `as_layer` parameter (when to create a new layer vs return rows) and mentions the `layers` parameter to limit sources. However, it does not compare this tool to alternatives like `evaluate_expression` or `execute_processing`, so the agent lacks context for when to choose this over siblings.

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

  • Behavior3/5

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

    The readOnlyHint annotation already indicates a safe read operation, so the description's main contribution is specifying the returned fields (id, name, provider). It does not describe pagination, sorting, or limit behavior, which would be helpful but not critical given the tool's simplicity.

    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 two succinct sentences with no wasted words. It front-loads the action and then lists the return fields, making it easy to parse.

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

    Completeness3/5

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

    Given the tool has only two optional parameters and an output schema, the description covers the core purpose and return. However, it lacks parameter formatting details and does not explain the output schema structure beyond mentioning three fields. It is adequate but not comprehensive.

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

    Parameters2/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 hints that 'search' is a keyword and 'provider' is a provider name, but lacks details on matching behavior (e.g., exact match, partial match, case sensitivity) or valid values for provider. This is insufficient for precise parameter usage.

    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 specifies the verb 'Search' and the resource 'processing algorithms', with optional filtering by keyword and/or provider. It also states the return fields (id, name, provider), which distinguishes it from sibling tools like get_processing_providers or get_algorithm_help.

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

    Usage Guidelines3/5

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

    The description implies usage context by mentioning filtering by keyword/provider, but does not explicitly state when to use this tool versus alternatives such as list_processing_models or get_algorithm_help. No exclusions or prerequisites are provided.

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

  • Behavior2/5

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

    No annotations provided, so description carries full burden. It only mentions model identification and parameters, but fails to disclose side effects, whether the model modifies data, or what output/feedback to expect. For a run tool, behavioral details are insufficient.

    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?

    Two concise sentences, front-loaded with purpose. Every word adds value. No redundancy or filler.

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

    Completeness2/5

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

    Given the complexity of running a Processing model, the description is too short. It omits what happens after execution, error handling, progress feedback, and does not reference output despite no output schema. Sibling tools like execute_processing have more detailed descriptions.

    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 description compensates well: 'model' explained as id or file path, 'parameters' as a mapping of input names to values with examples (layer ids, numbers). This adds meaning beyond the generic schema. Could be more precise with valid value formats.

    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 model, specifying two identification methods (registered id or .model3 file path). It distinguishes itself from sibling tools like execute_processing (which runs algorithms) and create_processing_model (which creates models).

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

    Usage Guidelines3/5

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

    The description implies usage contexts (running models), but does not explicitly contrast with similar tools like execute_processing or execute_processing_batch. No guidance on when not to use or prerequisites.

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

  • Behavior3/5

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

    Description adds CRS default context, but idempotence is already in annotations; no disclosures about side effects or requirements.

    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?

    Two concise sentences, no wasted words, front-loaded with core action.

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

    Completeness3/5

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

    Minimal but covers purpose and CRS; lacks details on invalid extents or return behavior; no output schema.

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

    Parameters2/5

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

    0% schema description coverage; description only gives general CRS context, not per-parameter meaning for xmin, ymin, xmax, ymax, crs.

    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?

    Clearly states the action ('Set the map canvas extent') and resource, distinguishing from siblings like get_canvas_extent and set_canvas_scale.

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

    Usage Guidelines3/5

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

    Implied usage but no explicit guidance on when to use vs siblings or constraints.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so description adds value by specifying the returned content (extent and CRS). No additional behavioral details like auth or side effects, but adequate given annotation.

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

    Conciseness4/5

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

    Single sentence, no redundancy, front-loaded with purpose. However, could include parameter clarification without losing conciseness.

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

    Completeness3/5

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

    Simple tool with output schema, description covers main purpose but omits prerequisites (e.g., layer must exist) and parameter details. Adequate but not thorough.

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

    Parameters2/5

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

    Schema description coverage is 0%, yet description does not elaborate on the single parameter 'layer_id'. The parameter name is self-explanatory, but description fails to compensate for missing schema descriptions.

    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?

    Clear verb 'Get' and specific resource 'spatial extent (bounding box) and CRS of a layer'. Distinguishes from siblings like get_layer_crs (CRS only) and get_canvas_extent.

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

    Usage Guidelines4/5

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

    Implies usage for retrieving layer extent and CRS, which is clear context. No explicit when-not or alternatives, but the purpose is specific enough for decision-making.

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

  • Behavior3/5

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

    Annotations provide idempotentHint: true, covering safety. The description adds no additional behavioral context (e.g., overwrite behavior, error when no project open). Value beyond annotations is minimal.

    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?

    Two sentences, 9 words, front-loaded. Every word is necessary and the structure is optimal for quick understanding.

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

    Completeness3/5

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

    For a simple tool with one param and no output schema, the description covers basic functionality but omits important context like error states, overwrite behavior, or the meaning of omitting path.

    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%, but the description explains that 'path' is for specifying a new location, which adds meaning beyond the schema's type-only info.

    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 'Save the current project', which is a specific verb+resource. It distinguishes itself from siblings like create_new_project and load_project by focusing on saving an existing project.

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

    Usage Guidelines2/5

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

    No guidance on when to use this tool versus alternatives (e.g., create_new_project, load_project). There is no mention of prerequisites or exclusions.

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

  • Behavior2/5

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

    No annotations are provided, so the description bears full burden. It states that it changes how layers are projected but does not disclose side effects like reprojection of existing layers or changes to canvas extent. This is insufficient for a mutation tool.

    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?

    Two sentences in under 30 words, front-loaded with key information, and no superfluous content.

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

    Completeness3/5

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

    Covers purpose and parameter format but lacks details on side effects and usage context. For a simple tool with one parameter, it is adequate but could be more informative regarding behavioral impact and alternatives.

    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?

    The single parameter 'crs' has no schema description (0% coverage). The description adds meaning by providing example formats ('EPSG:4326', 'EPSG:3857'), clarifying the expected input type. This compensates for the schema gap.

    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 'Set the project coordinate reference system' with examples like 'EPSG:4326', 'EPSG:3857', and explains that it changes how layers are projected. This distinguishes it from similar tools like set_layer_crs.

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

    Usage Guidelines3/5

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

    Usage is implied from the description: used when you want to change the project's CRS. However, no explicit guidance on when to use this versus alternatives (e.g., set_layer_crs), nor any prerequisites or context.

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

  • Behavior4/5

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

    No annotations are provided, so the description carries full burden. It discloses key behaviors: native algorithm name, predicate codes, method options, join fields default, and in-memory layer output if no output_path. This adds significant value beyond the schema, though it could mention error handling or performance implications.

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

    Conciseness3/5

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

    The description is a single run-on sentence that packs multiple details into one block. It is relatively concise but lacks structure (e.g., bullet points) and front-loads important info. Could be more readable and organized.

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

    Completeness2/5

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

    With no output schema and 7 parameters, the description is insufficient. It misses required parameters and does not explain return values, error conditions, or performance characteristics. The tool is complex enough to warrant more thorough documentation.

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

    Parameters2/5

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

    Schema description coverage is 0%, so description must compensate. It partially explains predicates, method, join_fields, and output_path, but omits the two required parameters (target_layer, join_layer) which are critical. The added meaning is incomplete, leaving the agent without full parameter understanding.

    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 performs a spatial join ('Join attributes by location'), which is distinct from attribute joins like those in add_table_join. The verb 'join' and resource 'attributes by location' are specific and unambiguous.

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

    Usage Guidelines4/5

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

    The description implies use for spatial joins, contrasting with attribute joins (sibling add_table_join). While it doesn't explicitly state when not to use or list alternatives, the context is clear given the sibling tool list. No exclusions are provided, but the primary use case is evident.

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

  • Behavior3/5

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

    With no annotations, the description carries the burden. It discloses that SQL layers are executed by the database and that geometry_column and primary_key may be needed for QGIS mapping. However, it does not mention side effects, permissions, or behavior if the layer already exists, leaving some behavioral ambiguity.

    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 three sentences, front-loaded with the core purpose, and each sentence adds distinct value. No redundancy or filler.

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

    Completeness4/5

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

    For a tool with 8 parameters and no output schema, the description covers the primary use cases and key requirements (like geometry columns for SQL layers). It misses some parameter details but provides enough context for effective use in most scenarios.

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

    Parameters3/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 explains table, schema, sql, geometry_column, and primary_key but leaves provider, connection, and name unexplained. This partial coverage is helpful but incomplete for an 8-parameter tool.

    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's function: loading a table or SQL query from a saved connection as a project layer. The verb 'Load' and resource 'table from a saved connection' are specific, and the mention of SQL query layers distinguishes it from simple file-based layer additions.

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

    Usage Guidelines3/5

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

    The description explains the two main usage modes (pass table+schema or SQL) but does not explicitly compare with alternatives like add_vector_layer or execute_connection_sql. Usage context is implied but not contrasted, so the agent receives reasonable but not explicit guidance.

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

  • Behavior3/5

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

    No annotations are provided, so the description carries the full burden. It discloses two key behaviors: committing the edit buffer and closing the edit session. However, it does not mention irreversibility, active-session requirements, or error handling, which are important for a mutation tool.

    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?

    A single, front-loaded sentence that communicates the action and consequence without waste. Perfectly concise for a simple tool.

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

    Completeness4/5

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

    For a one-parameter tool with no output schema, the description covers the core behavior and side effect (close edit session). It implicitly assumes an active edit session, which is reasonable given the sibling tools. Minor lack of error-case details is acceptable for this simplicity.

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

    Parameters3/5

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

    The schema has only layer_id (string) with 0% coverage from the description. The description references 'the layer's' which implies layer_id identifies the target layer, but it doesn't explicitly map the parameter or explain format/requirements. It adds some semantic value but could be clearer.

    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?

    Description uses the specific verb 'commit' and identifies the resource ('layer's edit buffer') along with a side effect ('close the edit session'). This clearly distinguishes it from sibling tools like rollback_edits or start_editing.

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

    Usage Guidelines3/5

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

    The description implies usage as the final step in an editing workflow, but it does not explicitly state when to use this tool versus alternatives like rollback_edits or undo_edits. No exclusions or prerequisites are mentioned.

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

  • Behavior3/5

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

    No annotations exist, so the description carries full burden. It discloses the return format (per-run result with index and success/error status) but omits side effects, permissions, or mutation behavior of the executed algorithm.

    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?

    Two sentences with no extraneous words. First sentence covers functionality and output; second sentence tells when to use. Information is front-loaded and efficient.

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

    Completeness3/5

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

    The tool has no output schema and two parameters with 0% description coverage. Description provides minimal usage context but lacks details on parameter formats and full return structure, making it incomplete for reliable agent invocations.

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

    Parameters2/5

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

    Schema coverage is 0%, so description must compensate. It explains that 'parameters_list' contains parameter dictionaries but does not specify the expected keys or values, nor what 'algorithm' expects as input. This leaves a significant gap for agent understanding.

    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 an algorithm once per parameter dict in a list and returns per-run results with index and success/error status. It also positions the tool as a batch operation, distinguishing it from single-run alternatives.

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

    Usage Guidelines4/5

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

    The description explicitly says 'Use for applying the same operation over many inputs in a single round-trip,' providing clear context for when to use. However, it does not mention when not to use or point to sibling tools for single runs.

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

  • Behavior4/5

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

    Annotations declare idempotentHint=true, indicating safe repeated calls. The description adds specifics on format and dpi. No contradictions, but does not disclose file overwrite behavior or path requirements.

    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?

    Single sentence front-loaded with the verb 'Export' and key parameters. No wasted words, all information is relevant.

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

    Completeness3/5

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

    Given 4 parameters and no output schema, the description covers format and dpi but omits context for layout_name and path. Idempotency is covered by annotations, but overall completeness is adequate but lacking.

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

    Parameters3/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 adds meaning for format (values listed) and dpi (default given), but offers no explanation for required parameters layout_name and path, leaving them underspecified.

    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 action (export) and resource (print layout) with format and dpi options. It distinguishes itself from sibling export tools like export_atlas and export_layer.

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

    Usage Guidelines3/5

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

    The description provides format and dpi details but gives no explicit guidance on when to use this tool versus alternatives (e.g., export_atlas, export_layer). Usage context is implied but not stated.

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

  • Behavior4/5

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

    The description is consistent with the readOnlyHint annotation (non-destructive help retrieval). It specifies the content of the help (parameters, outputs, description), adding context beyond the annotation. However, it does not disclose potential behaviors like invalid algorithm_id handling or rate limits.

    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 a single sentence that efficiently conveys the tool's purpose and expected output. No unnecessary words, and the key information is front-loaded.

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

    Completeness4/5

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

    For a simple tool with one required parameter and an output schema, the description is fairly complete. It covers what the tool does and what information it provides. Minor gap: it doesn't mention that the algorithm_id can be obtained from 'list_processing_algorithms'.

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

    Parameters2/5

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

    With 0% schema description coverage, the description should compensate but only reiterates that the tool returns parameter details. It does not explain the format or source of the algorithm_id parameter, leaving the agent with minimal guidance beyond the schema's name and type.

    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 retrieves detailed help for a processing algorithm, listing specific subfields (parameters, outputs, description). This distinguishes it from sibling tools like 'list_processing_algorithms' or 'get_processing_providers'.

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

    Usage Guidelines3/5

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

    The description implies usage for when a user needs details about a specific algorithm, but it does not explicitly state when to use this tool versus alternatives (e.g., listing algorithms or executing them). No guidance on prerequisites (e.g., obtaining the algorithm_id).

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so no destructive behavior. The description adds that the tool returns 'current map canvas extent and CRS', but this is minimal additional context. No contradictions with annotations, but the description does not elaborate on behavioral traits beyond what annotations provide.

    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 a single, front-loaded sentence with no unnecessary words. Every part of the sentence contributes to understanding the tool's purpose. No repetition or fluff.

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

    Completeness3/5

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

    Given the tool has an output schema, full explanation of return values is not required. However, with many sibling tools, a bit more context (e.g., use case for getting current view) would improve completeness. The description is minimally sufficient but could be more informative.

    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?

    There are no parameters, and schema coverage is 100% (empty object). The description adds meaning by specifying what the tool returns (extent and CRS), which is helpful given the lack of input parameters. Baseline for 0 parameters is 4, and this is appropriate.

    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 retrieves the current map canvas extent and CRS, using a specific verb ('Get') and identifying the resource ('current map canvas extent and CRS'). It effectively distinguishes from sibling tools like 'get_canvas_scale' and 'set_canvas_extent', which are different operations.

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

    Usage Guidelines3/5

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

    The description implies usage (e.g., to get current view extent) but provides no explicit guidance on when to use this tool versus alternatives like 'get_layer_extent' or 'get_canvas_scale'. No exclusions or when-not-to-use information is given.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the description adds value by detailing the specific data fields returned (EPSG, description, geographic flag, PROJ4), providing context beyond the read-only nature.

    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 a single, well-structured sentence that front-loads the purpose and uses a colon to list key details. No unnecessary words.

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

    Completeness4/5

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

    For a simple read-only tool with one parameter and an output schema, the description covers the essential information: what the tool returns. It lacks mention of error conditions but is otherwise complete.

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

    Parameters2/5

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

    The only parameter layer_id has no description in the schema (0% coverage). The description hints at 'of a layer' but does not explicitly explain the format or requirements for layer_id, which is critical for correct invocation.

    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 verb 'Get', the resource 'coordinate reference system (CRS) of a layer', and lists the specific outputs (EPSG code, description, geographic flag, PROJ4 string). This distinguishes it from sibling tools like set_layer_crs which sets CRS.

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

    Usage Guidelines3/5

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

    The description does not explicitly provide when to use or when not to use this tool. While the purpose is clear, there is no guidance on alternatives or context for selection among siblings.

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

  • Behavior4/5

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

    Annotations already set destructiveHint=true. The description adds 'This is irreversible', which reinforces and clarifies the permanent nature of the operation, providing beyond what annotations convey.

    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 extremely concise with two sentences that convey the essential action and consequence. No unnecessary words.

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

    Completeness4/5

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

    For a simple one-parameter tool with no output schema, the description covers the action, parameter method, and consequence. It is nearly complete; minor missing context like 'permanently removes from project' could be added.

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

    Parameters2/5

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

    Schema coverage is 0% and the description provides minimal help: only 'by its layer ID' with no explanation of what a layer ID is, how to obtain it, or its format. The description does not compensate adequately for the missing schema descriptions.

    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 verb 'Remove', the resource 'a layer', and the method 'by its layer ID'. It is specific and distinguishes from sibling tools like remove_bookmark or remove_layout.

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

    Usage Guidelines3/5

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

    The description mentions irreversibility but does not provide explicit guidance on when to use this tool versus alternatives (e.g., hiding a layer vs. removing it). Usage context is only implied.

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

  • Behavior2/5

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

    No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the basic function without mentioning side effects (e.g., permanent modification to layer), prerequisites (layer must exist and support symbology), permission requirements, or error conditions. This is insufficient for a mutation tool.

    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 extremely concise: two short sentences front-loading the purpose and then listing parameter details. Every word adds value, with no redundant or filler language.

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

    Completeness3/5

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

    For a tool with no output schema and no annotations, the description covers core parameter constraints but lacks guidance on error handling, layer type compatibility (vector vs raster), or relationship to other style tools (e.g., apply_style_qml). It is adequate for simple use but incomplete for complex scenarios.

    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?

    With 0% schema description coverage, the description explains four of five parameters (style_type values, field requirement, color_ramp examples, classes default). The layer_id parameter is omitted but is a common identifier whose meaning is self-evident. Overall, description adds significant meaning beyond the schema.

    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 sets symbology, lists three specific style types (single, categorized, graduated) which distinguishes it from sibling tools like apply_style_qml or set_layer_labeling. The verb 'set' + resource 'symbology' is specific and unambiguous.

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

    Usage Guidelines4/5

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

    It provides clear context on when to use each style type and which parameters are required (field for categorized/graduated, classes for graduated). However, it does not explicitly state when not to use this tool or suggest alternatives like apply_style_qml for QML files, which would be helpful given the many sibling style-related tools.

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

  • Behavior4/5

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

    The description adds value beyond the readOnlyHint annotation by detailing the return values (validity, errors, column names) and the optional layer testing behavior. It does not contradict annotations and provides useful behavioral context.

    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 concise, with two sentences that front-load the main purpose and efficiently cover optional behavior. No extraneous information is included.

    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?

    For a simple validation tool with an output schema and annotations, the description covers the essential aspects: main function, return values, optional parameter. It is complete enough for an agent to understand and use correctly.

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

    Parameters3/5

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

    With 0% schema description coverage, the description partially compensates by explaining that layer_id is optional for testing against fields. However, it does not describe the format or constraints of the expression parameter, leaving some ambiguity.

    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 validates a QGIS expression and lists the specific outputs: validity, parse errors, and referenced column names. It distinguishes itself from the sibling 'evaluate_expression' by focusing on validation rather than evaluation.

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

    Usage Guidelines2/5

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

    No guidance is provided on when to use this tool versus alternatives like evaluate_expression. There is no mention of when not to use it or any prerequisites, leaving the agent to infer usage context.

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

  • Behavior3/5

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

    Annotations already declare destructiveHint: true. Description adds that it returns count of added features but does not elaborate on error handling, overwrite behavior, or interaction with existing features.

    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?

    Two clear, well-organized sentences with no unnecessary words. Ideal length for a simple tool.

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

    Completeness4/5

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

    Covers the key aspects: what it does, feature format, and return value. Could be more explicit about required keys in each feature object (attributes and geometry_wkt).

    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 provides no descriptions (0% coverage). Description adds crucial example of feature structure ({attributes:..., geometry_wkt:...}) which clarifies the expected format beyond the bare schema.

    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?

    Clearly states the action 'Add features' to a 'vector layer', specifies the feature format with example, and mentions return value (count). Distinguishes from siblings like 'add_vector_layer' and 'update_features'.

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

    Usage Guidelines3/5

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

    Does not explicitly state when to use this tool versus alternatives. Usage is implied from context, but no direct guidance on prerequisites or when not to use.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, indicating it is a read operation. The description reinforces this by stating 'evaluate to a scalar value' and gives expression examples, but does not add significant behavioral context beyond what annotations provide. No contradictions.

    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 extremely concise: two sentences that front-load the purpose and include examples and sibling differentiation. Every sentence adds value with no redundancy.

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

    Completeness4/5

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

    No output schema exists, but the description describes the result as a 'scalar value', which sets expectations. It covers the tool's main functionality and differentiates from key siblings. It could be more complete by noting that the returned value's type depends on the expression, but overall it is adequate for a straightforward tool.

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

    Parameters3/5

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

    Schema coverage is 0% (no descriptions in input schema). The description mentions 'expression' and 'layer_id', noting that layer_id is optional and adds scope, and gives example expressions. However, it does not specify expression syntax constraints, accepted formats, or potential errors, leaving gaps for an agent.

    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 'evaluates a standalone QGIS expression to a scalar value', provides concrete examples (aggregate, @project_var, now()), and explicitly distinguishes it from two siblings (validate_expression and field_calculator). This provides high specificity and differentiation.

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

    Usage Guidelines4/5

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

    The description mentions 'Optional layer_id adds layer scope' and distinguishes from siblings, giving implicit guidance on when to use this tool vs. alternatives. However, it does not explicitly state when not to use it or provide clear prerequisites, which would improve score.

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

  • Behavior3/5

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

    The description is consistent with the readOnlyHint annotation, indicating a safe read operation. It does not add extra behavioral context beyond what the annotation already provides. With annotations present, this is acceptable but not exceptional.

    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 a single, complete sentence with no unnecessary words. It is front-loaded with the essential information and earns its place.

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

    Completeness4/5

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

    Given the tool's simplicity (no parameters, clear purpose) and the presence of an output schema (which handles return value documentation), the description is adequate. It could mention behavior when no layer is active, but the output schema likely covers that. Thus, it is mostly complete.

    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?

    The tool has no parameters, so the description does not need to provide parameter details. Per the rubric, 0 parameters yields a baseline of 4. The schema coverage is 100% (no properties), so the description adds no further information, which is fine.

    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 action ('Get'), the resource ('active layer'), and the context ('in the QGIS layer panel'). It effectively distinguishes from sibling tools like get_layers (which lists all layers) and set_active_layer (which changes the active layer).

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

    Usage Guidelines3/5

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

    The description does not explicitly state when or when not to use this tool, nor does it mention alternatives. However, the purpose is clear enough for a simple getter, and the lack of parameters makes usage straightforward. Absence of explicit guidance reduces the score.

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

  • Behavior4/5

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

    The annotation readOnlyHint=true already signals a safe read operation. The description adds context by specifying exactly which attributes are returned (editable, modified, undo/redo availability, counts), giving the agent a clearer behavioral picture beyond the annotation. No contradictions.

    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 a single sentence that is front-loaded with the resource ('Edit state of a layer') and immediately lists the key output categories. There is no redundant information or filler.

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

    Completeness4/5

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

    The tool is simple (one parameter, read-only) and an output schema exists, so the description need not explain return values in detail. The description captures the core functionality well. Missing edge cases like layer-not-found or not-editable behavior are minor and acceptable for a status query.

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

    Parameters3/5

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

    The schema's single parameter layer_id has no description, so the description must compensate. The phrase 'of a layer' clarifies that the tool operates on a specific layer, but it does not explicitly define the parameter or provide additional format/semantics. With 0% schema coverage, the description partially compensates but could be more explicit.

    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 identifies the tool as returning the edit state of a layer, enumerating specific data points (editable, modified, undo/redo availability, counts of pending changes). This is a specific verb+resource+scope, and it distinguishes the tool from editing mutators like start_editing or commit_edits.

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

    Usage Guidelines3/5

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

    The description implies usage when a user needs to inspect the current edit status of a layer, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or context about editing workflows. Given the many edit-related sibling tools, explicit alternatives would be helpful.

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

  • Behavior4/5

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

    Annotations indicate readOnlyHint=true, and description adds value by detailing the returned fields, though no mention of potential errors or prerequisites.

    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?

    Single sentence, no fluff, front-loaded with key information.

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

    Completeness4/5

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

    For a simple read tool with output schema, description adequately covers the purpose and returned fields; no missing critical elements.

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

    Parameters3/5

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

    Description hints that layer_id refers to a vector layer, but does not clarify format or how to obtain it; schema coverage is 0%, so more detail would be beneficial.

    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 verb 'Get' and resource 'labeling configuration', listing specific components (enabled state, field, font size, color), distinguishing it from other getters.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool vs alternatives; it's a straightforward retrieval function, so minimal guidance is acceptable but still lacking.

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

  • Behavior4/5

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

    Consistent with readOnlyHint annotation, the description clarifies it only lists data without side effects. It adds details about the returned information (type, id, uuid, position, size, page count) beyond the annotation.

    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 concise (one sentence, 14 words) and front-loaded with the action 'List items'. Every word is purposeful.

    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?

    Given the low complexity (one parameter, no nested objects) and presence of an output schema, the description adequately explains what the tool returns and its scope. No significant gaps.

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

    Parameters2/5

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

    The single parameter 'layout_name' has no description in the schema (0% coverage). The tool description does not explain the parameter's expected format or behavior, leaving ambiguity. It adds little meaning beyond the parameter name.

    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 lists items in a print layout with specific attributes (type, id, uuid, position, size) and page count. This distinguishes it from siblings like list_layouts which list layouts themselves.

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

    Usage Guidelines3/5

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

    The description implies usage for retrieving layout item details but does not explicitly guide when to use this over alternatives or when not to use it. No exclusions or alternative tools are mentioned.

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

  • Behavior3/5

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

    The description adds a key safety behavior: 'Fails if the table exists unless overwrite=true', which complements the destructiveHint annotation by specifying the guardrail. Yet it does not detail what happens during overwrite (e.g., schema replacement) or permissions required, so coverage is moderate.

    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 two sentences, front-loaded with the primary action and followed by a concise safety note. Every word adds value, with no fluff or repetition of schema details.

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

    Completeness4/5

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

    Given 6 parameters and no output schema, the description covers the essential operation and a key behavior. It misses details on the schema parameter and return values, but the core usage and safety are well addressed for a moderately complex tool.

    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?

    Despite 0% schema description coverage, the description explains the core parameters: layer_id (loaded vector layer), connection (saved connection), table (new table), provider (PostgreSQL/GeoPackage), and overwrite (true allows replacing existing table). The optional 'schema' parameter is not mentioned, but most key parameters receive meaningful context.

    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 verb 'Write', the object 'a loaded vector layer', and the destination 'into a saved connection as a new table', with format examples (PostgreSQL, GeoPackage). This distinguishes it from sibling tools like add_layer_from_connection which perform the reverse operation.

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

    Usage Guidelines3/5

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

    The description implies usage when a layer is loaded and a connection is saved, and explicitly notes the failure condition when the table exists. However, it does not mention alternatives or exclusions, such as 'use execute_connection_sql instead for custom SQL', leaving some ambiguity.

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

  • Behavior3/5

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

    Annotations already indicate readOnlyHint=true, so the description correctly aligns with a read-only operation. It adds minimal behavioral context beyond confirming it lists installed plugins, which is consistent.

    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?

    Two sentences: first states the primary function, second adds parameter usage. No extraneous information, every word contributes value.

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

    Completeness4/5

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

    Given an output schema exists (not shown but present), the description adequately covers purpose and parameter usage. It could mention that it lists all plugins by default, but that is implicit. No major gaps for a simple list tool.

    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 coverage is 0%, so the description successfully adds semantic value by explaining the effect of the boolean parameter: 'Set enabled_only=true to list only active plugins.' This compensates for the lack of schema description.

    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 title and description clearly state the action (list) and resource (installed QGIS plugins) and specify the returned fields (name, enabled status, version). This distinguishes it from siblings like get_plugin_info which targets a specific plugin.

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

    Usage Guidelines3/5

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

    The description explains when to use the enabled_only parameter but does not provide guidance on when to choose list_plugins over alternatives like get_plugin_info or reload_plugin. Usage context is only implied.

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

  • Behavior4/5

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

    Annotations already include readOnlyHint=true, confirming read-only behavior. The description adds value by disclosing that for non-numeric fields it returns count and distinct values, which is specific behavioral context beyond the annotation. No contradiction.

    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?

    Two concise sentences with no unnecessary words. The key action and conditional behavior are stated upfront, making it easy to parse.

    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?

    Given the tool has an output schema covering return values, the description is sufficient. It explains the types of statistics computed and the fallback for non-numeric fields, leaving no missing context.

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

    Parameters3/5

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

    With 0% schema description coverage, the description partly compensates by indicating field_name should be numeric. However, it does not explain layer_id or provide any additional parameter details beyond what is minimally inferable from the schema.

    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 computes aggregate statistics for numeric fields and provides specific examples (count, sum, mean, min, max, stdev). It also explains behavior for non-numeric fields (count and distinct values). This distinguishes it from siblings like get_unique_values or get_layer_features.

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

    Usage Guidelines3/5

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

    The description implies usage for obtaining aggregate statistics but does not explicitly specify when to use this tool versus alternatives like get_unique_values or identify_features. No guidance on when not to use it or context where it might be unsuitable.

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

  • Behavior3/5

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

    The annotation already indicates readOnlyHint, so the agent knows it's safe. The description adds that themes store layer visibility presets, which is helpful context but not extensive behavioral detail.

    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?

    Two concise sentences, no fluff. Front-loaded with the key action and immediately clarifies what a map theme is.

    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?

    Given zero parameters, a read-only annotation, and the presence of an output schema, the description adequately covers the tool's purpose and input/output expectations.

    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?

    No parameters exist, so baseline 4 applies. The description does not need to add parameter-level meaning.

    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 retrieves map themes (visibility presets) and explains what each theme contains. This distinguishes it from siblings like add_map_theme or apply_map_theme.

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

    Usage Guidelines3/5

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

    The description implies usage for viewing existing themes but does not explicitly compare with alternatives like get_layers or give when-not-to-use advice.

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

  • Behavior3/5

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

    The annotation declares readOnlyHint=true, and the description's 'Get' verb aligns with a read operation. The description adds no further behavioral traits (e.g., performance, auth needs). With annotations covering the safety profile, a score of 3 is appropriate – the description adds some value but does not enrich behavioral context beyond the structured field.

    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 a single sentence that front-loads the purpose and lists the returned info succinctly. No unnecessary words or repetition.

    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?

    Given the tool has a single required parameter and an output schema (not shown but referenced), the description sufficiently explains what the tool returns. No further details about return values are needed since the output schema handles that.

    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?

    With schema description coverage at 0%, the description must compensate. It provides context by stating the tool gets info for a 'raster layer', implying the parameter layer_id identifies that layer. This adds meaning beyond the bare schema, though it could be more explicit. For a single required parameter, this is sufficient.

    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 verb 'Get' and the resource 'raster layer info', specifically listing the types of info (band count, dimensions, CRS, extent, statistics, nodata). It distinguishes from sibling tools like get_layer_crs, get_layer_extent, and get_field_statistics which each provide only one aspect.

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

    Usage Guidelines3/5

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

    The description implies usage when comprehensive raster metadata is needed, but does not explicitly state when not to use it or mention alternatives. The list of returned info helps the agent decide, but misses explicit guidance on choosing between this and more specific tools.

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

  • Behavior4/5

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

    Beyond the readOnlyHint annotation, the description discloses the two-step behavior on providers with schemas and the exact return fields (geometry column, CRS, primary key, kind). This adds meaningful behavioral context without contradicting the annotation.

    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?

    Two sentences with no fluff. The first sentence states the purpose, the second delivers key usage and return information. Perfectly front-loaded and concise.

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

    Completeness4/5

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

    With an output schema present, the description doesn't need exhaustive return details, and it already summarizes key fields. The main workflow (schema handling) is covered. However, the lack of explanation for provider and connection parameters leaves a small gap in complete understanding.

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

    Parameters2/5

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

    Schema coverage is 0%, so the description must compensate for all parameters. It explains the schema parameter in detail (omitting it returns schema list) but provides no guidance for the required provider and connection parameters, leaving them ambiguous.

    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 verb and resource: 'List tables reachable through a saved connection.' This distinguishes it from sibling tools like list_connections (which lists connections) and add_layer_from_connection (which adds a layer from a connection).

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

    Usage Guidelines4/5

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

    Provides a clear usage pattern for schema-based providers: 'omit schema to get the schema list first, then pass one.' This gives context on when to use the tool and how to handle schemas, though it doesn't explicitly mention alternatives or exclusions.

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

  • Behavior3/5

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

    The annotation indicates readOnlyHint: true, so the description does not need to re-emphasize safety. It adds that it returns names and page counts, which is useful. No further behavioral details are necessary for this read-only, stateless operation.

    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 a single sentence that is concise and front-loaded with the primary action. It contains no unnecessary words and earns its place by providing key output details.

    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?

    For a simple, parameterless tool with read-only behavior and an output schema, the description is complete. It names the return values (names and page counts) and the scope (current project). No gaps remain.

    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?

    There are zero parameters, so the baseline is 4. The description does not add parameter information, but none is needed. The schema describes all parameters (none), and the description's mention of 'names and page counts' hints at the output structure.

    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 it lists all print layouts in the current project, returning names and page counts. The verb 'list' and resource 'print layouts' are specific, and it distinguishes from sibling tools like 'get_layout_info' which likely targets a single layout.

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

    Usage Guidelines3/5

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

    The description does not explicitly provide guidance on when to use this tool versus alternatives, such as 'get_layout_info' for details on a specific layout. However, the context of listing all layouts is clear, and the tool is simple enough that usage is implied.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the description adds limited behavioral context beyond mentioning returned fields (id, name, group). It does not contradict annotations.

    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?

    Two sentences, efficient and front-loaded with the core purpose. No unnecessary words.

    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?

    With an output schema present, the description appropriately focuses on the tool's action and mentions key output fields. It is complete for a simple list tool given the context.

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

    Parameters3/5

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

    No parameters exist, and schema coverage is 100%. The description adds no parameter semantics since there are none, meeting the baseline expectation.

    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?

    Description clearly states the verb 'list' and resource 'Processing models' with scope 'model provider'. It distinguishes itself from sibling tools by specifying the return fields and mentioning the alternative run_model tool for execution.

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

    Usage Guidelines4/5

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

    The description directly points to run_model for executing a model, providing clear context on when to use this tool. However, it does not explicitly list exclusions or when not to use it.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the read-only and non-destructive nature is known. The description adds no additional behavioral context beyond what is in the annotations.

    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 consists of two concise sentences with no wasted words. It is appropriately sized and front-loaded with the purpose.

    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?

    For a simple connectivity check with no parameters and an output schema, the description fully covers what the tool does and what to expect. No additional information is needed.

    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?

    The tool has no parameters, so schema coverage is trivially 100%. The description does not need to add parameter-specific details. Baseline for zero parameters is 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 checks connectivity to the QGIS plugin server and returns 'pong' if connected. It is specific and distinct from sibling tools, none of which serve a similar connectivity check.

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

    Usage Guidelines3/5

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

    The description implies usage when needing to verify server connectivity, but does not provide explicit guidance on when to use or not use this tool, nor mention any alternatives.

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

  • Behavior3/5

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

    With no annotations, the description must carry the behavioral burden. It discloses the restrictive behavior (disallowed destructive commands) and format, but does not mention execution order, failure handling, partial success, or response details. This is useful but incomplete for a batch execution tool.

    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 compact: two sentences covering purpose, format, and restrictions. Every sentence earns its place with no filler, and key information is front-loaded.

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

    Completeness4/5

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

    The tool is a batch wrapper and the description provides purpose, format, and key restriction. An output schema exists, so return values are covered elsewhere. Missing details like ordering or failure atomicity, but overall it's sufficient for selection and basic invocation.

    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%, but the description compensates by explaining the structure of the 'commands' parameter: each command is {"type": "<command_name>", "params": {...}}. It also lists disallowed command types, adding semantic meaning beyond the schema's bare array of objects.

    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?

    Description clearly states 'Execute multiple commands in a single round-trip', specifying the verb (execute), resource (multiple commands), and the value proposition (single round-trip). It differentiates from individual command tools by batching, and even gives the command format.

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

    Usage Guidelines4/5

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

    Provides explicit guidance on when not to use the tool: 'Destructive commands ... are not allowed in batch - use them individually.' This gives a clear exclusion and alternative. It implies usage for non-destructive multi-command scenarios, but doesn't elaborate on further use cases.

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

  • Behavior4/5

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

    Annotations already provide readOnlyHint=true, so safety profile is clear. The description adds meaningful behavioral details (supports fnmatch wildcards and substring matching) beyond the annotation. However, it does not disclose case sensitivity or behavior on no match, but for a simple search tool this is acceptable.

    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?

    Two concise sentences with no wasted words. The key information (pattern matching types) is front-loaded and directly actionable. Every sentence earns its place.

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

    Completeness4/5

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

    Given the tool has only one parameter and an output schema is present, the description covers the essential behavioral aspects (pattern matching). It does not explain the return value structure, but that is the responsibility of the output schema. A minor gap is the absence of explicit mention that multiple layers can be returned.

    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?

    The schema has 0% description coverage for the parameter, so the description must compensate. It adds crucial semantic context: the parameter supports fnmatch wildcards and substring matching, which transforms a generic 'name_pattern' string into a specific pattern-matching syntax.

    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 finds layers by name pattern, with specific methods (fnmatch wildcards, substring matching). It is a specific verb+resource combination that naturally distinguishes from sibling tools like 'get_layers' which likely return all layers.

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

    Usage Guidelines3/5

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

    The description implies usage for pattern-based layer search but does not explicitly state when to use this tool versus alternatives like 'get_layers' or 'get_active_layer'. No exclusion criteria or when-not guidance is provided.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, indicating it's a safe read operation. The description adds context about tolerance (0=exact hit) and layer filtering, which is useful but does not go beyond typical expectations. No contradictions.

    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 remarkably concise: two sentences covering purpose and parameters. Every word adds value, no redundancy, and it front-loads the core action.

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

    Completeness4/5

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

    Given the simple tool and good annotation coverage, the description is largely complete. It details all parameter semantics. However, it does not mention the return format (e.g., feature IDs or geometries), which could help an agent interpret the result.

    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?

    With schema description coverage at 0%, the description compensates well by explaining three parameters (point, tolerance, layer_ids, limit). It specifies the coordinate format, tolerance unit, and default layer scope. Only the default value for limit is omitted, but it's in the schema.

    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 uses a specific verb ('identify') and resource ('features at a point'), clarifies the coordinate system ('project CRS'), and provides a helpful analogy ('map-click analogue'). It clearly distinguishes this from sibling tools like get_layer_features or select_features, which serve different purposes.

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

    Usage Guidelines4/5

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

    The description explains the tool's use case (point-based identification across layers) with clear parameters (tolerance, layer_ids, limit). It mentions default behavior for layer_ids ('visible vector layers') but does not explicitly state when alternatives should be used, though the analogy helps.

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

  • Behavior4/5

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

    With no annotations, the description carries the full transparency burden. It discloses meaningful behavior: min_value/max_value default to band statistics, hillshade uses band/azimuth/altitude/z_factor, and lists valid options for classification, interpolation, gradient, and contrast. It doesn't describe return values or persistence, but covers core behavior.

    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 a single dense paragraph with no filler. It is front-loaded with the core action and every clause adds valuable parameter or option detail, making it an efficient reference for a 17-parameter tool.

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

    Completeness4/5

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

    For a complex tool with 17 parameters, no annotations, and no output schema, the description covers most necessary invocation details, including style-type-specific parameter usage. It lacks explicit prerequisites (e.g., the layer must be a raster layer) and alternative-tool context, but the schema's required layer_id and the 'raster symbology' wording make this largely sufficient.

    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 coverage is 0%, so the description compensates by explaining style_type variants, color_ramp examples, and parameter relationships (e.g., hillshade parameters). Some parameters like layer_id, red_band, green_band, blue_band, and classes are not explicitly defined, but they are partially inferable from the RGB and hillshade hints.

    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 'Set raster symbology' and expands with specific style_type variants ('singleband_pseudocolor', 'singleband_gray', 'multiband_color', 'hillshade'), making it distinct from the broader sibling set_layer_style and apply_style_qml tools.

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

    Usage Guidelines3/5

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

    Usage context is implied by the tool name and 'raster symbology', and the description gives useful style-type choices, but it never explicitly says when to use this tool instead of alternatives like set_layer_style or apply_style_qml, nor does it mention any exclusions.

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

  • Behavior4/5

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

    Without annotations, the description carries the full burden. It reveals a key behavioral trait: edits are buffered rather than directly written until commit/rollback. This goes beyond a simple action statement, though it omits details like error handling or behavior if an edit session is already active.

    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 a single sentence that is information-dense and directly to the point. Every part earns its place, explaining the action, the buffer behavior, and the termination conditions without wasted words.

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

    Completeness4/5

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

    For a one-parameter command with no output schema, the description is largely complete: it states what the tool does, the effect on subsequent edits, and how to end the session. It lacks explicit mention of return values or preconditions, but these are not critical for this simple tool.

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

    Parameters3/5

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

    The input schema provides only a string type for layer_id, and the description does not elaborate on the parameter. However, the phrase 'vector layer' and the self-explanatory name layer_id give sufficient context for a single-parameter tool, even though schema coverage is 0%.

    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 uses a specific verb ('Open') and resource ('edit session on a vector layer'), clearly distinguishing this from sibling tools like commit_edits and rollback_edits by explaining it starts a session that redirects edits to an undoable buffer.

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

    Usage Guidelines4/5

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

    It explicitly states that subsequent add/update/delete calls go to the edit buffer until commit_edits or rollback_edits, giving clear context for when to call this tool and the expected lifecycle. It does not explicitly list alternatives but the relationship to commit/rollback is clear.

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

  • Behavior4/5

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

    Annotations already indicate read-only behavior. Description adds value by detailing the structure of bookmarks beyond the annotation.

    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?

    Single sentence that efficiently conveys the tool's purpose and the structure of bookmarks without redundancy.

    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?

    Given the simplicity of the tool (no parameters, has output schema), the description covers the essential information about the output structure, making it complete.

    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?

    No parameters exist, so the description does not add parameter semantics. Following guideline for 0 parameters, baseline is 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 it retrieves spatial bookmarks and specifies the returned fields (name, group, extent, CRS). Distinguishes from sibling tools like add_bookmark and remove_bookmark.

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

    Usage Guidelines3/5

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

    No explicit guidance on when to use this tool vs alternatives, but the name and description imply it is for retrieval. Sibling tools exist but are not mentioned.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the description adds value by specifying exactly what is retrieved (scale, rotation, magnification factor). No contradictions.

    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?

    A single, concise sentence that is front-loaded with the verb and resource. No extraneous information.

    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?

    With no parameters, an output schema present, and annotations covering safety, the description fully specifies the tool's behavior and return values. No gaps.

    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?

    No parameters exist; schema coverage is 100% (empty). The description adds meaning by stating the output details (scale, rotation, magnification factor), exceeding the baseline for zero-parameter tools.

    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 retrieves the current map canvas scale, rotation, and magnification factor. It distinguishes itself from siblings like 'set_canvas_scale' (which modifies) and 'get_canvas_extent' (which gets extent).

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

    Usage Guidelines3/5

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

    The description implies use for reading current canvas properties but does not explicitly state when to use vs alternatives. Given the simplicity and sibling context, it's adequate but lacks exclusion guidance.

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

  • Behavior4/5

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

    Annotations indicate readOnlyHint=true. The description adds behavioral context by detailing the recursive tree structure and return fields, which goes beyond what annotations provide. No contradictions.

    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 two sentences with no wasted words, front-loaded with the core purpose. Every sentence contributes value.

    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?

    Given the tool has no parameters, annotations indicate read-only, and an output schema exists, the description provides sufficient information about the return structure and is complete for agent usage.

    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?

    There are no parameters (0 params, schema coverage 100%). Following the guidelines, baseline is 4. The description adds value by explaining the return structure, which is useful even though there are no parameters.

    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 explicitly states that it returns the full layer tree structure with groups and layers, specifying the recursive nature and included fields (type, name, visibility, children). This clearly distinguishes it from sibling tools like get_layers.

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

    Usage Guidelines3/5

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

    The description implies usage for obtaining the hierarchical structure of layers and groups, but does not provide explicit guidance on when to use this versus alternatives like get_layers, nor any exclusions or prerequisites.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true. The description adds value by listing the specific metadata returned (filename, title, CRS, etc.), which goes beyond the annotation. No contradictions.

    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 a single, front-loaded sentence with no unnecessary words. Every word adds value.

    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?

    Given the simplicity of the tool (no parameters, output schema exists), the description provides enough context. It explicitly lists the metadata returned, which is sufficient for an agent.

    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?

    There are zero parameters, so schema coverage is 100%. The description does not need to explain parameters, and the baseline is 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 verb 'Get' and the resource 'project metadata' with specific items (filename, title, CRS, layer count, summary of layers). It distinguishes from sibling tools like get_layers by focusing on summary metadata.

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

    Usage Guidelines3/5

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

    The description implies the tool is for quick retrieval of project metadata but does not explicitly state when to use it vs alternatives. No guidance on exclusions or when-not-to-use is provided.

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

  • Behavior4/5

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

    Annotations already indicate read-only behavior (readOnlyHint=true). The description adds value by clarifying that it retrieves all project-level variables and specifying their source (Project Properties). No contradictions.

    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 a single, concise sentence that conveys full meaning without unnecessary words. It is appropriately front-loaded.

    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?

    Given no parameters and the presence of an output schema, the description fully explains the tool's purpose and behavior. No additional context is needed.

    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?

    There are no parameters (0 params), so schema coverage is 100% by default. The description does not need to add parameter information, and baseline for 0 params is 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 verb 'Get' and the resource 'all project-level variables', with specific context about them being key-value pairs in Project Properties. This distinguishes it from sibling tools like set_project_variable.

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

    Usage Guidelines3/5

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

    The description does not explicitly state when to use this tool vs alternatives, but the context of sibling tools (set_project_variable) implies it is for retrieval. No exclusions or alternative guidance is provided.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint=true, so the description doesn't need to reiterate that it's a read operation. It adds the specific items returned, which is useful but not extensive behavioral detail.

    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 a single, highly efficient sentence with no wasted words. Every word adds value.

    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?

    Given there is an output schema, the description adequately explains what the tool returns (version, profile path, plugin count). No additional context needed for a simple, parameter-less read tool.

    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?

    There are zero parameters, so the description doesn't need to add parameter meaning. Baseline is 4 for no parameters.

    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 retrieves QGIS version, profile path, and plugin count. It uses a specific verb ('Get') and resource ('QGIS info'), and there are no sibling tools with similar purpose.

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

    Usage Guidelines4/5

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

    The description implicitly indicates usage: when you need basic QGIS information. There are no alternative tools for this exact purpose, and no exclusions needed given zero parameters.

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

  • Behavior4/5

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

    Annotations declare readOnlyHint=true, consistent with read-only operation. Description adds that 'limit' caps results (-1 for all), which is helpful beyond annotations. No contradictions.

    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?

    Two sentences, no wasted words. Front-loaded with the primary action. Efficient and easy to parse.

    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?

    For a simple tool with output schema present, the description explains return value, control via limit, and use case. Complete for decision making.

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

    Parameters3/5

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

    Schema description coverage is 0%, so description must compensate. It explains 'limit' with examples but does not clarify 'field' or 'layer_id' beyond their names. Partial coverage.

    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 it returns distinct values of a field, with specific verb 'Return' and resource 'field'. It distinguishes from siblings like get_field_statistics by focusing on unique values.

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

    Usage Guidelines4/5

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

    The description provides a clear use case: 'Useful before building categorized symbology or filters.' It gives context but does not explicitly state when not to use or mention alternatives.

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

  • Behavior4/5

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

    Annotations already provide destructiveHint: true, indicating the tool is destructive. The description adds valuable behavioral context by specifying the constraint about the MCP plugin and the development use case, going beyond what annotations state.

    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 extremely concise with two sentences, no redundant information, and front-loads the core verb and resource. Every sentence adds value.

    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?

    For a simple tool with one required parameter, no output schema, and well-defined annotations, the description is complete. It covers the action, constraints, and use case without needing additional details.

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

    Parameters3/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 add meaning. It mentions 'by name', which aligns with the parameter name 'plugin_name', but doesn't provide additional details like format or examples. Given the single self-explanatory parameter, a score of 3 is appropriate.

    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 action 'reload' and the resource 'QGIS plugin by name', including an important constraint that the MCP plugin itself cannot be reloaded. This distinguishes it from sibling tools like get_plugin_info or list_plugins.

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

    Usage Guidelines4/5

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

    The description provides explicit when-not guidance ('Cannot reload the MCP plugin itself') and context ('Useful during plugin development'). While it does not name an alternative tool, the context is clear enough for an agent to determine appropriate usage.

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

  • Behavior4/5

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

    With no annotations provided, the description carries the transparency burden. It discloses a critical non-obvious behavior: changing CRS interpretation without reprojecting coordinates. It does not mention other side effects, but this is the key behavioral trait for this operation.

    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?

    Two sentences with no filler. The first sentence states the purpose, the second immediately clarifies a critical caveat. Ideal conciseness and structure.

    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?

    For a simple two-parameter tool with no output schema, the description is complete. It covers the action, the format example, and the important caveat about not reprojecting. No further context is needed.

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

    Parameters3/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 adds an example for the 'crs' parameter ('EPSG:4326'), which helps clarify expected format, but does not describe the 'layer_id' parameter beyond its name. The schema's string type is minimal, and the description adds only marginal meaning.

    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 action: 'Set the CRS of a layer' with an explicit example format. It distinguishes itself from sibling tools like get_layer_crs (which retrieves) and set_project_crs (which operates on the project).

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

    Usage Guidelines4/5

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

    The description provides a clear 'when not to use' by stating 'This does NOT reproject data', which helps agents avoid misuse. However, it does not name an alternative tool (e.g., transform_coordinates) for reprojection, so it stops short of full alternatives guidance.

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

  • Behavior4/5

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

    Annotations already indicate destructiveHint=true. Description adds context about the execution environment (access to QgsProject, iface, core classes) and return value (stdout/stderr), which is valuable beyond the annotation.

    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?

    Three concise sentences that front-load purpose and usage. Every sentence adds value, no redundancy.

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

    Completeness4/5

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

    For a single-parameter code execution tool with destructive annotation and no output schema, the description covers purpose, usage, environment, and return. It lacks explicit safety warnings or error behavior, but is sufficiently complete given the simplicity.

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

    Parameters3/5

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

    The parameter 'code' has 0% schema description coverage. The description explains that the code should be PyQGIS code, which adds semantic meaning, but does not detail format, scope, or examples. This is adequate but minimal.

    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 executes arbitrary PyQGIS code, using a specific verb and resource. It distinguishes itself from sibling tools by specifying it is for operations not covered by other tools.

    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?

    Explicitly tells when to use the tool: 'Use for operations not covered by other tools.' This provides clear guidance on when to prefer this tool over alternatives.

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

  • Behavior4/5

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

    With no annotations, the description carries the full burden. It discloses key behavioral traits: timeout cancellation (default 55 seconds), the blocking nature of long jobs holding the QGIS session, and the memory output option. It doesn't specify return values or side effects, but for an algorithm-agnostic executor, the stated behaviors are important and useful.

    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 four sentences, front-loads the main purpose, and every sentence adds value. It covers parameter usage, timeout, and operational caveats without fluff or repetition.

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

    Completeness4/5

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

    Given the tool's dynamic nature (arbitrary QGIS algorithms) and the absence of both annotations and an output schema, the description covers the most critical operational context: parameter discovery, layer input formats, temp output, and timeout/blocking behavior. It could also mention error handling or return values, but the open-ended nature makes this a reasonable trade-off.

    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 coverage is 0%, so the description compensates by explaining the 'parameters' object (layer params accept IDs/paths, OUTPUT='memory:') and the 'timeout' parameter (default 55, cancellation behavior). The 'algorithm' parameter is self-explanatory by name. This adds real meaning beyond the bare schema.

    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 opens with 'Execute a QGIS Processing algorithm', giving a specific verb and resource. It distinguishes itself from siblings like execute_processing_batch and run_model by focusing on a single algorithm execution, and it points to get_algorithm_help for parameter discovery.

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

    Usage Guidelines4/5

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

    The description provides clear context on how to use the tool: use get_algorithm_help to discover parameters, layer params accept IDs or paths, set OUTPUT to 'memory:' for temp layers, and adjust timeout for heavy work. While it doesn't explicitly state alternatives/exclusions (e.g., batch processing), the context is solid and practical.

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

  • Behavior4/5

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

    Beyond the idempotentHint annotation, the description discloses reprojection behavior during export and the vector-only nature of filter_expression. It lacks details on overwrite behavior and file system permissions, but core behaviors are covered.

    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 uses two sentences with no redundancy. Key information is front-loaded ('Export vector/raster to disk'), and parameter explanations are succinct yet informative.

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

    Completeness4/5

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

    The description covers the main functionality: format, reprojection, and filtered exports. It omits details about file overwriting, permissions, and the need for the layer to be loaded, but these are reasonable assumptions for a file export tool.

    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?

    With zero schema descriptions, the description adds meaning for target_crs (reprojection) and filter_expression (QGIS expression for subsets). It explains output_path extension determines format. However, layer_id is not elaborated beyond being an identifier.

    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 it exports vector/raster to disk and that format is derived from the output path extension. It distinguishes itself from sibling tools like export_atlas and export_layout by focusing on individual layers, not layouts or atlases.

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

    Usage Guidelines4/5

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

    The description explains format selection via extension, optional reprojection with target_crs, and vector-only filtering. However, it does not explicitly contrast with other export tools (e.g., export_atlas) or mention prerequisites like the layer needing to be loaded.

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

  • Behavior4/5

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

    Annotations declare readOnlyHint=true, so the tool is known to be non-destructive. The description adds behavioral context: it returns the image inline, is fast, and avoids re-render. This goes beyond what annotations provide, though no additional details about edge cases or limitations are given.

    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 extremely concise, with two sentences that immediately convey the tool's purpose, speed advantage, and output format. No superfluous words.

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

    Completeness4/5

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

    Given the absence of parameters and output schema, and the presence of annotations, the description covers the key aspects: what the tool does, its main benefit, and the return type. It is complete enough for a simple screenshot tool, though one might wish for mention of potential failures (e.g., no active canvas).

    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?

    There are no parameters, so the description does not need to add parameter information. Per the guidelines, zero parameters yields a baseline of 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 verb 'grab' and resource 'screenshot of current map canvas widget', and explicitly distinguishes it from the sibling tool render_map by emphasizing it is faster and does not re-render.

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

    Usage Guidelines4/5

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

    The description provides clear context for when to use this tool: for a fast screenshot without re-rendering. It points to render_map as the alternative for full rendering, but does not explicitly state when not to use it or mention prerequisites.

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

  • Behavior4/5

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

    The description adds behavioral details beyond the readOnlyHint annotation: it specifies filtering capabilities and return order. It does not contradict annotations.

    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?

    Two concise sentences with no filler. Essential information is front-loaded and every word adds value.

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

    Completeness4/5

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

    Given the existence of an output schema, the description adequately covers input parameters and ordering. It could mention the default limit value, but overall it is sufficiently complete for a simple read tool.

    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?

    With 0% schema description coverage, the description adds meaning for two of three parameters (level and tag with examples) but does not explain the 'limit' parameter. This partial compensation for low schema coverage earns 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 it retrieves QGIS message log entries with filtering options by level and tag, and specifies return order. This distinguishes it from all sibling tools, none of which are related to message logs.

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

    Usage Guidelines4/5

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

    The description explains filtering by level and tag, and that results are newest first, providing clear context for when to use the tool. However, it does not explicitly state when not to use it or mention alternative tools, though no close siblings exist.

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

  • Behavior5/5

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

    The description explicitly discloses the destructive scope ('every uncommitted change') and the additional side effect of closing the edit session, which goes beyond the destructiveHint annotation. It provides helpful detail about what will be lost.

    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 a single, clear sentence with no filler, front-loading the action and outcome.

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

    Completeness4/5

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

    For a simple tool with one parameter and no output schema, the description covers the operation's effect and side effect. It doesn't explicitly mention prerequisites like needing an active edit session, but this is implied and not a significant gap given the sibling tool names.

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

    Parameters3/5

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

    The description says 'on a layer,' which maps directly to the layer_id parameter, but it provides no further detail about the parameter format or how to obtain the ID. With 0% schema coverage, the description offers only minimal compensation beyond the parameter name.

    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 uses a specific verb ('Discard'), identifies the resource ('layer'), and states the scope ('every uncommitted change') plus a side effect ('close the edit session'). This clearly differentiates the tool from siblings like undo_edits (which undoes individual changes) and commit_edits (which saves changes).

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

    Usage Guidelines4/5

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

    The description clearly implies the use case—when you need to discard all uncommitted edits and end the editing session. However, it does not explicitly mention alternatives or exclusions, such as 'use undo_edits to revert specific changes instead.'

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

  • Behavior4/5

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

    Annotations indicate readOnlyHint=true, and the description does not contradict. Beyond annotations, it specifies input/output formats and confirms no side effects. It adds value by detailing how the tool behaves with different geometry types.

    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?

    Two concise sentences. The first states purpose, the second details accepted inputs and output format. No waste, front-loaded, and easy to parse.

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

    Completeness4/5

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

    Given that output schema exists, the description suffices by covering inputs and output format. It lacks error or CRS format details, but for typical coordinate transformation this is complete enough.

    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 carries the full burden. It explains the bbox, point, and points parameters with explicit format templates. The CRS parameters are self-explanatory from names. Could improve by noting mutual exclusivity of geometry inputs.

    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?

    Clearly states the tool transforms coordinates between CRS. Specifies exact input formats (point, point list, bbox) and output format. Unambiguous verb-resource combination, distinct from sibling tools.

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

    Usage Guidelines4/5

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

    The description implies usage when coordinate transformation is needed, but does not explicitly mention when not to use or provide alternatives among siblings. However, the inclusion of input format details gives adequate context for when it is applicable.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, but the description adds value by specifying exactly what is reported (version, match, providers, clients, project status), providing useful behavioral context beyond the annotation.

    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?

    Two sentences, front-loaded with the main action, no redundant words. Every sentence contributes meaningful information about the tool's output.

    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?

    With no parameters and an output schema present, the description fully explains what the tool does and what it reports. It is complete for an agent to understand when and how to use it.

    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?

    Tool has no parameters and schema description coverage is 100%. The description does not need to add parameter information; baseline 4 applies.

    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 uses a specific verb 'Run diagnostic checks' and clearly identifies the resource 'QGIS MCP stack', listing concrete items reported. It distinguishes from siblings which are about modifications or other operations, not diagnostics.

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

    Usage Guidelines4/5

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

    The description implies use for health checks and troubleshooting, but does not explicitly state when to use versus alternatives. However, no sibling tools serve a similar diagnostic purpose, so context is clear.

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

  • Behavior4/5

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

    Annotations declare readOnlyHint: true, and the description confirms it's a read operation, adding the context of key path and an example. No contradictions.

    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 a single, front-loaded sentence with no superfluous words.

    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?

    For a simple getter with an output schema, the description covers the tool's purpose and parameter format adequately.

    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?

    The description provides an example of the key format ('qgis/sketching/sketching_enabled'), adding meaning beyond the schema which only specifies a string type.

    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 uses a specific verb 'Read' and resource 'QGIS setting by key path' with an example, clearly distinguishing it from sibling tools like get_layers, get_active_layer, which deal with layers.

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

    Usage Guidelines4/5

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

    The description clearly implies the tool is for reading settings by key path, but does not explicitly state when to use it over alternatives (e.g., set_setting) or when not to use it.

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

  • Behavior4/5

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

    The readOnlyHint annotation already signals safety, and the description adds a valuable behavioral detail: passwords are redacted from URIs. This provides extra transparency beyond the annotation and helps set expectations for the returned data.

    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 three sentences, front-loaded with the verb and resource, and every sentence adds value (scope, filter, security note). No wordiness or redundant details.

    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?

    With a single optional parameter and an output schema present, the description covers the essential aspects: what is listed, optional filtering, and a security concern. It is complete for this simple read-only tool.

    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?

    The input schema has no parameter descriptions (0% coverage), but the description compensates by explaining the 'provider' parameter with concrete examples like 'postgres', 'ogr', 'spatialite'. This adds meaning beyond the bare schema definition.

    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 uses the specific verb 'List' and identifies the resource as 'data source connections saved in QGIS' with the context of Browser panel entries. It also names several example providers, making it clear this tool lists connections rather than tables or other entities, distinguishing it from siblings like list_connection_tables.

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

    Usage Guidelines4/5

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

    The description clearly implies the tool is for viewing saved connections and optionally filtering by provider, which provides enough context for an agent to decide when to use it. It does not explicitly mention alternatives or exclusions, but the intent is unambiguous.

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

  • Behavior4/5

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

    No annotations are provided, so the description fully bears the responsibility. It discloses that the tool writes a GeoTIFF file, uses the QGIS raster calculator engine, and takes output extent from a reference layer. It does not mention whether existing layers are modified (assumed not), nor does it cover error conditions or performance, but the core behavior is transparent.

    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 three sentences long, each sentence adding necessary information: the purpose, expression syntax example, and output behavior with reference layer handling. It is front-loaded with the main purpose and contains no redundant or extraneous text.

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

    Completeness4/5

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

    The tool is straightforward, and the description covers the key aspects: input expression, output file, and reference layer. It omits details like CRS handling, no-data treatment, or error messages, but these are acceptable for this complexity level. Given the lack of output schema and annotations, the description provides sufficient completeness for correct invocation.

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

    Parameters5/5

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

    Schema description coverage is 0%, but the description compensates thoroughly. It explains the expression format with an example, clarifies that output_path is the GeoTIFF destination, and describes reference_layer's role in determining grid/extent and its default. This adds essential meaning beyond the schema types.

    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 starts with 'Band math via the QGIS raster calculator', which clearly states the verb (perform band math) and resource (raster layers). The example and details on layer referencing further clarify the tool's specific function, distinguishing it from generic processing tools like execute_processing.

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

    Usage Guidelines4/5

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

    The description provides a concrete example of expression syntax and explains how to specify the reference layer, giving clear usage context. However, it does not explicitly mention when to use this tool over alternatives (e.g., execute_processing), which would further guide agent decision-making.

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

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so safety is clear. The description adds useful behavior: points format, band omission for all bands, and CRS expectation. It doesn't mention edge cases like out-of-bounds points, but overall adds value.

    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?

    Two concise sentences with no wasted words. Information is front-loaded: action, then param details, then cross-reference for CRS conversion. Every sentence is necessary and informative.

    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?

    Given the existence of an output schema (not shown), the description need not detail return values. It covers CRS handling, multi-band sampling, and coordinate format, which are the main contextual concerns for use.

    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 coverage is 0%, so the description compensates well. It explains `points` as a list of [x,y] in raster CRS and `band` as optional to sample all bands. `raster_layer` is not described but is self-explanatory. The description adds meaningful context beyond the schema.

    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 'samples raster pixel values at points', specifying the action and resource. It distinguishes from siblings like `zonal_statistics` and `get_raster_info` by focusing on point-based sampling.

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

    Usage Guidelines4/5

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

    Provides explicit guidance to use `transform_coordinates` if points are in a different CRS, which is a key prerequisite. However, it does not mention alternatives or exclusions, leaving some ambiguity about when not to use this tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description fully carries the behavioral transparency burden. It discloses critical nuances: crs is only meaningful for WMS/WFS, XYZ tiles are always EPSG:3857, requesting another CRS for XYZ results in an error rather than a silent fallback, and the response reports the actual CRS. This is rich, actionable behavioral context that goes far beyond a basic summary.

    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 a compact paragraph of four sentences, each earning its place. It starts with the core purpose, then systematically covers service values, CRS semantics, XYZ-specific behavior, and response content. There is no redundancy or filler, making it highly efficient and well-structured.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 4 parameters, no annotations, and no output schema, the description is remarkably complete. It covers the main purpose, service type semantics, CRS behavior, error conditions, and response content (actual CRS). It falls slightly short of full completeness by not addressing what happens on invalid service values or how the layer name is used, but these are minor gaps.

    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?

    Since the input schema has no property descriptions (0% coverage), the description must compensate. It explains the service values ('xyz', 'wms', 'wfs') and the nuanced behavior of crs for WMS/WFS vs XYZ. However, it does not explicitly explain the 'url' and 'name' parameters, though their semantics are reasonably inferable. Overall, it adds significant meaning beyond the raw schema.

    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 opens with a specific verb and resource: 'Add a web layer (XYZ, WMS, WFS) to the project.' This clearly states what the tool does and explicitly lists the supported service types, distinguishing it from sibling tools like add_vector_layer or add_raster_layer. The scope is well-defined and immediately comprehensible.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description clearly implies when to use this tool (for web layers of types XYZ, WMS, WFS) and provides guidance on how to set the service parameter. It does not explicitly name alternative tools or state when not to use it, but the context is strong enough for an agent to infer appropriate usage. The CRS notes also give practical usage direction for different service types.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide destructiveHint=true, and the description reinforces this by stating 'Can modify the database: DDL/DML run as issued.' It adds useful behavioral context beyond the annotation: server-side execution, distinction from virtual layers, and the limit parameter capping returned rows (-1 for all). It does not contradict the destructive hint.

    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 three concise sentences that front-load the primary purpose and immediately differentiate from a sibling tool. Every clause carries important information: server-side execution, virtual layer exclusion, mutability, and limit behavior. There is no redundancy or filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given that the tool has an output schema and a destructive annotation, the description covers the key operational concerns: what it runs, where it runs, the mutability risk, and row limit control. It could be more complete by explaining provider and transaction semantics, but the existing information is sufficient for effective tool selection and basic invocation.

    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?

    The input schema has 0% description coverage, so the description must compensate. It meaningfully explains sql (SQL executed directly), connection (a saved connection), and limit (caps returned rows, -1 for all). However, the provider parameter is left unexplained, which is a notable gap since it is required.

    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's specific function: 'Run SQL directly on the database behind a saved connection'. It also distinguishes itself from the sibling tool execute_sql by explicitly noting 'not a virtual layer - use execute_sql for that', which resolves potential ambiguity.

    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?

    The description gives explicit usage guidance by naming the alternative tool for virtual layers ('use execute_sql for that'). It also warns that the tool can modify the database with DDL/DML, which helps agents decide whether to use this tool based on whether data mutation is intended or acceptable.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already provide idempotentHint: true, indicating safe repeated calls. The description adds clarity on value formats (denominator, degree range), which is beyond the schema. No contradictions; the description is transparent about the operation.

    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?

    Two focused sentences with zero wasted words. Every sentence adds value: first states the purpose, second explains parameter format. Front-loaded and concise.

    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?

    For a simple tool with two optional parameters and no output schema, the description is fully complete. It covers what the tool does, how to provide inputs, and the expected format. No gaps.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description fully explains the parameter semantics: scale is a denominator (e.g., 50000 for 1:50000), rotation in degrees (0-360). This adds crucial meaning beyond the schema's bare type info.

    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 uses a specific verb ('Set') and resource ('map canvas scale and/or rotation'), clearly distinguishing from siblings like get_canvas_scale (which retrieves) and set_canvas_extent (which sets extent). It explicitly states the action and the target.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description tells when to use the tool (to set scale/rotation) and how to specify values (denominator for scale, degrees for rotation). It does not explicitly mention when not to use it, but the alternatives (e.g., get_canvas_scale) are inferable from sibling tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations already declare readOnlyHint=true, and the description adds that the tool provides algorithm counts and active status. This enhances transparency without contradicting annotations.

    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 two sentences, front-loaded with the purpose, and contains no extraneous words. Every sentence adds value.

    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 simple (no params, has output schema), and the description covers what it does and when to use it. The existence of an output schema means return values do not need to be explained.

    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 coverage is 100% with zero parameters, so the description does not need to add parameter details. Baseline is 4, and the description does not include any misleading or unnecessary param info.

    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 explicitly states the tool lists processing providers with algorithm counts and active status, and provides examples (native, gdal, grass, saga, model). It clearly distinguishes from siblings like list_processing_algorithms, which list algorithms rather than providers.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description includes a specific use case: 'Use to diagnose missing algorithms.' While it does not explicitly contrast with all sibling tools or state when not to use, the provided context is sufficiently clear for an agent to decide.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Despite the destructiveHint annotation, the description adds significant behavioral context: changes are undoable inside an edit session but written directly to the data source otherwise, and WKT must be in the layer's CRS. This goes well beyond the annotation and is critical for safe usage.

    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 two concise, front-loaded sentences that pack essential information: purpose, example, CRS constraint, and undo behavior. Every sentence adds value with no filler.

    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?

    For a simple two-parameter tool with no output schema, the description covers all necessary operational details: what it does, the update structure, CRS requirement, and transactional semantics. It is sufficiently complete for an agent to invoke 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?

    The schema has 0% description coverage, but the description compensates by giving a concrete example for the updates parameter ({fid: 1, geometry_wkt: 'POINT(1 2)'}) and stating the CRS requirement. Layer_id is self-explanatory, so overall parameter meaning is sufficiently conveyed, though slightly implicit.

    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 action 'Replace feature geometries' and provides a concrete example of the update format, which distinguishes it from sibling tools like update_features (attributes). The verb and resource are specific and unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context about behavior inside vs. outside an edit session, informing when it is safe to use and when changes are undoable. However, it does not explicitly name alternatives or mention when not to use this tool, so it falls short of a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • 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 does so thoroughly. It discloses that the operation validates and saves, that passwords are not permitted, that it fails under specific conditions, and it clarifies unusual behaviors like requiring an explicit port and the valid ssl_mode values.

    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 compact and front-loaded, with every sentence providing essential information. It covers purpose, key constraints, validation behavior, and parameter-specific rules without redundancy or fluff.

    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?

    Given the absence of annotations and a present output schema, the description is remarkably complete. It covers prerequisites, success/failure conditions, parameter semantics, and important edge cases, leaving no critical ambiguity for an agent deciding how to invoke the tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The input schema has 0% description coverage, but the description adds substantial meaning: it explains port must be the actual port with no default, enumerates ssl_mode options and its default, links auth_config_id to the Authentication Manager requirement, and warns about duplicate names. This fully compensates for the bare schema.

    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 'Validate and save a new PostgreSQL Browser-panel connection,' which is a specific verb and resource with clear scope. It differentiates from sibling tools like list_connections or add_layer_from_connection by indicating it creates a new connection rather than reading or using existing ones.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives clear contextual guidance: it specifies prerequisites (credentials must be in QGIS Authentication Manager), explicitly states passwords are never accepted, and explains failure conditions (duplicate name or unreachable database). It does not explicitly name alternative tools or state when not to use it, but the context is clear enough.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Annotations declare readOnlyHint=true, and the description adds that camera overrides are applied only to the capture, leaving the live view unchanged. No contradictory or missing behavioral traits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Single paragraph, front-loaded with main purpose. Every sentence adds value. Minor wordiness ('Requires a 3D map view to be open...') but still efficient.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Covers prerequisites, parameter meanings, and behavioral nuance. No output schema, but 'inline image' implies return type. Could add that result is a base64-encoded image, but not essential given good annotations and schema.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    With 0% schema description coverage, the description fully compensates: explains dpi default, pitch range (0-90 with examples), heading as compass degrees, distance in metres, view_index for selecting among multiple views.

    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 it captures an OPEN 3D Map View as an inline image, explicitly distinguishing from get_canvas_screenshot which cannot capture the OpenGL 3D view. The verb 'capture' and resource '3D Map View' are specific.

    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?

    The description provides explicit context: requires an open 3D map view, gives menu path, and explains parameter usage. It implicitly excludes use when no 3D view is open and distinguishes from get_canvas_screenshot.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description goes beyond the readOnlyHint annotation by detailing output structure, filter pattern, pagination behavior, and geometry handling. This fully discloses the tool's read-only nature and operational characteristics.

    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?

    Two sentences efficiently convey the tool's purpose, output format, and key parameters with examples. No extraneous information, well-front-loaded.

    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?

    Given the output schema exists (so return values are documented elsewhere), the description sufficiently covers all input parameters, constraints, and behavioral traits. It is complete for a read-only data retrieval tool.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Despite 0% schema description coverage, the description explains all five parameters: layer_id (implied as required), expression (QGIS syntax), limit (max 50, default 10), offset, and include_geometry. This adds significant value beyond the raw schema.

    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 it retrieves features from a vector layer, specifies output format (flat dicts with _fid and attributes), and distinguishes from sibling tools like delete_features or select_features by its read-only nature and parameter focus.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear usage context, including expression filter syntax, limit defaults and maximum, offset for paging, and geometry inclusion option. It lacks explicit alternatives or when-not-to-use, but the constraints (e.g., max 50 limit) guide proper invocation.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    The description discloses crucial behavioral traits beyond the idempotentHint annotation: it clears any custom draw order, freezes a snapshot list, and causes layers added later to silently draw behind everything. This gives the agent critical side-effect information that cannot be inferred from the schema or annotations.

    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 extremely concise—two sentences—yet conveys purpose, parameter semantics, and a critical side-effect warning. Every word adds value; there is no repetition or filler. The structure front-loads the main action and then adds necessary detail.

    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?

    Given the tool's simplicity (one parameter, no output schema, simple annotations), the description covers all essential aspects: what it does, how the parameter works, and an important behavioral caveat. It is complete for an agent to select and invoke this tool correctly without needing additional information.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The schema has zero description coverage for layer_ids, but the description fully compensates: it explains that layer_ids is an ordered list from top (drawn last) to bottom, and that unlisted layers keep their slots. This adds vital meaning beyond the raw schema, making the parameter behavior fully explicit.

    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 states a specific verb and resource: 'Reorder layer tree nodes.' It further clarifies that tree order equals draw order, which distinguishes it from other layer-related tools like set_layer_property or set_layer_visibility. The purpose is unambiguous and clearly separates it from siblings.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context for when to use the tool: to change the visual stacking of layers. It implies its uniqueness among siblings (no other tool reorders layers), but does not explicitly name alternatives or list when not to use it. The warning about clearing custom draw order serves as an important consideration, effectively guiding usage.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so description carries full burden. It discloses name collision behavior (appends suffix), internal algorithm resolution, and error reporting for bad parameters/outputs. Explains the workflow effectively.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness4/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is dense but well-structured with sections for the spec format. Every sentence adds value, though it could be slightly more concise. It is front-loaded with main purpose and usage guidelines.

    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?

    For a complex tool with no annotations, the description is extremely complete. It explains the entire workflow, parameter syntax, and response fields. Despite an output schema existing, the description partially covers return values.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Input schema has 0% description coverage, but the description provides extensive semantics for the structured spec: detailed explanations of inputs, steps, and outputs arrays, including type descriptions, value syntax, and default behaviors.

    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 builds a QGIS Processing Model from a structured spec, saves it, and registers it in the Processing Toolbox. It uses specific verbs and resources, and distinguishes itself from siblings like execute_processing and list_processing_algorithms.

    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?

    Explicitly advises not to call list_processing_algorithms or get_algorithm_help first, and explains why. Provides guidance on algorithm hint passing, ambiguity handling, and error reporting.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    Beyond the readOnlyHint annotation, the description discloses the tool's output details (reachability, which QGIS answered) and the default instance selection logic. This gives the agent useful behavioral expectations for a read-only discovery tool without contradicting the annotation.

    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?

    Two tight sentences: the first lists the output fields and the second gives practical usage guidance. No filler, every sentence serves a purpose, and the most important information is front-loaded.

    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?

    For a simple, read-only, no-parameter tool with an output schema, the description covers everything needed: what it does, what it returns, why to use it, and how it ties into the rest of the API. It is fully complete for the agent to select and invoke 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?

    The tool has zero parameters, so the schema is complete and the description naturally adds no parameter-specific details. The baseline of 4 for 0 parameters applies here; the description still provides useful context about the 'instance' parameter used elsewhere, but not for this tool's own parameters.

    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 lists configured QGIS instances with specific fields (name, host, port, reachability, version, PID, window title, profile). The verb 'List' combined with the resource 'configured QGIS instances' is specific and distinguishes it from the many sibling tools focused on layers, layouts, or project settings.

    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 instructs use 'before writing to it' to confirm which window a name maps to. It also explains how the instance parameter behaves across other tools, including the fallback to 'default' or the first listed instance, giving clear when-to-use and how-to-use context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

qgis-mcp MCP server

Copy to your README.md:

Score Badge

qgis-mcp MCP server

Copy to your README.md:

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/nkarasiak/qgis-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server