SignNow MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ACCESS_TTL | No | OAuth access token time-to-live in seconds | 3600 |
| REFRESH_TTL | No | OAuth refresh token time-to-live in seconds | 2592000 |
| OAUTH_ISSUER | No | OAuth issuer URL for OAuth 2.0 mode | |
| OAUTH_JWK_KID | No | JSON Web Key ID for OAuth RSA key | |
| SIGNNOW_TOKEN | No | Optional direct API access token (not required for normal use) | |
| SIGNNOW_API_BASE | No | SignNow API base URL | https://api.signnow.com |
| SIGNNOW_APP_BASE | No | SignNow app base URL | https://app.signnow.com |
| SIGNNOW_PASSWORD | No | Your SignNow password for username/password authentication | |
| ALLOWED_REDIRECTS | No | Comma-separated list of allowed redirect URIs for OAuth | |
| SIGNNOW_CLIENT_ID | No | OAuth 2.0 client ID for SignNow API | |
| SIGNNOW_USER_EMAIL | No | Your SignNow email address for username/password authentication | |
| OAUTH_RSA_PRIVATE_PEM | No | RSA private key in PEM format for OAuth token signing (critical in production) | |
| SIGNNOW_CLIENT_SECRET | No | OAuth 2.0 client secret for SignNow API | |
| SIGNNOW_API_BASIC_TOKEN | No | Base64 basic token for SignNow API authentication |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| send_inviteA | Send invite to sign a document, document group, template, or template group. Supports both field invites (documents with roles/fields) and freeform invites (documents without fields). Document type is auto-detected — omit 'role' for freeform documents. For templates and template groups, automatically creates a document/group first, then sends the invite. Set self_sign=True (and omit orders) to sign the document yourself — the tool resolves the current user's email and populates SendInviteResponse.link with a direct signing link. The 'link' field is also populated when a freeform recipient's email matches the authenticated user's primary email. The entity's state may have changed in the SignNow editor since you last looked — re-read the current state first and build this request from the current roles/fields, not from earlier in the conversation. |
| create_embedded_inviteA | Create embedded invite for signing a document, document group, template, or template group. For templates and template groups, automatically creates a document/group first, then creates the embedded invite. The entity's state may have changed in the SignNow editor since you last looked — re-read the current state first and build this request from the current roles/fields, not from earlier in the conversation. |
| create_embedded_sendingA | Create embedded sending for managing, editing, or sending invites for a document, document group, template, or template group. For templates and template groups, automatically creates a document/group first, then creates the embedded sending. In MCP Apps-compatible clients the sender UI renders inline — no tab switch needed. |
| create_embedded_editorA | Create embedded editor for editing a document, document group, template, or template group. For templates and template groups, automatically creates a document/group first, then creates the embedded editor. |
| get_documentA | Get full document, template, template group or document group information with field values. Always returns the current server-side state; call it again to pick up edits made in the SignNow editor after an earlier fetch. |
| send_invite_from_templateA | Create a document or document group from a template or template group, then send a signing invite immediately. This tool is ONLY for templates and template groups. |
| create_embedded_sending_from_templateA | Create a document or document group from a template or template group, then create an embedded sending link immediately. This tool is ONLY for templates and template groups. |
| create_embedded_editor_from_templateA | Create a document or document group from a template or template group, then create an embedded editor link immediately. This tool is ONLY for templates and template groups. |
| create_embedded_invite_from_templateA | Create a document or document group from a template or template group, then create an embedded signing invite immediately. This tool is ONLY for templates and template groups. |
| list_all_templatesA | Get simplified list of all templates and template groups with basic information |
| list_documentsA | Get simplified list of documents and document groups with basic information. Returns both documents and document groups in a unified format. Use this tool to fetch lists of documents by status, e.g. documents waiting for your signature (waiting-for-me) or expired documents (expired_filter=expired). |
| create_templateA | Convert an existing document or document group into a reusable template |
| create_from_templateB | Create a new document or document group from an existing template or template group |
| get_invite_statusA | Get invite status for a document or document group. Supports field invites and freeform invites (field invite is preferred when both exist). For freeform document groups, uses the group documents list so signature_requests include signer emails when the API provides them. Returns invite_mode 'field' or 'freeform'. |
| get_document_download_linkA | Get download link for a document or document group |
| get_signing_linkA | Get signing link for a document or document group |
| update_document_fieldsA | Update text fields in multiple documents (only individual documents, not document groups) |
| upload_documentA | Upload a document to SignNow from a local file path, public URL, or MCP resource attachment. Supported file types: PDF, DOC, DOCX, PNG, JPG, JPEG. Max file size: 40 MB. On success the response includes a 'next_steps' array (prepare invite / send for signing / self-sign) and an 'agent_guidance' string — present those options to the user and wait for them to choose before calling any follow-up tool. NOTE: For URL uploads, the returned filename is locally inferred and may differ from how SignNow names the document. |
| send_invite_reminderA | Send a signing reminder to pending signers on a document or document group. |
| cancel_inviteA | Cancel all active (pending) signing invites on a document or document group. The entity's state may have changed in the SignNow editor since you last looked — re-read the current state first to confirm the current invite state, not what you saw earlier in the conversation. |
| update_invite_recipientA | Replace the signing recipient on a pending field invite for a document or document group. Finds the pending invite for the current signer and replaces it with a new signer. For documents: deletes the old invite, creates a replacement, and triggers sending. For document groups: updates the pending step(s) with the new signer information. Only field invites are supported — freeform and embedded invites cannot be updated. The entity's state may have changed in the SignNow editor since you last looked — re-read the current state first and build this request from the current roles/recipients, not from earlier in the conversation. |
| view_documentA | Generate a read-only embedded view link for a document or document group. To find an entity by name, first call list_documents or list_templates to search for it, then pass the returned entity_id here. In MCP Apps-compatible clients the document renders inline — no tab switch needed. In other hosts, the returned view_link is presented as a clickable URL. |
| list_contactsA | Search CRM contacts by name, email, or phone. Use this tool before send_invite to resolve a recipient's email address by their name. |
| rename_entityA | Rename a document, document group, template, or template group. |
| signnow_skillsA | Query the bundled SignNow skill library. Omit skill_name to list all skills with descriptions. Provide skill_name to read the full skill body. Load signnow101 before performing any SignNow action — it contains required workflow rules including when to preview before sending. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| document_viewer_app | MCP Apps inline viewer for SignNow documents. Returns an HTML page that renders an embedded document view inside a sandboxed iframe. |
| embedded_sender_app | MCP Apps inline UI for SignNow Embedded Sender. Returns an HTML page that renders the embedded sender inside a sandboxed iframe. |
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/signnow/sn-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server