# Documenso — how to use (mcp.ai)

Connect your Documenso account and use 77 tools for e-signatures straight from your AI agent. Connect with your own API key. Documenso is an open-source electronic signature platform that allows users to create, send, and sign documents digitally.

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

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

### Endpoints
- `POST https://api.mcp.ai/api/documenso/create/document/beta` — Tool to create a new document using the beta endpoint that returns a presigned URL for file upload. After calling this action, upload the PDF file to the returned uploadUrl using a PUT request. Use wh
  - body: { meta?: object, title: string, folderId?: string, externalId?: string, formValues?: object, recipients?: object[], visibility?: string, attachments?: object[], globalAccessAuth?: string[], globalActionAuth?: string[] }
- `POST https://api.mcp.ai/api/documenso/create/document/field` — Tool to create a single field for a document. Use when you need to add a signature, initials, text, or other field type to a specific location on a document page. The document must be in DRAFT status 
  - body: { field: object, documentId: integer }
- `POST https://api.mcp.ai/api/documenso/create/document/fields/bulk` — Tool to create multiple fields on a document in a single operation. Use when you need to add signature fields, text fields, or other input fields to a DRAFT document. This bulk operation is more effic
  - body: { fields: object[], documentId: integer }
- `POST https://api.mcp.ai/api/documenso/create/document/recipient` — Tool to create a single recipient for a document. Use when you need to add a new recipient (signer, viewer, approver, etc.) to an existing document.
  - body: { recipient: object, documentId: integer }
- `POST https://api.mcp.ai/api/documenso/create/document/recipients/bulk` — Tool to create multiple recipients for a document at once. Use when you need to add multiple recipients (signers, approvers, viewers, etc.) to a document in a single operation. The document must be in
  - body: { documentId: integer, recipients: object[] }
- `POST https://api.mcp.ai/api/documenso/create/embedding/presign/token/v2/beta` — Create a presign token for Documenso embedded authoring sessions. Use this tool to generate a token that authorizes embedding document/template creation and editing interfaces in your application. The
  - body: { expiresInSeconds?: integer }
- `POST https://api.mcp.ai/api/documenso/create/envelope` — Tool to create a new envelope in Documenso. Use when you need to create a document or template envelope with optional file uploads, recipients, and configuration settings. The envelope can be configur
  - body: { meta?: object, type: string, files?: object[], title: string, folderId?: string, externalId?: string, formValues?: object, recipients?: object[], visibility?: string, attachments?: object[], globalAccessAuth?: string[], globalActionAuth?: string[], delegatedDocumentOwner?: string }
