document_create
Create a draft document for electronic signatures. Upload a file, specify recipients, and receive an editor link to place signature fields.
Instructions
Create a SignWell document (always created as a draft).
CRITICAL RULES:
Do NOT read, parse, extract, or verify file contents before uploading. The user already knows what is in the file.
Do NOT convert files between formats (e.g. do NOT convert .docx to .pdf). SignWell handles conversion automatically.
The user will place signature fields in the SignWell editor. Just upload the file and return the editor link.
SUPPORTED FILE TYPES: .pdf, .doc, .docx, .pages, .ppt, .pptx, .key, .xls, .xlsx, .numbers, .jpg, .jpeg, .png, .tiff, .tif, .webp, .html, .htm
WORKFLOW FOR USER'S EXISTING FILES:
file_store (call with NO arguments to open native file picker) → returns file_token
document_create (pass file_token in files array) → creates draft, returns editor_url
WORKFLOW FOR CLAUDE-GENERATED FILES:
document_create with content_text directly (RECOMMENDED) → MCP server converts to DOCX automatically Pass plain text or Markdown as content_text. The server generates a DOCX file without base64 overhead.
document_create with file_base64 directly (skip file_store) → creates draft, returns editor_url Do NOT write the file to disk and pass a file_path — sandbox paths are inaccessible. Use file_base64.
Example using content_text: { "name": "Service Agreement", "recipients": [{"id": "1", "email": "client@example.com"}], "files": [{"name": "agreement.docx", "content_text": "# Service Agreement\n\nThis agreement between..."}] }
FILE ACCESS: Chat attachments and sandbox paths (/home/claude, /mnt/user-data) are inaccessible to the MCP server. Do NOT use resource_uri or sandbox file_path values. For existing files, call file_store with no arguments to open the native file picker.
REQUIRED PARAMETERS:
name: Document name
recipients: Array with at least one object containing "id" and "email"
files: Array with at least one file object containing:
"name": Filename (e.g., "contract.docx")
One content source (in order of preference):
"content_text": Plain text or Markdown to auto-convert to DOCX (RECOMMENDED for Claude-generated content)
"file_token": Token from file_store (recommended for user files)
"file_url": Public URL to the file
"file_base64": Base64-encoded file content
"resource_uri": MCP resource URI
EXAMPLE (docx via file_token — most common): { "name": "NDA Agreement", "recipients": [{"id": "1", "email": "signer@example.com"}], "files": [{"name": "nda.docx", "file_token": ""}] }
EXAMPLE (pdf with text tags): { "name": "Contract", "text_tags": true, "recipients": [{"id": "1", "email": "signer@example.com"}], "files": [{"name": "contract.pdf", "file_token": ""}] }
TEXT TAGS (optional): Set text_tags: true only if the document already contains signature placeholders like {{signature:1:y}}. The recipient "id" MUST match the number in text tags (id:"1" matches {{signature:1:y}}).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| files | Yes | ||
| message | No | Email message recipients will see. | |
| subject | No | Email subject line recipients will see. | |
| metadata | No | Key-value metadata (max 50 pairs, key max 40 chars, value max 500 chars). | |
| reminders | No | Send signing reminders on day 3, 6, and 10. | |
| text_tags | No | ||
| expires_in | No | Days before the signature request expires (max 365). | |
| recipients | Yes | ||
| redirect_url | No | URL to redirect after successful signing. | |
| allow_decline | No | Allow recipients to decline signing. | |
| allow_reassign | No | Allow recipients to reassign to someone else. | |
| copied_contacts | No | CC recipients who receive the final signed document by email. | |
| embedded_signing | No | Enable embedded signing. | |
| apply_signing_order | No | When true, recipients sign one at a time in the order of the recipients array. | |
| decline_redirect_url | No | URL to redirect if document is declined. | |
| custom_requester_name | No | Custom requester name on communications. | |
| custom_requester_email | No | Custom requester email on communications. | |
| embedded_signing_notifications | No | Send completion notifications when using embedded signing. |