# eSignatures.io — how to use (mcp.ai)

Connect your eSignatures.io account and use 17 tools for e-signatures straight from your AI agent. Connect with your own API key. eSignatures.io provides a platform for sending and signing mobile-friendly contracts over the web.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_esignatures_io?ms=1787291340000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `esignatures_io_add_template_collaborator`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/esignatures_io`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/esignatures_io/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/esignatures_io/add/template/collaborator` — Tool to grant editing access to a template with optional email invitation. Use when you need to add a collaborator who can edit the template.
  - body: { name?: string, email?: string, template_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/copy/template` — Tool to duplicate an existing template with optional customization. Use when you need to create a new template based on an existing one.
  - body: { title: string, template_id: string, placeholder_fields?: object[] }
- `POST https://api.mcp.ai/api/esignatures_io/create/contract` — Tool to create a new contract using a specified template and signer details. Use after selecting a template when you need to send a contract for signature.
  - body: { test?: string, title?: string, labels?: string[], locale?: string, signers: object[], metadata?: string, template_id: string, save_as_draft?: string, expires_in_hours?: integer, custom_webhook_url?: string, placeholder_fields?: object[], assigned_user_email?: string }
- `POST https://api.mcp.ai/api/esignatures_io/create/signer` — Add a signer to an existing contract/signature request. This action queues the addition of a new signer to a contract that has already been created. The signer will be added asynchronously and will re
  - body: { lang?: string, name: string, email: string, company_name?: string, phone_number?: string, redirect_url?: string, custom_fields?: object, signature_request_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/create/template` — Tool to create a new template. Use when you want to register a reusable contract template after defining document elements.
  - body: { title: string, labels?: string[], document_elements: object[] }
- `POST https://api.mcp.ai/api/esignatures_io/delete/signer` — Tool to remove a signer from a contract. Use when you need to revoke a signer's access to sign a contract.
  - body: { signer_id: string, contract_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/delete/template` — Tool to delete a specific template by its ID. Use when you need to remove an unused or outdated template after confirming its ID.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/generate/contract/pdf/preview` — Tool to generate a PDF preview of a contract and receive a webhook notification with a download URL. Use when you need to preview the contract document before or after signing.
  - body: { contract_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/get/contract` — Tool to retrieve details of a specific contract by its ID. Returns contract status, signer information, and values entered by signers. Use when you need to check contract status or download signed PDF
  - body: { contract_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/get/template` — Tool to retrieve details of a specific template by its ID. Use when you need to fetch a template’s metadata after selecting its ID.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/list/template/collaborators` — Tool to retrieve all collaborators with editing access to a template. Returns collaborator IDs, names, emails, and editor URLs.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/list/templates` — Tool to retrieve a list of all templates. Use when you need to browse available templates before selecting one.
- `POST https://api.mcp.ai/api/esignatures_io/remove/template/collaborator` — Tool to revoke a collaborator's template editing permissions. Use when you need to remove access for a specific collaborator from a template.
  - body: { template_id: string, template_collaborator_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/send/contract/to/signer` — Tool to send or resend a contract signature request to a specific signer via their configured communication channel. Use when you need to deliver a contract to a signer for their signature.
  - body: { signer_id: string, contract_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/update/signer` — Tool to update contact details of an existing signer on a contract. Use when you need to change a signer's name, email, or mobile number. Note: The contract is not automatically emailed when the signe
  - body: { name?: string, email?: string, mobile?: string, signer_id: string, contract_id: string }
- `POST https://api.mcp.ai/api/esignatures_io/update/template` — Tool to update an existing template's content, title, or labels. Use when you need to modify a template's configuration without creating a new one.
  - body: { title?: string, labels?: string[], template_id: string, document_elements?: object[] }
- `POST https://api.mcp.ai/api/esignatures_io/withdraw/contract` — Tool to withdraw a contract by its ID. Use when you need to prevent further signing of a contract that hasn't been fully signed.
  - body: { contract_id: string }

## Example prompts
- "What can I do in eSignatures.io?"
- "Show me a summary of my eSignatures.io account"

## More
- Page: https://mcp.ai/esignatures_io
- Agent spec (llms.txt): https://mcp.ai/esignatures_io/llms.txt
- Postman collection: https://mcp.ai/esignatures_io/postman.json
