MCP Server for AI Agents
Send documents for e-signature from Claude Desktop, Cursor, and other MCP-compatible AI tools — using natural language.
What is MCP?
The Model Context Protocol (MCP) is an open standard that lets AI assistants like Claude use external tools. SignForge's MCP server gives Claude the ability to create envelopes, send documents for signing, check status, and download signed PDFs — all through conversation.
Example conversation
You: “Send the NDA at ~/Documents/nda.pdf to jane@acme.com for signing”
Claude: “Done! I've created envelope #abc123 and sent it to jane@acme.com. She'll receive an email with a signing link.”
You: “Has she signed it yet?”
Claude: “Not yet — Jane viewed the document 10 minutes ago but hasn't signed. Status: viewed.”
Installation
Get your API key
Go to Dashboard → Developers and create an API key. Use a test key for experimenting.
Configure Claude Desktop
Add this to your Claude Desktop config file:
macOS
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows
%APPDATA%\Claude\claude_desktop_config.json{
"mcpServers": {
"signforge": {
"command": "npx",
"args": ["-y", "@signforge/mcp-server"],
"env": {
"SIGNFORGE_API_KEY": "sf_live_YOUR_KEY"
}
}
}
}Restart Claude Desktop
Quit and reopen Claude Desktop. You should see a hammer icon indicating MCP tools are connected.
Available Tools
The MCP server exposes 15 tools organized into 5 categories. Claude uses them automatically based on your requests.
Envelope Management (6)
create_and_send
Create an envelope with a PDF, add a signer, and send for e-signature.
Params: title, signer_email, signer_name, pdf_path or pdf_base64
send_envelope
Send a draft envelope that was created but not yet sent.
Params: envelope_id
check_status
Check the current status of an envelope including recipient signing status.
Params: envelope_id
list_envelopes
List your envelopes with optional status filter.
Params: status (optional), limit (optional)
void_envelope
Cancel an active envelope. Cannot be undone.
Params: envelope_id, reason (optional)
delete_envelope
Permanently delete a draft or voided envelope.
Params: envelope_id
Documents (3)
download_signed
Download the signed PDF for a completed envelope to a local file.
Params: envelope_id, output_path
download_certificate
Download the audit certificate PDF with signing details and timeline.
Params: envelope_id, output_path
download_archive
Download a ZIP archive containing signed PDF, certificate, and audit trail.
Params: envelope_id, output_path
Templates (2)
list_templates
List reusable document templates with optional search.
Params: search (optional), limit (optional)
create_from_template
Create and optionally send an envelope from a template with prefilled fields.
Params: template_id, recipients, prefill_fields (optional), title (optional), send_immediately (optional)
Embed (1)
get_embed_url
Generate a time-limited URL for embedding the signing UI in an iframe.
Params: envelope_id, recipient_id (optional)
Webhooks (3)
create_webhook
Register a webhook URL to receive signing event notifications.
Params: url, events[], description (optional)
list_webhooks
List all configured webhooks.
Params: (none)
delete_webhook
Remove a webhook registration.
Params: webhook_id
Conversation Examples
You: “Send this NDA at ~/Documents/nda.pdf to john@example.com for signing”
Claude: “Done! I've created envelope #abc123 and sent it to john@example.com. He'll receive an email with a signing link.”
Tools used: create_and_send
You: “Use the NDA template for a new client jane@acme.com and send immediately”
Claude: “I found your "Standard NDA" template. I've created an envelope for Jane at jane@acme.com and sent it right away. Envelope ID: #def456.”
Tools used: list_templates → create_from_template
You: “Download the signed PDF and audit certificate for envelope #abc123”
Claude: “I've downloaded both files to your current directory: • signed_abc123.pdf (signed document) • certificate_abc123.pdf (audit certificate)”
Tools used: download_signed → download_certificate
You: “Show me all envelopes that are still waiting for signatures”
Claude: “You have 3 envelopes with status 'sent': 1. NDA — John (viewed 2h ago) 2. Service Agreement — Jane (pending) 3. Consulting Terms — Alex (viewed, partially signed)”
Tools used: list_envelopes
Note: Verification endpoints are public REST APIs that don't need an API key. See the Verification API docs for code-based and upload verification.
Environment Variables
| Variable | Required | Description |
|---|---|---|
| SIGNFORGE_API_KEY | Required | Your SignForge API key (live or test) |
| SIGNFORGE_API_URL | Optional | API base URL (default: https://signforge.io/api/v1) |
Other MCP Clients
The SignForge MCP server works with any MCP-compatible client. Here are configs for popular tools:
Claude Code (CLI)
// In your project's .mcp.json:
{
"mcpServers": {
"signforge": {
"command": "npx",
"args": ["-y", "@signforge/mcp-server"],
"env": {
"SIGNFORGE_API_KEY": "sf_live_YOUR_KEY"
}
}
}
}Run directly with npx
SIGNFORGE_API_KEY=sf_live_YOUR_KEY npx -y @signforge/mcp-serverThe server communicates over stdio, so it integrates with any MCP transport that supports the stdio protocol.
Troubleshooting
Claude doesn't show the hammer icon
Make sure you saved the config file and fully restarted Claude Desktop (Cmd+Q, not just close window). Check that Node.js 18+ is installed.
"SIGNFORGE_API_KEY environment variable is required" error
Your API key isn't reaching the server. Check the "env" block in your config — the key must be in the env object, not as a command-line argument.
"SignForge API error (401)" on tool calls
Your API key is invalid or revoked. Go to Dashboard → Developers and verify the key is active. Generate a new one if needed.
"SignForge API error (429)" rate limit
You've exceeded the rate limit (60 requests/min). Wait a moment and try again. Sandbox mode has a higher rate limit.
API Reference
Full REST API documentation with endpoint reference.
Verification API
Verify signed documents — public, no auth required.
Embed Widget
Embed signing UIs in your app with an iframe and JS SDK.
Code Examples
Integration samples for n8n, Retool, cURL, and more.