Signforge Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Signforge Mcp (MCP Server) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Send documents for e-signature directly from Claude Desktop, Claude Code, Cursor, and other AI agents — powered by SignForge, the free e-signature platform.
This MCP server connects AI agents to SignForge's e-signature API. Your AI assistant can:
Sign up at signforge.io and generate an API key from your Developer Settings.
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:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json#### Claude Code
claude mcp add signforge -- npx -y @signforge/mcp-serverThen 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-serverRestart Claude Desktop, Claude Code, or Cursor to pick up the new MCP server.
| 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. |
| 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. |
| Tool | Description |
|---|---|
get_embed_url | Generate an embeddable signing URL for in-app signing experiences. |
| 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. |
| 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. |
You: Send my NDA at ~/Documents/nda.pdf to [email protected] (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 ([email protected]) will receive a signing link via email.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.pdfYou: Send our standard consulting agreement to [email protected].
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: [email protected]
- Pre-filled: company = "Acme Corp", start_date = "May 1, 2026"
- Status: sentYou: 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.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!)| 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. |
API keys created in sandbox mode will create test envelopes that don't send real emails. Use sandbox mode during development and testing.
"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
MIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.