Skip to main content
Glama

Send a document for signature

send_document

Upload a PDF and send it to up to 25 signers or approvers, plus up to 25 view-only and 25 CC recipients. Give the file as an https URL (file_url) or base64 (file_base64). Optionally place signature/initials/date/text boxes with fields; without fields, signers sign on a certificate page appended to the PDF. Returns the document with each signer's private signing_url and what the send cost. Counts as one billable unit.

Input Schema

NameRequiredDescriptionDefault
titleNoDocument title shown to signers and on the certificate.
fieldsNo
messageNoA short note to the signers.
signersYes
file_urlNohttps URL of the PDF to send (fetched once, up to 50 MB).
filenameNoShown to signers, e.g. lease.pdf.
sequentialNoDeliver links one signer at a time, in order.
file_base64NoThe PDF bytes as base64, if you have the file in hand.
expires_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / signers / items / properties / language
      Added value: +{
      +  "description": "Language of this signer's emails, texts and signing page (en or es; default en).",
      +  "enum": [
      +    "en",
      +    "es"
      +  ],
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedInput schema / properties / signers / items / properties / id_verification
      Added value: +{
      +  "description": "true to require a government ID plus selfie check (Stripe Identity) before this signer can sign. $2 per attempt from the sender's prepaid balance.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / signers / items / properties / payment_amount_cents
      Added value: +{
      +  "description": "Collect this many US cents from the signer after they sign, through Stripe Checkout into the sender's own connected Stripe account ($1 to $50,000). The document completes only once it is paid. The sender must have connected Stripe on their Payments page.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / signers / items / properties / payment_description
      Added value: +{
      +  "description": "What the payment is for, shown on the Stripe checkout page (defaults to the document title).",
      +  "type": "string"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / file_url / description
      Previous value: -"https URL of the PDF to send (fetched once, up to 10 MB)."New value: +"https URL of the PDF to send (fetched once, up to 50 MB)."
  4. Changed2 schema fields changed
    • addedInput schema / properties / fields / items / properties / type / description
      Added value: +"attachment asks the signer to upload a PDF or image; get_document lists the files."
    • changedInput schema / properties / fields / items / properties / type / enum
      Previous value: -[
      -  "signature",
      -  "initials",
      -  "date",
      -  "text",
      -  "name",
      -  "email",
      -  "number",
      -  "checkbox",
      -  "radio",
      -  "dropdown"
      -]New value: +[
      +  "signature",
      +  "initials",
      +  "date",
      +  "text",
      +  "name",
      +  "email",
      +  "number",
      +  "checkbox",
      +  "radio",
      +  "dropdown",
      +  "attachment"
      +]
  5. Changed3 schema fields changed
    • changedInput schema / properties / signers / items / properties / email / description
      Previous value: -"Where the private signing link is sent."New value: +"Where the private signing link is emailed. Optional when a phone is given."
    • changedInput schema / properties / signers / items / properties / phone / description
      Previous value: -"Optional E.164 mobile number; the link is also texted."New value: +"E.164 mobile number; the link is texted. Optional when an email is given."
    • changedInput schema / properties / signers / items / required
      Previous value: -[
      -  "name",
      -  "email"
      -]New value: +[
      +  "name"
      +]
  6. Changed2 schema fields changed
    • addedInput schema / properties / signers / items / properties / approver
      Added value: +{
      +  "description": "true for an approver: must approve or reject before the document can complete, never signs, holds no fields.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / signers / items / properties / cc
      Added value: +{
      +  "description": "true for a CC recipient: gets the completed copy, nothing required of them.",
      +  "type": "boolean"
      +}
  7. Changed4 schema fields changed
    • addedInput schema / properties / fields / items / properties / options
      Added value: +{
      +  "description": "Choices for radio and dropdown fields (2 to 20).",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / fields / items / properties / required / description
      Added value: +"Default true (checkbox defaults false)."
    • changedInput schema / properties / fields / items / properties / type / enum
      Previous value: -[
      -  "signature",
      -  "initials",
      -  "date",
      -  "text"
      -]New value: +[
      +  "signature",
      +  "initials",
      +  "date",
      +  "text",
      +  "name",
      +  "email",
      +  "number",
      +  "checkbox",
      +  "radio",
      +  "dropdown"
      +]
    • changedInput schema / properties / signers / maxItems
      Previous value: -8New value: +50
  8. First observed

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does substantial work: recipient caps, view-only vs CC semantics, the certificate-page fallback, the private signing_url in the response, and 'counts as one billable unit'. It omits permissions/auth prerequisites and any failure modes (bad URL, oversized file, unconnected Stripe), which the schema hints at but the description never surfaces.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four dense sentences that front-load the core action, then limits, then input form, then the fields-vs-certificate decision, then the return. No filler and no repetition of the title.

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?

For a 9-parameter mutation tool with no output schema, the description supplies the return shape (signing_url plus cost) and the billing implication, which is what an agent most needs. Gaps remain around expiration defaults, sequential delivery behavior, and required authorization.

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 coverage is 67%, so the schema already documents most fields including the nested signer/field attributes. The description adds real meaning only for the file delivery choice and the consequence of omitting fields; it says nothing about expires_days, sequential, filename, or title that isn't already in the schema.

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?

States a specific verb and resource ('Upload a PDF and send it... for signature') plus scope limits (25 signers/approvers, 25 view-only, 25 CC). It implicitly separates itself from send_from_template by requiring a raw PDF upload, but never names that sibling explicitly.

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?

Gives the input alternatives clearly ('https URL (file_url) or base64 (file_base64)') and a fallback rule (no fields → signers sign on an appended certificate page), which is useful conditional guidance. It never says when to prefer this over send_from_template, extend_document, or list_templates, so the choice among siblings is left to inference.

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