The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the CanUSign listing page.
MCP (Model Context Protocol) server for CanUSign. Allows Claude to create and manage contracts.
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):
Or if using npx (after publishing to npm):
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:
Example with delivered links:
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)MIT