Skip to main content
Glama

Server Quality Checklist

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

  • Disambiguation4/5

    Most tools have clearly distinct purposes, but some overlap exists, e.g., get_canvas_screenshot vs render_map (both capture canvas, one faster no re-render), and get_layers vs get_layer_tree vs get_active_layer (hierarchical vs flat vs single). Descriptions generally clarify, but the large set introduces minor ambiguity.

    Naming Consistency5/5

    Tool names overwhelmingly follow a consistent verb_noun pattern (e.g., add_bookmark, get_layers, set_canvas_extent). Minor exceptions like field_calculator or batch_commands are still descriptive and do not break the overall predictability.

    Tool Count3/5

    102 tools is very high for a typical MCP server. While QGIS is a complex GIS platform that can justify many tools, the count may overwhelm agents. A more focused set (e.g., 50-60) might balance completeness and usability.

    Completeness5/5

    The tool surface covers nearly all core GIS workflows: layer management, styling, print layouts, processing algorithms, expressions, spatial analysis, and more. Obvious gaps (e.g., advanced geoprocessing) are addressed by the execute_processing tool that wraps all Processing algorithms.

  • Average 3.7/5 across 102 of 102 tools scored. Lowest: 2.3/5.

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

    • No community issues in the last 6 months
    • 1 commit in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • This repository is licensed under MIT License.

  • 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

  • Behavior2/5

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

    The description does not disclose any behavioral traits beyond the basic operation. No annotations are provided, so the description should inform about side effects (e.g., whether the join modifies the original data, memory usage, or if it is temporary). It fails to do so.

    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 extremely concise (one sentence), but this brevity sacrifices informativeness. It could be slightly expanded to clarify parameter purposes without becoming verbose.

    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 5 parameters (4 required), no schema descriptions, no annotations, and no output schema, the description is woefully incomplete. The agent lacks essential information to invoke the tool correctly, such as the meaning of each field and expected behavior.

    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 does not explain any parameters. The agent must rely solely on parameter names (e.g., target_layer_id, join_field), which is insufficient for correct usage, especially since prefix is optional with a default.

    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 ('table join') and the target ('vector layer'). However, it lacks differentiation from sibling tools like spatial_join, and could specify that it joins a table attribute data to a vector layer based on a common 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 is provided on when to use this tool versus alternatives like spatial_join or add_field. There is no mention of prerequisites, common use cases, or exclusions.

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

  • Behavior1/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 'rename' without disclosing mutability, error behavior, or side effects (e.g., cascade updates). Inadequate 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.

    Conciseness3/5

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

    The description is a single sentence, which is concise. However, it omits essential details, crossing from conciseness into under-specification. Minimal words but insufficient 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?

    For a 3-required-param tool with no output schema, the description should clarify return behavior, error cases (e.g., field not found), and any transformations. It does none of these, leaving the agent uninformed.

    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 coverage is 0% (no parameter descriptions). The tool description adds no meaning beyond parameter names (layer_id, old_name, new_name). Constraints like uniqueness, case sensitivity, or length limits are missing.

    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?

    Description clearly states the action (rename) and resource (field in a vector layer). It distinguishes from sibling tools like add_field and delete_field, though it doesn't explicitly differentiate from them beyond the name.

    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, what prerequisites are needed (e.g., field must exist), or when to avoid it. No comparison to alternatives like field_calculator or update_features.

    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 annotations already indicate destructiveHint: true. The description adds 'incorrect settings can affect QGIS behavior' which aligns with that, but does not disclose additional behavioral traits such as persistence, scope (global vs project), or whether changes require a restart. It adds minimal value 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.

    Conciseness4/5

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

    The description is extremely concise with two short sentences. There is no wasted verbiage. However, the brevity sacrifices important details, so it is not perfect.

    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 absence of an output schema, low parameter coverage, and the tool's potentially impactful nature, the description is far from complete. It does not explain return values, common settings, or error conditions. The agent is left with insufficient information to use the tool confidently.

    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%, so the description must compensate by explaining parameter meaning. The description does not mention 'key' or 'value' at all, leaving the agent without guidance on valid keys or value formats. This is a critical gap for effective tool usage.

    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 'Write a QGIS setting' clearly indicating the verb and resource. The title 'Set Setting' reinforces the purpose. It is specific enough to understand what the tool does, but does not explicitly distinguish from sibling 'get_setting', which is implicit from the name.

    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 includes a warning 'Use with care — incorrect settings can affect QGIS behavior', but does not provide explicit guidance on when to use this tool versus alternatives like 'get_setting'. It lacks context such as prerequisites or typical use cases.

    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 should disclose behavioral traits such as whether the style replaces existing one, permissions needed, or side effects. The description lacks all such details, leaving the agent uninformed about operational impact.

    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, concise and to the point. It is not verbose, though it could benefit from a bit more detail without becoming lengthy.

    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 low parameter count and absence of output schema, the description should at least clarify the expected format of the QML file or any required layer state. It does not provide enough context for reliable tool use.

    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 does not add any meaning to the parameters (path, layer_id). The agent must infer their roles solely from names, which is insufficient.

    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 'Apply' and the resource 'QGIS QML style file to a layer,' making the tool's purpose evident. However, it does not explicitly differentiate from siblings like 'save_style_qml' or 'set_layer_style,' which slightly lowers the score.

    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 mention any prerequisites or context. This omission leaves the agent without cues for appropriate invocation.

    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 only states the action but does not disclose behaviors such as whether it overwrites existing layouts, requires a project to be open, or 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.

    Conciseness2/5

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

    The description is a single sentence of 5 words, which is too terse. While it is concise, it omits necessary information such as the parameter and usage context, making it 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?

    Given the tool's simplicity (one parameter, no output schema) and the presence of many sibling layout tools, the description should at least mention the 'name' parameter. The current description is incomplete for an 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?

    Schema description coverage is 0% and the description does not mention the single parameter 'name'. The description adds no meaning beyond the schema, failing to compensate for the lack of parameter documentation.

    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 'Create a new print layout' clearly specifies the verb 'Create' and the resource 'print layout'. It distinguishes from sibling tools like 'add_layout_map' or 'export_layout' by indicating it initiates a new layout.

    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. For example, it doesn't mention that 'list_layouts' can be used to check existing layouts or that this tool should be called before adding elements to a layout.

    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 annotations indicate idempotency (idempotentHint=true), which is consistent with an export operation. However, the description does not disclose key behavioral traits such as whether existing files are overwritten, error behavior on invalid paths, or if directories are created automatically. It only mentions parameter defaults.

    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 short (two sentences) and front-loads the core action. However, the second sentence reads as a parameter list rather than a proper sentence, slightly reducing readability. Every word serves a 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?

    Given the tool has 4 parameters, no output schema, and minimal schema descriptions, the tool definition is incomplete. It omits semantics for two required parameters and provides no information about return values, side effects, or error behavior. An AI agent would lack sufficient detail to use the 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?

    The input schema has 0% description coverage, so the description bears full responsibility for explaining parameters. It partially explains 'format' and 'dpi' (with defaults and options) but fails to explain the required parameters 'layout_name' and 'path', leaving their meaning unclear.

    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 print layout to file') and specifies the resource (print layout). It lists supported formats (pdf, png, jpg, svg), which adds specificity. However, it does not differentiate from sibling tools like export_atlas or render_map, which could cause confusion for an AI agent choosing between 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?

    The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, typical use cases, or situations where another tool (e.g., export_atlas for atlas exports) would be more appropriate.

    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 description bears full burden. It only states 'add' but does not disclose behaviors such as what happens on duplicate layers, permission requirements, 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.

    Conciseness4/5

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

    The description is a single concise sentence, but it lacks structural front-loading of critical information. It earns its place but could be slightly more 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?

    Given no output schema, no annotations, and 0% parameter coverage, the description fails to complete the tool's context. It does not describe return values, side effects, or error handling.

    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 the parameters (name, path, provider) beyond listing file types. The options and constraints are left to the schema alone, which is insufficient for guiding 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 ('add') and resource ('vector layer') with examples of supported formats, distinguishing it from sibling tools like add_raster_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_raster_layer, add_web_layer). No prerequisites or when-not conditions 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 mentions 'in-memory' implying temporary but does not disclose whether the layer is automatically added to the project, if it persists beyond session, or any resource 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?

    Two sentences, but first sentence is a run-on list. Could be structured more clearly, e.g., separate sections for parameters. Adequate but not optimal.

    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 4 parameters, 0% schema coverage, no annotations, and no output schema, the description should provide more context. Missing explanation for crs, return value, and whether layer is added to project automatically.

    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?

    Adds meaning for geometry_type (lists allowed values) and fields (describes structure with name and type options). However, crs parameter is not explained despite having a default; schema coverage is 0%, so description partially compensates but not fully.

    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?

    Clearly states 'Create a new in-memory vector layer' with specific geometry types and fields format. Differentiates from sibling tools like 'add_vector_layer' by emphasizing in-memory nature, though could explicitly contrast with persistent layers.

    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 file-based layers) or when not to use it. Lacks context for appropriate 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?

    The destructiveHint annotation already signals the tool modifies data. The description adds no further behavioral disclosure (e.g., irreversibility, impact on related data, permissions needed). Beyond annotations, it offers no additional transparency.

    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. However, it is so brief that it omits potentially useful context. It earns a 4 for conciseness but loses 1 for being 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?

    Given no output schema and 2 required parameters, the description lacks essential context about the destructive nature of the operation and what happens to the data. It does not compensate for the missing structured details.

    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 does not explain the parameters (layer_id, field_name) beyond listing them in the schema. It adds no semantic value or domain context for the 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 'Delete a field from a vector layer,' specifying the action (delete), resource (field), and context (vector layer). It distinguishes from sibling tools like add_field or 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 (e.g., delete_features, remove_layer), nor any prerequisites or use cases. The purpose is implied but not explicitly contextualized 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?

    Annotations already signal destructiveness (destructiveHint=true). The description adds no further behavioral context, such as whether removal is permanent, prerequisite checks, or effects on embedded items.

    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 with no extraneous words. However, it lacks structured front-loading; critical details are omitted.

    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, yet description does not clarify return value or error behavior. For a destructive operation, it should specify if the action is reversible or what happens to nested items.

    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 the required 'layout_name' parameter (e.g., format, case sensitivity, validation). The parameter is left entirely to the schema, which only defines type 'string'.

    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 ('a print layout'), distinguishing it from sibling tools like add_layout_* (addition) and remove_layer (removes a layer, not a layout).

    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 remove_layer or remove_map_theme. No exclusions or prerequisites 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?

    No annotations; description does not mention file location constraints, error behavior, or side effects like overwriting. Minimal disclosure.

    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?

    Single sentence is concise, but could be more informative without being verbose. Average for a short description.

    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?

    Low complexity but incomplete: does not explain parameters or supported formats beyond GeoTIFF, lacking important context for an AI agent.

    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%; description adds no detail beyond the schema (e.g., what 'provider' options exist, what 'name' defaults to). Only example format mentioned.

    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 a raster layer' with an example format (GeoTIFF), distinguishing from sibling tools like add_vector_layer or 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, no prerequisites or contextual hints.

    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 fails to disclose key behavioral traits such as whether the tool overwrites an existing file at the path, creates directories, or affects the currently open project. This lack of detail undermines 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.

    Conciseness4/5

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

    The description is a single sentence of 10 words, making it highly concise. It wastes no words, but the conciseness comes at the cost of missing important details. Structure is acceptable for a simple tool but could benefit from breaking into key points.

    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, the description should explain what the tool returns (e.g., project object or success status). It also does not address edge cases like existing files or directory creation. For a tool with one required parameter, the description is incomplete.

    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 adds minimal value beyond stating 'given path'. It does not specify expected format, file extension, or constraints (e.g., must be a .qgs file). The parameter name 'path' is self-explanatory, but the description adds little actionable detail.

    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 'Create' and the resource 'new empty QGIS project', and specifies saving to a given path. This distinguishes it from sibling tools like load_project or save_project which operate on existing projects.

    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 (e.g., load_project for existing projects, save_project for saving changes). The description does not mention exclusions or context, leaving the agent to infer usage from the name and sibling 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 must disclose behavioral traits. It only says 'load' but does not mention side effects (e.g., replaces current project), failure modes (e.g., file not found), or authentication needs. The agent cannot infer consequences of calling this tool.

    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 of 10 words, which is concise and front-loaded with the action. However, it may be too brief given the lack of supplementary information from annotations or schema.

    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?

    Without output schema or annotations, the description should at least hint at return values or state changes. It only states the basic operation, leaving the agent unaware of what happens after loading (e.g., active layer set, return value). Incomplete for a project-loading tool.

    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 only adds 'from a .qgs/.qgz file path' without specifying path format, validity requirements, or whether it supports relative paths. The agent lacks sufficient information to correctly construct the 'path' 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?

    The description clearly states the action 'load' and the resource 'QGIS project' with explicit file extensions (.qgs/.qgz). It distinguishes from sibling tools like 'save_project', 'create_new_project', and 'get_project_info' by specifying the operation of loading an existing project from a 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?

    The description provides no guidance on when to use this tool versus alternatives, such as when to load vs create a new project, or what prerequisites are needed (e.g., file existence). The agent has no context for appropriate invocation.

    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 annotations already declare destructiveHint=true, so the description adds minimal behavioral context. It does not mention what happens if the theme does not exist or if it is currently applied. No additional transparency 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.

    Conciseness3/5

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

    A single sentence with no wasted words, but it is minimal. It earns its place, but could be expanded slightly without losing conciseness.

    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 schema (one string param) and no output schema, the description is too brief. It does not cover edge cases or behavior, leaving the agent uninformed about potential outcomes.

    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. It states the parameter is a name, but provides no further details (e.g., case sensitivity, uniqueness). For a single string parameter, the description adds marginal 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 'remove', the resource 'map theme', and the selection method 'by name'. It distinguishes from siblings like add_map_theme, apply_map_theme, and 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 Guidelines2/5

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

    No usage guidelines provided. The description does not indicate when to use this tool versus alternatives, nor when not to use it. Given the destructiveHint annotation, guidance on prerequisites or consequences would be helpful.

    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. Only states 'Save' implying write operation but lacks details on authorization, overwrite behavior, or success/failure responses.

    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. Efficiently conveys core action, though could be expanded slightly without losing conciseness.

    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, no param descriptions, no annotations. Lacks explanation of return value, error handling, and file overwrite behavior. Incomplete for a write operation with two required parameters.

    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, and description only mentions 'layer's style' and 'QGIS QML file', failing to explain that layer_id identifies the layer and path is the file path. Does not compensate for schema 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?

    Clearly states verb 'Save', resource 'layer's style', and destination 'QGIS QML file'. Distinguishes from sibling 'apply_style_qml' which applies a 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 vs alternatives like 'apply_style_qml'. Missing prerequisites such as layer existence or path writability.

    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?

    While annotations provide idempotentHint, the description does not explain any behavioral traits beyond the basic action. It omits details such as error behavior if the layer does not exist or whether setting visibility to an already active state silently succeeds.

    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 that is front-loaded and contains no extraneous information. However, the brevity sacrifices parameter detail, which is a structural weakness.

    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 and the description covers the core action, but it lacks completeness regarding error states, return value (if any), and idempotency details (though hinted by annotation). For a straightforward set operation, it is minimally adequate but not fully complete.

    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 tool description does not explain the parameters. The meaning of layer_id (format, source) and visible (true shows? false hides?) is left entirely to assumption, which is inadequate 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 sets a layer's visibility in the layer tree, toggling show/hide on the map. The verb and resource are explicit and the tool name itself is descriptive, making differentiation from siblings like set_layer_property straightforward.

    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, nor are there any exclusions or prerequisites. The description simply states the action without any context 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 indicate idempotentHint=true, but the description adds no extra behavioral context beyond clearing selection. It's adequate but minimal.

    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, though it could be more informative without losing conciseness.

    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 description does not explain how to obtain the layer_id or provide any context about the selection being cleared, leaving the agent with insufficient information.

    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 the 'layer_id' parameter, failing to compensate for the missing schema documentation.

    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') on a specific resource ('selection on a layer'), distinguishing it from siblings 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 on when to clear selection versus alternatives, nor any prerequisites or context for using the tool.

    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; description does not contradict. It adds value by stating the image is returned inline and optionally saved, but lacks details on image format, resolution behavior, or side effects of saving (e.g., overwrite).

    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 sentences, no wasted words. However, the second sentence is a run-on; could be split for clarity. Overall 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 the simple tool (3 optional params, no output schema, idempotent), description covers core purpose and output. Missing details on image format, resolution, return value when path is provided, and differentiation from sibling get_canvas_screenshot.

    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. Only the 'path' parameter is implicitly explained ('Optionally saves to a file path on disk'); width and height are not mentioned, leaving their semantics unclear.

    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?

    Clearly identifies the action ('render') and resource ('current map canvas') and states both inline return and optional file save. However, does not differentiate from sibling tool 'get_canvas_screenshot' which likely serves a 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 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 get_canvas_screenshot. Does not mention conditions for inline vs save, or any 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 must carry the burden. It fails to disclose whether the layer must be editable, what happens if the field already exists, or if the operation 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.

    Conciseness5/5

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

    The description is extremely concise at two sentences, front-loading the purpose and listing field types without any superfluous 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 5 parameters and no output schema, the description lacks details on error handling, return values, and side effects, making it incomplete for reliable use.

    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 explain parameters. It only partially describes 'field_type' and omits 'layer_id', 'field_name', 'length', and 'precision' entirely.

    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 new field' and the resource 'vector layer', and enumerates supported field types. It distinguishes the tool from siblings like 'delete_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?

    The description provides no guidance on when to use this tool versus alternatives such as 'field_calculator' or 'rename_field'. It does not 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?

    With no annotations, the description must disclose behavioral traits. It only mentions adding a legend with position/size in mm, but omits behavior on missing layout, invalid map item, or whether the legend replaces an existing one. No return value or error handling info.

    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?

    One sentence, efficient and front-loaded with action and key details. Could benefit from brevity in listing mm but overall concise.

    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 7 parameters, no output schema, and no annotations, the description is too brief. It lacks details on return values, error conditions, and prerequisites for a complete understanding.

    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 has 0% description coverage. The description adds meaning to x, y, width, height (position/size in mm) and clarifies map_item_id defaults to first map item. This adds value beyond the schema but does not cover all parameters (e.g., title, layout_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 it adds a legend to a print layout, linking to a map item, with position/size in mm. It distinguishes from sibling tools like add_layout_label and add_layout_map by specifying 'legend'.

    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 vs alternatives, nor prerequisites like requiring an existing layout or map item. The description implicitly suggests a map item should exist but does not state explicitly.

    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 present, so the description must carry the burden. It does not disclose behaviors like network requirements, error handling for invalid URLs, or side effects (e.g., overwriting existing layers). The description is too brief to inform safe invocation.

    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 with two sentences, no wasted words. However, it could be structured better (e.g., listing parameters) without adding length.

    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 4 parameters (2 required), no output schema, no annotations, and many sibling tools, the description is minimal. It does not explain parameter relationships, provide examples, or cover error scenarios, leaving the agent with uncertainty.

    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 lists acceptable values for 'service' ('xyz', 'wms', 'wfs'), which adds meaning beyond the schema (which had 0% coverage). However, it ignores the other three parameters (url, crs, name), leaving their purpose implied. Partial 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?

    The description clearly states the verb 'Add', the resource 'web layer', and specifies the supported service types (XYZ, WMS, WFS). This distinguishes it from sibling tools like add_raster_layer 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 is provided on when to use this tool versus alternatives such as add_raster_layer or add_vector_layer. With many sibling layer tools, explicit usage context is lacking.

    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 description adds 'Save the current project' which implies a write operation, but annotations already provide idempotentHint=true. No additional behavioral details (e.g., overwrite behavior, notification) are 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?

    Two sentences, front-loaded with purpose, no wasted words. Perfectly 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?

    Adequate for a simple save operation with one optional parameter and idempotency annotation. Missing details on default behavior when path is null or any return value.

    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 clarifies the 'path' parameter as an optional new save location. This adds meaning to the schema, but could be more precise about path format or defaults.

    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 saves the current project, which distinguishes it from sibling tools like create_new_project and load_project. However, it does not elaborate on what 'save' entails (e.g., overwriting original).

    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. It only mentions optional path, but does not contrast with create_new_project or load_project.

    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 indicate destructiveHint: true, but the description does not explain why adding features is destructive. It only says returns count of added features, leaving the impact unclear. There is a potential contradiction: adding features is typically non-destructive, but the annotation flags it as destructive.

    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 sentences, front-loaded with the main purpose, and the second sentence provides details on feature format and return. Efficient, but could be slightly compressed.

    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, input format, and return, but lacks usage guidance, error handling, and explanation of destructive nature. Given the simplicity (2 params) and existing annotations, it is adequate but not 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 value by explaining the format of the 'features' parameter. However, it does not describe the 'layer_id' parameter at all, so it only partially compensates for the lack of schema documentation.

    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 features'), the resource ('vector layer'), and provides an example of the feature format. It distinguishes from siblings like 'add_field' 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 on when to use this tool versus alternatives. No mention of prerequisites, when not to use, or suggestions for other tools in the sibling list.

    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 discloses support for dynamic expressions and hex color, but lacks details on mutation behavior, layout existence checks, or potential side effects like overwriting.

    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-sentence description is efficient and front-loads the core purpose. However, it could better incorporate parameter details without expanding length.

    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?

    Lacks return value info, error conditions, and behavioral context beyond what is minimal. Given 8 parameters and no output schema, the description is insufficient for effective agent invocation.

    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%. Description covers only text and color semantics, ignoring width, height, font_size, and coordinate units. Over half the parameters are undescribed.

    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 adds a text label to a print layout, specifying the resource and action. It differentiates from siblings like add_layout_legend and add_layout_map by focusing on text 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?

    No explicit guidance on when to use this tool versus alternatives. The description does not mention prerequisites, when not to use it, or comparisons with related tools like add_layout_legend or 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?

    No annotations are provided, so the description must fully disclose behavioral traits. It only says 'Add a map item', implying a write operation, but does not disclose potential side effects (e.g., overwriting existing items), authorization needs, or whether the map item reflects the current canvas extent.

    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 16-word sentence, front-loading the key action and parameters with no extraneous information. Every word contributes to the 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?

    Given 5 required parameters, no output schema, and no annotations, the description is insufficient. It omits details about return values, error conditions, how the map item's content is determined (e.g., current map view), and necessary preconditions. An agent would need additional context to use this tool 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 must add meaning beyond types. It clarifies that x, y, width, height are in millimeters and that they specify position and size, which is useful. However, it does not explain coordinate origin (e.g., top-left corner) or the role of layout_name beyond being the target layout.

    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 parameters (position and size in millimeters). It effectively distinguishes this tool from sibling tools like add_layout_label or add_layout_legend, which add different item types.

    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., add_layout_picture, add_layout_label). It does not mention prerequisites, such as the layout existing, nor does it indicate contexts where this tool is most appropriate.

    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 only states the action and style examples, but does not disclose error behavior, what happens if the layout is missing, or whether it modifies existing scale bars. Transparency is low.

    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 two sentences and efficiently states purpose and style examples. It is front-loaded and contains no redundant information, though a bit more detail on parameters would not hurt conciseness.

    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 7 parameters, no output schema, and no annotations, the description is too sparse. It does not explain what the tool returns (if anything), error conditions, or how the scale bar integrates with the layout. Important contextual information is missing.

    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 adds minimal meaning beyond schema. It mentions 'style' and links to map item, but does not explain x, y, width, height, layout_name, or map_item_id. The schema defaults exist but are not described.

    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 'scale bar to a print layout', and specifies it is linked to a map item. This distinguishes it from other add_layout_* siblings by focusing on a scale bar specifically.

    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 adding a scale bar to a layout, but does not mention prerequisites (e.g., layout must exist) or when not to use it. No alternative tools are discussed, 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, so description carries full burden. It discloses that max_rows caps features and position/size are in mm, but omits behaviors like return values, error conditions (e.g., missing layer), or what happens when table exceeds layout bounds.

    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 with no fluff. Could be slightly more structured with parameter details, but still concise.

    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 7 parameters, 2 required, and no output schema, the description is too brief. It lacks essential information about required parameters (layout_name, layer_id) and behavior, making it insufficient for correct invocation.

    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 explain parameters. It only explains max_rows and vaguely mentions position/size, but does not map to specific parameters (x, y, width, height) or explain layer_id, layout_name, or defaults.

    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 adds an attribute table for a vector layer to a print layout, distinguishing it from sibling layout tools (e.g., add_layout_legend). The verb 'Add' and resource 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 Guidelines3/5

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

    The description implies usage context (adding a table to a layout) but provides no when-to-use or when-not-to-use guidance nor alternatives. It mentions max_rows caps features, which is a usage hint, but no explicit 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 carries the full burden. It mentions that as_layer creates a new layer and inline returns at most 1000 rows, but does not disclose whether the SQL is limited to SELECT, any destructive potential, or required permissions. The behavioral traits are only partially disclosed.

    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 two sentences and gets to the point quickly. However, the second sentence is slightly cluttered with multiple conditionals, reducing readability. Overall, it is appropriately sized for a tool with moderate complexity.

    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 and no output schema, the description is incomplete. It does not cover uid_field, return format structure, error handling, or that the tool likely only supports SELECT queries. There are gaps that could lead to agent confusion.

    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?

    Despite 0% schema coverage, the description only explains as_layer, geometry_field, layers, and layer_name implicitly. It omits explanation for query, uid_field, and layer_name's default value, and does not clarify the query parameter's format or constraints beyond a generic 'SQL'.

    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 SQL across loaded layers using a virtual layer, and that layers can be referenced by name in FROM/JOIN. This verb+resource description effectively differentiates it from sibling tools like evaluate_expression or execute_code.

    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 guidance on when to use as_layer vs inline mode and mentions the layers parameter to limit sources. However, it does not discuss alternatives or when not to use this tool, leaving comparative usage implicit.

    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 minimally discloses the operation: moving a layer to a group by name. However, it does not specify behavior if the group does not exist, whether it is a move vs copy, or if the layer must already be in a group.

    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, efficient sentence that conveys the purpose without extraneous words. Ideal 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?

    For a simple tool with two required parameters and no output schema, the description covers the core action but lacks details on return values, error cases, or behavioral nuances. Adequate but not comprehensive.

    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 parameters. Parameter names are clear, but no additional meaning is provided 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 (move) and the resource (layer into layer group), and specifies the method (by group name). It distinguishes from siblings like 'create_layer_group' 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 usage guidelines provided. Does not indicate when to use this tool versus alternatives, nor any prerequisites or conditions.

    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 include 'idempotentHint: true', which the description does not reinforce or expand upon. The description fails to disclose potential side effects, such as changing the active layer's selection or map canvas behavior. No additional behavioral context is provided beyond what annotations imply.

    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 wasted words. Every part of the sentence contributes directly to clarifying the tool's core function.

    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 parameter, no output schema), the description is minimally adequate. However, it does not address behavior on invalid input, return value, or error handling, leaving some contextual gaps for a 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 description coverage is 0%, placing a high burden on the description. The description only adds 'by layer ID', which vaguely indicates the parameter's role but does not explain what constitutes a valid layer ID or address the parameter's semantics beyond the schema's type hint.

    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 ('Set'), resource ('active layer'), and scope ('in QGIS layer panel by layer ID'). It distinctly sets this tool apart from siblings like 'get_active_layer', which retrieves the active layer, and 'set_layer_visibility', which modifies visibility.

    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, prerequisites (e.g., valid layer ID obtained via 'get_layers'), or alternatives. It does not mention exclusions or state that setting active layer may affect UI focus or 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, so the description must fully disclose behavioral traits. It states that the tool configures labeling but does not mention side effects (e.g., overwriting existing settings), permission requirements, or error handling (e.g., what if layer_id does not exist). The description implies a safe update operation but lacks explicit transparency.

    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 with three short sentences. The first sentence immediately states the core purpose. No redundant information. It is appropriately front-loaded and uses minimal 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 5 parameters and no output schema, the description covers the main intent but lacks details such as expected return value (maybe void), validation of color format, or behavior when layer_id is invalid. For a configuration tool, missing context about persistence or immediate effect is notable but not critical.

    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%. The description adds meaning for enabled, field_name, font_size (float), and color (hex format). However, it does not explain that color defaults to null, or provide details on font_size units (e.g., points). It partially compensates for the schema gap but misses some crucial semantics.

    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 configures labeling for a vector layer. It specifies the verb 'configure' and resource 'labeling for a vector layer', and distinguishes from sibling tools like get_layer_labeling (read) and set_layer_style (different purpose). However, it could be more explicit about what labeling entails (text labels on 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 basic usage guidance: setting enabled=false to disable labels and field_name for the attribute field. It mentions optional parameters but does not explicitly state when to use this tool versus alternatives (e.g., set_layer_property, get_layer_labeling) or any prerequisites. No exclusion criteria or context for 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 annotation already provides idempotentHint, indicating safe repeatability. The description adds that variables are accessible in expressions, which is useful context. However, it does not disclose persistence, scope, or any side effects beyond setting the variable.

    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 that efficiently conveys the core purpose and usage context. It is front-loaded with the action. However, it could be slightly expanded to include parameter details without becoming 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 set operation with no output schema, the description covers the basic purpose and mentions the expression syntax. However, it lacks parameter semantics and does not explain how to use the variable after setting, which an agent might need to know to leverage the tool effectively.

    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 schema description coverage is 0%, meaning the input schema provides no parameter descriptions. The tool description also fails to describe the 'key' and 'value' parameters, leaving ambiguity about format, constraints, or allowed values. This is a significant 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 the action ('Set') and the resource ('project-level variable'), and mentions the specific usage context ('accessible in expressions as @key'). It distinguishes itself from sibling tools like get_project_variables (which retrieve variables) and other set tools that modify different resources.

    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 setting variables to be used in expressions, but it does not explicitly state when to use this tool versus alternatives like set_setting or when not to use it. No exclusions or comparisons with siblings 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?

    No annotations are provided, so the description carries the burden. It discloses that the tool creates/updates a theme based on current visibility, which is adequate. However, it does not mention side effects, permissions, or whether the operation is destructive (though implied non-destructive).

    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-loading the core action and behavior. No unnecessary words, every sentence 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 simplicity of the tool (one parameter, no output schema), the description is mostly complete. It covers creation from current state and update behavior. However, it lacks usage guidelines and parameter details, keeping it from a perfect score.

    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?

    Only one parameter 'name' exists with 0% schema description coverage. The description adds context that if a theme with that name exists it will be updated, which provides some meaning beyond the schema. However, it doesn't explain the expected format or constraints of the name.

    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 ('Create a map theme') and the resource ('from the current layer visibility state'), and mentions update behavior if theme exists. It is not explicitly distinguished from siblings like 'apply_map_theme' or 'remove_map_theme', but the purpose is clear.

    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 such as 'apply_map_theme' or 'remove_map_theme'. The description only implies use for creating or updating themes, without context 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 carries the full burden. It discloses that destructive commands are excluded, but it does not explain batch execution behavior (e.g., sequential vs parallel, error handling, atomicity, rate limits, or size limits). This is a significant gap for a batching 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 two sentences: front-loaded with purpose, then format, then restriction. It is concise and well-organized 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?

    The tool has one parameter (array of objects) and no output schema. The description does not mention return values, error behavior, execution order, or any batching limitations. For a complex tool, this is incomplete.

    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 add meaning. It explains that each command is an object with 'type' and 'params' fields, and lists example destructive commands. However, it does not specify that 'type' must be a valid command name or describe the constraints on 'params' objects. It adds basic structure but lacks completeness.

    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's purpose: 'Execute multiple commands in a single round-trip.' It also provides the expected format for each command. However, it does not explicitly differentiate from other batch tools like execute_processing_batch, though it does list destructive commands that are excluded.

    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 explicit guidance on when not to use the tool: 'Destructive commands ... are not allowed in batch — use them individually.' This clearly separates it from individual command tools. It does not provide full alternatives but the rule is clear.

    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 discloses that the operation duplicates the layer including its style, which is helpful. However, with no annotations provided, it should mention potential side effects (e.g., creation of a new layer, naming implications). Currently adequate but not thorough.

    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 wasted words. It conveys the essential information efficiently.

    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 operation with two parameters, the description is mostly complete but lacks context on error handling, naming constraints, or behavior when new_name is omitted. 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?

    Schema coverage is 0%, and the description does not explain the parameters. It mentions 'under a new name' but does not clarify that new_name is optional or what happens when null. The parameter semantics are weak.

    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 the action (Duplicate), resource (a layer), and key characteristics (including its style, under a new name). It clearly distinguishes the tool from siblings like add_vector_layer or 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 this tool versus alternatives or any prerequisites (e.g., the layer must exist). The description lacks context for decision-making.

    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 present, so the description must fully disclose behavior. It mentions that memory layers are temporary, but fails to specify side effects, permission requirements, failure modes, or what the tool returns. This is insufficient for a complex tool that executes arbitrary algorithms.

    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 three sentences. The first sentence states the purpose, the second directs to a helper tool, and the third provides concrete parameter tips. Every sentence is informative 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?

    Given the tool's complexity (executing any QGIS processing algorithm) and the absence of an output schema, the description is too brief. It does not explain error handling, return values, or the lifecycle of created layers. While referencing get_algorithm_help helps, the description itself is incomplete for safe and effective 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?

    The input schema has 0% description coverage. The description adds value by explaining that layer parameters accept IDs or file paths and that OUTPUT can be set to 'memory:' for temp layers. However, it does not describe the algorithm parameter or the structure of the parameters object, leaving much to be discovered via get_algorithm_help.

    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 'Execute a QGIS Processing algorithm' with a specific verb and resource. It references the related tool get_algorithm_help for parameter discovery, aiding understanding. However, it does not explicitly differentiate from siblings like run_model or batch_commands.

    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 direct guidance: use get_algorithm_help to discover parameters, and specifies that layer params accept layer IDs or file paths and that OUTPUT should be set to 'memory:' for temporary layers. It lacks explicit when-not-to-use or alternatives, but the provided advice is actionable.

    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 readOnlyHint=true; description adds that it returns page count and item details, which is consistent and adds some 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?

    A single efficient sentence that fronts the main action and results. No wasted 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 presence of an output schema and simple tool, the description is adequate but minimal. Could mention the output format or examples for better 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 only parameter 'layout_name' is implied to be the layout identifier, but no details on format, case-sensitivity, or how it relates to the returned items. Schema description coverage is 0%, so description should compensate but does not.

    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 'List items in a print layout' with specific attributes (type, id, uuid, position, size) and page count. This distinguishes it from sibling tools 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 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 vs alternatives (e.g., when to list layouts vs items). No mention of prerequisites like layout existence or naming conventions.

    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 idempotentHint annotation by detailing supported properties and value constraints (e.g., opacity range 0.0-1.0). However, it does not disclose behavior on error, default values, or whether previous property states are overwritten.

    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 critical information front-loaded. No extraneous text, efficient 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?

    For a simple setter with no output schema, the description covers property semantics but lacks information on return values, error handling, and side effects. Given the idempotent annotation and straightforward nature, it's adequate but could be more 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?

    With 0% schema coverage, the description compensates by listing valid property names and their expected value types (e.g., opacity as a float in [0,1], name as string). This adds significant meaning beyond the raw schema, though it could include more format examples.

    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 sets a layer property and lists supported properties with types and ranges. It distinguishes itself from sibling tools like set_layer_style and set_layer_visibility by specifying individual property updates, but does not explicitly differentiate its use case.

    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. The description does not provide context for selection, such as recommending set_layer_property for simple property changes and other tools for more complex tasks.

    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 disclose behavioral traits. It does not mention error handling (e.g., duplicate names, missing parent), side effects, or reversibility, which are critical for a creation 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, no redundant words. Efficiently conveys the core action and optional parameter.

    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 or annotations, the description provides the basic function but lacks details on behavior (e.g., what happens if parent doesn't exist, permissions needed). It is minimally adequate but not 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?

    With 0% schema description coverage, the description adds essential meaning: 'name' is the group name, 'parent' is an optional parent group. This compensates for the schema's lack of descriptions, though it remains 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?

    Clearly states the verb 'Create' and the resource 'layer group' with location 'in the layer tree', and distinguishes from sibling tools that add actual layers. The optional parent specification 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 like move_layer_to_group or create_memory_layer. The description only states what it does, not the context 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?

    No annotations are provided, so the description carries the burden. It discloses that the tool modifies data in-place and returns an 'updated feature count', but does not describe failure modes, idempotency, required permissions, or side effects (e.g., existing field values are overwritten?).

    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 plus an example—with no redundant words. Every sentence adds value, efficiently conveying core behavior and a concrete example.

    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 or annotations exist. The description explains the return value (updated feature count) and provides an example, but does not cover all parameters (length, precision), prerequisites, or behavior when the field already exists. Given the tool's complexity (6 parameters, in-place modification), the description leaves 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 schema has zero descriptions (0% coverage). The description clarifies 'field_type' (with default and enum-like values) and provides an example for 'expression' and 'field_name', but does not explain 'length' or 'precision', leaving two parameters undocumented. It adds partial meaning but insufficiently covers all 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?

    The description clearly states the verb ('Add (if missing) + populate') and resource ('a field from a QGIS expression'). It specifies the operation is per feature and in-place, distinguishing it from siblings like 'add_field' (which adds a field without populating) and 'evaluate_expression' (which tests expressions without saving).

    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 a usage example but does not explicitly state when to use this tool versus alternatives like 'add_field' or 'evaluate_expression'. There is no guidance on prerequisites, exclusions, or when to avoid using it. The example implies a common use case but lacks contextual comparison.

    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. The description adds that the tool returns parameter details, outputs, and description, which is consistent and does not contradict annotations. It provides minimal 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.

    Conciseness4/5

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

    The description is one concise sentence that is front-loaded with the main verb and resource. It is efficient but could be slightly improved with structured details (e.g., bullet points) for 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?

    The tool has a single parameter and an output schema (not shown), so the description does not need to explain return values. However, it omits guidance on obtaining the algorithm_id (e.g., from sibling tools) and does not mention error conditions. Adequate for a simple read-only 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 coverage is 0%, so the description should add meaning to the algorithm_id parameter. It does not explain what algorithm_id is, how to obtain valid values (e.g., from list_processing_algorithms), or its format. This leaves the agent guessing.

    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, specifying the details included (parameters, outputs, description). It distinguishes itself from siblings like list_processing_algorithms (lists algorithms) and execute_processing (runs them).

    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 help on a specific algorithm but does not explicitly state when to use vs alternatives like list_processing_algorithms or execute_processing. No exclusion criteria 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?

    Annotations declare idempotentHint=true, indicating safe repetition. The description adds that selection is by expression or fids, but does not clarify whether selection replaces or adds to existing selection, or any side effects. No contradiction with 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 a single concise sentence (10 words) that efficiently states the purpose. It could benefit from slight expansion for clarity, but 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?

    No output schema, so description should mention return value or confirmation. It does not. With 3 parameters and one required, the description covers basic inputs but lacks details on output and selection 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?

    Schema description coverage is 0%, so the description must add meaning. It links 'expression' and 'feature IDs' to parameters expression and fids, but does not elaborate on syntax, format, or constraints beyond what the schema provides. Minimal added 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 action (select), the resource (features in a layer), and the two methods (by expression or feature IDs). It distinguishes from siblings like clear_selection 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 Guidelines3/5

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

    The description implies usage by mentioning the two selection methods, but does not explicitly state when to use this tool versus alternatives like clear_selection, get_selection, or identify_features. 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?

    No annotations exist, so the description must disclose behavioral traits. It mentions that new columns are added (mutation) and that no output_path creates an in-memory layer, but does not fully clarify if the polygon layer is modified in place or if a new layer is created. Side effects are somewhat unclear.

    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 and efficient, fitting key information in one sentence with a list. It avoids fluff, but the stat code list could be better formatted (e.g., as a bullet list).

    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 annotations or output schema, and 6 parameters, the description is incomplete. It lacks explanation of the 'band' parameter and the required layers, and does not describe return values or side effects adequately for a tool of this complexity.

    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 should compensate. It explains stats codes, prefix, and output_path behavior, but does not mention 'band' or the required layers (polygon_layer, raster_layer). Hence, only 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 computes per-polygon statistics from a raster, names the specific algorithm (native:zonalstatisticsfb), and lists stat codes. This distinguishes it from siblings like sample_raster_values or raster_calculator.

    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 covers stat codes and default behavior (e.g., in-memory layer when no output_path), but does not explicitly state when to use this tool vs. alternatives or mention prerequisites. Usage context is implicit.

    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, signaling potential side effects. The description adds the constraint 'Cannot reload the MCP plugin itself,' which is useful. However, it does not elaborate on other behavioral traits like whether changes are immediate, if the plugin state resets, or if there are prerequisites. The description adds some context but not extensive.

    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, front-loading the primary action and restriction. No superfluous words or redundant information. Every sentence serves a purpose.

    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 parameter, no output schema, annotations present), the description covers the core purpose and a key restriction. However, it lacks details on operational aspects like whether reload is synchronous, any user feedback, or required permissions. It is minimally adequate but leaves gaps for an agent.

    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. The only parameter is 'plugin_name', and the description merely says 'by name,' which adds no new meaning beyond the parameter name. For a simple required parameter, this is insufficient to guide the agent 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?

    The description clearly states what the tool does ('Reload a QGIS plugin by name') and includes a specific restriction ('Cannot reload the MCP plugin itself'), which distinguishes it from any potential generic reload action. The verb 'reload' and resource 'plugin' are explicit.

    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 says 'Useful during plugin development,' implying when to use it, but it does not provide guidance on when not to use it or suggest alternative approaches (e.g., using QGIS UI or restarting). The usage context 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.

  • Behavior3/5

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

    The description correctly indicates a destructive action, matching the destructiveHint annotation. However, it adds no further behavioral context (e.g., permanent deletion, impact on other objects, required permissions). Annotations already cover destructiveness, so the description adds minimal 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?

    The description is a single, front-loaded sentence with no unnecessary words. It is appropriately concise for a straightforward tool.

    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 deletion tool, the description is adequate but lacks completeness: it does not mention the absence of undo, confirmation, or error handling. While the single parameter is clear, additional context on the tool's finality would be helpful.

    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 description mentions the parameter 'by its ID' but does not add details beyond the schema (e.g., format, examples, constraints). With schema coverage at 0%, the description should compensate but fails to do so meaningfully.

    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 (spatial bookmark), and the method (by its ID). It distinguishes from sibling tools 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 Guidelines3/5

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

    The description implies removal by ID but does not explicitly state when to use this tool versus alternatives (e.g., batch deletion, conditional removal). No 'when not to use' guidance is 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 states it changes how layers are projected on the map canvas, but does not disclose if it reprojects only visually or modifies underlying data, nor any side effects like performance impact or irreversible changes.

    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 action, no filler. Every word contributes to clarity.

    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 setter tool with one parameter and no output schema, the description adequately explains what it does and gives examples. Could mention effect on existing layers or canvas refresh, but overall 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% for parameter description, but the description adds meaning beyond type: 'e.g. 'EPSG:4326', 'EPSG:3857'' clarifies the format of the string 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?

    The description uses specific verb 'Set' and resource 'project coordinate reference system' with examples ('EPSG:4326', 'EPSG:3857'), clearly distinguishing from sibling tool set_layer_crs which sets a layer's CRS.

    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 vs alternatives (e.g., set_layer_crs). No description of prerequisites, effects on project layers, 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 adds the behavioral context that it 'restores the layer visibility state', which matches the idempotentHint annotation. No contradictions, but no additional depth beyond what annotations already signal.

    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 efficient sentence with no unnecessary words. It is front-loaded with the primary action and includes a clarifying clause.

    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 low complexity (one required parameter, idempotent annotation, no output schema), the description is mostly complete. The only gap is the lack of explicit parameter description, but the tool name and title together make it clear.

    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 clarify the parameter. The description does not explicitly describe the 'name' parameter; it is implied from context. This is insufficient for a required parameter with no 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 description clearly states the tool applies a map theme and explains what that means: restoring layer visibility state. It distinguishes from siblings 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?

    It implies usage context (you must have a theme saved) but does not explicitly state when to use vs. alternatives or when not to use. No exclusions or prerequisites 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 are provided, so the description carries full burden. It discloses configurations like coverage_layer and optional expressions but omits mention of the 'enabled' parameter (which controls atlas activation) and does not state side effects (e.g., modifies existing atlas settings).

    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, front-loaded with the core action, and includes essential details in a colon-separated list. Every word adds value 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?

    Given 6 parameters, no output schema, and no annotations, the description provides a high-level overview but lacks specifics on the effect on existing atlas settings, the behavior of the 'enabled' parameter, and output (if any). It is incomplete for fully guiding an agent.

    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%. The description explains coverage_layer as a vector layer ID and mentions three optional expressions, but it does not describe 'enabled' (which has a default true) or 'layout_name' (a required 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?

    The description clearly states the tool configures a print layout's atlas, specifies the key parameter (coverage_layer) as a vector layer ID that drives one page per feature, and lists optional parameters. It distinguishes from siblings like export_atlas and other 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 Guidelines3/5

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

    The description explains what the tool does but provides no guidance on when to use it vs. alternatives, no prerequisites (e.g., layout must exist), and no exclusions. It does not mention that it should be used before exporting an atlas.

    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 no destructive effects. The description adds value by specifying the exact information retrieved, which is purely read-only. It does not contradict annotations and is transparent about the tool's behavior.

    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 that efficiently conveys the tool's output. It is front-loaded with the key purpose. However, it could be slightly improved by briefly explaining the parameter.

    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 existence of an output schema (not shown), the description need not detail return structure. However, with low parameter coverage and no guidance on layer_id format, the description feels incomplete. For a simple tool, it is adequate but leaves 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 'layer_id' has no description in the schema (0% coverage). The tool description does not explain what 'layer_id' refers to (e.g., a raster layer ID or name), leaving ambiguity. The description should clarify the parameter's meaning to compensate for the lack of schema documentation.

    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 'raster layer info', and explicitly lists the specific properties returned (band count, dimensions, CRS, extent, per-band statistics, nodata values). This distinguishes it from sibling tools like 'get_layer_extent' or 'get_field_statistics' that retrieve only partial information.

    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 this tool is for obtaining comprehensive raster metadata, but it does not provide explicit guidance on when to use it versus alternative tools like 'get_layer_crs' or 'get_layer_extent'. No mention of prerequisites or exclusions, 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 indicate destructiveHint=true. The description adds 'This is irreversible,' which reinforces and slightly expands the annotation by specifying permanence. However, it does not disclose other potential consequences (e.g., cascade effects, 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 extremely concise: one sentence for purpose and one for behavioral note. No redundant information, front-loaded with the primary 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 tool's simplicity (one parameter, no output schema, no nested objects), the description covers the core action and an important behavioral note. It lacks only minor details like error handling or prerequisites, which are not critical for basic 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?

    With 0% schema description coverage, the description carries full burden for parameter semantics. It mentions 'by its layer ID' but provides no additional guidance on the ID format, how to obtain it, or constraints. This is insufficient for a one-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 identifies the action 'remove a layer' and the method 'by its layer ID'. It distinguishes this tool from siblings that add, duplicate, or modify 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 states what it does but does not provide explicit guidance on when to use this tool over alternatives, nor does it mention prerequisites (e.g., layer existence). Usage context 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?

    No annotations are provided, so the description carries full burden for behavioral disclosure. It does not mention side effects (e.g., whether running a model modifies data, requires permissions, or has performance implications). It also fails to describe the return value or error behavior, which is critical for a run command.

    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, zero wasted words. Front-loaded with the core purpose, followed by necessary parameter clarification. Highly 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 description covers identification of the model and parameter mapping but omits crucial context such as return value, success/failure indication, and whether the tool is destructive or safe. Given no output schema and no annotations, this is only partially 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?

    Schema description coverage is 0%, but the description adds meaningful context: it clarifies that 'model' accepts a registered id or .model3 file path, and 'parameters' maps input names to values with examples (layer ids/paths, numbers). This compensates well for the lack of 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 it runs a Processing model, specifying two distinct ways to identify the model (by registered id or .model3 file path). This differentiates it from sibling tools like execute_processing (which runs individual algorithms) and list_processing_models (which lists models). The verb 'run' and resource 'Processing model' 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 Guidelines3/5

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

    The description implies usage for running pre-existing models but does not explicitly state when to use this tool versus alternatives like execute_processing or execute_processing_batch. No when-not or alternative guidance is provided, leaving the agent to infer context from sibling tool names.

    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 idempotentHint=true. The description adds context about CRS handling but does not disclose other behavioral traits (e.g., immediate effect, animation, or interaction with other tools).

    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, front-loaded sentences with no wasted words. Every sentence 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?

    For a simple setter with no output schema, the description is adequate. It could mention the return value (likely void) or the effect on the canvas, but overall it's sufficient given the tool's simplicity.

    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 explains the optional 'crs' parameter but provides no documentation for the four required coordinates (xmin, ymin, xmax, ymax), leaving their meaning and format to inference.

    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') and the resource ('map canvas extent'), distinguishing it 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?

    The description implies usage (set the extent) but provides no explicit guidance on when to use this tool vs alternatives (e.g., 'zoom_to_layer'), nor any when-not-to-use conditions.

    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 destructiveHint=true, so the description adds the return count but does not elaborate on what exactly is destroyed (e.g., irreversible, permissions needed). It provides minimal behavioral context 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?

    Two concise sentences, no filler. The first sentence states purpose, the second provides an example and return value. 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?

    The tool is relatively simple (2 params, no output schema), and the description covers purpose, a usage example, and return count. However, it omits common context like what layer_id refers to and error handling.

    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 compensates by giving an example format for 'updates', but it does not explain 'layer_id' or the full structure of the nested objects. The example adds some meaning but is incomplete.

    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 ('Update') and resource ('feature attributes'), distinguishing it from sibling tools like add_features, delete_features, and field_calculator. The example further clarifies the specific 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 provides a usage example but does not specify when to use this tool versus alternatives like field_calculator or execute_sql. There is no 'when not to use' or exclusion 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?

    Discloses that it runs one algorithm per param dict and returns per-run results with success/error status. However, with no annotations, the description could further explain synchronous execution, error handling, or potential side effects.

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

    Conciseness5/5

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

    Two concise sentences, front-loaded with the core action. 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?

    Adequate for a simple batch tool, but missing details on parameter structure, error behavior, and output format beyond mention of index and status. Could be more complete given 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?

    Schema description coverage is 0%. The description adds that parameters_list contains per-run dicts, but does not explain the algorithm parameter or expected keys in each dict. Minimal enrichment beyond 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 (run one algorithm per parameter dict) and the resource (parameters_list). Distinguishes from sibling tools like execute_processing which handles single runs, and run_model which focuses on pre-built models.

    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?

    Explicitly states when to use: for applying the same operation over many inputs in a single round-trip. Does not explicitly mention alternatives or when not to use, but the purpose is clear enough to guide selection.

    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. The description adds context about the 'limit' parameter behavior, including that '-1 for all' returns all values. This is useful but does not disclose significant additional 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 extremely concise with two efficient sentences. It front-loads the core purpose and provides key usage detail without any 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 presence of an output schema (documenting return values) and readOnlyHint annotation, the description covers the essential: what it does, how to use limit, and a typical scenario. It could mention that it scans all features or be more explicit about the field's origin, but it's largely complete for its 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?

    Schema description coverage is 0%, so the description must compensate. It explains the 'limit' parameter in a helpful way ('-1 for all') and implies 'field' as the target. However, it omits 'layer_id' entirely, leaving its purpose unclear despite being required. The description adds some value but incomplete 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 'Return the distinct values of a field,' specifying a precise verb and resource. It distinguishes the tool from siblings like get_field_statistics or get_layer_features by focusing on unique values rather than statistics or general 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 mentions it is 'Useful before building categorized symbology or filters,' giving a contextual use case. However, it does not explicitly state when not to use this tool or name alternatives, leaving usage guidance implicit 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?

    No annotations are provided, so the description must fully disclose behavioral traits. It mentions writing a GeoTIFF to output_path and using reference_layer for grid/extent, but it does not clarify whether the output is loaded as a new layer in QGIS, what happens if the file already exists, or error handling. This leaves significant gaps for a computational 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 three sentences, each adding value: defining the tool, providing usage syntax, and specifying output behavior. It is front-loaded and contains no redundant 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 tool has no output schema, so the description should explain return values. It does not mention whether the result is returned or only written to disk. It also lacks details on expression validation or side effects. While it covers key inputs and output format, gaps remain regarding the full behavior from an AI agent's perspective.

    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%, so the description compensates fully by explaining the expression format with an example, the output_path as a GeoTIFF file, and the optional reference_layer parameter including default behavior. All three parameters are given 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 it performs band math via the QGIS raster calculator, which is a specific verb+resource combination. It provides an expression syntax example and distinguishes itself from sibling tools like field_calculator by focusing on raster band 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 explains how to reference layers and the output format, but it does not explicitly state when to use this tool versus alternatives like execute_processing or field_calculator. Implicit guidance is provided through the expression syntax, but clear when/when-not is missing.

    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 idempotentHint annotation indicates the tool can be safely called multiple times. The description does not add further behavioral context (e.g., whether the order is persisted, if it triggers a redraw). With annotations providing basic safety, a score of 3 is appropriate.

    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 sentences with no extraneous words. 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 parameter and no output schema, the description covers the parameter semantics and overall function. It lacks details on error handling or prerequisites, but the tool is straightforward.

    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 lacks descriptions for the parameter, but the tool description explains that 'layer_ids' is an ordered list from top to bottom, adding meaning beyond the schema type 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 clearly states the action ('set') and the resource ('explicit layer draw order'), and specifies the order direction ('from top (drawn last) to bottom'). This is specific and distinguishes it from sibling tools that modify layer properties or visibility.

    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 guidelines are provided about when to use this tool versus alternatives like 'move_layer_to_group' or 'set_layer_visibility'. There is no mention of prerequisites 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?

    No annotations provided. The description discloses the basic action but omits side effects like overwriting existing bookmarks or confirmation of success.

    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 action, no redundancy. Every word 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?

    Lacks details on return value, error conditions, and group parameter. For a simple add operation, somewhat complete but could be improved.

    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 has 0% description coverage. The description explains name, extent components, and CRS, covering 6 of 7 parameters. The optional 'group' parameter is not mentioned.

    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 'Add a spatial bookmark' with a specific verb and resource. It distinguishes from sibling tools like remove_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 Guidelines3/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 or preconditions. It only states what to provide, not when it's appropriate.

    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 burden. It states that the tool adds a picture/SVG to a layout and mentions position/size in mm, but does not disclose error handling for missing files, overwriting behavior, or 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.

    Conciseness5/5

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

    The description is two sentences long with no waste. It front-loads the core purpose and adds essential parameter context efficiently.

    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 no output schema, no annotations, and 6 parameters with 0% schema description, the description covers the core purpose and key parameter info (path, mm units) but lacks details about layout_name, file restrictions, and behavior. It is brief for a tool with this many parameters.

    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 parameter descriptions in schema). The description adds that path is an image/SVG file path and that position/size are in mm, but does not explain layout_name (required) or clearly map each parameter (x, y, width, height) to their roles. This is 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 the verb 'Add' and the resource 'picture or SVG (logo, north arrow) to a print layout'. This distinguishes it from sibling tools like add_layout_label or add_layout_map 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 provides context on when to use the tool (adding images or SVGs to layouts) and mentions that path is an image or SVG file path. However, it does not explicitly state when not to use it or provide alternatives, but the purpose is specific enough that it's 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 (readOnlyHint=true). The description adds value by specifying the exact labeling attributes returned (enabled state, field, font size, color), which helps the agent understand what to expect 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 a single, front-loaded sentence with no unnecessary words. It efficiently communicates the tool's purpose and output.

    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 presence of an output schema, detailed return value description is unnecessary. The description covers what the tool does and what it returns. However, it could mention error handling (e.g., invalid layer_id) or behavior when labeling is not enabled.

    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 0% description coverage, and the description does not elaborate on the 'layer_id' parameter. While the parameter name is self-explanatory, the description should compensate for missing schema documentation, which it fails to do.

    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 labeling configuration of a vector layer, listing specific properties (enabled state, field, font size, color). The verb 'get' and resource 'layer labeling' are precise, and it implicitly distinguishes from the sibling 'set_layer_labeling'.

    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 provide explicit guidance on when to use this tool versus alternatives, such as 'set_layer_labeling'. Usage is implied as a getter, but there is no mention of prerequisites or contexts where it would be inappropriate.

    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 no further behavioral details beyond stating it 'gets info'. Since annotations carry the behavioral burden, the description does not add extra value but 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?

    The description is a single sentence that concisely conveys the tool's purpose and key outputs. Every word is informative, with no 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 presence of an output schema (which documents return values), the description's mention of specific fields complements it well. Annotations cover the read-only nature. The description is sufficiently complete for a simple retrieval 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 has 0% description coverage, but the description mentions the parameter 'plugin_name' as the plugin's name. This provides basic clarification, though it lacks details on valid values or format. It adds some 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 clearly states the action 'get', the resource 'detailed info for a specific plugin', and lists the specific fields returned (name, enabled, version, description, author, path). This distinguishes it from sibling tools like 'list_plugins' which 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 Guidelines3/5

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

    The description does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. The usage is implied from the tool's purpose, but no direct instructions are given.

    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 description restates the read-only nature already indicated by the readOnlyHint annotation, but adds no further behavioral context such as performance implications or limitations.

    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, clear sentence with 14 words that immediately conveys the tool's function. 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?

    For a simple read-only getter with no parameters and an existing output schema, the description fully informs the agent about what data is 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 input schema has zero parameters, so the baseline is 4. The description adds no parameter information, which is acceptable as there are none to describe.

    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 verb 'Get', the resource 'project-level variables', and clarifies they are key-value pairs from Project Properties. This clearly distinguishes it from other get tools like get_project_info or 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 retrieving project variables but provides no explicit guidance on when to use this tool versus alternatives, 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?

    No annotations are provided, so the description carries the full burden. It explicitly states that the tool does not reproject data, a key behavioral trait. It also provides an example CRS value ('EPSG:4326') for clarity. However, it does not mention whether the operation is reversible or if any permissions are needed, but for a simple CRS assignment, this level of transparency 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 extremely concise: two short sentences. The first sentence states the action, the second clarifies what it does NOT do. No unnecessary words. Front-loaded with the core verb and resource.

    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 2 parameters and no output schema, the description covers the essential behavior (what it does, what it doesn't do). It gives a practical example for the CRS parameter. It could be more complete by clarifying that layer_id must refer to an existing layer, but that is reasonable to assume. The description is largely sufficient for the tool's simplicity.

    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%, meaning no parameter descriptions in the schema. The tool description only mentions 'crs' with an example ('EPSG:4326') but does not describe 'layer_id' or provide any format or constraints. With only 2 parameters, the description should compensate fully, but it partially fails for 'layer_id'.

    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's action: 'Set the CRS of a layer (e.g. 'EPSG:4326').' It also explicitly distinguishes from reprojection: 'This does NOT reproject data — it only changes how the layer's coordinates are interpreted.' This differentiates it from siblings like transform_coordinates or set_project_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 provides context for when to use the tool (changing CRS interpretation without reprojection) but does not explicitly mention when not to use it or name alternative tools. The 'does NOT reproject' note implicitly guides usage, but direct comparison with siblings like set_project_crs or transform_coordinates is absent.

    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. Description adds that it returns parse errors and column names, and optionally tests against layer fields. No contradictions, and provides 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 with no redundant information. Primary purpose is front-loaded, and each sentence adds distinct 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, description covers input and output adequately. Missing details like expression syntax or field name patterns, but not critical for basic 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?

    Schema has 0% description coverage. Description only loosely connects layer_id to 'test against a layer's fields' and does not explain the expression parameter format or constraints. Insufficient compensation 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?

    The description clearly states the tool validates a QGIS expression and lists the return values (validity, errors, column names). It distinguishes from similar tools like 'evaluate_expression' which executes the expression.

    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 hints at optional testing against layer fields but does not explicitly guide when to use this tool versus alternatives (e.g., evaluate_expression). No when-not or exclusion criteria 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?

    The annotation idempotentHint: true indicates safe repetition. The description adds that it zooms to full extent, implying a read-like operation without side effects. 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?

    One sentence, front-loaded with verb and resource, no redundant 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's simplicity, the description covers the core behavior. Missing details like error handling (layer not found) or exact behavior, but still 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 description coverage is 0% and the description does not explain what layer_id refers to (e.g., name, ID). For a simple tool this is a gap, but the single parameter is self-explanatory given the 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 action (zoom), the resource (map canvas), and the target (full extent of specified layer). It distinguishes well from siblings 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 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 versus alternatives like set_canvas_extent or set_canvas_scale. The purpose is clear, but an agent could benefit from context on typical use cases.

    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, and the description aligns with that. However, the description does not add extra behavioral context beyond what annotations provide, such as behavior when no layer is active. It meets the baseline but does not exceed it.

    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 extraneous information. Every word is justified.

    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 no parameters and an output schema, the description is largely complete. It could briefly mention what happens if no layer is active (e.g., returns null), but this is a minor 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?

    The tool has no parameters, so the description does not need to add parameter meaning. According to the calibration, zero parameters baseline is 4. The description 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 tool retrieves the currently active layer in the QGIS layer panel, using a specific verb and resource. It effectively differentiates from sibling tools like get_layers or set_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 implies usage when the current active layer is needed but provides no explicit guidance on when to use versus alternatives or when not to use. Given the tool's simplicity, this is adequate but lacks explicit direction.

    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 adds specific statistics (count, sum, mean, min, max, stdev) and conditional behavior for non-numeric fields. It does not cover error conditions 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.

    Conciseness5/5

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

    Two concise sentences with no redundant information. 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 tool's simplicity and the presence of an output schema, the description provides adequate context for expected behavior. It does not detail return structure, but that is handled by the output schema.

    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 clarifies that field_name should be numeric for full statistics, but does not explain layer_id or provide format details. With 0% schema description coverage, it 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 states the verb (compute) and the resource (aggregate statistics for a numeric field). It also distinguishes behavior for non-numeric fields, which sets it apart from siblings like get_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 Guidelines3/5

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

    The description implies usage for numeric fields but does not explicitly say when to use this tool versus alternatives, nor does it provide when-not or 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?

    The description adds value beyond the readOnlyHint annotation by specifying that the tool returns feature IDs and a count. 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?

    The description is concise (two sentences), front-loaded with the verb and resource, and contains no filler or redundant 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?

    Given the tool's simplicity, the description covers the essential purpose and return format. However, it lacks details on behavior when no selection exists or performance implications.

    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 provides no additional explanation for the layer_id parameter. While the parameter is self-explanatory, adding context like 'the ID of the layer whose selection to retrieve' would improve clarity.

    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 ('current selection for a layer'), and the return value ('feature IDs and count'), distinguishing it from sibling tools like select_features and clear_selection.

    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 versus alternatives like select_features or clear_selection. Usage context is implied but not clarified.

    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 does not need to disclose safety. It adds that the tool returns id, name, provider, but omits details like pagination, sorting, or any limitations. With annotations covering the safety profile, the description provides modest additional 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 two concise sentences. The first sentence states the action and parameters; the second describes the output. No unnecessary words or repetition. It is front-loaded with the key verb and resource.

    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 (2 optional params, output schema exists), the description is largely complete. It covers purpose, parameters, and return fields. However, it does not mention the absence of required parameters, default behavior (returns all?), or any ordering/limits. These are minor gaps for a search 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 description coverage is 0%, so the description must add meaning. It does so by stating 'by keyword and/or provider', clarifying that 'search' is the keyword and 'provider' is a filter. This compensates for the lack of schema descriptions, though it does not specify accepted formats or providers.

    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 'Search for processing algorithms by keyword and/or provider. Returns id, name, provider for each match.' This clearly specifies the verb (search/list), resource (processing algorithms), and what it returns. It distinguishes from sibling tools like 'get_algorithm_help' or 'list_processing_models' by the filtering mechanism and return fields.

    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 using this tool to search/list processing algorithms with optional filters, but it does not provide explicit guidance on when not to use it or mention alternative tools for related tasks (e.g., get_algorithm_help for details, list_processing_models for models). The context is clear but lacks exclusions or direct 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?

    The idempotentHint annotation already indicates safe repeated calling. The description adds that the tool modifies scale and rotation, but does not disclose any other behavioral traits. With annotations covering safety, 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?

    Two sentences with no wasted words. The purpose and parameter details are front-loaded, making it easy for an agent to quickly understand and use the 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 simple setter with no output schema and idempotentHint, the description covers input parameters adequately. It does not mention return value or side effects, but those are not critical for a straightforward 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 description coverage is 0%, but the description adds valuable semantics: scale as denominator (e.g., 50000 for 1:50000) and rotation in degrees (0-360). This compensates for the schema gap, though minor details like expected value ranges are 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 tool sets the map canvas scale and/or rotation. The verb 'set' and resource 'map canvas scale and/or rotation' are specific, and the tool is well-distinguished from siblings like get_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?

    The description provides guidance on how to provide scale and rotation values, but does not offer explicit when-to-use or when-not-to-use guidance relative to alternatives like set_canvas_extent.

    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 full burden. It discloses that no output_path results in an in-memory layer, but does not mention side effects, read-only nature, or potential destructive actions. This is adequate but not comprehensive.

    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 main purpose. Every part is informative, with no redundant text. It efficiently packs parameter details without verbosity.

    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 7 parameters, no output schema, and no annotations, the description covers core behavioral aspects and parameter options. It lacks return value explanation and use-case context, but given the tool's complexity, it is reasonably 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?

    With 0% schema coverage, the description must explain parameters. It explains predicates (with mapping), method, join_fields, and output_path. However, it omits explanation for target_layer, join_layer, and prefix. This adds significant value for 4 out of 7 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 'Join attributes by location' and includes the native algorithm name 'joinattributesbylocation'. This distinguishes it from table joins like add_table_join among siblings.

    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. It implies spatial location-based joining but lacks exclusions or context for when other tools like add_table_join might be preferred.

    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 repeat that. It adds value by specifying input/output format behavior, but does not disclose other behavioral traits like error handling or CRS format constraints.

    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 wasted words. Key information is front-loaded. Every sentence provides necessary detail without 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?

    Given an output schema exists, return value explanation is not needed. The description covers the main parameters and input formats, though a bit more detail on CRS format would improve completeness.

    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 compensates by explaining bbox, point, and points parameters (e.g., 'point {x, y}'). However, it does not specify the format for source_crs and target_crs (e.g., EPSG codes).

    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 'Transform coordinates between CRS' and specifies the accepted input formats (point, point list, bbox) and that output matches input format. This clearly distinguishes it from siblings 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?

    The description implies use for coordinate transformation but provides no explicit when-to-use or when-not-to-use guidance, nor any mention of 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?

    Annotations already declare readOnlyHint=true, showing it's a safe read. The description adds that it returns scale, rotation, and magnification, but does not disclose any additional behavioral traits 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 with purpose, and no redundant information. Every word earns its place.

    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 description fully covers the tool's purpose and return values for a simple read operation. An output schema exists, so return format is covered elsewhere; no additional context 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 0 parameters, so no schema coverage needed. The description adds meaning by listing what the tool returns (scale, rotation, magnification), which goes beyond the empty 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 'Get' and clearly identifies the resource as 'current map canvas scale, rotation, and magnification factor'. This distinguishes it from siblings like 'get_canvas_extent' (extent) and 'set_canvas_scale' (write 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 for reading current canvas state, but does not explicitly state when to use this tool over alternatives like 'get_canvas_extent' or 'get_canvas_screenshot'. 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.

  • Behavior4/5

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

    Annotations already declare readOnlyHint=true, so the agent knows it's read-only. The description adds that the tool returns spatial extent and CRS, providing useful behavioral context beyond the 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?

    The description is a single sentence with no wasted words. It front-loads the key action ('Get the spatial extent') and specifies the outputs succinctly.

    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?

    An output schema exists, so return values are documented elsewhere. For a simple read-only query with one parameter, the description provides adequate context. No error handling or prerequisites are mentioned, but they are not critical for such a tool.

    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%, placing the burden on the description. However, the description does not explain the parameter 'layer_id' (e.g., format, how to obtain it). The tool name and purpose hint at the layer reference, but no explicit guidance is given, so the agent must infer meaning from schema alone.

    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 spatial extent (bounding box) and CRS of a layer. This specific verb+resource combination distinguishes it from siblings like get_layer_crs (only CRS) and get_canvas_extent (canvas extent, not layer).

    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?

    While the description implies usage for obtaining a layer's bounding box and CRS, it does not explicitly state when to use this tool versus alternatives (e.g., get_layer_crs, get_canvas_extent). The context is clear but lacks explicit exclusions or alternative references.

    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 output format (flat dicts, _fid, attributes, optional geometry), parameter constraints (limit max 50, default 10), and paging behavior. This helps the agent understand what to expect from the tool.

    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) and packs significant information. It is front-loaded with purpose and then details. A slight improvement could be using bullets for readability, but it remains effective without extraneous content.

    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 presence of an output schema (not shown but implied) and the readOnlyHint, the description covers output format, parameter details, and constraints. It lacks information on error handling for invalid expressions or edge cases, but overall provides sufficient context for a read-only feature retrieval 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 compensates well by explaining most parameters: limit (max 50, default 10), offset (paging), expression (with QGIS examples), and include_geometry (optional, _geometry key). However, it does not explain the required layer_id 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?

    The description clearly states 'Get features from a vector layer', establishing a specific verb-resource pair. It distinguishes itself from sibling tools like add_features, delete_features, and select_features by focusing on reading features. The mention of return format (flat dicts with _fid and attributes) further clarifies the purpose.

    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 some context about when to use the tool (e.g., with expression filter and paging), but does not explicitly state when not to use it or compare it to alternatives like get_selection or identify_features. The 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.

  • Behavior3/5

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

    The annotation readOnlyHint=true already indicates no destructive side effects. The description adds context that themes store visible layers but does not disclose any additional behavioral traits beyond what the 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 extremely concise: two sentences with no redundant information. The purpose is front-loaded in the first sentence, making it immediately clear what the tool does.

    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, a readOnly annotation, and the presence of an output schema, the description fully covers the tool's behavior. It explains what a map theme is, which is all the context needed for a simple getter.

    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 the schema coverage is 100%. The description adds meaning by defining what a map theme is, which goes beyond the empty schema. 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 verb 'Get', the resource 'map themes', and explains that themes are visibility presets. It distinguishes from sibling tools like add_map_theme and apply_map_theme by focusing on retrieval only.

    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 versus alternatives is provided. Usage is implied by the name and description, but there is no mention of when not to use it or when to prefer siblings like apply_map_theme.

    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 no new behavioral traits beyond listing the metadata fields. It does not contradict annotations and provides moderate context about what is retrieved.

    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 that efficiently communicates the tool's purpose and output without any redundant or filler content.

    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, a read-only annotation, and the existence of an output schema, the description sufficiently covers what the tool does. The listed metadata fields adequately inform the agent of the return content.

    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 adds no parameter details, but the baseline for no parameters is 4 per guidelines. No additional explanation needed.

    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 'Get' and the resource 'current project metadata', listing exact fields (filename, title, CRS, layer count, summary of layers). This distinguishes it from sibling tools that retrieve individual layer info or other project aspects.

    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 tells what the tool does but does not explicitly state when to use it over siblings like get_layers or get_active_layer. Usage is implied by its purpose, but no exclusion criteria or alternative suggestions are 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 declare readOnlyHint=true, and the description adds specific return items (version, profile path, plugin count), 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?

    Single sentence with key information front-loaded; no waste, highly 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 parameterless tool with an output schema, the description fully covers what the tool returns, and 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?

    No parameters; schema coverage is 100% trivially. Baseline of 4 is appropriate as no parameter explanation is needed.

    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 'Get QGIS version, profile path, and plugin count', providing a specific verb and resource with distinct fields, distinguishing it from numerous sibling get_ tools.

    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 get_plugin_info or get_project_info; no use cases or exclusions specified.

    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. The description adds that the tool returns names and page counts, which is beyond annotations, but does not disclose other behavioral traits like performance or ordering. It is adequate but 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?

    The description is a single, front-loaded sentence with no wasted words. Every word contributes to clarity.

    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 list tool with no parameters and an output schema, the description is complete. It covers what the tool does and the information 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?

    There are zero parameters, so schema coverage is 100%. The description does not need to add parameter info. The baseline for no parameters is 4, and the description 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 (List), the resource (print layouts), the scope (current project), and what is returned (names and page counts). It distinguishes this tool from siblings like 'get_layout_info' or 'create_layout' which perform 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 does not provide explicit guidance on when to use this tool versus alternatives. While it is clear that this tool is for listing, no context is given for when not to use it or what the alternatives might be.

    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 marks the tool as destructive (destructiveHint: true). The description does not provide additional behavioral details such as irreversibility or error handling, so the added value 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 a single, clear sentence that conveys the essential information without any superfluous words 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?

    The description covers the inputs and the deletion action. It lacks details on output or error behavior, but given the tool's simplicity and the presence of annotations, it is largely complete for an AI agent to 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?

    With 0% schema description coverage, the description compensates by explaining the 'fids' and 'expression' parameters, their types, and mutual exclusivity. 'layer_id' is not described but its purpose is self-evident from the 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 'delete' and the resource 'features', and specifies two methods (fids or expression) to identify which features. It distinguishes from siblings like 'update_features' by focusing on deletion.

    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 instructs to provide either 'fids' or 'expression', not both, which guides parameter usage. However, it lacks explicit guidance on when to use this tool versus alternatives like 'remove_layer' or 'delete_field'.

    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 mark the tool as idempotent. The description adds behavioral context on file output: single vs multiple files per format. It does not detail overwrite behavior or directory requirements, but overall adds meaningful transparency 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?

    Two sentences, zero filler. Front-loaded with the core purpose, then key details on formats and prerequisite. 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?

    Given no output schema and 4 parameters, the description covers the main behavior and format details, plus the prerequisite. It lacks specifics on dpi, layout_name, and output path existence/permissions, but is sufficient for basic 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?

    With 0% schema description coverage, the description compensates partially: it explains format (pdf vs images) and output_path (file vs directory). However, it omits layout_name and dpi (which has a default of 300), leaving these parameters undocumented.

    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 exports a configured atlas, distinguishes PDF vs image format output behavior, and mentions the prerequisite configure_atlas. Among siblings, it is distinct from export_layout and configure_atlas.

    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 states to call configure_atlas first, and explains format choices (PDF for single file, images for per-feature). However, it does not mention when to use this tool over alternatives like export_layout.

    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 agent knows it's safe. The description adds behavioral context by listing the specific return fields (EPSG code, description, etc.), which goes beyond 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?

    Single sentence that front-loads the purpose and then efficiently lists the return components. 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?

    For a simple read tool with one parameter and an output schema (implied), the description is complete. It covers what the tool does and what it returns.

    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 does not explain the 'layer_id' parameter beyond loosely mentioning 'of a layer'. It fails to compensate 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?

    Clearly states the verb 'get' and the resource 'CRS of a layer', and specifies the exact information returned (EPSG code, description, whether geographic, PROJ4 string). This distinguishes it from siblings 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 Guidelines4/5

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

    The description implies usage for reading CRS information, but does not explicitly state when to use vs alternatives or provide 'when not' guidance. However, the purpose is clear enough that an agent can infer 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?

    Annotations already declare readOnlyHint=true. The description adds that results are filtered by level/tag and returned newest first, providing useful behavioral context beyond read-only status.

    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 plus a short clarifying phrase. It front-loads the purpose and includes essential details without extraneous 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 existence of an output schema, the description need not explain return structure. It adequately covers filtering and sorting for a simple retrieval tool, though it could mention the 'limit' parameter.

    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 explains 'level' (with possible values) and 'tag' (with example), but does not mention the 'limit' parameter. Schema coverage is 0%, so the description partially compensates but misses one 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?

    The description clearly states 'Get QGIS message log entries' with filtering options, distinguishing it from unrelated sibling tools like 'get_layers' or 'execute_processing'. The verb 'Get' and resource 'message log' 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 Guidelines4/5

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

    The description lists filter parameters and sorting order, but does not explicitly state when to use this tool versus alternatives. However, no other sibling tool retrieves logs, so usage is implicitly 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 provide readOnlyHint=true, and the description's 'Read' aligns. The description adds behavioral context beyond annotations by specifying the key path format and providing an example, which helps the agent understand the expected input format. However, it does not disclose behavior on invalid keys or return structure, but the presence of an output schema mitigates this.

    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 wasted words. The example is integrated seamlessly, providing clarity without extra verbiage. Every word serves a purpose, and the structure immediately communicates the tool's core function.

    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 (one parameter, output schema present, strong annotations), the description is mostly complete. It covers purpose, parameter format, and is consistent. Minor gaps include no mention of error handling or relationship to set_setting, but the output schema likely addresses return value documentation.

    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, but the description compensates by explaining the 'key' parameter format ('by key path') and giving a concrete example. This adds meaning beyond the bare type definition in the schema, though it could further specify constraints (e.g., case sensitivity) but is sufficient for a simple string 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?

    The description clearly states the action ('Read'), the resource ('a QGIS setting'), and the method ('by key path'), with an example. This directly distinguishes it from sibling tools like set_setting (write) and other getters (e.g., get_qgis_info). The verb+resource format 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 Guidelines3/5

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

    The description implies usage for reading settings and provides a concrete key path example, but does not explicitly state when to use this tool versus alternatives (e.g., set_setting for writing, get_project_variables for project-specific settings). No when-not or exclusion criteria are mentioned, leaving the decision to the agent's inference.

    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 readOnlyHint=true; description adds details like tolerance and layer filtering but omits return format or behavior beyond the query.

    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 sentences, front-loaded with main purpose; each sentence adds value without 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?

    Lacks output format description (no output schema). For a map-click tool, users need to know what is returned (IDs, attributes, geometry).

    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 coverage, description fully explains each parameter: point (x,y CRS), tolerance (units, 0=exact), layer_ids (default visible vector), limit (caps per layer).

    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 identifies features at a point across layers, with a map-click analogue, distinguishing it from siblings like get_layer_features and select_features.

    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 context (map-click analogue, tolerance, layer_ids, limit) but does not explicitly state when not to use or name specific 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 indicate readOnlyHint=true, and the description adds that it returns specific fields and focuses on the 'model' provider. No contradictions; description enriches context 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?

    Two sentences, no wasted words. First sentence covers purpose and output, second gives actionable usage direction. Front-loaded and efficient.

    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 (implied), the description is complete: it specifies the resource, returned fields, and next step (run_model). 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, and schema coverage is 100%. The description does not need to add parameter details; baseline for 0 parameters is 4.

    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 'List registered Processing models (the 'model' provider)' with a specific verb and resource, and mentions returned fields (id, name, group). It differentiates from sibling tools by specifying the provider, but could be more explicit about what constitutes a 'model' vs an 'algorithm'.

    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 'run_model' for execution, which helps distinguish from the listing action. However, no explicit 'when not to use' or comparison with similar listing tools like 'list_processing_algorithms'.

    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 describes the action ('Set symbology') but does not disclose behavioral traits such as whether the style is replaced entirely, if changes are reversible, or any side effects like canvas refresh. The description is functional but lacks deeper 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: two sentences with clear colons and bullet-like structure. Every part adds value, and it is front-loaded with the primary action. No 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?

    Given the tool's complexity (5 params, no output schema, no annotations), the description covers most relevant aspects. It explains the main parameters and usage conditions. Minor gaps: no mention of error states, prerequisites (e.g., layer must exist), or that the tool modifies the layer's visual representation (implied but not explicit).

    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% coverage, so the description must add meaning. It explains style_type options, that field is required for categorized/graduated (and defaults to null), color_ramp as QGIS ramp names, and classes default to 5. It does not explain 'layer_id', but overall 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 'Set symbology' and explains the three style types ('single', 'categorized', 'graduated'), distinguishing it from sibling tools like 'apply_style_qml' which applies QML style files. 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 Guidelines4/5

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

    The description provides clear guidance on when to use each style_type ('field required for categorized/graduated') and includes defaults (classes=5, color_ramp='Spectral'). However, it does not explicitly state when NOT to use this tool versus alternatives like 'apply_style_qml' or 'set_layer_property'.

    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 readOnlyHint annotation already indicating a safe read operation, the description adds value by listing exactly what diagnostics are reported (version, providers, clients, status). It does not contradict annotations and provides useful behavioral context beyond the annotation alone.

    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: the first states the purpose concisely, the second lists the diagnostic outputs. Every sentence adds value with no redundant or filler content.

    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, presence of an output schema, and a read-only annotation, the description provides all necessary context for an agent to select and invoke the tool correctly. It covers what the tool does and what it reports without needing further details.

    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 and 100% schema description coverage, so the description does not need to add parameter details. Baseline 4 is appropriate as the description is irrelevant to parameters but does not miss any requirement.

    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 resource ('QGIS MCP stack'), and lists concrete items reported (QGIS version, plugin/server version match, etc.). This clearly distinguishes the tool from sibling tools like get_qgis_info or get_plugin_info which provide individual pieces of information.

    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 this tool is for general health checks but does not explicitly state when to use it versus alternative diagnostic tools (e.g., get_project_info, get_processing_providers). No exclusions or alternative suggestions are 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. The description adds behavioral details about wildcard and substring matching, which is useful but does not cover case sensitivity or return format.

    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 waste. First sentence states purpose, second adds supporting detail. Perfectly 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 search tool with one parameter and an output schema, the description is complete. It covers pattern matching behavior without needing to explain return values.

    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 only defines name_pattern as a string with 0% coverage. The description adds meaning by explaining it supports fnmatch wildcards and substring matching, compensating 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 description clearly states the tool finds layers by name pattern using fnmatch wildcards and substring matching, distinguishing it from sibling tools like get_layers or get_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 implies usage for pattern-based layer search but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_layers for listing all layers).

    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 indicates safety. The description adds context that the tool returns both the map canvas extent and CRS, which is beyond what the annotation provides. No additional behavioral traits are needed, and there is 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?

    The description is a single, front-loaded sentence with no wasted words. It efficiently communicates 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?

    Given the tool's simplicity (no parameters, read-only, with an output schema), the description is complete. The presence of an output schema means return values need not be explained in the description. It covers the essential information.

    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 meaning beyond the schema. The schema has 100% coverage, and the description implies the output is the extent and CRS, which 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 'current map canvas extent and CRS', distinguishing it from siblings like get_canvas_scale (extent vs scale) and set_canvas_extent (read vs write). It is specific to the canvas, not layers or project.

    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 tool has no parameters and is read-only, so agents can infer it's safe to call anytime. However, the description lacks explicit guidance on when to use this over alternatives like get_project_info for CRS or get_layer_extent for layer extents. 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.

  • 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 response fields (IDs, names, types, visibility, type-specific info) and total_count, along with pagination behavior. 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 efficient sentences: first lists what is returned, second adds pagination and total_count. 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?

    Given the existence of an output schema, the description covers all essentials: what is listed (with types), pagination support, and total_count inclusion. No critical 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?

    With 0% schema description coverage, the description explains 'Use limit/offset for pagination', which adds meaning beyond the schema. It does not detail syntax but is sufficient for typical use.

    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 layers in the current project and specifies the returned information (IDs, names, types, visibility, type-specific info), distinguishing it from siblings like add_layer or 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 Guidelines3/5

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

    The description mentions pagination but does not explicitly guide when to use this tool versus alternatives like get_active_layer (single layer) or find_layer (search). There is no when-not-to-use or alternative naming.

    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 tool is known non-destructive. The description adds value by detailing the recursive nature and included fields, but doesn't further disclose edge cases or performance 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?

    The description is two sentences, front-loading the purpose and returning structure. No redundant 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?

    Given no parameters and an output schema (assumed), the description sufficiently covers what the tool returns and its structure. No missing context for an agent to select this 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 parameters, the input schema needs no additional explanation. The description correctly omits parameter details since there are none.

    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 full layer tree structure with groups and layers, and specifies return fields (type, name, visibility, children). This distinctively differentiates it from related siblings like get_layers (likely flat list) and get_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 implies usage for obtaining hierarchical layer organization, but does not explicitly state when to use it over alternatives like get_layers or get_active_layer. No when-not-to-use guidance or sibling comparisons are 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 declare readOnlyHint=true, and description adds that it returns 'pong,' making behavior clear. No contradictions. Additional context beyond annotations is small but sufficient.

    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, zero waste. Front-loaded with the action and outcome. Highly efficient.

    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 simplicity, no output schema needed beyond description. It fully explains purpose and result. Complete for its use case.

    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, so schema coverage is 100%. Baseline 4 is appropriate as description adds no param info but doesn't need to.

    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 checks connectivity to the QGIS plugin server and returns 'pong' if connected. This distinguishes it from sibling tools which are all about data manipulation or retrieval.

    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 guidelines on when to use or when not, but for a simple connectivity check, the need for such guidance is minimal. The description implies usage for verifying server connection.

    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 'Has access to QgsProject, iface, and core QGIS classes. Returns stdout/stderr,' providing useful behavioral context 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?

    Three sentences, no redundancy. First sentence states purpose, second gives guidance, third adds context. Efficient and 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?

    Given destructive hint, one parameter, and no output schema, the description covers purpose, environment, output type, and usage guidance, missing only error handling or limitations.

    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 description defines the parameter as 'arbitrary PyQGIS code' and mentions the execution environment, 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?

    States 'Execute arbitrary PyQGIS code' and explicitly distinguishes from siblings with 'Use for operations not covered by other tools.' Clear verb+resource+scope.

    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?

    Explicitly says when to use ('operations not covered by other tools'), but does not state when not to use or provide alternative names.

    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 context beyond the idempotentHint annotation by specifying that target_crs reprojects on export and filter_expression applies only to vector layers. It does not contradict annotations and provides useful behavioral details, though could mention overwrite behavior 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.

    Conciseness5/5

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

    The description is very concise: two sentences, front-loading the main purpose and then detailing key parameters. Every sentence adds value without 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?

    Given 4 parameters and no output schema, the description covers the essential aspects: export action, format derivation, reprojection, and filtering. It lacks mention of potential overwrite or that layer_id must be a valid project layer, but overall is adequately complete for its complexity level.

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

    Parameters4/5

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

    Schema description coverage is 0%, so the description must compensate. It explains the purpose of target_crs (reprojection) and filter_expression (vector-only subset), and that output_path extension determines format. Layer_id is implied. This adds significant 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 clearly states that the tool exports vector or raster layers to disk, with format derived from the output_path extension. It mentions target_crs for reprojection and filter_expression for vector-only subset, precisely differentiating it from sibling tools like export_layout or export_atlas.

    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 when to use this tool (to export a layer to a file) but does not explicitly tell when not to use it or mention alternatives. Sibling tools include export_layout and export_atlas, but the description does not distinguish them directly.

    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 adds valuable behavioral details: it is fast ('fast screenshot'), does not re-render ('no re-render'), and returns the image inline. 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 efficient sentences with no redundant words. Every sentence provides essential information: action, resource, key behavioral trait, and sibling differentiation.

    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 no parameters and no output schema, the description is mostly complete. It covers purpose, performance, and comparison. Potential minor missing detail: what exactly 'current map canvas widget' means, but it is implied.

    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. The description adds no parameter information, but with 100% schema coverage and zero parameters, the baseline of 4 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?

    Description uses specific verb 'grab a fast screenshot' and resource 'current map canvas widget', and explicitly distinguishes from sibling 'render_map' by stating it is 'Much faster than render_map' 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 a clear comparison with 'render_map' by stating 'Much faster than render_map', implying this tool is for quick screenshots without re-render. However, it does not explicitly state when not to use or list other 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 indicate readOnlyHint=true, so the description adds value by explaining that the tool evaluates to a scalar value and providing examples of supported expressions (aggregates, project variables, dates). It does not detail potential errors or return value types, but these are implied.

    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 first state the purpose, then differentiate from siblings. Every word contributes to clarity without 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?

    Given no output schema, the description adequately explains the result is a scalar value and gives examples. It does not cover error handling or edge cases, but for a straightforward read-only evaluator, this is sufficient. The differentiation from siblings adds completeness.

    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, but the description explains that 'expression' is a standalone QGIS expression and 'layer_id' is optional and adds layer scope. This adds meaningful context beyond the schema's raw properties.

    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 verb 'evaluate' and specifies the resource 'QGIS expression', clearly indicating the tool's action. It distinguishes itself from siblings 'validate_expression' and 'field_calculator' by explaining their 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 Guidelines5/5

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

    The description explicitly states when to use this tool versus alternatives: it evaluates expressions to scalar values, while 'validate_expression' only validates and 'field_calculator' operates per-feature. This provides clear usage 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?

    Annotations already indicate readOnlyHint=true, and the description adds the specific return fields (name, enabled status, version), which is helpful. No contradictions. The description does not mention any potential behavior like ordering or limits, but given the simple nature, 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?

    Two sentences: first states purpose and return fields, second explains the parameter. No redundant information, very efficient.

    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?

    Despite having an output schema, the description mentions the key return fields. For a simple read-only tool with one parameter, the description covers the essential information needed 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 coverage is 0%, meaning the schema provides no description for the parameter. The description fully compensates by explaining that 'enabled_only=true' lists only active plugins, adding clear semantics 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 lists installed QGIS plugins with specific attributes (name, enabled status, version). This distinguishes it from other tools like get_plugin_info, which likely provides more detailed information.

    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 purpose of the parameter 'enabled_only', telling the agent when to set it to true. However, it does not provide explicit guidance on when to use list_plugins versus alternatives like get_plugin_info.

    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, so the agent knows it's safe. The description adds valuable context about the content of each bookmark (name, group, extent, CRS), exceeding 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 two concise sentences with no wasted words. It front-loads the purpose and then adds details about the bookmarks.

    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 readOnlyHint annotation, and an output schema, the description is complete. It explains what the tool retrieves and the structure of each bookmark.

    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 is 4. The description adds meaning about what the tool returns, which is helpful 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 'Get spatial bookmarks from the project', using a specific verb and resource. It distinguishes itself from siblings like add_bookmark and remove_bookmark by focusing on retrieval.

    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 this tool is for retrieving bookmarks, but does not explicitly state when not to use it or provide alternatives. However, the context is clear given the sibling 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 specifying that it returns algorithm counts and active status, not just a list of names. This gives the agent a clear expectation of what the tool does. It does not mention any limitations or side effects, but the annotation covers the safety aspect.

    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 are front-loaded with the core action and examples. Every word serves a purpose, with no 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 tool has no parameters, is read-only (confirmed by annotation), and has an output schema (not shown but referenced), the description covers everything an agent needs: the resource, the information returned, and when to use it. It is complete for this simple 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 tool has zero parameters, so the schema provides full coverage. The description does not need to explain any parameters. With 0 parameters, the baseline is 4, and the description meets this standard.

    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 ('List'), the resource ('Processing providers'), and provides specific examples like native, gdal, grass. It also mentions the returned information (algorithm counts, active status), making the purpose unmistakable. It distinguishes from sibling tools like 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?

    The description explicitly tells when to use the tool: 'Use to diagnose missing algorithms.' This provides clear guidance on its intended context. While it doesn't mention when not to use it, the sibling tools cover specific cases, and the description is sufficient 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?

    No annotations provided, so description carries full burden. It discloses behavior: name collision suffixing, lazy resolution of algorithm hints, and response structure. Also mentions error reporting for bad parameters.

    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?

    Description is well-structured with sections and examples but slightly verbose. Front-loads purpose and warnings, and the spec format is clear. Could be slightly shorter while retaining all 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?

    Given the tool's complexity (6 parameters, nested structures) and presence of output schema, the description covers all critical aspects: input specs, step syntax, output handling, and response details. Complete for effective use.

    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 coverage is 0%, but description compensates by detailing the structure of inputs, steps, and outputs, including types, referencing syntax, and expression semantics. Adds significant value 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 explicitly states the tool's purpose: 'Build QGIS Processing Model (.model3) from structured spec; save to user models folder, register in Processing Toolbox.' It clearly distinguishes from siblings like execute_processing by focusing on model creation.

    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?

    Provides explicit guidance: 'Only call needed... do NOT call list_processing_algorithms or get_algorithm_help first.' Also explains how to pass algorithm identifiers and handle ambiguous hints, helping the agent avoid unnecessary calls.

    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 indicate read-only (readOnlyHint: true). Description adds context about point format, CRS requirement, and band handling, all consistent with read-only behavior. 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?

    Three concise sentences: purpose, points format, usage tips. Front-loaded and efficient with 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?

    Given the tool's simplicity, output schema exists (no need to describe returns), and input parameters are well explained with usage guidance, the description is complete for an agent to use correctly.

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

    Parameters4/5

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

    Schema coverage is 0%, so description must compensate. It explains points format and band omission. Raster_layer is not detailed but is self-explanatory. Adds significant value beyond 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 ('Sample raster pixel values at points') and the resource (raster). It distinguishes from sibling tools by focusing on point-based sampling, unlike zonal statistics or raster info.

    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 an alternative ('Use transform_coordinates first if your points are in a different CRS') and provides usage details ('Omit 'band' to sample all bands').

    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/lefcgis/qgis-mcp'

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