Skip to main content
Glama
README.md
# DigiSign MCP Server

MCP server for the [DigiSign.cz](https://www.digisign.cz) digital signature API. Built for [Claude Code](https://docs.anthropic.com/en/docs/claude-code).

Create, send, and manage digital signature envelopes directly from your AI coding assistant.

[![digisign-mcp MCP server](https://glama.ai/mcp/servers/davidsimoes/digisign-mcp/badges/card.svg)](https://glama.ai/mcp/servers/davidsimoes/digisign-mcp)

## Setup

### 1. Get DigiSign API keys

In your DigiSign dashboard: **Settings > Pro vyvojare > API klice**. Create an API key pair (access key + secret key).

### 2. Install dependencies

```bash
git clone https://github.com/davidsimoes/digisign-mcp.git
cd digisign-mcp
npm install
```

### 3. Register with Claude Code

```bash
claude mcp add digisign \
  -e DIGISIGN_ACCESS_KEY=your_access_key \
  -e DIGISIGN_SECRET_KEY=your_secret_key \
  -- node /path/to/digisign-mcp/src/index.js
```

## Tools

### Read tools (safe to auto-approve)

| Tool | Description |
|------|-------------|
| `list_envelopes` | List envelopes with optional status/page filters |
| `get_envelope` | Get detailed envelope info (status, recipients, documents) |
| `list_documents` | List documents attached to an envelope |
| `list_recipients` | List recipients and their signing status |
| `list_tags` | List signature/form tags placed on documents |
| `get_download_url` | Get temporary download URL for signed documents |
| `get_account` | Get account info (credits, plan, usage) |

### Write tools (recommend manual approval)

| Tool | Description |
|------|-------------|
| `create_envelope` | Create a new draft envelope |
| `upload_and_attach_document` | Upload a PDF/DOCX and attach to an envelope |
| `add_recipient` | Add a signer, approver, or CC recipient |
| `add_signature_tag` | Place signature/form tag (placeholder or coordinate positioning) |
| `send_envelope` | Send envelope for signing (emails all recipients) |
| `cancel_envelope` | Cancel a sent envelope (notifies signers) |
| `delete_envelope` | Delete a draft envelope |
| `discard_envelope` | Discard a draft envelope (use when API key lacks delete permission) |

## Safety recommendations

Add irreversible write tools to your deny list in `~/.claude/settings.local.json`:

```json
{
  "permissions": {
    "deny": [
      "mcp__digisign__send_envelope",
      "mcp__digisign__cancel_envelope",
      "mcp__digisign__delete_envelope",
      "mcp__digisign__discard_envelope"
    ]
  }
}
```

This ensures Claude Code prompts for confirmation before sending, cancelling, or deleting envelopes.

Safe preparation tools (`create_envelope`, `upload_and_attach_document`, `add_recipient`, `add_signature_tag`) can be added to the allow list since they only modify draft envelopes.

## Signature tag positioning

Two approaches for placing signature tags on documents:

### Placeholder-based (recommended)

Add invisible text markers in your document (e.g., white-colored text like `{sign_here}`). DigiSign finds them in the PDF text layer and positions the signature tag relative to them.

```
add_signature_tag(
  envelopeId: "...",
  recipientId: "...",
  documentId: "...",
  placeholder: "{sign_here}",
  positioning: "bottom_left",
  scale: 70
)
```

**Important**: DigiSign's placeholder regex only allows `[\w\-\{\}\[\]\(\)=,]` — no spaces or diacritics. Use simple ASCII placeholders like `{sign_ceo}`, `{sign_client}`.

**Positioning**: `bottom_left` places the signature box above the placeholder text (standard for contracts where the signature goes above the printed name). `scale: 70` keeps the box compact.

**Note**: `documentId` is required even when using placeholder positioning.

### Coordinate-based

Places tag at exact page coordinates (in points):

```
add_signature_tag(
  envelopeId: "...",
  recipientId: "...",
  documentId: "...",
  page: 5,
  xPosition: 320,
  yPosition: 680
)
```

Placeholder-based is more robust — it survives document layout changes.

## Typical workflow

1. `create_envelope` — create a draft
2. `upload_and_attach_document` — attach the PDF
3. `add_recipient` — add signers (mobile number required for SMS auth)
4. `add_signature_tag` — place signature tags
5. `send_envelope` — send for signing

## Requirements

- Node.js 18+
- DigiSign.cz account with API access
- Claude Code (or any MCP-compatible client)

## License

MIT

---

Built by [David Simoes](https://github.com/davidsimoes) / [Sounds Good Agency](https://soundsgood.agency)

TDQS

A3.7/5.0

Scored across 15 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. For example, 'add_recipient' and 'list_recipients' are complementary but non-overlapping, while 'delete_envelope' and 'discard_envelope' are explicitly differentiated by permissions and state handling. The descriptions clearly delineate each tool's specific function within the envelope lifecycle.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern throughout, such as 'create_envelope', 'list_envelopes', and 'upload_and_attach_document'. The naming is uniform, predictable, and enhances readability, making it easy for agents to understand and select the appropriate tool for each operation.

Tool Count5/5

With 15 tools, the server is well-scoped for digital signature management, covering the full envelope lifecycle from creation to completion. Each tool earns its place by addressing specific needs like recipient management, document handling, and status tracking, without being overly sparse or bloated.

Completeness5/5

The tool set provides complete CRUD/lifecycle coverage for the digital signature domain. It includes envelope creation, management (send, cancel, delete/discard), recipient and document handling, status retrieval, and download capabilities, with no obvious gaps that would cause agent failures in typical workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues