SignForge
Send documents for e-signature from Claude Desktop, Claude Code, Cursor, and other AI agents. Free DocuSign alternative.
README
@signforge/mcp-server
Send documents for e-signature directly from Claude Desktop, Claude Code, Cursor, and other AI agents — powered by SignForge, the free e-signature platform.
What It Does
This MCP server connects AI agents to SignForge's e-signature API. Your AI assistant can:
- Send documents for signature — upload a PDF, specify a signer, and send in one step
- Manage envelopes — send, void, delete, and check status
- Download documents — signed PDFs, audit certificates, and ZIP archives
- Use templates — create envelopes from reusable templates with pre-filled fields
- Manage webhooks — subscribe to real-time envelope events
- Generate embed URLs — create embeddable signing experiences
Quick Start
1. Get Your API Key
Sign up at signforge.io and generate an API key from your Developer Settings.
2. Configure Your AI Client
Choose your client below and add the configuration:
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"signforge": {
"command": "npx",
"args": ["-y", "@signforge/mcp-server"],
"env": {
"SIGNFORGE_API_KEY": "your-api-key-here"
}
}
}
}
Config file location:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Claude Code
claude mcp add signforge -- npx -y @signforge/mcp-server
Then set the environment variable in your shell:
export SIGNFORGE_API_KEY="your-api-key-here"
Cursor
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"signforge": {
"command": "npx",
"args": ["-y", "@signforge/mcp-server"],
"env": {
"SIGNFORGE_API_KEY": "your-api-key-here"
}
}
}
}
Direct (npx)
SIGNFORGE_API_KEY="your-api-key-here" npx -y @signforge/mcp-server
3. Restart Your Client
Restart Claude Desktop, Claude Code, or Cursor to pick up the new MCP server.
Tools
Envelope Management
| Tool | Description |
|---|---|
create_and_send |
Upload a PDF, add a signer, and send for e-signature. Accepts a local file path or base64-encoded PDF. |
check_status |
Check the status of an envelope — see signing progress, timestamps, and available documents. |
list_envelopes |
List your envelopes with optional status filtering (draft, sent, completed, voided, expired). |
send_envelope |
Send a draft envelope for signing. |
void_envelope |
Void (cancel) an active envelope with an optional reason. |
delete_envelope |
Permanently delete a draft or voided envelope. |
Document Downloads
| Tool | Description |
|---|---|
download_signed |
Download the signed PDF for a completed envelope to a local file. |
download_certificate |
Download the audit certificate PDF with full audit trail. |
download_archive |
Download a ZIP archive with signed PDF, certificate, and all documents. |
Embedded Signing
| Tool | Description |
|---|---|
get_embed_url |
Generate an embeddable signing URL for in-app signing experiences. |
Templates
| Tool | Description |
|---|---|
list_templates |
List your reusable document templates. |
create_from_template |
Create an envelope from a template with optional pre-filled field values. Send immediately or save as draft. |
Webhooks
| Tool | Description |
|---|---|
create_webhook |
Subscribe to envelope events (sent, viewed, signed, completed, expired, voided, declined). |
list_webhooks |
List all configured webhooks. |
delete_webhook |
Delete a webhook by ID. |
Example Conversations
Send a document for signature
You: Send my NDA at ~/Documents/nda.pdf to jane@example.com (Jane Smith) for signature.
AI: I'll send that NDA for signature now.
[Uses create_and_send tool]
Done! I've created and sent the envelope:
- Envelope ID: a1b2c3d4-...
- Status: sent
- Jane Smith (jane@example.com) will receive a signing link via email.
Check status and download
You: Has Jane signed the NDA yet?
AI: Let me check.
[Uses check_status tool]
Yes! Jane signed it on April 7 at 2:15 PM. The envelope is now completed.
You: Great, download the signed copy and the audit certificate.
[Uses download_signed tool]
[Uses download_certificate tool]
Done! Files saved:
- Signed PDF: ~/Documents/nda-signed.pdf
- Audit Certificate: ~/Documents/nda-certificate.pdf
Use a template with pre-filled fields
You: Send our standard consulting agreement to bob@acme.com.
Pre-fill the company name as "Acme Corp" and the start date as "May 1, 2026".
AI: I'll create that from your consulting agreement template.
[Uses list_templates tool — finds "Consulting Agreement" template]
[Uses create_from_template tool — with prefill_fields and send_immediately: true]
Done! Envelope created and sent:
- Title: Consulting Agreement
- Recipient: bob@acme.com
- Pre-filled: company = "Acme Corp", start_date = "May 1, 2026"
- Status: sent
Manage envelope lifecycle
You: List my sent envelopes.
[Uses list_envelopes tool with status: "sent"]
You: Void the contract for Project Alpha — the deal fell through.
[Uses void_envelope tool with reason]
You: Now delete it.
[Uses delete_envelope tool]
Done — envelope voided and deleted.
Set up a webhook
You: Set up a webhook to notify my server when documents are signed or completed.
[Uses create_webhook tool]
Webhook created:
- URL: https://api.yourapp.com/webhooks/signforge
- Events: envelope.signed, envelope.completed
- Secret: whsec_abc123... (save this for signature verification!)
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
SIGNFORGE_API_KEY |
Yes | — | Your SignForge API key. Get one at signforge.io/dashboard/developers. |
SIGNFORGE_API_URL |
No | https://signforge.io/api/v1 |
API base URL. Only change this for self-hosted instances or staging. |
Sandbox Mode
API keys created in sandbox mode will create test envelopes that don't send real emails. Use sandbox mode during development and testing.
Troubleshooting
"SIGNFORGE_API_KEY environment variable is required"
Make sure you've set the SIGNFORGE_API_KEY in your MCP client configuration. See the setup instructions above.
"SignForge API error (401)" Your API key is invalid or expired. Generate a new one at signforge.io/dashboard/developers.
"SignForge API error (403)" Your API key doesn't have permission for this operation. Check your key's scopes.
"SignForge API error (429)" You've hit the rate limit. Wait a moment and try again.
Server not showing up in Claude Desktop
- Make sure the config JSON is valid (no trailing commas)
- Restart Claude Desktop completely (quit + reopen)
- Check the MCP server logs in Claude Desktop's developer console
Links
- SignForge — Free e-signature platform
- API Documentation — Full API reference
- GitHub — Source code
- MCP Protocol — Model Context Protocol specification
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。