Skip to main content
Glama

Check a write's result

get_operation
Read-onlyIdempotent

Check what became of a write after a timeout or lost answer, before you write again. Answers its receipt (status, entity_id and url; an upload's attachment_id or file_id), or:

  • not_completed: it did not finish; the identical call with the same operation_id is safe.

  • unavailable: this connection never received it, or it is now outside its access. If you reconnected since the write, this does not mean it failed: ask the person to check in ThreadPage instead of writing again. An upload's receipt says its state now: uploading (its bytes did not arrive: send the identical call again), checking (ThreadPage is checking a file), uploaded (stored; a file's also checked, with the markdown line that places it in the Thread and Note it was uploaded for) or failed (refused or deleted: upload it again with a new operation_id). Answers no content.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "operation_id": "<operation_id>"
    },
    "name": "get_operation"
  }
}

Input Schema

NameRequiredDescriptionDefault
operation_idYesThe operation_id of the write to check.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is largely covered. The description adds real value beyond that — the outcome taxonomy (receipt / not_completed / unavailable) and the fact that a retry with the same operation_id is safe only in the not_completed case. However, it never states latency, whether the check itself can time out, or how long an operation_id remains resolvable before it falls into 'unavailable'.

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 purpose is front-loaded and every outcome earns its place, but the upload-state sentence is convoluted, with nested parentheses ('uploaded (stored; a file's also checked, with the markdown line that places it in the Thread and Note it was uploaded for)') that are hard to parse on a first read. The trailing 'Answers no content.' is a useful but abruptly placed note.

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?

There is no output schema, so the description carries the burden of describing return values and does so — status, entity_id, url, attachment_id, file_id, and the four upload states. It also explains retry semantics per outcome. The main gap is the time window after which an operation becomes 'unavailable', which matters for deciding whether to retry or escalate.

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 a single parameter and 100% schema description coverage, the schema already documents operation_id, so the baseline is 3. The description does add the key semantic that the same operation_id must be reused for a safe retry and that a failed upload needs a new one, which is meaningful context the schema does not carry.

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 opens with a specific verb and resource ('Check what became of a write') and immediately names the trigger (a timeout or lost answer) plus the operation_id that identifies the write. An agent can distinguish this from read siblings like get_note or get_thread without opening any schema.

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?

It states when to call it ('after a timeout or lost answer, before you write again') and gives conditional routing for each outcome: reuse the identical call with the same operation_id when not_completed, but when unavailable after a reconnect, ask the person to check in ThreadPage rather than writing again. Alternatives and exclusions are explicit.

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.