Store a user's existing file for upcoming SignWell requests. Returns a file_token you can pass to document/template tools.
IMPORTANT: This tool is for the USER'S EXISTING FILES only. Do NOT read, parse, or convert the file — upload it as-is.
HOW TO PROVIDE THE FILE (in order of preference):
1. No arguments — Opens a native OS file picker dialog. USE THIS BY DEFAULT. Simply call file_store with no arguments and the user will select the file themselves.
2. file_path — Only if the user explicitly provides a local path on their computer (e.g. ~/Documents/contract.docx).
3. file_url — A publicly accessible URL to the file.
CHAT ATTACHMENTS: When a user uploads/attaches a file in the chat, DO NOT use resource_uri — those are sandboxed and inaccessible. Instead, call file_store with NO arguments to open the native file picker.
CLAUDE-GENERATED FILES: If YOU created the file content (e.g. generated a PDF), do NOT use file_store. Pass file_base64 directly to document_create instead.
輸入參數namefile_urlfile_pathresource_uri
file_validate_text_tags
Validate Text Tags
Validate text tags in a PDF before creating a template or document.
RECOMMENDED WORKFLOW: file_store → file_validate_text_tags → template_create/document_create
Accepts a PDF via file_token (from file_store), file_base64, file_url, or resource_uri.
Set use_picker: true to open a native file picker when no file input is provided.
Extracts text from the PDF and checks for valid SignWell text tags like {{signature:1:y}}.
For locked signing dates, use {{autofill_date_signed:1:y}} or {{date:1:y::::::y}}. Plain {{date:1:y}} is editable.
Returns:
- Whether text is extractable from the PDF
- List of valid tags found
- List of malformed tags (if any)
- Signer numbers referenced
- Recommendations for fixing issues
輸入參數file_urlfile_tokenuse_pickerfile_base64resource_uri
document_create
Create Document
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:
1. file_store (call with NO arguments to open native file picker) → returns file_token
2. document_create (pass file_token in files array) → creates draft, returns editor_url
WORKFLOW FOR CLAUDE-GENERATED FILES:
1. 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.
2. 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": "[email protected]", "name": "Jane Doe"}],
"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:
1. name: Document name
2. recipients: Array with at least one object containing "id" and "email". Always pass the signer's full name in "name" (or "first_name" and "last_name", which are joined into "name"); a recipi
輸入參數name必填files必填messagesubjectmetadatareminderstest_modetext_tagsexpires_inrecipients必填redirect_urlallow_decline另有 9 個
document_list
List Documents
List SignWell documents with optional filtering (status, archived, search).
輸入參數pagesearchstatusarchivedper_pageupdated_afterupdated_before
Fetch the latest status for a SignWell document.
輸入參數document_id必填
document_send_draft
Send Draft
Update optional document settings and send a previously created draft (requires confirm_send). Omitted settings are preserved. This endpoint cannot update recipients, files, or fields. Returns a best-effort status refresh; status can still lag. An accepted send must not be retried just because status is Draft: use document_get. Recipient send_email is an embedded-signing setting, not an email-delivery receipt.
輸入參數namemessagesubjectmetadatareminderstest_modeexpires_indocument_id必填confirm_sendredirect_urlallow_declineallow_reassign另有 7 個
document_update_recipients
Update Document Recipients
Correct names or emails on a sent document (requires confirm_update). First call document_get and use its recipient IDs. Allowed document statuses: sent, viewed, pending, bounced; only recipients who have not started signing can be updated. Include each recipient's name and email, retaining any value you are not changing. Updated recipients on non-embedded documents receive a new notification email; embedded documents follow their existing send_email setting. Drafts and completed documents are not supported.
輸入參數recipients必填document_id必填confirm_update
document_delete
Delete Document
Delete a document and cancel signing if in progress (requires confirm_delete). Use this to withdraw an incorrect request before creating a replacement. This deletes the document; it does not archive it.
輸入參數document_id必填confirm_delete
document_send_reminder
Send Reminder
Send a reminder email for a document (optionally to a specific recipient).
輸入參數messagedocument_id必填recipient_email
document_completed_pdf
Completed PDF
Fetch the completed PDF. Use mode: 'base64' to get content for displaying in an artifact or chat (embed as data:application/pdf;base64,{pdf_base64}). Default 'url' mode returns a shareable link.
輸入參數modedocument_id必填file_formatsave_to_pathinclude_audit_page
template_create
Create Template
Create a SignWell template for reusable signature documents.
RECOMMENDED WORKFLOW:
1. file_store (provide file_path, file_url, or resource_uri) → returns file_token
2. file_validate_text_tags (pass file_token) → validates tags are extractable
3. template_create (pass file_token in files array) → creates the template
REQUIRED PARAMETERS (both are mandatory):
- files: Array with at least one file object containing:
* "name": Filename (e.g., "template.docx")
* One content source (in order of preference):
- "content_text": Plain text/Markdown to auto-convert to DOCX (RECOMMENDED for generated content)
- "file_token": Token from file_store (recommended for uploaded files)
- "file_base64": Base64-encoded file content
- "file_url": Public URL to the file
- "resource_uri": MCP resource URI
- placeholders: Array with at least one placeholder object containing "id" and "name"
STEP-BY-STEP EXAMPLE (using file_token):
1. Call file_store with {"file_path": "/path/to/doc.pdf"} → get file_token
2. Call file_validate_text_tags with {"file_token": "..."} → confirm tags are valid
3. Call this tool with:
{
"name": "My Template",
"files": [{"name": "doc.pdf", "file_token": "<token from file_store>"}],
"placeholders": [{"id": "1", "name": "Signer"}],
"text_tags": true
}
ALTERNATIVE (inline base64):
{
"name": "My Template",
"files": [{"name": "doc.pdf", "file_base64": "JVBERi0xLjQK..."}],
"placeholders": [{"id": "1", "name": "Signer"}],
"text_tags": true
}
TEXT TAGS (when text_tags: true):
Your PDF must contain these literal text strings as SELECTABLE TEXT (not images):
- {{signature:1:y}} - Signature field for placeholder id "1"
- {{date:1:y}} - Date field for placeholder id "1"
- {{autofill_date_signed:1:y}} or {{date:1:y::::::y}} - Automatically populated, locked signing date (plain date fields are editable)
- {{text:1:y:Label}} - Text field with label
- {{initial:1:y}} - Initials field
The number in the tag (1, 2, etc.) MUST match a place
輸入參數namedraftfiles必填fieldslabelsmessagesubjectlanguagemetadatareminderstext_tagsexpires_in另有 10 個
template_update
Update Template
Update an existing SignWell template. Only provide fields you want to change.
輸入參數namedraftfilesfieldslabelsmessagesubjectlanguagemetadatareminderstext_tagsexpires_in另有 11 個
Fetch an individual SignWell template by ID.
輸入參數template_id必填
template_list
List Templates
List SignWell templates with pagination.
輸入參數pageper_page
template_delete
Delete Template
Delete a SignWell template.
輸入參數template_id必填
template_create_document
Send from Template
Create and send a document from a template. Templates are pre-configured and ready to send, so this tool sends the document for signing by default.
IMPORTANT: When a user asks to "send a template" or "send a document from a template", the document will be sent immediately for signing. Set draft: true ONLY if the user explicitly asks to create a draft or review before sending.
REQUIRED:
- template_id: The template ID to create the document from
- recipients: Array of recipient objects, each with:
- id: Unique identifier for this recipient (e.g., "recipient_1")
- placeholder_name: Name of the template placeholder to assign (must match exactly)
- email: Recipient's email address
- name: (optional) Recipient's display name
Example:
{
"template_id": "abc123",
"recipients": [{
"id": "recipient_1",
"placeholder_name": "Client",
"email": "[email protected]",
"name": "John Doe"
}]
}
輸入參數namedraftfilesmessagesubjectmetadatatext_tagsexpires_inrecipients必填template_id必填redirect_urlcopied_contacts另有 6 個