- `POST https://api.mcp.ai/api/documenso/create/envelope/attachment` — Create a new attachment for an envelope in Documenso. Use this action to add supporting documents or files to an existing envelope. The file must be provided as a base64-encoded data URI in the format
  - body: { data: object, envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/create/envelope/items/bulk` — Tool to create multiple items for an envelope with optional file attachments. Use when you need to add items (documents) to an existing envelope in Documenso.
  - body: { files?: object[], envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/create/envelope/recipients/bulk` — Tool to create multiple recipients for an envelope in bulk. Use when you need to add several recipients to an existing envelope at once. Each recipient must have an email, name, and role (SIGNER, APPR
  - body: { data: object[], envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/create/folder` — Create a new folder in Documenso to organize documents or templates. Use this action when you need to create a folder for organizing files, either as a top-level folder or nested within an existing fo
  - body: { name: string, type?: string, parentId?: string }
- `POST https://api.mcp.ai/api/documenso/create/template/beta` — Tool to create a new template using the beta endpoint that returns a presigned URL for file upload. After calling this action, upload the PDF file to the returned uploadUrl using a PUT request. Use wh
  - body: { meta?: object, type?: string, title: string, folderId?: string, externalId?: string, visibility?: string, attachments?: object[], publicTitle?: string, globalAccessAuth?: string[], globalActionAuth?: string[], publicDescription?: string }
- `POST https://api.mcp.ai/api/documenso/create/template/field` — Tool to create a single field for a template. Use when you need to add a signature, initials, text, or other field type to a specific location on a template page.
  - body: { field: object, templateId: integer }
- `POST https://api.mcp.ai/api/documenso/create/template/fields/bulk` — Tool to create multiple fields on a template in a single operation. Use when you need to add signature fields, text fields, or other input fields to a template. This bulk operation is more efficient t
  - body: { fields: object[], templateId: integer }
- `POST https://api.mcp.ai/api/documenso/create/template/recipient` — Tool to create a single recipient for a template. Use when you need to add a new recipient (signer, viewer, approver, etc.) to an existing template.
  - body: { recipient: object, templateId: integer }
- `POST https://api.mcp.ai/api/documenso/create/template/recipients/bulk` — Tool to create multiple recipients for a template at once. Use when you need to add multiple recipients (signers, approvers, viewers, etc.) to a template in a single operation.
  - body: { recipients: object[], templateId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/document` — Tool to delete a document. Use when you need to permanently remove a document from Documenso. The deletion is irreversible.
  - body: { documentId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/document/attachment` — Tool to delete an attachment from a document. Use when you need to remove a previously uploaded attachment from a document. The deletion is permanent.
  - body: { id: string }
- `POST https://api.mcp.ai/api/documenso/delete/document/field` — Tool to delete a single document field by ID. Use when you need to remove a specific field from a document.
  - body: { fieldId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/document/fields` — Tool to delete one or more fields from a document. Use when you have confirmed the field IDs to remove. Supports single-field and batch deletion.
  - body: { fieldIds: integer|integer[], documentId: integer|string }
- `POST https://api.mcp.ai/api/documenso/delete/document/recipient` — Tool to delete a recipient from a document. Use when you need to remove a recipient from a document's signing workflow.
  - body: { recipientId: integer|string }
- `POST https://api.mcp.ai/api/documenso/delete/envelope` — Tool to permanently delete an envelope. Use when you need to remove an envelope from Documenso. The deletion is irreversible and will remove all associated data.
  - body: { envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/delete/envelope/attachment` — Tool to delete an attachment from an envelope. Use when you need to remove a file attachment from a Documenso envelope.
  - body: { id: string }
- `POST https://api.mcp.ai/api/documenso/delete/envelope/field` — Tool to delete a field from an envelope. Use when you need to remove an existing field from a document envelope.
  - body: { fieldId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/envelope/item` — Tool to delete an item from an envelope. Use when you need to remove an existing item from a document envelope.
  - body: { envelopeId: string, envelopeItemId: string }
- `POST https://api.mcp.ai/api/documenso/delete/envelope/recipient` — Tool to delete a recipient from an envelope. Use when you need to remove a recipient from an envelope's signing workflow.
  - body: { recipientId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/folder` — Tool to permanently delete a folder. Use when you need to remove a folder from Documenso. The deletion is irreversible and will remove all associated data.
  - body: { folderId: string }
- `POST https://api.mcp.ai/api/documenso/delete/template` — Permanently delete a template by its ID. Use this action when you need to remove an existing document template from your Documenso account. The deletion is irreversible. Returns success=true with HTTP
  - body: { id: integer }
- `POST https://api.mcp.ai/api/documenso/delete/template/direct/link` — Delete a direct link for a template. Use this action when you need to remove public direct access to a template.
  - body: { templateId: integer }
- `POST https://api.mcp.ai/api/documenso/delete/template/recipient` — Tool to delete a recipient from a template. Use when you need to remove a recipient from a template's configuration.
  - body: { recipientId: integer|string }
- `POST https://api.mcp.ai/api/documenso/delete/template/v2` — Tool to permanently delete a template using the v2 API. Use when you need to remove a template from Documenso. The deletion is irreversible.
  - body: { templateId: integer }
- `POST https://api.mcp.ai/api/documenso/distribute/document/v2` — Tool to distribute a document for signing. Use when you need to send a DRAFT document to recipients for the first time. The document must have recipients with signature fields configured before distri
  - body: { documentId: integer, recipients?: integer[] }
- `POST https://api.mcp.ai/api/documenso/distribute/envelope` — Tool to distribute an envelope to recipients for signing. Use when you need to send an envelope to recipients for the first time. The envelope must have recipients with required signature fields confi
  - body: { meta?: object, envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/download/envelope/item` — Download an envelope item as PDF. Use this to retrieve the original or signed version of a document within an envelope. The "signed" version includes all signatures and is available after recipients h
  - body: { version?: string, fileName?: string, envelopeItemId: string }
- `POST https://api.mcp.ai/api/documenso/download/signed/document` — Download a completed/signed document as PDF. Use this to retrieve the finalized PDF after all recipients have signed. Important: Only documents with status 'COMPLETED' can be downloaded successfully; 
  - body: { id: integer, fileName?: string }
- `POST https://api.mcp.ai/api/documenso/duplicate/document/v2` — Tool to duplicate a document. Use when you need to create an exact copy of an existing document. Ensure the source document ID is valid before calling.
  - body: { documentId: integer }
- `POST https://api.mcp.ai/api/documenso/duplicate/envelope/v2` — Tool to duplicate an envelope with all its settings. Use when you need to create an exact copy of an existing envelope including recipients, fields, and configuration.
  - body: { envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/duplicate/template` — Tool to duplicate a template with all its settings. Use when you need to create an exact copy of an existing template including fields, recipients, and configuration.
  - body: { templateId: integer }
- `POST https://api.mcp.ai/api/documenso/find/documents` — Find documents based on search criteria with filtering and pagination. Use when searching for documents by title, status, template, folder, or source. Supports pagination for retrieving large result s
  - body: { page?: integer, query?: string, source?: string, status?: string, perPage?: integer, folderId?: string, templateId?: integer, orderByColumn?: string, orderByDirection?: string }
- `POST https://api.mcp.ai/api/documenso/find/documents/v2` — Retrieve a paginated list of documents with optional filtering and sorting. Use this action to list documents, search by title, or filter by status (DRAFT, PENDING, COMPLETED). Commonly used to obtain
  - body: { page?: integer, query?: string, status?: string, teamId?: integer, orderBy?: string, perPage?: integer, orderDirection?: string }
- `POST https://api.mcp.ai/api/documenso/find/envelopes` — Tool to find envelopes based on search criteria, filters, and pagination. Use this action to search and filter envelopes by query, type, status, source, template ID, or folder ID. Commonly used to ret
  - body: { page?: integer, type?: string, query?: string, source?: string, status?: string, perPage?: integer, folderId?: string, templateId?: integer, orderByColumn?: string, orderByDirection?: string }
- `POST https://api.mcp.ai/api/documenso/find/folders` — Tool to find folders based on search criteria and filters. Use this action to search folders by name, filter by type (DOCUMENT or TEMPLATE), or retrieve subfolders by parent ID. Commonly used to organ
  - body: { page?: integer, type?: string, query?: string, perPage?: integer, parentId?: string }
- `POST https://api.mcp.ai/api/documenso/find/templates` — Retrieve a paginated list of templates with optional filtering and search. Use this action to find templates, search by title/content, or filter by type (PUBLIC, PRIVATE) or folder. Commonly used to o
  - body: { page?: integer, type?: string, query?: string, perPage?: integer, folderId?: string }
- `POST https://api.mcp.ai/api/documenso/get/document/by/id` — Retrieve complete information about a document by its ID. Returns full document details including metadata, recipients, fields, and signing status. Use find_documents_v2 first to get valid document ID
  - body: { documentId: integer }
- `POST https://api.mcp.ai/api/documenso/get/document/field` — Tool to retrieve a document field by its ID. Use when you need to fetch details about a specific field including its type, position, recipient assignment, and metadata. Useful for inspecting field pro
  - body: { fieldId: integer }
- `POST https://api.mcp.ai/api/documenso/get/document/recipient` — Tool to retrieve detailed information about a document recipient by their ID. Use when you need to check the status, fields, or other details of a specific recipient.
  - body: { recipientId: integer }
- `POST https://api.mcp.ai/api/documenso/get/documents/by/ids` — Retrieve multiple documents by their IDs in a single request. Use when you need to fetch detailed information for specific documents. This is more efficient than calling individual get document endpoi
  - body: { documentIds: integer[] }
- `POST https://api.mcp.ai/api/documenso/get/envelope/attachment` — Tool to find all attachments for a specific envelope. Use this when you need to retrieve attachment information including IDs, types, labels, and data for all attachments associated with an envelope.
  - body: { token?: string, envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/get/envelope/audit/log` — Tool to retrieve audit logs for an envelope. Use this to track all actions performed on an envelope, including who accessed it, when, and from where. Useful for compliance, tracking document history, 
  - body: { page?: integer, perPage?: integer, envelopeId: string, orderByColumn?: string, orderByDirection?: string }
- `POST https://api.mcp.ai/api/documenso/get/envelope/by/id` — Retrieve complete information about an envelope by its ID. Returns full envelope details including metadata, recipients, fields, and signing status. Use find_envelopes first to get valid envelope IDs.
  - body: { envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/get/envelope/field` — Tool to fetch an envelope field by ID. Use this to retrieve detailed information about a specific field in an envelope, including its type, position, dimensions, and metadata configuration.
  - body: { fieldId: integer }
- `POST https://api.mcp.ai/api/documenso/get/envelope/recipient` — Tool to retrieve detailed information about an envelope recipient by their ID. Use when you need to check the status, fields, or other details of a specific recipient.
  - body: { recipientId: integer }
- `POST https://api.mcp.ai/api/documenso/get/envelopes/by/ids` — Tool to retrieve multiple envelopes by their IDs. Use this action when you need to fetch multiple envelopes in a single request using envelope IDs, document IDs, or template IDs. Specify the ID type a
  - body: { ids: object }
- `POST https://api.mcp.ai/api/documenso/get/template/by/id` — Retrieve complete information about a template by its ID. Returns full template details including metadata, recipients, fields, and configuration settings. Use find_templates or list_templates first t
  - body: { templateId: integer }
- `POST https://api.mcp.ai/api/documenso/get/template/field` — Tool to fetch a template field by ID. Use this to retrieve detailed information about a specific field in a template, including its type, position, dimensions, and metadata configuration.
  - body: { fieldId: integer }
- `POST https://api.mcp.ai/api/documenso/get/template/recipient` — Tool to retrieve detailed information about a template recipient by their ID. Use when you need to check the status, fields, or other details of a specific template recipient.
  - body: { recipientId: integer }
- `POST https://api.mcp.ai/api/documenso/get/templates/by/ids` — Retrieve multiple templates by their IDs in a single request. Use when you need to fetch detailed information for specific templates. This is more efficient than calling individual get template endpoi
  - body: { templateIds: integer[] }
- `POST https://api.mcp.ai/api/documenso/list/templates` — Tool to list templates. Use when fetching available templates with optional pagination.
  - body: { page?: integer, perPage?: integer }
- `POST https://api.mcp.ai/api/documenso/move/document/v2` — Tool to move a document to a team. Use when transferring documents between personal and team accounts.
  - body: { teamId?: integer, documentId: integer }
- `POST https://api.mcp.ai/api/documenso/redistribute/document/v2` — Re-send signing request emails to specified recipients of a document. Use this when recipients haven't received or lost their signing emails, or when you need to remind them to sign. The document must
  - body: { documentId: integer, recipients: integer[] }
- `POST https://api.mcp.ai/api/documenso/redistribute/envelope` — Tool to redistribute an envelope to recipients who have not actioned it. Use when recipients haven't received or lost their signing emails, or when you need to remind them to sign. The envelope must b
  - body: { envelopeId: string, recipients: integer[] }
- `POST https://api.mcp.ai/api/documenso/remove/team/member/v1` — Remove a member from a Documenso team. This action removes an existing member from the specified team. The caller must have appropriate permissions (typically team owner or manager) to remove members.
  - body: { team_id: integer, member_id: integer }
- `POST https://api.mcp.ai/api/documenso/update/document/attachment` — Tool to update an existing document attachment. Use when you need to change the label or file URL of an attachment. Requires the attachment ID and updated data (label and URL).
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/documenso/update/document/field` — Tool to update a single document field's properties in Documenso v2 API. Use when you need to modify position, size, or type of an existing field. The field type must always be provided even when upda
  - body: { field: object, documentId: integer }
- `POST https://api.mcp.ai/api/documenso/update/document/fields/bulk` — Tool to update multiple document fields in a single operation. Use when you need to modify properties (position, size, type) of multiple fields at once. This is more efficient than updating fields ind
  - body: { fields: object[], documentId: integer }
- `POST https://api.mcp.ai/api/documenso/update/document/recipient/v2` — Tool to update a document recipient using the v2 API. Use to change recipient name, email, role, signing order, or authentication options for a specific document recipient.
  - body: { recipient: object, documentId: integer }
- `POST https://api.mcp.ai/api/documenso/update/document/v2` — Update document properties like title, visibility, and signing settings. Use find_documents_v2 first to get a valid document ID. Only DRAFT documents can have all properties updated; PENDING documents
  - body: { title?: string, message?: string, subject?: string, folderId?: string, language?: string, timezone?: string, dateFormat?: string, documentId: integer, externalId?: string, visibility?: string, redirectUrl?: string, signingOrder?: string, globalAccessAuth?: string[], globalActionAuth?: string[], distributionMethod?: string, drawSignatureEnabled?: boolean, typedSignatureEnabled?: boolean, uploadSignatureEnabled?: boolean, useLegacyFieldInsertion?: boolean }
- `POST https://api.mcp.ai/api/documenso/update/envelope` — Update envelope properties like title, visibility, and signing settings. Use find_envelopes first to get a valid envelope ID. Only DRAFT envelopes can have all properties updated; PENDING envelopes ha
  - body: { title?: string, emailId?: string, message?: string, subject?: string, folderId?: string, language?: string, timezone?: string, dateFormat?: string, envelopeId: string, externalId?: string, visibility?: string, redirectUrl?: string, emailReplyTo?: string, signingOrder?: string, emailSettings?: object, globalAccessAuth?: string[], globalActionAuth?: string[], distributionMethod?: string, drawSignatureEnabled?: boolean, typedSignatureEnabled?: boolean, allowDictateNextSigner?: boolean, uploadSignatureEnabled?: boolean }
- `POST https://api.mcp.ai/api/documenso/update/envelope/attachment` — Tool to update an existing envelope attachment. Use when you need to modify the label or content of an attachment that was previously added to an envelope. The attachment data must be provided in base
  - body: { id: string, data: object }
- `POST https://api.mcp.ai/api/documenso/update/envelope/fields/bulk` — Tool to update multiple envelope fields in a single request. Use when you need to modify properties of multiple existing fields (position, size, type) efficiently. All position and dimension values mu
  - body: { data: object[], envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/update/envelope/items/bulk` — Tool to update multiple envelope items in a single request. Use when you need to modify the title or order of multiple envelope items belonging to the same envelope. This is more efficient than updati
  - body: { data: object[], envelopeId: string }
- `POST https://api.mcp.ai/api/documenso/update/folder` — Update properties of an existing folder including name, pinned status, parent folder, and visibility. Use this action to reorganize folder structure or modify folder settings.
  - body: { data: object, folderId: string }
- `POST https://api.mcp.ai/api/documenso/update/template` — Update template properties like title, visibility, and signing settings. Use list_templates or find_templates first to get a valid template ID.
  - body: { data?: object, meta?: object, templateId: integer }
- `POST https://api.mcp.ai/api/documenso/update/template/fields/bulk` — Tool to update multiple template fields in a single operation. Use when you need to modify properties (position, size, type) of multiple fields at once on a template. This is more efficient than updat
  - body: { fields: object[], templateId: integer }
- `POST https://api.mcp.ai/api/documenso/update/template/recipient` — Tool to update a template recipient. Use to change recipient name, email, role, signing order, or authentication options for a specific template recipient.
  - body: { recipient: object, templateId: integer }
- `POST https://api.mcp.ai/api/documenso/update/template/recipients/bulk` — Tool to update multiple template recipients in a single API call. Use when you need to change properties (name, email, role, signing order, authentication) for multiple recipients on the same template
  - body: { recipients: object[], templateId: integer }
- `POST https://api.mcp.ai/api/documenso/use/template/v2/beta` — Tool to create a document from a template. Use when you need to instantiate a template with recipients and optional prefills.
  - body: { recipients: object[], templateId: integer, prefillFields?: object[] }

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

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