Skip to main content
Glama
Handigraphs

handigraphs-stats-api-mcp

Official
by Handigraphs

update_saved_filter

Destructive

Replace an existing saved filter after reading its current revision, using optimistic concurrency so conflicting edits fail instead of overwriting.

Instructions

Replace an existing owned filter only after explicit user confirmation. Read it first and supply its current revision; conflicting edits fail without overwrite. A tracked filter cannot be replaced: offer a new copy, never create one silently. Does not modify tracking. Requires filters:write.

Input Schema

NameRequiredDescriptionDefault
nameYes
ruleYesNative saved-filter rule. Discover canonical units and support; preserve grouping, comparisons and sample context. This is not query_stats numeric filter syntax.
revisionYes
filter_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already mark this destructive and non-idempotent, and the description adds substantial context beyond them: optimistic-concurrency behavior (stale revision fails, no silent overwrite), a hard restriction on tracked filters, an explicit statement that tracking is untouched, and the required filters:write scope.

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?

Five short sentences, each load-bearing, with the core action and its confirmation requirement front-loaded before the edge cases (revision conflict, tracked filters, permission). No filler 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?

For a destructive mutation with no output schema, the description covers confirmation, concurrency, tracking restrictions and authorization, which is nearly everything an agent needs. The only mild gap is that it never indicates what a successful call returns or how failure is surfaced beyond 'conflicting edits fail'.

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 low (25%), so the description must carry meaning; it does explain the most consequential parameter, revision, as a concurrency token that must match the current server state or the write fails. It also implies name/rule are the full replacement definition, though it adds no field-level detail beyond the schema's own rule 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?

States a specific verb (replace) and resource (an existing owned saved filter), and the word 'Replace' plus 'Read it first' cleanly separates it from save_filter (create) and get_saved_filter (read). Scope ('owned') and effect (full replacement, not a merge) are unambiguous.

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?

Gives explicit preconditions and sequencing: read the filter first, supply its current revision, and require explicit user confirmation before calling. It also states a when-not-to-use case (a tracked filter cannot be replaced; offer a new copy instead), which routes the agent correctly against save_filter.

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