swiftsign-mcp
E-signature for AI agents. An MCP server that lets Claude Code, Cursor, Zed, or any MCP-aware agent prepare, send, track, and seal legally binding documents without a human ever touching a mouse.
README
<p align="center"> <img src="./assets/banner.svg" alt="SwiftSign: AI-native e-signatures" width="100%"> </p>
<p align="center"> <a href="https://www.npmjs.com/package/swiftsign-mcp"><img src="https://img.shields.io/npm/v/swiftsign-mcp?style=flat-square&color=0D1117&label=npm" alt="npm"></a> <a href="https://github.com/shahdadk/swiftsign-mcp/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-0D1117?style=flat-square" alt="MIT"></a> <img src="https://img.shields.io/badge/MCP-stdio-0D1117?style=flat-square" alt="MCP stdio"> <img src="https://img.shields.io/badge/Claude_Code_·Cursor·_Zed-0D1117?style=flat-square" alt="Compatible clients"> <a href="https://swiftsign.ca"><img src="https://img.shields.io/badge/swiftsign.ca-live-0D1117?style=flat-square" alt="Live"></a> </p>
swiftsign-mcp
E-signature for AI agents. An MCP server that lets Claude Code, Cursor, Zed, or any MCP-aware agent prepare, send, track, and seal legally binding documents without a human ever touching a mouse.
DocuSign assumes a person with a cursor dragging signature boxes onto a PDF. SwiftSign assumes code. An agent mints its own sandbox key, sends a contract, watches it get signed, and pulls back the sealed PDF and Certificate of Completion. No drag handles. No per-seat fees.
Quick start
claude mcp add swiftsign -- npx -y swiftsign-mcp
Or add it to your .mcp.json directly:
{
"mcpServers": {
"swiftsign": {
"command": "npx",
"args": ["-y", "swiftsign-mcp"],
"env": { "SWIFTSIGN_API_KEY": "sk_test_..." }
}
}
}
No key yet? You do not need the dashboard. Start the server with no key and call swiftsign_signup to mint a sandbox key in one tool call.
Zero to signed, no browser
An agent can go from nothing to a sealed document without ever opening a web page:
1. swiftsign_signup → mint a sandbox key (sk_test_...), no account, no card
2. swiftsign_send_envelope → send a PDF, place fields by anchor text or coordinates
3. swiftsign_check_status → poll until signed
4. swiftsign_download_signed_pdf → pull back the sealed PDF + Certificate of Completion
Live sends are confirm-gated: a real, legally binding send requires an explicit swiftsign_confirm_send so an agent cannot fire a contract by accident.
Tools
| Tool | What it does |
|---|---|
swiftsign_signup |
Mint a sandbox account + sk_test_ key. The only tool that runs with no key set. |
swiftsign_send_envelope |
Send one or more PDFs for signature; anchor-text or coordinate field placement. |
swiftsign_confirm_send |
Confirm a live (legally binding) send. Safety gate against accidental sends. |
swiftsign_send_from_template |
Send from a saved template by recipient role. |
swiftsign_check_status |
Check signing status of an envelope. |
swiftsign_list_envelopes |
List sent envelopes. |
swiftsign_list_templates |
List saved templates. |
swiftsign_create_embedded_url |
Mint a short-lived embedded signing URL. |
swiftsign_download_signed_pdf |
Download the sealed PDF + Certificate of Completion. |
swiftsign_void_envelope |
Cancel an in-flight envelope. |
swiftsign_upgrade |
Get a Stripe link to enable live sends. |
Coming from DocuSign
Bring your existing templates with you. The bundled importer (src/docusign/) authenticates against the DocuSign API and maps your templates and fields into SwiftSign, so an agent can migrate a signing workflow instead of rebuilding it.
Sandbox vs live keys
sk_test_: everything works (send, status, templates, embedded URLs); documents are test sends. No card.sk_live_: real, legally binding documents. Upgrade once withswiftsign_upgrade(a Stripe link you open to add a card). The same tools work in both modes; the key decides.
Legally binding
SwiftSign signatures carry a tamper-evident SHA-256 seal, a full audit trail, and a Certificate of Completion. Enforceable under:
- United States: ESIGN Act, UETA
- Canada: PIPEDA, Ontario Electronic Commerce Act
Configuration
| Env var | Required | Description |
|---|---|---|
SWIFTSIGN_API_KEY |
no | sk_test_ or sk_live_ key. Optional at startup; mint one with swiftsign_signup. |
SWIFTSIGN_API_URL |
no | Override the API base for self-hosted SwiftSign instances. |
Build from source
npm install
npm run build # compiles src/ → dist/
npm test # node --test
Links
- Website: swiftsign.ca
- API docs: swiftsign.ca/docs
- Issues: github.com/shahdadk/swiftsign-mcp/issues
License
MIT © Shahdad Kompani
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.