Skip to main content
Glama

Get document info

get-document-info
Read-onlyIdempotent

Gets information about a document.

Use this tool when:

  • You have a document's UUID and want to know more details about it. e.g. who is signing it, what values its dynamic fields or metadata have, etc

Called with no include parameter, returns the document's parties, teams, details, signatories, signing settings and workflow state. Use include to name the sections you want instead - among them dynamic_fields, conditions, metadata_values, signature_blocks, summary_text, tags, timestamps, attachments and stored_files - and the response carries exactly those, so a question about one aspect of a document costs one section rather than the whole document.

The stored_files section holds what the app shows as "Internal file storage", separate from attachments: call them that when talking to the user, never "stored files".

This tool covers a single document. Whenever possible avoid calling it once per document to gather the same information about several documents: list-documents returns parties, teams, tags and timestamps for a whole list via its include parameter, and specific metadata values for a whole list via its include_metadata parameter. Pass the UUIDs you already have to its filter_document_uuids parameter to get exactly the documents you are interested in.

The default response lists both the document's parties (the contracting entities, frequently organizations) and its signatories (the individual people who sign). These are distinct: a person often signs on behalf of a party (e.g. a business) without appearing as a party, so consider the signatories — not just the parties — when answering whether a specific named person is involved in or signs a document.

The dynamic_field_visibility argument narrows the dynamic_fields section to the fields that appear in the document itself, or to the ones that do not. A field belonging to a document is not necessarily written into it: fields get added and then never placed in the text, or the passage that referred to one gets rewritten, leaving a value no reader ever sees. Not every not_visible field is idle, though. Some exist only to drive a condition deciding which clauses the document shows, so they shape the contract without appearing in it (you can use the "conditions" include option to see which fields drive which conditions). Others sit inside a passage that a currently inactive condition removes, so they would appear if that condition flipped. Use "visible" when the question is about what the contract currently says. dynamic_field_visibility has no effect unless dynamic_fields is among the returned sections.

The workflow_state object - in the response by default, and requestable via include alongside other sections - describes what can currently be done with the document: whether the signing process can be started at all, which stages the document can be moved on to and everything standing in the way of each of them (stage_transitions, whose blockers say why), whether the requesting user can start signing, and — when a checkpoint blocks progress — who still needs to approve. Use it to answer questions like "why can't I sign this yet?", "what is blocking this document?" or "who still has to sign?", answering with the full list rather than one problem at a time. It is technical state, not display content: relay it to the user as natural-language prose and never echo raw field names or snake_case values.

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": "get-document-info"
  }
}

Input Schema

NameRequiredDescriptionDefault
includeNoThe sections the response carries, on top of the document's identity (uuid, name, stage, document type, url) which it always carries. Naming sections means exactly those: ask for one section and you pay for one, rather than for the whole document. If omitted, these are returned: parties, teams, details, signatories, signing_settings, workflow_state.
document_uuidYesUUID of the document to get information about. If you don't already have the document's UUID, use the list-documents tool to find it.
dynamic_field_visibilityNoNarrows the dynamic_fields section to the fields that appear in the document's content ("visible") or to the ones that do not ("not_visible"). Defaults to "all", which returns every field. Only has an effect when dynamic_fields is among the returned sections.

Output Schema

