Skip to main content
Glama
Handigraphs

handigraphs-stats-api-mcp

Official
by Handigraphs

update_saved_research

Destructive

Replace an owned Angles idea's name and settings only after explicit user confirmation, using its current revision to prevent silent overwrites.

Instructions

Replace an owned Angles idea's name/settings only after explicit user confirmation, using its current revision. Does not change the linked filter or archive an expired report. Reload after a conflict; never silently overwrite. Requires filters:write.

Input Schema

NameRequiredDescriptionDefault
nameYes
idea_idYes
revisionYes
definitionYesSaved Angles settings, not a result archive. Include the exact selected native rule, explicit completed dates, season, market, side, line and sample threshold. NHL requires game_type 2.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already flag destructive=true and idempotent=false, and the description adds genuinely new behavior: mandatory user confirmation, optimistic-concurrency via current revision, conflict-reload semantics, a 'never silently overwrite' guarantee, and the required filters:write scope. This is exactly the extra context annotations cannot carry.

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 dense sentences, each load-bearing: purpose+precondition first, exclusions second, conflict/scope guidance third. 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, non-idempotent mutation with no output schema, the description covers confirmation, concurrency, conflict recovery, scope, and authorization. The definition payload's structure is handled by the schema's own description, so nothing critical is missing, though more detail on the nested settings would help.

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 only 25%, so the description must compensate. It does add value by explaining that revision is the concurrency token ('using its current revision'), but idea_id and the large nested definition object are left to the schema. Partial compensation warrants the baseline 3.

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 and resource ('Replace an owned Angles idea's name/settings') and immediately distinguishes itself from the sibling update_saved_filter by declaring it does not change the linked filter. An agent can tell what is being mutated and what is out of scope without opening the schema.

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?

Gives real preconditions: use only after explicit user confirmation, reload after a conflict, requires filters:write. It also lists exclusions (no filter change, no archiving). It stops short of naming an alternative tool explicitly, so it is clear context rather than full when/when-not routing.

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