Skip to main content
Glama

update_issue

DestructiveIdempotent

Patch an Issue. Any subset of: title, description, type, severity, status, ownerId, targetResolutionAt, resolution. Status changes are state-machine guarded, and naming one forbidden jump understated it, so here is the whole map: OPEN -> INVESTIGATING | DEFERRED | WONT_FIX; INVESTIGATING -> BLOCKED | RESOLVED | WONT_FIX | DEFERRED; BLOCKED -> INVESTIGATING | WONT_FIX | DEFERRED; RESOLVED -> CLOSED | INVESTIGATING; DEFERRED -> OPEN | INVESTIGATING; CLOSED and WONT_FIX are terminal. Note RESOLVED is not reachable from OPEN. PROMOTED is not settable here at all. Pass expectedUpdateRevision (from get_issue) for optimistic concurrency - a mismatch returns a conflict so concurrent agents do not clobber each other. To resolve/defer/wont-fix with a resolution note, PREFER resolve_issue.

Input Schema

NameRequiredDescriptionDefault
typeNo
titleNo
statusNo
issueIdYes
ownerIdNoUser id, or empty string to unassign.
severityNo
resolutionNo
descriptionNo
targetResolutionAtNoISO datetime, or empty to clear.
expectedUpdateRevisionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior4/5

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

Goes well beyond the annotations by publishing the full status state-machine map, noting CLOSED/WONT_FIX are terminal and PROMOTED is not settable here, and explaining the optimistic-concurrency conflict behavior. Annotations already flag destructive/idempotent, so the added transition and concurrency detail is genuinely incremental.

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?

Front-loads the core purpose and field list, then layers in the transition map and concurrency note. The state-machine enumeration is long but each arc is load-bearing for correct invocation; slightly dense prose costs it a point.

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

Completeness4/5

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

With 10 parameters, 20% schema coverage, no output schema, and destructive/idempotent annotations, the description supplies the missing behavioral and concurrency context an agent needs. Remaining gaps are minor enum semantics, which are largely self-describing.

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 only 20% (ownerId and targetResolutionAt), yet the description compensates by clarifying the field set, the reachable status targets, and that expectedUpdateRevision is the concurrency token with a conflict on mismatch. Enum value meanings (type, severity) are not explained, keeping it just short of a 5.

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 ('Patch an Issue') and enumerates exactly the mutable fields (title, description, type, severity, status, ownerId, targetResolutionAt, resolution), so an agent immediately knows the scope and can distinguish it from create_issue or resolve_issue.

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 routes the agent: 'To resolve/defer/wont-fix with a resolution note, PREFER resolve_issue', and tells it to pass expectedUpdateRevision from get_issue. Both a when-to-use alternative and a prerequisite are named directly.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.