mcp-signwell
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIGNWELL_API_KEY | Yes | Your SignWell API key with document access. | |
| SIGNWELL_API_BASE_URL | No | Optional override for non-production endpoints. | |
| SIGNWELL_API_TIMEOUT_MS | No | HTTP client timeout in milliseconds. | 90000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| file_storeA | 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):
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. |
| file_validate_text_tagsA | 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}}. Returns:
|
| document_createA | Create a SignWell document (always created as a draft). CRITICAL RULES:
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:
WORKFLOW FOR CLAUDE-GENERATED FILES:
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:
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}}). |
| document_listB | List SignWell documents with optional filtering (status, archived, search). |
| document_getB | Fetch the latest status for a SignWell document. |
| document_send_draftC | Send a previously created draft document (requires confirm_send). |
| document_send_reminderB | Send a reminder email for a document (optionally to a specific recipient). |
| document_completed_pdfC | 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. |
| template_createA | Create a SignWell template for reusable signature documents. RECOMMENDED WORKFLOW:
REQUIRED PARAMETERS (both are mandatory):
STEP-BY-STEP EXAMPLE (using file_token):
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):
The number in the tag (1, 2, etc.) MUST match a placeholder "id" in your request. CRITICAL: Text tags must be SELECTABLE/SEARCHABLE text in the PDF, not rendered as images or graphics. When generating PDFs programmatically, use text drawing methods (e.g., drawString) with standard fonts. To verify: open the PDF and try to select/copy the tag text with your mouse. If you can't select it, SignWell can't parse it. MULTI-SIGNER EXAMPLE: { "name": "Contract", "files": [{"name": "contract.pdf", "file_base64": "JVBERi0xLjQK...actual base64 here..."}], "placeholders": [ {"id": "1", "name": "Client"}, {"id": "2", "name": "Vendor"} ], "text_tags": true } For this example, the PDF should contain: {{signature:1:y}} for Client and {{signature:2:y}} for Vendor. COMMON ERRORS:
|
| template_updateA | Update an existing SignWell template. Only provide fields you want to change. |
| template_getA | Fetch an individual SignWell template by ID. |
| template_listB | List SignWell templates with pagination. |
| template_deleteC | Delete a SignWell template. |
| template_create_documentA | 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:
Example: { "template_id": "abc123", "recipients": [{ "id": "recipient_1", "placeholder_name": "Client", "email": "client@example.com", "name": "John Doe" }] } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| search_document | Fetch SignWell document summary by id. |
| search_template | Fetch SignWell template summary by id. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bidsketch/signwell-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server