Skip to main content
Glama

Move document to signing stage

move-document-to-signing-stage
DestructiveIdempotent

Moves a document to the signing stage and invites signatories to sign.

Use this tool when:

  • The document's current stage is one of: draft, approved_draft, review, approved_review

  • You want to start the signing process

This stage transition may be blocked by checkpoints on the document, or by unresolved preconditions (missing signature blocks, unresolved proposals, mandatory dynamic fields without values, active editor sessions or working copies, etc.). A refusal here reports just the first problem it runs into; call get-document-info first and read workflow_state.stage_transitions.signing.blockers to see everything that is in the way at once.

If the document has a signature_type set, the signature_type argument - if provided - must match it; otherwise the document's signature_type will be used. If the document has no signature_type, the one provided here (or the account default) will be used.

A qes or aes_eid signature_type requires sequential_signing=true. aes_eid is only available when the account has enabled AES (eID) in its settings.

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-signing-stage"
  }
}

Input Schema

NameRequiredDescriptionDefault
messageNoCustom message included in the signatory invitation email. If not sent, falls back to the document's external_signatory_invitation_message.
document_uuidYesUUID of the document to move to signing. If you don't already have the document's UUID, use the list-documents tool to find it.
signature_typeNoSignature security level to use. If not sent, either the document's assigned signature_type or the account default will be used.
sequential_signingNoIf true, signatories sign in the order defined by their signing_order. Cannot be false when signature_type is qes or aes_eid. If not sent, the document's current setting is used.

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.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, idempotentHint=true and openWorldHint=true, so the safety profile is known. The description adds real operational context beyond that: checkpoint blocking, the fact a refusal reports only the first blocker, signature_type matching rules, and the qes/aes_eid sequential-signing requirement. It does not explain what is actually destroyed or what an invitation side-effect means for signatories, so it is good but not exhaustive.

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 action, then uses a tight bulleted when-to-use block and short paragraphs for blockers and signature rules. Dense but readable; the only slight waste is restating the qes/aes_eid sequential-signing constraint already present in the schema.

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 state-transition tool with preconditions, the description covers entry conditions, blocker discovery, failure behavior, and cross-parameter constraints. An output schema exists, so return-value detail is correctly omitted.

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%, so all four parameters are already documented, establishing a baseline of 3. The description adds one genuinely new cross-field rule (if the document has a signature_type, the argument must match it) but otherwise repeats the schema's own constraint that sequential_signing cannot be false for qes/aes_eid.

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 and resource ('Moves a document to the signing stage and invites signatories to sign') and clearly separates this from sibling transitions like move-document-to-review-stage and move-document-to-done-stage by naming the exact source stages it accepts.

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 when-to-use block with the permitted current stages (draft, approved_draft, review, approved_review) and the intent ('start the signing process'). It also names the alternative path — call get-document-info first and read workflow_state.stage_transitions.signing.blockers — when the transition is blocked.

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