Skip to main content
Glama
esignaturescom

MCP Server for eSignatures

README.md
# mcp-server-esignatures

**The most developer- and AI-friendly electronic signature platform.**

Traditional eSignature tools lock you into rigid, static PDF files.
**eSignatures.com** takes a different approach — contracts remain **fully editable, Markdown-based content** throughout their entire lifecycle, making them effortless for developers, automation systems, and AI agents to create, understand, modify, and manage.

This MCP server gives AI agents (such as Claude) real-time access to the complete eSignatures API, enabling:

* Dynamic contract creation and editing — even after sending
* Markdown-based content that AI can generate, understand, and update
* End-to-end workflows: drafting → placeholder filling → sending → signing → amendments
* Flexible templates and reusable contract workflows
* Signer management, notifications, and lifecycle automation

Built for intelligent, adaptive contract workflows — not outdated PDF-based signing.


## Tools


| Tool                                 | Category      | Description                                      |
|--------------------------------------|---------------|--------------------------------------------------|
| `create_contract`                    | Contracts     | Draft for review or send contract                |
| `query_contract`                     | Contracts     | Retrieve contract info                           |
| `withdraw_contract`                  | Contracts     | Withdraw an active contract                      |
| `delete_contract`                    | Contracts     | Delete a draft or test contract                  |
| `list_recent_contracts`              | Contracts     | List the recent contracts                        |
|                                      |               |                                                  |
| `add_contract_signer`                | Signers       | Add a signer to an existing contract             |
| `update_contract_signer`             | Signers       | Update an existing signer's contact details      |
| `resend_contract_signer_request`     | Signers       | Send or resend the sign request to a signer      |
| `delete_contract_signer`             | Signers       | Remove a signer from a contract                  |
|                                      |               |                                                  |
| `query_contract_placeholder_fields`  | Placeholders  | Get a contract's placeholder field values        |
| `update_contract_placeholder_fields` | Placeholders  | Update an active contract's placeholder fields   |
|                                      |               |                                                  |
| `query_contract_content`             | Content       | Get a contract's content in Markdown format      |
| `update_contract_content`            | Content       | Edit an active contract's body via find/replace  |
|                                      |               |                                                  |
| `create_template`                    | Templates     | Create a new contract template (Markdown body)   |
| `update_template`                    | Templates     | Update an existing template's title/labels       |
| `update_template_content`            | Templates     | Edit a template's Markdown body via find/replace |
| `query_template`                     | Templates     | Retrieve template metadata                       |
| `query_template_content`             | Templates     | Retrieve a template's Markdown body              |
| `delete_template`                    | Templates     | Delete a template                                |
| `list_templates`                     | Templates     | List all your templates                          |
|                                      |               |                                                  |
| `add_template_collaborator`          | Collaborators | Invite someone to edit a template                |
| `remove_template_collaborator`       | Collaborators | Revoke template editing rights                   |
| `list_template_collaborators`        | Collaborators | View who can edit a template                     |


## Examples

#### Creating a draft contract

`Create a draft NDA for a publisher, ready for me to review and send. Signer: John Doe, ACME Corp, john@acme.com.`

#### Sending a contract from a template

`Send an NDA based on my template to John Doe from ACME Corp at john@acme.com. Set the term to 2 years.`

#### Creating a new contract

`Create a contractor agreement for a graphic designer, including payment terms of net 14 days. Prepare it as a draft for review. Signer: John Doe, ACME Corp, john@acme.com.`

#### Adding a signer to a contract

`Add Jane Smith from ACME Corp (jane@acme.com) as a signer on the NDA contract, then send her the signature request.`

#### Editing an active contract's wording

`On the NDA, change the rental term to 24 months and remove the jurisdiction section.`

#### Editing an existing template

`Update my NDA template to include a 12-month non-solicitation clause.`

#### Reviewing templates

`Review my templates and suggest improvements. Do not apply any changes until I approve them one by one.`

#### Finding the right template

`Find the best template for onboarding a contractor and prepare a draft contract for John Doe.`

#### Managing contracts

`Show me the recent contracts that are waiting for signatures.`

#### Updating signer details

`Update the signer email on the NDA contract for John Doe to john.doe@acme.com.`

#### Inviting template collaborators

`Invite John Doe to edit the NDA template. His email is john@acme.com.`


## Install

### Create an eSignatures.com account

Create an eSignatures.com account at https://esignatures.com for free, to test the Agent AI by creating templates and sending test contracts.

### Claude Desktop

On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`

##### Development/Unpublished Servers Configuration
```
"mcpServers": {
  "mcp-server-esignatures": {
    "command": "uv",
    "env": {
      "ESIGNATURES_SECRET_TOKEN": "your-esignatures-api-secret-token"
    },
    "args": [
      "--directory",
      "/your-local-directories/mcp-server-esignatures",
      "run",
      "mcp-server-esignatures"
    ]
  }
}
```

#### Published Servers Configuration
```
"mcpServers": {
  "mcp-server-esignatures": {
    "command": "uvx",
    "args": [
      "mcp-server-esignatures"
    ],
    "env": {
      "ESIGNATURES_SECRET_TOKEN": "your-esignatures-api-secret-token"
    }
  }
}
```

### Authentication

To use this server, you need to set the `ESIGNATURES_SECRET_TOKEN` environment variable with your eSignatures.com API secret token.

## eSignatures.com API Documentation

For a detailed guide on API endpoints, parameters, and responses, see [eSignatures.com API](https://esignatures.com/docs/api).

## eSignatures.com Support

For support, please navigate to [Support](https://esignatures.com/support) or contact [support@esignatures.com](mailto:support@esignatures.com).

## Contributing

Contributions are welcome! If you'd like to contribute, please fork the repository and make changes as you see fit. Here are some guidelines:

- **Bug Reports**: Please open an issue to report any bugs you encounter.
- **Feature Requests**: Suggest new features by opening an issue with the "enhancement" label.
- **Pull Requests**: Ensure your pull request follows the existing code style.
- **Documentation**: Help improve or translate documentation. Any form of documentation enhancement is appreciated.

For major changes, please open an issue first to discuss what you would like to change. We're looking forward to your contributions!

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific resources and actions, such as create_contract vs. withdraw_contract for contracts, and create_template vs. update_template for templates. There is no overlap or ambiguity in functionality, making tool selection straightforward for an agent.

Naming Consistency5/5

All tools follow a consistent verb_noun naming pattern, such as create_contract, delete_template, and list_recent_contracts. The naming is uniform throughout, with no deviations in style or convention, enhancing readability and predictability.

Tool Count5/5

With 13 tools, the server is well-scoped for eSignatures, covering core operations like contract and template management, collaboration, and querying. Each tool serves a distinct and necessary function without being excessive or insufficient for the domain.

Completeness4/5

The tool set provides comprehensive CRUD and lifecycle coverage for contracts and templates, including collaboration features. Minor gaps exist, such as no direct tool for updating contract details or handling signer-specific actions beyond querying, but agents can likely work around these with the available tools.

Maintenance

ActivitySlowing
ResponsivenessNo issues