MCP

Set up zSign MCP and send an envelope

/mcp is the Streamable HTTP protocol endpoint, not this documentation page. Unauthenticated requests to https://zsign.io/mcp return 401. This HTML lives at /docs/mcp.

Claude Code (HTTP)
claude mcp add --transport http zsign https://zsign.io/mcp

Named recipes

Claude Code HTTP and mcp-remote

These are the only named client recipes. Any other Streamable HTTP MCP client uses the same URL, the server card, and OAuth discovery — we do not publish invented click-paths for other apps.

Claude Code
claude mcp add --transport http zsign https://zsign.io/mcp
mcp-remote
npx -y mcp-remote@latest https://zsign.io/mcp

Any Streamable HTTP MCP client

  • URL: https://zsign.io/mcp
  • Bootstrap (no credential yet): https://zsign.io/mcp/open
  • Server card: https://zsign.io/mcp/server-card
  • Auth: Authorization: Bearer zs_… or OAuth 2.1 (401 on https://zsign.io/mcp points at discovery).

Public tools

Agent lifecycle

  1. 01create_account
  2. 02get_pricing
  3. 03check_balance
  4. 04get_usage
  5. 05get_referral_link
  6. 06buy_credits
  7. 07send_envelope
  8. 08update_draft
  9. 09add_document_to_draft
  10. 10send_draft
  11. 11create_template
  12. 12list_templates
  13. 13send_from_template
  14. 14list_envelopes
  15. 15get_envelope_status
  16. 16get_signing_links
  17. 17remind_envelope
  18. 18correct_recipient_email
  19. 19void_envelope
  20. 20download_signed_document
  21. 21download_certificate
  22. 22get_audit_trail

API/MCP signup starts at 0 credits; email verification grants 3; a referral signup grants 25. Do not collapse those into one number.

Happy path

Create → price → buy → send → status → download

01

create_account

Mint a zs_ key. Unverified API/MCP signup stays at 0 credits.

02

get_pricing

Read prepaid pack prices. After email verify you already have 3.

03

buy_credits

Open Stripe Checkout when you need more than the starting grant.

04

send_envelope

Send a tagged PDF (1 credit), or draft=true to leave for human approve.

05

get_envelope_status

Poll until completed, then take completed_document_id.

06

download_signed_document

Fetch the sealed PDF with the completed id.

list_envelopes

Search the caller's org for envelopes (status, q, dates, limit max 50). Includes unsent drafts unless you filter to a session status. Thin recipients[] includes recipient_id and can_remind for remind_envelope; pass document_id to get_envelope_status for the rich session.

download_certificate / get_audit_trail

After the envelope is completed, download_certificate(document_id) returns the standalone Certificate of Signature as base64 PDF. get_audit_trail(document_id) returns the JSON trail — completed envelopes include the persisted certificate; voided / declined / expired envelopes return an on-the-fly trail. Both take the original document_id and require envelopes:read.

void_envelope

Mirrors the REST void rule. The send credit is refunded only if no recipient has viewed, signed, or declined the envelope. Declining can block the refund without a prior view. Voiding an already-voided envelope is safe to retry.

remind_envelope

Wraps POST /api/v1/documents/{document_id}/recipients/{recipient_id}/remind. Same cap, spacing, and sequential can_sign_now as the dashboard Remind button. Envelopes sent with send_invite=false are refused unless override_send_invite is true. Not idempotent: a second call inside the delay window is 429.

correct_recipient_email

Wraps POST /api/v1/documents/{document_id}/recipients/{recipient_id}/email. Corrects an unsigned recipient's address on an in-flight envelope without voiding. The recipient id and signing link stay the same, so signatures already collected from other recipients remain valid. A recipient who already signed is refused. A new invite goes to the corrected address when invites are enabled.