# CanUSign

**Category:** ⚖️ Legal  
**Repository:** https://github.com/devin-lemcke/canusign-mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/canusign

## Description
Create PDF contracts, send signing links and check signature status with CanUSign e-signatures.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "canusign": {
    "command": "npx",
    "args": ["-y","canusign"]
  }
}
```

## Documentation & README

# CanUSign MCP Server

MCP (Model Context Protocol) server for CanUSign. Allows Claude to create and manage contracts.

## Installation

```bash
git clone https://github.com/devin-lemcke/canusign-mcp-server
cd canusign-mcp-server
npm install
npm run build
```

## Configuration

### 1. Get your API Key

Go to [CanUSign Settings](https://canusign.com/settings) and create an API key.

### 2. Configure Claude Code

Add the following to your Claude Code MCP settings (`~/.claude/claude_desktop_config.json` or via Claude Code settings):

```json
{
  "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):

```json
{
  "mcpServers": {
    "canusign": {
      "command": "npx",
      "args": ["canusign-mcp-server"],
      "env": {
        "CANUSIGN_API_KEY": "canu_your_api_key_here"
      }
    }
  }
}
```

## Available Tools

### `create_contract`

Create a new contract for signing.

**Parameters:**
- `title` (required): Title of the contract
- `content`: 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 MB
- `language`: 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 content
- `signers`: 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 address
- `tags`: Array of tags for organization
- `finalize`: If true (default), contract is ready for signing

**Example:**
```text
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:**
```text
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_contract`

Rename, retag or finalize a draft, and send or resend signing links.

**Parameters:**
- `id` (required): Contract ID or token
- `title`, `tags`, `finalize`
- `signers`: 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 hours

### `list_contracts`

List all contracts with optional filtering.

**Parameters:**
- `status`: Filter by status (draft, pending, pending_payment, fully_signed)
- `limit`: Maximum number of results

### `get_contract`

Get details of a specific contract.

**Parameters:**
- `id` (required): Contract ID or token

### `delete_contract`

Delete a contract (refused once anyone has signed).

**Parameters:**
- `id` (required): Contract ID or token

## Environment Variables

- `CANUSIGN_API_KEY` (required): Your CanUSign API key
- `CANUSIGN_API_URL` (optional): API base URL (default: https://canusign.com)

## Development

```bash
# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run dev
```

## License

MIT

