# eSignatures — how to use (mcp.ai)

Connect your eSignatures account and use 28 tools for e-signatures straight from your AI agent. Connect with your own API key. eSignatures is an electronic signature platform for creating templates, sending contracts, managing signers, and tracking signing workflows.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_esignatures?ms=1787291220000`
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_add_contract_signer`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/esignatures`
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/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/esignatures/add/contract/signer` — Add a signer to an editable contract without automatically sending a signature request.
  - body: { name?: string, email?: string, mobile?: string, auto_sign?: string, contract_id: string, company_name?: string, redirect_url?: string, signing_order?: integer, multi_factor_authentications?: string[], signed_document_delivery_method?: string, signature_request_delivery_methods?: string[] }
- `POST https://api.mcp.ai/api/esignatures/add/contract/signers` — Add a non-empty list of signers to an editable contract by calling the provider's singular endpoint sequentially in request order. Execution is not atomic and stops on the first provider error. The re
  - body: { signers: object[], contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/add/template/collaborator` — Create a name-only collaborator who can edit a template. This action does not send an invitation or perform any other external delivery.
  - body: { name: string, template_id: string }
- `POST https://api.mcp.ai/api/esignatures/create/and/send/contract` — Create a contract from a template or from ad-hoc Markdown and immediately send signature requests to its signers. Supply exactly one of template_id or markdown. This causes external delivery; producti
  - body: { title?: string, emails?: object, labels?: string[], locale?: string, signers: object[], markdown?: string, metadata?: string, environment: string, template_id?: string, signer_fields?: object[], custom_branding?: object, expires_in_hours?: integer, custom_webhook_url?: string, placeholder_fields?: object[], assigned_user_email?: string, confirm_external_delivery: boolean }
- `POST https://api.mcp.ai/api/esignatures/create/contract/draft` — Create a test or production contract draft from a template or from ad-hoc Markdown, without sending signature requests or otherwise delivering it externally. Supply exactly one of template_id or markd
  - body: { title?: string, emails?: object, labels?: string[], locale?: string, signers: object[], markdown?: string, metadata?: string, environment: string, template_id?: string, signer_fields?: object[], custom_branding?: object, expires_in_hours?: integer, custom_webhook_url?: string, placeholder_fields?: object[], assigned_user_email?: string }
- `POST https://api.mcp.ai/api/esignatures/create/template` — Create a reusable Markdown contract template.
  - body: { title: string, labels?: string[], markdown: string }
- `POST https://api.mcp.ai/api/esignatures/delete/contract/signer` — Permanently remove a signer from an editable contract. Withdrawn contracts are locked and reject this operation.
  - body: { signer_id: string, contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/delete/template` — Permanently delete a template.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures/duplicate/template` — Duplicate a template with a new title plus optional placeholder replacements.
  - body: { title: string, template_id: string, placeholder_fields?: object[] }
- `POST https://api.mcp.ai/api/esignatures/get/contract` — Get one contract's current status, details, signers, signer field values, and temporary signed-PDF URL when available. Do not poll this tool; use provider webhooks for lifecycle changes. Records older
  - body: { contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/get/contract/content` — Return the Markdown content of one contract.
  - body: { contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/get/contract/placeholder/fields` — Return the current placeholder replacements for one contract.
  - body: { contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/get/template` — Get one template's metadata, placeholder keys, and signer-field IDs.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures/get/template/content` — Return the Markdown content of one template.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures/invite/template/collaborator` — Invite a collaborator to edit a template. This action sends an external invitation to the required email address and requires explicit confirmation.
  - body: { name?: string, email: string, template_id: string, confirm_external_delivery: boolean }
- `POST https://api.mcp.ai/api/esignatures/list/template/collaborators` — Return all collaborators who can edit one template. The provider exposes no pagination controls.
  - body: { template_id: string }
- `POST https://api.mcp.ai/api/esignatures/list/templates` — Return all templates available to the connected account. The provider exposes no pagination controls.
- `POST https://api.mcp.ai/api/esignatures/preview/contract/content/update` — Preview the prospective Markdown from exact find-and-replace edits without mutating the contract.
  - body: { edits: object[], contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/preview/template/content/update` — Preview the prospective Markdown from exact find-and-replace edits without mutating the template.
  - body: { edits: object[], template_id: string }
- `POST https://api.mcp.ai/api/esignatures/remove/template/collaborator` — Remove a collaborator's permission to edit a template.
  - body: { template_id: string, template_collaborator_id: string }
- `POST https://api.mcp.ai/api/esignatures/resend/sign/request` — Resend a signature request to one signer. This causes external delivery and may incur production usage charges, so explicit confirmation is required. The provider documents this operation, but its ext
  - body: { signer_id: string, contract_id: string, confirm_external_delivery: boolean }
- `POST https://api.mcp.ai/api/esignatures/send/draft/contract` — Send an existing draft to its signers. This can cause external delivery and production contracts may incur usage charges; explicit confirmation is required.
  - body: { contract_id: string, confirm_external_delivery: boolean }
- `POST https://api.mcp.ai/api/esignatures/update/contract/content` — Apply exact Markdown find-and-replace edits to a contract. This always mutates the contract; use Preview Contract Content Update to inspect the result first.
  - body: { edits: object[], contract_id: string }
- `POST https://api.mcp.ai/api/esignatures/update/contract/placeholder/fields` — Update selected placeholder replacements on an unsigned contract.
  - body: { contract_id: string, placeholder_fields: object[] }
- `POST https://api.mcp.ai/api/esignatures/update/contract/signer` — Update selected contact, delivery, authentication, or redirect details for a signer without resending the contract. At least one signer update field is required.
  - body: { name?: string, email?: string, mobile?: string, signer_id: string, contract_id: string, company_name?: string, redirect_url?: string, multi_factor_authentications?: string[], signed_document_delivery_method?: string, signature_request_delivery_methods?: string[] }
- `POST https://api.mcp.ai/api/esignatures/update/template` — Update a template's title and/or labels without changing its Markdown content. At least one of title or labels is required.
  - body: { title?: string, labels?: string[], template_id: string }
- `POST https://api.mcp.ai/api/esignatures/update/template/content` — Apply exact Markdown find-and-replace edits to a template. This always mutates the template; use Preview Template Content Update to inspect the result first.
  - body: { edits: object[], template_id: string }
- `POST https://api.mcp.ai/api/esignatures/withdraw/contract` — Irreversibly withdraw an active unsigned contract so it can no longer be signed. The retained contract remains queryable.
  - body: { contract_id: string }

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

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