Create PDF contracts, send signing links and check signature status with CanUSign e-signatures.
MCP (Model Context Protocol) server for CanUSign. Allows Claude to create and manage contracts.
git clone https://github.com/devin-lemcke/canusign-mcp-server
cd canusign-mcp-server
npm install
npm run build
Go to CanUSign Settings and create an API key.
Add the following to your Claude Code MCP settings (~/.claude/claude_desktop_config.json or via Claude Code settings):
{
"mcpServers": {
"canusign": {
"command": "node",
"args": ["/path/to/canusign-mcp-server/dist/index.js"],
"env": {
"CANUSIGN_API_KEY": "canu_your_api_key_here"
}
}
}
}
Or if using npx (after publishing to npm):
{
"mcpServers": {
"canusign": {
"command": "npx",
"args": ["canusign-mcp-server"],
"env": {
"CANUSIGN_API_KEY": "canu_your_api_key_here"
}
}
}
}
create_contractCreate a new contract for signing.
Parameters:
title (required): Title of the contractcontent: HTML content of the contract (give this or document)document: Your own PDF, as { path } (a file on this machine) or { pdf } (base64), up to 3 MBlanguage: de, en, es or fr (default en)signatureFields: Array of { label } for HTML content. With a document each field also
takes page, x, y, width, height in percent of the page, origin top-left, where x/y
is the top-left corner of the field
and an optional type: signature (default), initials, date or text. Every type
except text needs a label. date prints the day that label signs, so the label also needs
a signature or initials field. text needs text (at most 500 characters) and prints it
as is. Only signature works with HTML contentsigners: Array of { label, email?, title?, level? }, one entry per field label. With an
email the signer gets a signing link of their own by e-mail. The link opens only the fields
of that label, and the audit certificate records the address as "link delivered to". Without
an address the signer keeps using the shared signing URL. title such as "Managing Director"
(at most 80 characters) presets what the signer signs as, with or without an addresstags: Array of tags for organizationfinalize: If true (default), contract is ready for signingExample:
Create a service agreement contract between Acme Corp (client) and John Doe (provider) for web development services at $5000. Add signature fields for both parties.
Example with delivered links:
Create a service agreement between Acme Corp and John Doe. Send the signing link for "Client" to anna@acme.example and let John sign on my laptop.
update_contractRename, retag or finalize a draft, and send or resend signing links.
Parameters:
id (required): Contract ID or tokentitle, tags, finalizesigners: Array of { label, email }. The same address resends the link, a new address
replaces it and the old link stops working. At most 5 sends per signer in 24 hourslist_contractsList all contracts with optional filtering.
Parameters:
status: Filter by status (draft, pending, pending_payment, fully_signed)limit: Maximum number of resultsget_contractGet details of a specific contract.
Parameters:
id (required): Contract ID or tokendelete_contractDelete a contract (refused once anyone has signed).
Parameters:
id (required): Contract ID or tokenCANUSIGN_API_KEY (required): Your CanUSign API keyCANUSIGN_API_URL (optional): API base URL (default: https://canusign.com)# Install dependencies
npm install
# Build
npm run build
# Watch mode
npm run dev
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y canusign-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-devin-lemcke-canusign-mcp-server": {
"command": "npx",
"args": [
"-y",
"canusign-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencecanusign-mcp-servernpmCanUSign works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.