Back to API Docs
MCP Server

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

1

Get your API key

Go to Dashboard → Developers and create an API key. Use a test key for experimenting.

2

Configure Claude Desktop

Add this to your Claude Desktop config file:

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json
json
{
  "mcpServers": {
    "signforge": {
      "command": "npx",
      "args": ["-y", "@signforge/mcp-server"],
      "env": {
        "SIGNFORGE_API_KEY": "sf_live_YOUR_KEY"
      }
    }
  }
}
3

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

VariableRequiredDescription
SIGNFORGE_API_KEYRequiredYour SignForge API key (live or test)
SIGNFORGE_API_URLOptionalAPI 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)

json
// 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

bash
SIGNFORGE_API_KEY=sf_live_YOUR_KEY npx -y @signforge/mcp-server

The 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.