Skip to main content
Glama

Move document to review stage

move-document-to-review-stage
DestructiveIdempotent

Moves a document to the review stage.

Use this tool when:

  • The document's current stage is one of: draft, approved_draft, approved_review, signing or done

  • You want to share the document for review before moving to a later stage

This stage transition may be blocked by checkpoints on the document, or - when reverting a document that was not created from a template - by an account that only allows signing to start from a template. A refusal here reports just the first problem it runs into; call get-document-info first and read workflow_state.stage_transitions.review.blockers to see everything that is in the way at once.

If the document is in the process of being signed, or has been signed already, moving back to review will cancel the current signing process and invalidate any existing signatures.

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": {
      "document_uuid": "<document_uuid>"
    },
    "name": "move-document-to-review-stage"
  }
}

Input Schema

NameRequiredDescriptionDefault
document_uuidYesUUID of the document to move to review. If you don't already have the document's UUID, use the list-documents tool to find it.

Output Schema

NameRequiredDescriptionDefault
urlNoURL to open the document in fynk
nameNoName of the document
uuidNoUnique identifier for the document. Do not show to the user unless they ask for it
stageNoWhat stage the document is in currently
_entity_typeNoOnly relevant for tooling. Do not show to the user
document_typeNoIf present, indicates what kind of document this is. Absent when the document has no type assigned
workflow_stateNoGives an indication of which stage transitions, etc are possible to perform on this document. This object is technical state, not display content: when relaying it to the user, always render it as natural-language prose and never echo raw field names or snake_case values (e.g. say 'signing cannot be started yet because not every signature block has been assigned to a signatory' instead of mentioning 'can_start_signing' or 'signature_block_signatory').

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedOutput schema / properties / workflow_state / properties / stage_transitions / properties / done / properties / blockers / items / properties / records / items / properties / _entity_type / enum
      Previous value: -[
      -  "account",
      -  "account_party",
      -  "account_profile",
      -  "account_user",
      -  "automation",
      -  "condition",
      -  "custom_widget",
      -  "dashboard",
      -  "document",
      -  "document_type",
      -  "document_user",
      -  "document_user_suggestion",
      -  "dynamic_field",
      -  "import",
      -  "metadata",
      -  "metadata_value",
      -  "party",
      -  "party_suggestion",
      -  "playbook",
      -  "signature_block",
      -  "stored_file",
      -  "tag",
      -  "team",
      -  "template",
      -  "user"
      -]New value: +[
      +  "account",
      +  "account_party",
      +  "account_profile",
      +  "account_user",
      +  "attachment",
      +  "automation",
      +  "condition",
      +  "custom_widget",
      +  "dashboard",
      +  "document",
      +  "document_type",
      +  "document_user",
      +  "document_user_suggestion",
      +  "dynamic_field",
      +  "import",
      +  "metadata",
      +  "metadata_value",
      +  "party",
      +  "party_suggestion",
      +  "playbook",
      +  "signature_block",
      +  "stored_file",
      +  "tag",
      +  "team",
      +  "template",
      +  "user"
      +]
    • changedOutput schema / properties / workflow_state / properties / stage_transitions / properties / review / properties / blockers / items / properties / records / items / properties / _entity_type / enum
      Previous value: -[
      -  "account",
      -  "account_party",
      -  "account_profile",
      -  "account_user",
      -  "automation",
      -  "condition",
      -  "custom_widget",
      -  "dashboard",
      -  "document",
      -  "document_type",
      -  "document_user",
      -  "document_user_suggestion",
      -  "dynamic_field",
      -  "import",
      -  "metadata",
      -  "metadata_value",
      -  "party",
      -  "party_suggestion",
      -  "playbook",
      -  "signature_block",
      -  "stored_file",
      -  "tag",
      -  "team",
      -  "template",
      -  "user"
      -]New value: +[
      +  "account",
      +  "account_party",
      +  "account_profile",
      +  "account_user",
      +  "attachment",
      +  "automation",
      +  "condition",
      +  "custom_widget",
      +  "dashboard",
      +  "document",
      +  "document_type",
      +  "document_user",
      +  "document_user_suggestion",
      +  "dynamic_field",
      +  "import",
      +  "metadata",
      +  "metadata_value",
      +  "party",
      +  "party_suggestion",
      +  "playbook",
      +  "signature_block",
      +  "stored_file",
      +  "tag",
      +  "team",
      +  "template",
      +  "user"
      +]
    • changedOutput schema / properties / workflow_state / properties / stage_transitions / properties / signing / properties / blockers / items / properties / records / items / properties / _entity_type / enum
      Previous value: -[
      -  "account",
      -  "account_party",
      -  "account_profile",
      -  "account_user",
      -  "automation",
      -  "condition",
      -  "custom_widget",
      -  "dashboard",
      -  "document",
      -  "document_type",
      -  "document_user",
      -  "document_user_suggestion",
      -  "dynamic_field",
      -  "import",
      -  "metadata",
      -  "metadata_value",
      -  "party",
      -  "party_suggestion",
      -  "playbook",
      -  "signature_block",
      -  "stored_file",
      -  "tag",
      -  "team",
      -  "template",
      -  "user"
      -]New value: +[
      +  "account",
      +  "account_party",
      +  "account_profile",
      +  "account_user",
      +  "attachment",
      +  "automation",
      +  "condition",
      +  "custom_widget",
      +  "dashboard",
      +  "document",
      +  "document_type",
      +  "document_user",
      +  "document_user_suggestion",
      +  "dynamic_field",
      +  "import",
      +  "metadata",
      +  "metadata_value",
      +  "party",
      +  "party_suggestion",
      +  "playbook",
      +  "signature_block",
      +  "stored_file",
      +  "tag",
      +  "team",
      +  "template",
      +  "user"
      +]
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already flag destructive=true, but the description adds the crucial detail of what is destroyed: moving back to review from signing cancels the signing process and invalidates existing signatures. It also discloses checkpoint blocking, a template-only signing constraint, and the first-problem-only failure semantics of a refusal — context not present in annotations.

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?

The opening sentence states the action up front, then bullets organize preconditions, failure modes, and side effects. It is slightly long but each sentence carries actionable information; minor tightening is possible in the checkpoint/template sentence.

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?

For a destructive one-parameter transition, the description covers eligible source states, blockers, diagnostic fallback, and the destructive consequences on signatures. An output schema exists, so absence of return-value documentation is not a gap.

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 description coverage is 100% and the single document_uuid parameter is fully documented in the schema, including a pointer to list-documents. The description adds no further meaning about the parameter, so the baseline 3 applies.

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 (moves) and resource (document) plus the exact target stage (review). It clearly differentiates itself from sibling transitions such as move-document-to-done-stage and move-document-to-signing-stage, since the destination stage is named explicitly.

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?

Gives an explicit 'use this tool when' block with the source stages that are eligible (draft, approved_draft, approved_review, signing, done) and the intent (share for review before a later stage). It also routes the agent to get-document-info when a transition refusal occurs so all blockers can be inspected at once.

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