Skip to main content
Glama

Edit engineering proposal

engineering_edit
DestructiveIdempotent

Edits the original proposal at expected_revision; stale proposals need current values.

Input Schema

NameRequiredDescriptionDefault
dataYesReplacement proposal draft and its expected_revision from engineering_proposals.
agent_idYesAgent ID from agents_list or agent_create.
operation_idYesEngineering proposal operation ID from engineering_proposals or engineering_propose.
conversation_idYesConversation ID from inbox_list or conversations_search.

Output Schema

NameRequiredDescriptionDefault
idYes
draftYes
issueYes
actionYes
statusYes
targetYes
outcomeYes
releaseYes
revisionYes
automaticYes
candidatesYes
expires_atYes
access_availableYes
needs_resolutionYes
origin_message_idYes
contact_context_textYes
pending_issue_identifierYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / agent_id / description
      Added value: +"Agent ID from agents_list or agent_create."
    • addedInput schema / properties / conversation_id / description
      Added value: +"Conversation ID from inbox_list or conversations_search."
    • addedInput schema / properties / data / description
      Added value: +"Replacement proposal draft and its expected_revision from engineering_proposals."
    • addedInput schema / properties / operation_id / description
      Added value: +"Engineering proposal operation ID from engineering_proposals or engineering_propose."
  2. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds the notable optimistic-concurrency behavior (the write is gated on expected_revision and fails on stale values), which is real value beyond the annotations. However, it never warns that 'draft' is a full replacement of the existing proposal, which is the key consequence of a destructive edit.

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, front-loaded with the action and resource, with no filler. The trailing clause is compressed to the point of being slightly cryptic ('stale proposals need current values' is an odd way to phrase an optimistic-lock requirement).

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

Completeness2/5

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

For a destructive, open-world tool with a large nested draft schema, the description is under-specified: it does not state that the entire draft is replaced (vs. merged), what happens when the revision is stale (error? retry guidance?), or that missing fields will be wiped. The output schema covers the return shape, but the mutation semantics remain thin.

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

Parameters4/5

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

Schema coverage is 100%, so 3 is the baseline, but the description goes further on expected_revision: it explains the parameter is a concurrency token that must match the current revision, not just an arbitrary UUID. 'stale proposals need current values' gives an actionable read/fetch-before-write hint absent from the schema.

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

Purpose4/5

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

States a specific verb and resource: 'Edits the original proposal'. 'Original' distinguishes it from engineering_propose (creating a new one), but no other engineering sibling (approve, reject, reconcile, resolve_unknown) is named or contrasted.

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 clause 'stale proposals need current values' hints at conflict resolution, but the description never says when to call this versus engineering_propose, engineering_reconcile, or the approve/reject flow, nor any prerequisite for obtaining the current revision.

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.

Resources