Skip to main content
Glama

Get message generation

get_message_generation
Read-onlyIdempotent

Always 200 for a known id owned by the caller; a non-terminal state is a status, not an error. An unknown id, or one owned by another tenant, is 404. While status is non-terminal the response carries Retry-After. When succeeded, result is embedded in this response (there is no redirect to a second resource). When failed, error is the surface's Error shape with a snake_case code. When canceled, canceled_reason says why. The resource is retained for 7 days after it reaches a terminal state; expires_at says when, and the response carries a matching Expires header. After that the id is 410 Gone (generation_expired), distinct from 404 for an id that never existed or is not yours.

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": {
      "id": "<id>"
    },
    "name": "get_message_generation"
  }
}

Input Schema

NameRequiredDescriptionDefault
idYesThe generation id returned by `POST /api/v1/message-intelligence`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly, idempotent, non-destructive), while the description adds a full response contract: 200 for a known owned id, 404 for unknown or other-tenant ids, Retry-After on non-terminal states, embedded result on success, Error shape with snake_case code on failure, canceled_reason on cancellation, and 410 generation_expired after 7-day retention with a matching Expires header. This is exactly the behavioral context an agent needs and cannot get from structured fields.

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?

Dense and free of filler — nearly every clause carries a distinct status-code or retention fact, and the bold emphasis on '7 days' and '410 Gone' aids scanning. It loses a point because it opens with status semantics rather than a one-line purpose statement, so the reader learns what the tool is only by inference.

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

Completeness5/5

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

With no output schema and only one parameter, the description carries the full burden of explaining return values, and it does so exhaustively across all four states plus the expiration case. Nothing an agent needs in order to call this correctly or interpret the response is missing.

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% for the single `id` parameter, so the baseline would be 3, but the description adds lifecycle semantics the schema lacks: the id is valid for 7 days past terminal state, then yields 410 rather than 404, which materially changes how the agent should interpret an id it has been holding.

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?

The description never states a plain verb+resource sentence like 'Retrieve the status and result of a message generation by id', but the accumulated details (non-terminal status, embedded result, terminal states, 7-day retention) make the purpose unambiguous. It is distinguishable from cancel_message_generation and generate_message by the retrieval-only contract, though that contrast is never made explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no named alternatives among the many siblings. The only implied guidance is polling: 'While status is non-terminal the response carries Retry-After' tells the agent to re-poll rather than treat in-progress as an error. That is useful but the caller must infer it.

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