Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the DocuSeal in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
DocuSeal, the open-source e-signature platform on Cloud (US or EU) or self-hosted: find templates, submissions and signers, check who has signed, get signed PDFs and completion events, send templates or one-off PDFs for signature, update signers, and build templates from PDF, DOCX or HTML.
Try asking
Example prompts for DocuSeal
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → DocuSeal, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
DocuSeal + Cursor
DocuSeal, the open-source e-signature platform on Cloud (US or EU) or self-hosted: find templates, submissions and signers, check who has signed, get signed PDFs and completion events, send templates or one-off PDFs for signature, update signers, and build templates from PDF, DOCX or HTML.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
DOCUSEAL_API_URL, DOCUSEAL_API_KEY
Step 1 — Get credentials
Setting up takes about 2 minutes. You need a DocuSeal account on DocuSeal Cloud or access to a self-hosted DocuSeal.
- Copy your API key: on DocuSeal Cloud at https://console.docuseal.com/api (EU accounts: https://console.docuseal.eu/api), on a self-hosted DocuSeal under Settings > API (
https://<your host>/settings/api). - Paste it into
DOCUSEAL_API_KEY. It is sent in theX-Auth-Tokenheader and acts as the user it belongs to. - Set
DOCUSEAL_API_URL:https://api.docuseal.comfor Cloud US,https://api.docuseal.eufor Cloud EU, orhttps://<your host>/apifor a self-hosted instance (the address you open DocuSeal at, plus/api). No trailing slash. - Install the connector and run
docuseal_list_templatesto check the key.
Test mode: DocuSeal Cloud has a test mode with its own API key, which you switch to in the console. Test submissions are free and not legally binding, so use the test key while you try the connector.
What it reads:
- Templates with their roles, fields (name, type, role, required) and documents, searchable by name (
q), folder or external id. The field names are the keys for pre-filled values. - Submissions (signature requests) with status, template, each signer's email, role and status, the event history, the combined document and the audit log URL. Filters by template, status, folder or signer.
- Submitters (signers) across submissions with sent, opened, completed or declined times, a decline reason, the values they entered and their personal signing link
embed_src. - Download links of a submission's documents: the signed PDFs once completed, the partly filled ones before, or one merged PDF with
merge. - Completion events: one per signer who finished (
form.completed) and one per fully signed submission (submission.completed), the same data a webhook carries, to catch up on everything signed since a given time.
What it writes:
- Send for signature:
docuseal_create_submissionsends a template with one submitter per role;rolemust match the template's role names, e.g. "First Party", andvaluespre-fills fields by field name.docuseal_create_submissions_from_emailsis the quick way for single-signer templates: one submission per email address, invitations go out right away.docuseal_create_submission_from_pdfsends a one-off PDF without saving a template first. - Follow up:
docuseal_update_submittercorrects name, email or phone, pre-fills values, re-sends the invitation withsend_emailor signs on the signer's behalf withcompleted.docuseal_update_submissionrenames a submission, changes its expiry or archives and restores it;docuseal_archive_submissionarchives it so its signing links stop working. - Templates:
docuseal_create_template_from_pdf,docuseal_create_template_from_docx,docuseal_create_template_from_html,docuseal_clone_template,docuseal_update_template(rename, move to a folder, rename roles, archive or unarchive) anddocuseal_archive_template.
Every tool is on at install, the sending ones included, and sending is real: a new submission emails the signers unless send_email is false, completed: true signs for someone, and archiving stops signing links. The AI shows you the template or document, the signers with their roles and the message, and sends only after a clear yes.
Files and fields: documents[].file takes a public URL, which DocuSeal downloads, or Base64 content. Fields come from text tags in the document, such as {{Full Name;role=Signer;type=text}}, {{Sign here;role=Signer;type=signature}} or {{Date;role=Signer;type=date}}, or from fields with exact areas (page, x, y, w, h as fractions of the page). Types include text, signature, initials, date, number, image, checkbox, select, radio, file, stamp, payment and phone. HTML templates use tags such as <signature-field name="Signature" role="Signer"></signature-field>; DOCX templates can use [[variables]] for dynamic documents.
Data formats: ids are integers. Times are ISO 8601 with a time zone. Submission status is pending, completed, declined or expired; submitter status is awaiting (not invited yet because of the signing order), sent, opened, completed or declined. Document URLs are temporary, so download the files soon.
Paging: lists return data and pagination with count, next and prev, newest first, 10 items by default and up to 100 with limit. The AI passes pagination.next as after for the next, older page and stops when next is null. The completed-event tools page the same way by completion time in Unix seconds.
Common errors: 401 "Not authenticated" means a wrong or missing API key, or a US Cloud key on the EU host and the other way round. 403 means the key's user may not see the item, 404 an unknown id. 422 comes with an error message for invalid input: an unknown role name, a missing email, an archived template, a template without fields or an unreadable file. 429 means the rate limit is reached. On a self-hosted instance, 404 on every call means /api is missing from DOCUSEAL_API_URL.
The connector archives templates and submissions but never deletes them, and it does not manage DocuSeal users, account settings or webhook subscriptions.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Cursor
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Cursor reads MCP servers from ~/.cursor/mcp.json. Add this entry:
{
"mcpServers": {
"anythingmcp": {
"url": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Create an MCP API key in AnythingMCP under MCP Servers → your server → API keys, and paste it in place of
YOUR_MCP_API_KEY. - Save the file and restart Cursor.
- Open Cursor → Settings → MCP and check that
anythingmcpis listed and connected. - Start chatting: the agent can now call the
DocuSealtools.
Available tools
| Tool | What it does |
|---|---|
docuseal_list_templates | List document templates, newest first: id, name, slug, folder_name, external_id, the roles of its submitters, its fields (name, type, role… |
docuseal_get_template | Read one template: name, folder, roles (submitters with their uuid and name), fields (name, type, role, required, position), documents with… |
docuseal_list_submissions | List signature requests (submissions), newest first: id, name, status (pending, completed, declined, expired), template, source, created… |
docuseal_get_submission | Read one submission: status, each submitter (id, email, name, role, status: awaiting, sent, opened, completed, declined; sent_at… |
docuseal_get_submission_documents | Download links of a submission's documents: the signed PDFs once completed, the partly filled ones before. merge=true returns one combined… |
docuseal_list_submitters | List submitters (signers) across submissions, newest first: id, submission_id, email, name, phone, role, status, sent, opened and completed… |
docuseal_get_submitter | Read one submitter: email, name, role, status, sent, opened, completed or declined time and decline reason, the field values they entered… |
docuseal_list_form_completed_events | Completed-form events, newest first: one per signer who finished (event_type form.completed, timestamp, and the submitter with values… |
docuseal_list_submission_completed_events | Completed-submission events, newest first: one per submission whose signers all finished (event_type submission.completed, timestamp, and… |
docuseal_create_submission | Send a template for signature: creates a submission with one submitter per template role and, unless send_email is false, emails each… |
docuseal_create_submissions_from_emails | Quick send: one submission per email address for a single-signer template, invitations sent right away |
docuseal_create_submission_from_pdf | Send a one-off PDF for signature without saving a template first: give the PDF (URL or Base64) with text tags or field positions, and the… |
docuseal_update_submission | Rename a submission, change its expiry date, or archive and unarchive it |
docuseal_archive_submission | Archive a submission: its signing links stop working |
docuseal_update_submitter | Change a submitter of a pending submission: correct name, email or phone, pre-fill or change field values, set metadata, re-send the… |
docuseal_create_template_from_pdf | Create a reusable template from one or more PDFs (URL or Base64) |
docuseal_create_template_from_docx | Create a reusable template from a Word DOCX file (URL or Base64), with fields from text tags such as {{Field;role=Signer;type=date}} or… |
docuseal_create_template_from_html | Create a template from HTML: DocuSeal renders it to PDF and turns <text-field>, <signature-field>, <date-field>, <checkbox-field> and… |
docuseal_clone_template | Copy a template into a new one, optionally with a new name, folder and external id |
docuseal_update_template | Rename a template, move it to another folder, rename its roles, or archive and unarchive it |
docuseal_archive_template | Archive a template so it can no longer be sent |
Example prompts
- "Which submissions of the NDA template are still pending, and who has not signed yet?"
- "Send the template "Employment Contract" to [email protected] as First Party and pre-fill her name and start date. Show me everything before sending."
- "What was signed since Monday? List each signer with the document and the completion time."
- "Get the signed documents of submission 4521 as one merged PDF, together with the audit log link."
- "The signer [email protected] has not opened the invitation: correct his address to [email protected] and send it again."
FAQ
Does Cursor support custom MCP servers on the free tier? Yes, MCP is available on Hobby, Pro and Business plans.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Gemini
- Connect to Meta Muse
- Connect to Microsoft Copilot
Was this guide helpful?