mcp
E-signatures for agents: mint a sandbox key, send PDFs, track status, download the sealed result.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"mcp": {
"url": "https://swiftsign.ca/mcp"
}
}
}원격 엔드포인트
https://swiftsign.ca/mcpstreamable-http할 수 있는 일
도구 목록
도구 (10)
🔴swiftsign_send_envelope(subject, message, documents, recipients, fields, ...)
Send a document for e-signature. Accepts PDF as base64, recipients, and field placement. Sandbox keys (sk_test_) send immediately (watermarked test mail). LIVE keys create a DRAFT and return it for human review unless confirm: true — nothing is emailed until confirmed. Field placement: page+x+y (percent, top-left origin) OR an anchor string, not both. After everyone signs, retrieve the sealed PDF with swiftsign_download_signed_pdf.
입력 스키마
{
"type": "object",
"properties": {
"subject": {
"type": "string",
"description": "Email subject / document title"
},
"message": {
"description": "Optional message to include",
"type": "string"
},
"documents": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Document filename (e.g. 'contract.pdf')"
},
"base64": {
"type": "string",
"description": "Base64-encoded PDF content"
}
},
"required": [
"name",
"base64"
]
},
"description": "PDF documents to send"
},
"recipients": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Recipient full name"
},
"email": {
"type": "string",
"description": "Recipient email address"
},
"role": {
"default": "SIGNER",
"type": "string",
"enum": [
"SIGNER",
"CC"
]
},
"routingOrder": {
"default": 1,
"description": "Signing order (1 = first)",
"type": "number"
}
},
"required": [
"name",
"email"
]
},
"description": "People who need to sign or receive a copy"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"recipientIndex": {
"type": "number",
"description": "Index into recipients array (0-based)"
},
"type": {
"type": "string",
"enum": [
"SIGNATURE",
"NAME",
"DATE",
"TEXT",
"INITIALS",
"CHECKBOX",
"RADIO",
"DROPDOWN",
"ATTACHMENT"
],
"description": "Field type"
},
"document": {
"default": 0,
"description": "Document index (0-based)",
"type": "number"
},
"page": {
"type": "number",
"description": "Page number (1-based). Ignored when anchor resolves."
},
"x": {
"type": "number",
"description": "X position, percent 0-100 of page width, top-left origin"
},
"y": {
"type": "number",
"description": "Y position, percent 0-100 of page height, top-left origin"
},
"width": {
"description": "Field width (percent)",
"type": "number"
},
"height": {
"description": "Field height (percent)",
"type": "number"
},
"anchor": {
"description": "Anchor text to search in the PDF. Use anchor OR page+x+y, not both.",
"type": "string"
},
"yOffset": {
"description": "Y offset from anchor (percent)",
"type": "number"
},
"options": {
"description": "Choices for RADIO / DROPDOWN fields",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"recipientIndex",
"type",
"page",
"x",
"y"
]
},
"description": "Signing fields to place on documents"
},
"confirm": {
"description": "Set true to dispatch immediately on a LIVE key (sk_live_/sk_oat_). Without it, live envelopes are created as DRAFT and returned for human review before anything is emailed. Test keys (sk_test_) always send immediately (sandbox, watermarked).",
"type": "boolean"
}
},
"required": [
"subject",
"documents",
"recipients",
"fields"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴swiftsign_confirm_send(envelopeId)
Dispatch a DRAFT envelope — use after a human has reviewed an envelope that swiftsign_send_envelope or swiftsign_send_from_template returned as draft_pending_confirmation. This emails the signers. Does NOT work on envelopes already SENT/COMPLETED/VOIDED.
입력 스키마
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string",
"description": "The DRAFT envelope ID to dispatch"
}
},
"required": [
"envelopeId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴swiftsign_send_from_template(templateId, roleAssignments, subject, message, confirm)
Send an envelope from a saved template by assigning signers to roles. Sandbox keys (sk_test_) send immediately; LIVE keys create a DRAFT for human review unless confirm: true — nothing is emailed until confirmed.
입력 스키마
{
"type": "object",
"properties": {
"templateId": {
"type": "string",
"description": "The template ID to send from"
},
"roleAssignments": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Signer full name"
},
"email": {
"type": "string",
"description": "Signer email address"
}
},
"required": [
"name",
"email"
]
},
"description": "Map of template role name → signer { name, email }"
},
"subject": {
"description": "Email subject / document title",
"type": "string"
},
"message": {
"description": "Optional message to include",
"type": "string"
},
"confirm": {
"description": "Set true to dispatch immediately on a LIVE key (sk_live_/sk_oat_). Without it, live envelopes are created as DRAFT and returned for human review before anything is emailed. Test keys (sk_test_) always send immediately (sandbox, watermarked).",
"type": "boolean"
}
},
"required": [
"templateId",
"roleAssignments"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢swiftsign_check_status(envelopeId)
Check the status of an envelope — who signed, who hasn't, download links. Works in both sandbox (sk_test_ keys) and live.
입력 스키마
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string",
"description": "The envelope ID to check"
}
},
"required": [
"envelopeId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢swiftsign_list_envelopes
List envelopes (sent documents) with their status. Scoped to your key's mode — sandbox (sk_test_) keys see test envelopes, live keys see live.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴swiftsign_void_envelope(envelopeId)
Cancel/void an envelope that hasn't been completed yet. Signers can no longer sign a voided envelope. Works in both sandbox (sk_test_ keys) and live.
입력 스키마
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string",
"description": "The envelope ID to void"
}
},
"required": [
"envelopeId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢swiftsign_download_signed_pdf(envelopeId, outputPath, document, certificate)
Download the completed, sealed PDF (or its Certificate of Completion) for an envelope. Only works once status is COMPLETED — run swiftsign_check_status first. Does NOT work on DRAFT or SENT envelopes; nothing has been signed yet on those.
입력 스키마
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string",
"description": "The envelope ID (must be COMPLETED)"
},
"outputPath": {
"description": "Where to save the file (default: ./swiftsign-<id>.pdf). Ignored on the hosted endpoint, which returns base64.",
"type": "string"
},
"document": {
"description": "Which document to download when an envelope has several (0-based, default 0)",
"type": "number"
},
"certificate": {
"description": "If true, download the Certificate of Completion (audit trail) instead of the signed document",
"type": "boolean"
}
},
"required": [
"envelopeId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡swiftsign_upgrade(plan)
Initiate the upgrade to PRO ($15/mo flat). Returns a Stripe checkout_url that a human opens once to add a card — agents cannot complete the payment themselves. Moves the account from sandbox (sk_test_) to live sends. Returns status 'updated' if already on the plan.
입력 스키마
{
"type": "object",
"properties": {
"plan": {
"description": "Plan to upgrade to (default PRO)",
"type": "string",
"const": "PRO"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡swiftsign_create_embedded_url(envelopeId, recipientId, returnUrl)
Mint a short-lived embedded signing URL for a recipient (30-minute expiry). Returns a url to embed plus its expiresAt. The envelope must already be SENT. Works in both sandbox (sk_test_ keys) and live.
입력 스키마
{
"type": "object",
"properties": {
"envelopeId": {
"type": "string",
"description": "The envelope ID"
},
"recipientId": {
"type": "string",
"description": "The recipient ID within that envelope"
},
"returnUrl": {
"description": "URL to redirect the signer to after they finish",
"type": "string"
}
},
"required": [
"envelopeId",
"recipientId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢swiftsign_list_templates
List your saved templates. Scoped to your key's mode — sandbox (sk_test_) keys see test templates, live keys see live.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}권장 프롬프트
swiftsign_list_envelopesswiftsign_list_envelopes커뮤니티
증거