MCP electronic signatures
---
title: MCP electronic signatures
description: Automate MCP electronic signatures with Atlas API keys: upload PDF or DOCX, confirm fields, send, and archive signed PDFs.
date: 2026-06-21
updated: 2026-06-21
---
If you typed "mcp electronic signatures" into a search bar, you likely have a ticket to wire signing this sprint. Start with POST /api/envelope and finish with a webhook handler.
Share: One POST to create, one review click, one webhook when signed.
Atlas runs an MCP server at https://atlaswork.ai/api/mcp with ten tools that cover the signing lifecycle. Agents in Claude, ChatGPT, or Cursor can create envelopes, poll status, and extract data after sign.
Connect
| Client | Auth |
|---|---|
| Claude Desktop, ChatGPT | OAuth via connector or manual MCP config |
| Cursor, Claude Code, Windsurf | API key in MCP config |
Manifest: https://atlaswork.ai/.well-known/mcp
OAuth discovery: https://atlaswork.ai/.well-known/oauth-authorization-server
Tools (10)
| Tool | Purpose |
|---|---|
send_contract_for_review | Create envelope, return review_url |
send_contract_from_template | Repeat send from saved template |
get_envelope | Full status and download links when signed |
check_signing_status | Poll { status, signed_count, total, sign_url } |
list_envelopes | List with optional status filter |
list_templates | Saved templates with signer roles |
get_template | Prefill keys, parties, example payload |
void_envelope | Cancel pending envelope |
remind_signer | Email next unsigned signer |
extract_contract_data | Structured extract after sign |
Legacy alias: send_contract maps to send_contract_for_review.
Removed stubs: upload_document, draft_contract, get_signed_pdf, and others return errors if called.
Document intake for send_contract_for_review
Pick one path per call:
- Public URL:
document_url+parties[] - ChatGPT attachment:
document_file+parties[] - Local file:
request_document_upload: truethen user uploads thencomplete_upload_session - Plain text:
document_text+parties[](no PDF/DOCX file)
Never pass base64 in MCP. For PDF and DOCX on disk, use the upload session flow.
Review before send
MCP create returns review_url. Open it and click Send before signers get email. Unless you use REST with auto_send: true, MCP does not skip review.
Agent loops
One-off:
send_contract_for_review → review_url → human Send → check_signing_status → get_envelope
Template repeat:
list_templates → get_template → send_contract_from_template → check_signing_status
Idempotency
Write tools call resolveIdempotencyKey. Caller key wins; otherwise Atlas hashes apiKey + tool + args + 60s bucket.
Sequential signing
Multi-party envelopes sign in order. Each sign_url includes ?t=<token>. Fields filter server-side per party.
Credits
Drafts and detection are free. Send consumes one credit. Five free on signup.
REST parity
MCP and REST share envelope rows. Platform mode (Atlas-Account header) is REST-only in v1.
Recipes
Compare and blog
Implementation depth for MCP signing
Production agent workflows fail when humans skip review on new document types. MCP create returns review_url for ad-hoc uploads. Open it and click Send before signers get email.
Write tools resolve Idempotency-Key automatically. Caller-supplied key wins. Otherwise Atlas hashes apiKey plus tool name plus args plus 60-second bucket.
Verify webhook HMAC on envelope.signed before you update CRM or billing state. Agents should not hold long-lived user OAuth tokens for incumbents when MCP discovery handles auth.
Error handling
402 when credits exhausted at send time. 409 when fields_status still pending. 400 on malformed parties JSON.
Log envelope_id on every create for support traces.
Pilot checklist
Connect MCP in Claude. Call send_contract_for_review with a test PDF URL. Open review_url. Send to a mailbox you control. Poll check_signing_status until signed. Compare time-to-first-signed-PDF against your incumbent.
Five free sends at /signup before you forecast paid volume.
Security notes
API keys are Bearer tokens from Dashboard. Rotate if leaked. Never embed keys in client-side JavaScript.
Password-only auth on Atlas dashboard. SAML SSO is additive for orgs that enable it.
Related reading
Tool selection guide
Use send_contract_for_review when the document is new or variable. Use send_contract_from_template when legal already approved the shape.
Use check_signing_status in agent loops. Use get_envelope when you need full party rows or signed download URL.
Use void_envelope when the deal died before anyone signed. Use remind_signer when the next party stalled.
Use extract_contract_data only after status is signed. Calling early returns an error by design.
Stakeholder alignment
Legal cares about audit trail export. Finance cares about seat true-up on incumbent vendors. Platform team cares about MCP OAuth and whether send requires human review by default.
Run a 30-minute workshop with each group before you route production contracts through agents.
REST parity notes
MCP and REST share envelope rows and credits. Platform mode with Atlas-Account header is REST-only in v1.
If your backend also creates envelopes, use the same API key and Idempotency-Key patterns as MCP for consistent retry behavior.
Volume planning
Drafts and detection are free. One credit per envelope sent. Resends on an already-sent envelope do not double-charge.
Model peak month agent sends before you compare MCP workflow cost to per-seat incumbent quotes.
ChatGPT contract signing
Searchers type "chatgpt contract signing" or "chatgpt esign api" when they want OpenAI's connector to send PDFs from chat. Connect Atlas at /mcp/chatgpt. OAuth handles auth. Call send_contract_for_review with document_url or use upload session for local files.
ChatGPT attachments map to document_file on the tool call. Response includes review_url. Human clicks Send before signers get email unless template auto_send applies.
Claude MCP e-sign
"claude mcp esign" and "claude esign api" point to the same workflow in Claude Desktop or Claude Code. Add connector URL https://atlaswork.ai/api/mcp. Tools list exposes ten lifecycle operations. See /mcp/claude for one-click setup.
Typical loop: send_contract_for_review, share review_url with counsel, check_signing_status, get_envelope when signed.
Cursor and IDE agents
"cursor esign api" searches come from developers wiring MCP in Cursor, Windsurf, Cline, or VS Code. Use Bearer API key in MCP config headers. Same endpoint as ChatGPT: https://atlaswork.ai/api/mcp.
See /mcp/cursor for config screenshots and troubleshooting auth headers.
Agent and LLM contract signing
"agent contract signing api", "agent esign api", "ai agent contract signing", and "llm contract signing" describe autonomous workflows that create envelopes without dashboard clicks. Atlas MCP returns review_url on ad-hoc uploads so agents prep and humans dispatch.
Pair MCP create with REST webhooks for CRM updates. Use extract_contract_data after sign for structured fields.
MCP signing API vs REST
"mcp signing api" compares transport layers. REST fits server cron and backend services. MCP fits chat-native agents that discover tools via tools/list. Same envelope rows under the hood. Idempotency applies to both paths.
REST-only platform mode uses Atlas-Account header for connected accounts. MCP in v1 uses the authenticated user's credits.
MCP contract signing tool selection
"mcp contract signing" is the umbrella intent. Pick send_contract_for_review for new PDFs. Pick send_contract_from_template for repeat legal-approved shapes. Pick check_signing_status in agent poll loops. Pick void_envelope when deal dies before signature.
Legacy tool names like send_contract still route to send_contract_for_review. Removed stubs return explicit errors. Update old prompts.
Compare the Atlas MCP overview for endpoint URLs and auth modes.
FAQ
Does Atlas accept PDF and DOCX?
Yes. Upload either format when you create an envelope. DOCX files become PDF before anyone signs.
How do I sign in?
Use a Bearer API key from your dashboard settings. MCP connectors in ChatGPT and Claude use OAuth instead.
When do credits get used?
One credit per send, not per upload. You get five free sends when you sign up.
Where should I start?