
Sign Cli
A rare breed: an e-signature tool that works completely offline via PAdES with self-issued certs, then routes through Dropbox Sign, DocuSign, or SignWell when you need a third-party anchor. Exposes 19 MCP tools covering the full lifecycle: create multi-signer requests, issue scoped approval tokens, send, watch for completion, verify signed PDFs, and export hash-chained audit trails with RFC 3161 timestamps. The design keeps agents out of the signing gesture itself but lets them drive everything else: document prep, recipient orchestration, status polling, compliance checks. Ships with sandbox mode, path-traversal guards, and a parallel HTTP API. Useful when you're automating contract ops end-to-end but need a human-in-the-loop gate before ink hits paper.
- tools
- 19
- transport
- STDIO
- last updated
- Jul 13, 2026
Tools
19 toolsPublic tool metadata for what this MCP can expose to an agent.
signer_listList pending local-provider requests where the given signer is a recipient. Pass signer_email to scope; omit to list every pending local request the inbox can see.1 params
List pending local-provider requests where the given signer is a recipient. Pass signer_email to scope; omit to list every pending local request the inbox can see.
signer_emailstringsigner_fetch_documentRead the unsigned PDF for a local signing request. Requires the per-signer token. If out_path is provided, also writes the file to disk. Records request.signer_fetched_document.4 params
Read the unsigned PDF for a local signing request. Requires the per-signer token. If out_path is provided, also writes the file to disk. Records request.signer_fetched_document.
out_pathstringrequest_idstringsigner_emailstringtokenstringsignSign a local signing request as the holder of the given token. Requires --provider local. The token resolves the signer; pre-sign safety checks (require_hash, require_title, require_signer_email) throw with a structured error code before any state mutation.7 params
Sign a local signing request as the holder of the given token. Requires --provider local. The token resolves the signer; pre-sign safety checks (require_hash, require_title, require_signer_email) throw with a structured error code before any state mutation.
request_idstringrequire_hashstringrequire_signer_emailstringrequire_titlestringsigner_emailstringsigner_namestringtokenstringsigner_declineDecline a local signing request as the holder of the given token. Sets status to declined.4 params
Decline a local signing request as the holder of the given token. Sets status to declined.
reasonstringrequest_idstringsigner_emailstringtokenstringrequest_showReturn the enriched request snapshot: request, approvals (with tokenHint/expiresAt/expired/signed), signedBy[], declinedBy/declineReason, and a nextSteps[] array of suggested commands.1 params
Return the enriched request snapshot: request, approvals (with tokenHint/expiresAt/expired/signed), signedBy[], declinedBy/declineReason, and a nextSteps[] array of suggested commands.
request_idstringrequest_statusPoll the provider for the latest status of a request. For dropbox/signwell, reads API keys from DROPBOX_SIGN_API_KEY / SIGNWELL_API_KEY in the server's environment.2 params
Poll the provider for the latest status of a request. For dropbox/signwell, reads API keys from DROPBOX_SIGN_API_KEY / SIGNWELL_API_KEY in the server's environment.
providerstringdropbox · docusign · signwell · localrequest_idstringaudit_verifyVerify the cryptographic audit chain for a request and report any break.1 params
Verify the cryptographic audit chain for a request and report any break.
request_idstringrequest_watchPoll a request's status until terminal (completed/declined/canceled/timeout). When the MCP client supplies a progressToken, emits notifications/progress on each poll.4 params
Poll a request's status until terminal (completed/declined/canceled/timeout). When the MCP client supplies a progressToken, emits notifications/progress on each poll.
interval_msnumberproviderstringdropbox · docusign · signwell · localrequest_idstringtimeout_msnumberpdf_detect_signature_fieldDetect signature-field placement candidates in a PDF (AcroForm /Sig widgets + anchor-text matches). Returns ranked candidates with confidence + adjustment method. Read-only — does not modify the PDF.2 params
Detect signature-field placement candidates in a PDF (AcroForm /Sig widgets + anchor-text matches). Returns ranked candidates with confidence + adjustment method. Read-only — does not modify the PDF.
pdf_pathstringverbosebooleanpdf_detect_date_fieldDetect date-field placement candidates in a PDF. Returns candidates with `alreadyFilled: true` when a date string is already present near the anchor — callers can skip those when stamping. Read-only.2 params
Detect date-field placement candidates in a PDF. Returns candidates with `alreadyFilled: true` when a date string is already present near the anchor — callers can skip those when stamping. Read-only.
pdf_pathstringverbosebooleanpdf_inspect_signaturesInspect existing PADES signatures on ANY PDF — ours, Adobe's, DocuSign's, Dropbox Sign's, SignWell's. Returns per-signature signer CN/email, cert subject + issuer, validity window, fingerprint, trust label (self_signed_local | self_signed_other | ca_signed | unknown), message-...1 params
Inspect existing PADES signatures on ANY PDF — ours, Adobe's, DocuSign's, Dropbox Sign's, SignWell's. Returns per-signature signer CN/email, cert subject + issuer, validity window, fingerprint, trust label (self_signed_local | self_signed_other | ca_signed | unknown), message-...
pdf_pathstringprofile_listList the profiles configured in the user's profiles.json. Shows the active source so the agent knows whether a flag, env var, or default selected the currently-active profile.
List the profiles configured in the user's profiles.json. Shows the active source so the agent knows whether a flag, env var, or default selected the currently-active profile.
No parameter schema in public metadata yet.
profile_showShow the resolved active profile (or a specific user profile by name) with per-field provenance. Credentials are redacted by default; pass show_secrets: true to reveal resolved values. Read-only.2 params
Show the resolved active profile (or a specific user profile by name) with per-field provenance. Credentials are redacted by default; pass show_secrets: true to reveal resolved values. Read-only.
namestringshow_secretsbooleanpdf_stamp_textStamp a text string (e.g. a date) onto a PDF. Mirrors `sign pdf stamp-text`. Position via auto_place (true|first|last|all|page:N|index:N) on DATE anchors, or explicit image_page/image_x/image_y/image_width/image_height. By default, candidates whose date appears already filled...10 params
Stamp a text string (e.g. a date) onto a PDF. Mirrors `sign pdf stamp-text`. Position via auto_place (true|first|last|all|page:N|index:N) on DATE anchors, or explicit image_page/image_x/image_y/image_width/image_height. By default, candidates whose date appears already filled...
auto_placestringimage_heightnumberimage_pagenumberimage_widthnumberimage_xnumberimage_ynumberout_pathstringoverwrite_filledbooleanpdf_pathstringtextstringpreviewStamp a signature image or rendered name onto a PDF as a draft preview — NO PAdES seal, no signing-request state mutation. Mirrors `sign preview`. Returns positions + drawnRects (actual on-page rectangles after preserve-aspect-ratio shrink-to-fit) + warnings.12 params
Stamp a signature image or rendered name onto a PDF as a draft preview — NO PAdES seal, no signing-request state mutation. Mirrors `sign preview`. Returns positions + drawnRects (actual on-page rectangles after preserve-aspect-ratio shrink-to-fit) + warnings.
auto_cropbooleanauto_placestringimage_heightnumberimage_pagenumberimage_widthnumberimage_xnumberimage_ynumbername_signaturestringout_pathstringpdf_pathstringpreserve_aspect_ratiobooleansignature_imagestringdocumentOne-shot DOCX|PDF → signed PDF. Mirrors `sign document`. Orchestrates DOCX→PDF (via docx2pdf-cli) → auto-place detection → stamp + PAdES seal → verify. Uses an isolated temp database so the caller's main db is never touched. Defaults auto_place to 'first'.15 params
One-shot DOCX|PDF → signed PDF. Mirrors `sign document`. Orchestrates DOCX→PDF (via docx2pdf-cli) → auto-place detection → stamp + PAdES seal → verify. Uses an isolated temp database so the caller's main db is never touched. Defaults auto_place to 'first'.
auto_cropbooleanauto_placestringimage_heightnumberimage_pagenumberimage_widthnumberimage_xnumberimage_ynumberinput_pathstringname_signaturestringout_pathstringpreserve_aspect_ratiobooleansignature_imagestringsigner_emailstringsigner_namestringtitlestringsigner_reissue_tokenMint a new per-signer token for an existing request; the previous token is invalidated. Use when a signer lost their original token or it's about to expire. Mutating.3 params
Mint a new per-signer token for an existing request; the previous token is invalidated. Use when a signer lost their original token or it's about to expire. Mutating.
request_idstringsigner_emailstringtoken_ttl_minutesnumberaudit_scanVerify the audit chain of every request in the local DB (or filtered by provider/status). Returns per-request validity and any chain break. Read-only.3 params
Verify the audit chain of every request in the local DB (or filtered by provider/status). Returns per-request validity and any chain break. Read-only.
limitnumberproviderstringdropbox · docusign · signwell · localstatusstringrequest_receiptExport a cryptographically-signed receipt bundle for a request: audit.json, signed.pdf, manifest.json, manifest.sig (RSA-SHA256 over manifest.json), manifest.cert.pem. Verifiable end-to-end with `sign request verify-receipt`. Mutating (writes to out_dir).2 params
Export a cryptographically-signed receipt bundle for a request: audit.json, signed.pdf, manifest.json, manifest.sig (RSA-SHA256 over manifest.json), manifest.cert.pem. Verifiable end-to-end with `sign request verify-receipt`. Mutating (writes to out_dir).
out_dirstringrequest_idstringSponsors
Readme
sign-cli
sign-cli
Fully-offline e-signature CLI. The built-in PAdES signer (PKCS#7 in /ByteRange, self-issued cert) produces real, cryptographically verifiable signed PDFs with no signup and no third-party provider — or routes through Dropbox Sign / DocuSign / SignWell when you need an external trust anchor. Per-signer approval tokens (TTL-bounded, scoped to one email), hash-chained audit events, RFC 3161 timestamping, named profiles, a 19-tool MCP server, and a 20-route HTTP API.
The asymmetry is the architecture: an agent can drive every step except the actual signing gesture, which stays gated behind a human.
Details
- Repository
- github.com/drbaher/sign-cli
- Category
- AI & LLM Tools
- Package
@drbaher/sign-cli- Transport
- STDIO
- Registry
- MCP registry, active