NameRequiredDescriptionDefault
urlNoURL to open the document in fynk
nameNoName of the document
tagsNoThe tags on the document. Tags are the account's own classification labels (e.g. relationship type, commercial significance, region), so they show which categories this account uses and can be filtered on with filter_tags. Only present when the 'tags' section is requested via the include parameter.
uuidNoUnique identifier for the document. Do not show to the user unless they ask for it
stageNoWhat stage the document is in currently
teamsNoThe teams the document is assigned to. Only present when the 'teams' section is requested via the include parameter.
localeNoLocale code, e.g. en-GB, de-AT. Absent when the document has none set. Prefer describing the locale in natural language (e.g. 'British English') rather than showing the raw code. Only present when the 'details' section is requested via the include parameter.
originNoHow the document was created. Only present when the 'details' section is requested via the include parameter.
partiesNoThe contracting entities on the document. Only present when the 'parties' section is requested via the include parameter.
conditionsNoThe document's conditions: rules over its dynamic fields deciding whether a passage of the document applies, and whether each currently holds. Use them to explain why a clause is or is not part of the document, and what would have to change to flip it. Only present when the 'conditions' section is requested via the include parameter.
created_atNoWhen the document was created. Only present when the 'timestamps' section is requested via the include parameter.
updated_atNoWhen the document was last updated. Only present when the 'timestamps' section is requested via the include parameter.
archived_atNoWhen the document was archived. Absent when the document is not archived. Only present when the 'timestamps' section is requested via the include parameter.
attachmentsNoThe files attached to the document. Attachments are part of the document itself and visible to external parties. Only present when the 'attachments' section is requested via the include parameter.
signatoriesNoThe individual people who sign the document. Distinct from parties: a signatory often signs on behalf of a party (e.g. a business), so a person may be a signatory without appearing as a party. Only present when the 'signatories' section is requested via the include parameter.
_entity_typeNoOnly relevant for tooling. Do not show to the user
stored_filesNoThe files in the document's internal file storage, as opposed to its attachments. It includes files uploaded in the document's comments. The app shows these files as "Internal file storage": call them that when talking to the user, never "stored files". Only present when the 'stored_files' section is requested via the include parameter.
summary_textNoA summary of the document content. Absent when the document has no summary. Only present when the 'summary_text' section is requested via the include parameter.
document_typeNoIf present, indicates what kind of document this is. Absent when the document has no type assigned
dynamic_fieldsNoThe document's dynamic fields and their values. Only present when the 'dynamic_fields' section is requested via the include parameter.
signature_typeNoeIDAS assurance level used when signing the document. Absent when none has been chosen. Only present when the 'signing_settings' section is requested via the include parameter.
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'). Only present when the 'workflow_state' section is requested via the include parameter.
metadata_valuesNoThe document's metadata fields and their values. Only present when the 'metadata_values' section is requested via the include parameter.
signature_blocksNoThe places in the document that are signed. A block is bound either to a single signatory or to a party, in which case every signatory of that party signs it. Every signatory needs a block covering them before signing can be started. Only present when the 'signature_blocks' section is requested via the include parameter.
sequential_signingNoWhen true, signatories sign one at a time, in ascending order of their signing_order. Only present when the 'signing_settings' section is requested via the include parameter.
source_template_uuidNoUUID of the template the document was created from. Absent when it was not created from a template. Only present when the 'details' section is requested via the include parameter.
external_signatory_invitation_messageNoText shown in the email inviting external signatories to sign. Absent when no message is set. Only present when the 'signing_settings' section is requested via the include parameter.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • changedInput schema / properties / include / items / enum
      Previous value: -[
      -  "parties",
      -  "teams",
      -  "tags",
      -  "details",
      -  "signing_settings",
      -  "timestamps",
      -  "conditions",
      -  "dynamic_fields",
      -  "metadata_values",
      -  "signatories",
      -  "signature_blocks",
      -  "summary_text",
      -  "workflow_state"
      -]New value: +[
      +  "parties",
      +  "teams",
      +  "tags",
      +  "details",
      +  "signing_settings",
      +  "timestamps",
      +  "attachments",
      +  "conditions",
      +  "dynamic_fields",
      +  "metadata_values",
      +  "signatories",
      +  "signature_blocks",
      +  "stored_files",
      +  "summary_text",
      +  "workflow_state"
      +]
    • addedOutput schema / properties / attachments
      Added value: +{
      +  "description": "The files attached to the document. Attachments are part of the document itself and visible to external parties. Only present when the 'attachments' section is requested via the include parameter.",
      +  "items": {
      +    "properties": {
      +      "_entity_type": {
      +        "description": "Only relevant for tooling. Do not show to the user",
      +        "enum": [
      +          "attachment"
      +        ],
      +        "type": "string"
      +      },
      +      "file_size": {
      +        "description": "Size of the file in bytes. Use file_size_display when telling the user the size",
      +        "type": "integer"
      +      },
      +      "file_size_display": {
      +        "description": "Size of the file formatted for display, e.g. \"2.4 MB\"",
      +        "type": "string"
      +      },
      +      "filename": {
      +        "description": "Name of the file",
      +        "type": "string"
      +      },
      +      "sha256": {
      +        "description": "SHA-256 digest of the file's bytes, as lowercase hex. Equal digests mean byte-identical files. Do not show to the user unless they ask for it",
      +        "type": "string"
      +      },
      +      "uuid": {
      +        "description": "Identifier for the attachment. Do not show to the user unless they ask for it",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / stored_files
      Added value: +{
      +  "description": "The files in the document's internal file storage, as opposed to its attachments. It includes files uploaded in the document's comments. The app shows these files as \"Internal file storage\": call them that when talking to the user, never \"stored files\". Only present when the 'stored_files' section is requested via the include parameter.",
      +  "items": {
      +    "properties": {
      +      "_entity_type": {
      +        "description": "Only relevant for tooling. Do not show to the user",
      +        "enum": [
      +          "stored_file"
      +        ],
      +        "type": "string"
      +      },
      +      "file_size": {
      +        "description": "Size of the file in bytes. Use file_size_display when telling the user the size",
      +        "type": "integer"
      +      },
      +      "file_size_display": {
      +        "description": "Size of the file formatted for display, e.g. \"2.4 MB\"",
      +        "type": "string"
      +      },
      +      "filename": {
      +        "description": "Name of the file",
      +        "type": "string"
      +      },
      +      "sha256": {
      +        "description": "SHA-256 digest of the file's bytes, as lowercase hex. Equal digests mean byte-identical files. Do not show to the user unless they ask for it",
      +        "type": "string"
      +      },
      +      "uuid": {
      +        "description": "Identifier for the stored file. Do not show to the user unless they ask for it",
      +        "type": "string"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • 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.9/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses default vs. include-driven response shape, the cost trade-off of naming sections, the distinction between stored_files and attachments with user-facing naming guidance, the parties-vs-signatories nuance, and detailed semantics of workflow_state and dynamic_field_visibility. It also instructs the agent to relay workflow_state as prose rather than raw field names, which is substantial behavioral 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 description is front-loaded with purpose and a clear use-case bullet, then moves into scoped paragraphs. It is somewhat verbose, repeating some schema-provided details such as the full default section list and include behavior, but most of the length is justified by genuinely useful nuance around visibility, signatories, and workflow_state.

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?

Given a complex read tool with many include sections, an output schema, and safety annotations, the description supplies everything an agent needs to choose sections, interpret visibility, avoid per-document loops, and present workflow_state appropriately. Nothing critical is missing for correct invocation and answer construction.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds meaning beyond the schema: it explains that naming include sections means paying for only those sections, clarifies that dynamic_field_visibility has no effect unless dynamic_fields is returned, and explains why a field can be not_visible but still conditionally relevant. It also maps stored_files to the user-facing concept 'Internal file storage', which helps the agent interpret section values correctly.

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 ('Gets information about a document') and immediately distinguishes the tool from list-documents for multi-document queries. An agent can tell this is the single-document detail tool, separate from sibling list or update tools, without opening the 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 gives explicit when-to-use guidance ('You have a document's UUID and want to know more details about it') and a clear when-not/alternative ('avoid calling it once per document... list-documents returns... Pass the UUIDs... to filter_document_uuids'). It also tells the agent when to prefer 'visible' filtering for questions about what the contract currently says.

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