SignWith MCP tools reference
Every tool the SignWith MCP server offers, with its arguments and the API endpoint it runs. AI assistants read these definitions from the server; this page is for you.
The server lists these tools in tools/list. A View only connection or a read-only API key lists only the tools marked View only: yes, and ChatGPT doesn't get the three billing tools.
At a glance
| Tool | What it does | View only |
|---|---|---|
| Account | ||
| get_account | Who is signed in, live or test environment, and how many credits are left. | Yes |
| Templates | ||
| list_templates | List templates, newest first; search by name, folder or archived. | Yes |
| get_template | A template's roles (who signs) and fields (what they fill in). | Yes |
| create_template | Create a template from PDF or image documents. Fields come from text tags in the PDF, fillable form fields, or fields with page positions. | No |
| update_template | Rename a template or its roles, move it to a folder, or replace its fields. | No |
| duplicate_template | Copy a template to make a variant. | No |
| archive_template | Archive a template so it no longer appears in lists. | No |
| Signature requests | ||
| send_signature_request | Send a template to people to sign. Takes an idempotency_key so a retry never sends twice. | No |
| list_signature_requests | List signature requests by status or template, or search signers. | Yes |
| get_signature_request | Who has signed, viewed or declined, and the signed documents once complete. | Yes |
| remind_signers | Re-send the signing email to everyone whose turn it is. At most once an hour. | No |
| cancel_signature_request | Cancel a signature request so nobody can sign it. Can't be undone. | No |
| update_signer | Fix a signer's name, email or phone, prefill fields, or resend their link. | No |
| Billing | ||
| list_credit_packs | The credit packs the user can buy, with prices. | Yes |
| buy_credits | Start a purchase and return a checkout link for the user to pay in their browser. | No |
| get_checkout | Whether a credit purchase has been paid. | Yes |
| Other | ||
| verify_document | Check whether a PDF was signed with SignWith and its digital signatures are valid. | Yes |
| send_feedback | Pass a bug report, feature request or question to the SignWith team. | Yes |
get_account
Get account. Who is signed in, live or test environment, and how many credits are left.
- View only: yes
- GET /me
- GET /credits
No arguments.
list_templates
List templates. List templates, newest first; search by name, folder or archived.
- View only: yes
- GET /templates
| Argument | Type | Description |
|---|---|---|
q | string | Search by template name. |
folder | string | Only templates in this folder. |
archived | boolean | List archived templates instead. |
limit | integer | Page size, 1 to 100 (default 20). |
cursor | integer | next_cursor from the previous page. |
get_template
Get template. A template's roles (who signs) and fields (what they fill in).
- View only: yes
- GET /templates/{id}
| Argument | Type | Description |
|---|---|---|
template_idrequired | integer | The template. |
create_template
Create template. Create a template from PDF or image documents. Fields come from text tags in the PDF, fillable form fields, or fields with page positions.
- View only: no
- POST /templates
| Argument | Type | Description |
|---|---|---|
documentsrequired | array of objects | 1 to 10 documents, each { name, file }, where file is base64 content or an https URL to download. Text tags in a PDF become fields. |
name | string | Template name. |
folder | string | Folder name. |
fields | array of objects | Fields to place: each has type (text, signature, initials, date, checkbox, number, phone, select, radio, multiple, image, file, stamp), areas (page, x, y, w, h as fractions of the page, optional document index), and optional name, role, required and options. |
update_template
Update template. Rename a template or its roles, move it to a folder, or replace its fields.
- View only: no
- PATCH /templates/{id}
| Argument | Type | Description |
|---|---|---|
template_idrequired | integer | The template. |
name | string | New name. |
folder | string | New folder. |
roles | array of strings | Role names in signing order. |
fields | array of objects | Replaces all existing fields. Fields to place: each has type (text, signature, initials, date, checkbox, number, phone, select, radio, multiple, image, file, stamp), areas (page, x, y, w, h as fractions of the page, optional document index), and optional name, role, required and options. |
duplicate_template
Duplicate template. Copy a template to make a variant.
- View only: no
- POST /templates/{id}/duplicate
| Argument | Type | Description |
|---|---|---|
template_idrequired | integer | The template to copy. |
name | string | Name of the copy. |
archive_template
Archive template. Archive a template so it no longer appears in lists.
- View only: no
- Confirms first
- POST /templates/{id}/archive
| Argument | Type | Description |
|---|---|---|
template_idrequired | integer | The template. |
send_signature_request
Send for signature. Send a template to people to sign. Takes an idempotency_key so a retry never sends twice.
- View only: no
- Confirms first
- POST /signature_requests
| Argument | Type | Description |
|---|---|---|
template_idrequired | integer | The template to send. |
signersrequired | array of objects | One per role: role, email or phone, and optional name, prefill (values keyed by field name), external_id and require_email_otp. |
signing_order | string | sequential (default) or parallel. |
message | object | Custom email subject and body. |
send_email | boolean | Email signers their links (default true). |
expires_at | string (date-time) | When the request expires. |
redirect_url | string (URL) | Where signers go after signing. |
require_email_otp | boolean | Require an email one-time code for every signer. |
idempotency_key | string | Reuse the same key when retrying so nothing is sent twice. |
list_signature_requests
List signature requests. List signature requests by status or template, or search signers.
- View only: yes
- GET /signature_requests
| Argument | Type | Description |
|---|---|---|
status | string | open, completed, declined, expired or canceled. |
template_id | integer | Only requests from this template. |
q | string | Search signers by name, email or phone. |
limit | integer | Page size, 1 to 100 (default 20). |
cursor | integer | next_cursor from the previous page. |
get_signature_request
Get signature request. Who has signed, viewed or declined, and the signed documents once complete.
- View only: yes
- GET /signature_requests/{id}
| Argument | Type | Description |
|---|---|---|
signature_request_idrequired | integer | The signature request. |
remind_signers
Remind signers. Re-send the signing email to everyone whose turn it is. At most once an hour.
- View only: no
- Confirms first
- POST /signature_requests/{id}/remind
| Argument | Type | Description |
|---|---|---|
signature_request_idrequired | integer | The signature request. |
cancel_signature_request
Cancel signature request. Cancel a signature request so nobody can sign it. Can't be undone.
- View only: no
- Confirms first
- POST /signature_requests/{id}/cancel
| Argument | Type | Description |
|---|---|---|
signature_request_idrequired | integer | The signature request. |
update_signer
Update signer. Fix a signer's name, email or phone, prefill fields, or resend their link.
- View only: no
- PATCH /signers/{id}
| Argument | Type | Description |
|---|---|---|
signer_idrequired | integer | The signer. |
name | string | Corrected name. |
email | string | Corrected email. |
phone | string | Corrected phone. |
prefill | object | Field values to set, keyed by field name. |
resend | boolean | Email the signing link again. |
list_credit_packs
List credit packs. The credit packs the user can buy, with prices.
- View only: yes
- Not in ChatGPT
- GET /credit_packs
No arguments.
buy_credits
Buy credits. Start a purchase and return a checkout link for the user to pay in their browser.
- View only: no
- Not in ChatGPT
- POST /checkouts
| Argument | Type | Description |
|---|---|---|
credit_pack_idrequired | integer | A pack from list_credit_packs. |
discount_code | string | Optional discount code. |
get_checkout
Get checkout. Whether a credit purchase has been paid.
- View only: yes
- Not in ChatGPT
- GET /checkouts/{id}
| Argument | Type | Description |
|---|---|---|
checkout_idrequired | string | From buy_credits. |
verify_document
Verify signed PDF. Check whether a PDF was signed with SignWith and its digital signatures are valid.
- View only: yes
- POST /documents/verify
| Argument | Type | Description |
|---|---|---|
filerequired | string | The PDF, base64-encoded. |
send_feedback
Send feedback to SignWith. Pass a bug report, feature request or question to the SignWith team.
- View only: yes
- POST /feedback
| Argument | Type | Description |
|---|---|---|
messagerequired | string | What happened, up to 5,000 characters. |
type | string | bug, feature_request, feedback or question. |
context | object | Optional client, tool, signature_request_id, template_id and error_code. |
Start building
The API and MCP server come with every account. 3 free documents a month, then pay per document.