SignNow MCP Server
Official MCP server for SignNow eSignature: send contracts, manage templates, embed signing flows, track invites, and download completed documents.
The SignNow MCP Server is the official Model Context Protocol server from airSlate SignNow that gives AI agents structured access to eSignature workflows. It exposes tools for template management, document uploads, signing invitations (email or embedded), status tracking, and downloading completed PDFs over either STDIO or Streamable HTTP transports.
Out of the box the server covers the full document lifecycle: list and create templates, upload PDFs/DOC/DOCX/PNG/JPG files (up to 40MB), send invites with ordered recipients, generate embedded signing/editor/sending links, prefill fields, send reminders, and pull final signed documents. It also includes a signnow_skills tool that bundles a skill library and inline documentation for agent use.
The server is distributed as the signnow-mcp-server Python package (Python 3.11+) and ships with example integrations for LangChain, LlamaIndex, and SmolAgents. It is released under the MIT license, and according to SignNow's developer portal, MCP access is available on all paid plans at no additional cost (with a free sandbox/trial).
Tools
| Tool | Description |
|---|---|
list_all_templates |
Browse SignNow templates with pagination. |
create_from_template |
Create a new document from an existing template. |
create_template |
Convert an existing document into a reusable template. |
list_documents |
Browse documents and document groups with status info. |
get_document |
Retrieve normalized document structure with field values. |
upload_document |
Upload a PDF, DOC, DOCX, PNG, JPG, or JPEG file (max 40MB). |
send_invite |
Send a signing invitation via email with ordered recipients. |
send_invite_from_template |
Single-step create document from template plus send invite. |
send_invite_reminder |
Resend an email reminder to pending signers. |
get_invite_status |
Check current signing progress and per-step details. |
get_signing_link |
Obtain a direct signing URL for a recipient. |
create_embedded_invite |
Create an in-app signing session without sending email. |
create_embedded_sending |
Create an embedded document sending/management interface. |
create_embedded_editor |
Create an embedded field-placement/editor interface. |
list_contacts |
Search CRM contacts by name, email, or phone. |
get_document_download_link |
Get a download URL for the final signed document. |
update_document_fields |
Prefill text fields on a document. |
signnow_skills |
Access the bundled SignNow skill library and reference documentation. |
Prerequisites
- A SignNow account (free sandbox available at signnow.com/developers)
- Python 3.11+
- SignNow API credentials (Basic token, plus email/password or OAuth client)
Install
Quick start with uvx (no install):
uvx --from signnow-mcp-server sn-mcp serve
Or install from PyPI:
pip install signnow-mcp-server
sn-mcp serve
HTTP mode (for Docker or remote deployments):
sn-mcp http --host 0.0.0.0 --port 8000
Claude Desktop config (STDIO)
{
"mcpServers": {
"signnow": {
"command": "sn-mcp",
"args": ["serve"],
"env": {
"SIGNNOW_USER_EMAIL": "your-email@example.com",
"SIGNNOW_PASSWORD": "your-password",
"SIGNNOW_API_BASIC_TOKEN": "your-base64-token"
}
}
}
}
VS Code / Cursor config (uvx, no local install)
{
"servers": {
"signnow": {
"command": "uvx",
"args": ["--from", "signnow-mcp-server", "sn-mcp", "serve"],
"env": {
"SIGNNOW_USER_EMAIL": "${env:SIGNNOW_USER_EMAIL}",
"SIGNNOW_PASSWORD": "${env:SIGNNOW_PASSWORD}",
"SIGNNOW_API_BASIC_TOKEN": "${env:SIGNNOW_API_BASIC_TOKEN}"
}
}
}
}
Remote HTTP transport
{
"mcpServers": {
"signnow": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}
Environment variables
SIGNNOW_USER_EMAIL,SIGNNOW_PASSWORD,SIGNNOW_API_BASIC_TOKEN: username/password authSIGNNOW_CLIENT_ID,SIGNNOW_CLIENT_SECRET,OAUTH_ISSUER: OAuth 2.0 alternativeSIGNNOW_APP_BASE(defaulthttps://app.signnow.com),SIGNNOW_API_BASE(defaulthttps://api.signnow.com)OAUTH_RSA_PRIVATE_PEM,OAUTH_JWK_KID,ACCESS_TTL,REFRESH_TTLfor production OAuth
- Generate an NDA or contract from a saved template and email it to a counterparty in one prompt, with fields prefilled from CRM data.
- Run a daily agent that lists pending invites, checks
get_invite_statusfor each, and sends reminders to recipients who have not signed. - Build embedded signing into an internal tool by calling
create_embedded_inviteorcreate_embedded_editorto mint per-session URLs. - Auto-download completed signed PDFs via
get_document_download_linkand archive them to storage once status is "completed". - Convert ad-hoc uploaded PDFs into reusable templates with
upload_documentfollowed bycreate_templatefor repeated workflows.
- "Create a document from my MSA template, prefill the customer name as Acme Corp, and send it to legal@acme.com for signature."
- "List all my pending SignNow invites and send a reminder to anyone who hasn't signed in 3 days."
- "Generate an embedded signing link for document abc123 so I can drop it into our onboarding app."
- "What's the current signing status of the contract I sent to jane@example.com yesterday?"
- "Download the completed signed PDF for document ID 9f2c1 and save the link."
- Official server maintained by airSlate SignNow, MIT licensed, with full lifecycle coverage (templates, invites, embedded flows, downloads).
- Supports both STDIO and Streamable HTTP transports, plus a Docker image, making it usable in desktop clients and hosted deployments.
- Multiple auth modes: simple email/password + basic token for local dev, OAuth 2.0 with RSA keys for production.
- Ships with working integration examples for LangChain, LlamaIndex, and SmolAgents.
- Requires Python 3.11+ and self-hosting; no fully managed remote endpoint is published by SignNow.
- File uploads are restricted to a configured safe base directory (defaults to the user's home), which can complicate agent workflows that pull files from arbitrary paths.
- Production OAuth requires careful RSA key persistence: a missing
OAUTH_RSA_PRIVATE_PEMregenerates keys on each restart and invalidates issued tokens.
- DocuSign MCP integrations (community-built MCP servers for the DocuSign eSignature API).
- Dropbox Sign (HelloSign) API wrapped via community MCP servers for similar e-signature workflows.
- signnow/sn-api-helper-mcp: companion MCP server focused on assisting developers building against the SignNow API rather than executing signing workflows.