
ZapSign
ZapSign electronic document signing via the official API: create documents for signature (from PDF,
What it can do
What data it sees
Do you need an account
No: the server works without sign-in
ZapSign electronic document signing via the official API: create documents for signature (from PDF,
How to connect
How to connect ZapSign to Claude
The server address to paste into Claude settings:
https://api.mcp.ai/p_zapsign
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect ZapSign to ChatGPT
The server address to paste into ChatGPT settings:
https://api.mcp.ai/p_zapsign
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect ZapSign to Cursor
The server address to paste into Cursor settings:
https://api.mcp.ai/p_zapsign
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (35)
Raw names from tools/list. Only developers need these.
| zapsign_list_accounts | Lista contas ZapSign vinculadas a este install — id e apelido. |
| zapsign_documents_list | Documentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: list] |
| zapsign_documents_get | Documentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: get] |
| zapsign_documents_signer_log | Documentos de assinatura no ZapSign (leitura). Ações: list (filtros: page, status pending|signed|refused, folder_path, deleted, signer_email, created_from/created_to YYYY-MM-DD, sort_order asc|desc, include_signers); get (doc_token — detalhe + signatários + extra_docs + URLs de arquivo, que expiram em 60min); signer_log (doc_token — trilha de auditoria; download_pdf=true retorna o PDF do log). [Flattened action: signer_log] |
| zapsign_documents_write_create | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: create] |
| zapsign_documents_write_create_from_template | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: create_from_template] |
| zapsign_documents_write_update | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: update] |
| zapsign_documents_write_delete | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: delete] |
| zapsign_documents_write_refuse | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: refuse] |
| zapsign_documents_write_place_signatures | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: place_signatures] |
| zapsign_documents_write_add_extra_doc | Criar/alterar documentos de assinatura no ZapSign. Ações: - create (data): cria documento. Campos: name*, signers[]* (cada {name, email, phone_country, phone_number, auth_mode}); UMA fonte de arquivo: url_pdf | base64_pdf | url_docx | base64_docx | markdown_text; opc lang, disable_signer_emails, date_limit_to_sign, signature_order_active, folder_path, external_id. - create_from_template (data): cria via template. Campos: template_id*, signer_name*, data[]* (cada {de, para} substituindo {{VAR}}); opc signer_email, send_automatic_email, send_automatic_whatsapp, folder_path, external_id, lang. - update (doc_token, data): só com doc "em andamento". Campos: name, date_limit_to_sign, folder_path, extra_docs[]. - delete (doc_token): soft-delete. - refuse (data): cancela/recusa. Campos: doc_token*, rejected_reason*, notify_signer. - place_signatures (doc_token, data): posiciona assinaturas por coordenadas. Campo: rubricas[] ({signer_token, page 0-based, relative_position_left/bottom, relative_size_x/y, type signature|visto}). - add_extra_doc (doc_token, data): anexa PDF extra. Campos: name*, url_pdf | base64_pdf. [Flattened action: add_extra_doc] |
| zapsign_signers_get | Signatários no ZapSign (leitura). Ação: get (signer_token — status, sign_url, visualizações, geo, auth_mode etc.). [Flattened action: get] |
| zapsign_signers_write_add | Gerenciar signatários no ZapSign. Ações: - add (doc_token, data): adiciona signatário. Campos: name*, email*; opc phone_country, phone_number, auth_mode (assinaturaTela|tokenEmail|tokenSms|tokenWhatsapp), lock_name/email/phone, qualification, send_automatic_email, send_automatic_whatsapp, require_document_photo. - update (signer_token, data): atualiza (só antes de assinar) ou reenvia lembrete. Mesmos campos de add. - remove (signer_token): remove (não pode remover quem já assinou nem o único signatário). - sign (data): assina em lote via API (assíncrono). Campos: signer_tokens[]*; opc selfie_photo, document_photo_url. (user_token é injetado automaticamente.) [Flattened action: add] |
| zapsign_signers_write_update | Gerenciar signatários no ZapSign. Ações: - add (doc_token, data): adiciona signatário. Campos: name*, email*; opc phone_country, phone_number, auth_mode (assinaturaTela|tokenEmail|tokenSms|tokenWhatsapp), lock_name/email/phone, qualification, send_automatic_email, send_automatic_whatsapp, require_document_photo. - update (signer_token, data): atualiza (só antes de assinar) ou reenvia lembrete. Mesmos campos de add. - remove (signer_token): remove (não pode remover quem já assinou nem o único signatário). - sign (data): assina em lote via API (assíncrono). Campos: signer_tokens[]*; opc selfie_photo, document_photo_url. (user_token é injetado automaticamente.) [Flattened action: update] |
| zapsign_signers_write_remove | Gerenciar signatários no ZapSign. Ações: - add (doc_token, data): adiciona signatário. Campos: name*, email*; opc phone_country, phone_number, auth_mode (assinaturaTela|tokenEmail|tokenSms|tokenWhatsapp), lock_name/email/phone, qualification, send_automatic_email, send_automatic_whatsapp, require_document_photo. - update (signer_token, data): atualiza (só antes de assinar) ou reenvia lembrete. Mesmos campos de add. - remove (signer_token): remove (não pode remover quem já assinou nem o único signatário). - sign (data): assina em lote via API (assíncrono). Campos: signer_tokens[]*; opc selfie_photo, document_photo_url. (user_token é injetado automaticamente.) [Flattened action: remove] |
| zapsign_signers_write_sign | Gerenciar signatários no ZapSign. Ações: - add (doc_token, data): adiciona signatário. Campos: name*, email*; opc phone_country, phone_number, auth_mode (assinaturaTela|tokenEmail|tokenSms|tokenWhatsapp), lock_name/email/phone, qualification, send_automatic_email, send_automatic_whatsapp, require_document_photo. - update (signer_token, data): atualiza (só antes de assinar) ou reenvia lembrete. Mesmos campos de add. - remove (signer_token): remove (não pode remover quem já assinou nem o único signatário). - sign (data): assina em lote via API (assíncrono). Campos: signer_tokens[]*; opc selfie_photo, document_photo_url. (user_token é injetado automaticamente.) [Flattened action: sign] |
| zapsign_templates_list | Templates (modelos DOCX) no ZapSign (leitura). Ações: list (page — 20/página); get (template_token — inclui inputs[] das variáveis {{VAR}}). [Flattened action: list] |
| zapsign_templates_get | Templates (modelos DOCX) no ZapSign (leitura). Ações: list (page — 20/página); get (template_token — inclui inputs[] das variáveis {{VAR}}). [Flattened action: get] |
| zapsign_templates_write_create | Gerenciar templates no ZapSign. Ações: - create (data): cria template DOCX. Campos: name*, docx_url | base64_docx*; opc first_signer{}, lang, observers[], folder_path/folder_token, redirect_link. - update (template_token, data): metadados (o DOCX em si é imutável). Campos: name, lang, observers[], first_signer, folder_path/token, redirect_link. - delete (template_token): irreversível. [Flattened action: create] |
| zapsign_templates_write_update | Gerenciar templates no ZapSign. Ações: - create (data): cria template DOCX. Campos: name*, docx_url | base64_docx*; opc first_signer{}, lang, observers[], folder_path/folder_token, redirect_link. - update (template_token, data): metadados (o DOCX em si é imutável). Campos: name, lang, observers[], first_signer, folder_path/token, redirect_link. - delete (template_token): irreversível. [Flattened action: update] |
| zapsign_templates_write_delete | Gerenciar templates no ZapSign. Ações: - create (data): cria template DOCX. Campos: name*, docx_url | base64_docx*; opc first_signer{}, lang, observers[], folder_path/folder_token, redirect_link. - update (template_token, data): metadados (o DOCX em si é imutável). Campos: name, lang, observers[], first_signer, folder_path/token, redirect_link. - delete (template_token): irreversível. [Flattened action: delete] |
| zapsign_webhooks_write_create | Gerenciar webhooks no ZapSign (não há endpoint de listagem na API). Ações: - create (data): cria webhook (1 por conta cobre todos os docs). Campos: url*; opc type ("" = todos | doc_signed | doc_created | doc_deleted | ...), doc_token, headers. Retorna {id}. - delete (id): remove webhook pelo id retornado na criação. [Flattened action: create] Bulk support: accepts ids for batched execution. |
| zapsign_webhooks_write_delete | Gerenciar webhooks no ZapSign (não há endpoint de listagem na API). Ações: - create (data): cria webhook (1 por conta cobre todos os docs). Campos: url*; opc type ("" = todos | doc_signed | doc_created | doc_deleted | ...), doc_token, headers. Retorna {id}. - delete (id): remove webhook pelo id retornado na criação. [Flattened action: delete] Bulk support: accepts ids for batched execution. |
| zapsign_checks_get | Verificação de antecedentes no ZapSign (leitura). Ação: get (check_id — status not_started|in_progress|delayed|error|completed + pdf_report). [Flattened action: get] Bulk support: accepts check_ids for batched execution. |
| zapsign_checks_write_create | Criar verificação de antecedentes no ZapSign (consome créditos). Ação: create (data). Campos: country* (BR|CO|CL|MX|PE), type* (ex.: person | credit_person_br), user_authorized: true*, e um identificador: national_id | foreign_id. [Flattened action: create] |
| zapsign_account_plan | Conta ZapSign (leitura). Ações: plan (info do plano: créditos, status, período); users (page — lista usuários da conta, 25/página). [Flattened action: plan] |
| zapsign_account_users | Conta ZapSign (leitura). Ações: plan (info do plano: créditos, status, período); users (page — lista usuários da conta, 25/página). [Flattened action: users] |
| zapsign_account_write_create_user | Gerenciar usuários da conta ZapSign. Ações: - create_user (data): adiciona usuário. Campos: email*; opc role (member|admin|self_docs_limited), first_name, last_name, phone_country, phone_number. - delete_user (email): remove usuário (donos não podem ser removidos). [Flattened action: create_user] |
| zapsign_account_write_delete_user | Gerenciar usuários da conta ZapSign. Ações: - create_user (data): adiciona usuário. Campos: email*; opc role (member|admin|self_docs_limited), first_name, last_name, phone_country, phone_number. - delete_user (email): remove usuário (donos não podem ser removidos). [Flattened action: delete_user] |
| show_version | Show the current MCP platform and adapter versions. |
| report_bug | Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction. |
| connect | Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs. |
| toolkit_info | Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes. |
| marketplace | The official mcp.ai marketplace — the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like "find an MCP that does X", "consulta um CPF", "is there a tool for Y". Core flow: action=search discovers MCPs by intent → describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id → invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed — it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login. |
| authenticate | MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: "<jwt>" } after the user pastes, or with no args to get the link. |