kysigned-mcp Server
Enables management of e-signature envelopes — create, check status, list, send reminders, and void — through natural language
Install and connect
Installation and connection instructions are shown only when supported by retained package, repository, or endpoint evidence.
No verified installation or connection method is available in the retained evidence yet.
Identity
| Canonical slug | kysigned-mcp-fdf3d72a | Deployment | Local Only |
|---|---|---|---|
| Canonical package | npm:kysigned-mcp | Repository | kychee-com/kysigned |
| First published | — | Latest release | — |
| Last security verification | Aug 25, 2026 | Classification confidence | 90% |
| Publication | Published | Official distribution | Yes |
Distributions
| Channel | Identifier | Current version | Versions | Source |
|---|---|---|---|---|
| npm | kysigned-mcp | — | 0 | Repository |
| source_git | kychee-com/kysigned | 11addffe05f6ff043de78fdd9d1f1cc5d4804e65 | 1 | Repository |
Current release
| Package | Version | Published / observed | Inventory | Security scan |
|---|---|---|---|---|
| source_gitkychee-com/kysigned | 11addffe05f6ff043de78fdd9d1f1cc5d4804e65Current | Aug 25, 2026 | 7 toolsSucceeded · 0 resources · 0 prompts | Verified clean |
Continuously monitor this MCP for security risk
Independently scan the exact version your agents use, receive alerts when its risk changes, and investigate every finding with retained version evidence.
- Independent exact-version security scans
- Continuous release and vulnerability monitoring
- Risk-change alerts with capability context
- Historical evidence and API exports
Current version evidence
| Provenance | immutable_git_commit | Signature | — |
|---|---|---|---|
| MCP SDK | — | Artifact SHA-256 | b1185c79d00d851af8ee28bfc37df600eee2a9929bd618a2194ef55bab022b03 |
| Scanner | mcp-proof-engine 0.1.0 | Scan completed | Aug 25, 2026 |
| Security rating | — | Methodology | — |
Current protocol inventory
Tools 7
| Tool | Category | Annotations | Risk |
|---|---|---|---|
check_envelope_statusCheck a signing envelope: per-signer signing status and times, plus each signer's delivery_status (pending / delivered / undeliverable — whether the signing-request email reached them, distinct from whether they signed). Accepts EITHER the ambient KYSIGNED_AUTHORIZATION creator key OR a per-envelope tracking_token (ktt_…, returned by every create — F-30.7): the token needs NO API key and reads exactly its own envelope, so the no-key wallet path polls through the same tool it created with. An explicit tracking_token wins over the ambient key.Input schema{
"type": "object",
"properties": {
"envelope_id": {
"type": "string",
"minLength": 1,
"description": "The envelope ID to check"
},
"tracking_token": {
"type": "string",
"description": "Envelope-scoped read-only observer token (ktt_…) from the create result — no API key needed."
}
},
"required": [
"envelope_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Check envelope status",
"readOnlyHint": true,
"openWorldHint": true
} | — | Read onlyOpen world | — |
create_envelopeCreate a new signing envelope. Sends a PDF to one or more signers (max 20); at completion every party receives a sealed evidence-bundle PDF. Provide EXACTLY ONE of pdf_base64 (≤ ~3 MB) or pdf_url (any size, fetched server-side). Consumes a creator credit and emails each signer.Input schema{
"type": "object",
"properties": {
"document_name": {
"type": "string",
"description": "Human-readable name for the document"
},
"pdf_base64": {
"type": "string",
"description": "Base64-encoded PDF, ≤ ~3 MB raw (synchronous-invoke body cap). For larger documents use pdf_url."
},
"pdf_url": {
"type": "string",
"format": "uri",
"description": "https URL the service fetches the PDF from server-side (the large-document escape)."
},
"signers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Signer email address"
},
"name": {
"type": "string",
"description": "Signer display name"
}
},
"required": [
"email",
"name"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 20,
"description": "1–20 signers (email + display name)"
},
"message": {
"type": "string",
"description": "Optional message included in the signing-request email"
},
"expiry_days": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Days until the envelope expires unsigned (omit for the operator default)."
},
"callback_url": {
"type": "string",
"format": "uri",
"description": "https completion-webhook URL; the 201 returns callback_secret once for verifying deliveries."
},
"auto_close": {
"type": "boolean",
"description": "false = manual seal (call seal after all signers sign) rather than auto-distribute."
}
},
"required": [
"document_name",
"signers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Create envelope",
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
create_envelope_x402Create a signing envelope PAYING PER ENVELOPE from the local run402 wallet via x402 — no API key and no kysigned account needed (the payment itself establishes the creator record for creator_email). This tool SPENDS REAL FUNDS: it pays the operator's live per-envelope price (read from the x402 route's challenge; kysigned.com: $0.25 USDC on Base mainnet). Safety order: it first runs the FREE preflight validation, then checks the wallet balance, and only then pays — an invalid request or short balance never triggers a charge. Retries are safe: the spending-intent idempotency key (yours, or a generated one returned in the result) replays the same envelope without paying twice. The payer resolves once from: an explicit allowance file (KYSIGNED_RUN402_ALLOWANCE_PATH), an embedder-injected opaque signer (KMS/HSM), or the host-local run402 allowance wallet (`run402 init`); its key is never a tool argument and never appears in output. On success the result carries the payment receipt and a tracking block whose ktt_ token polls this envelope with NO account (pass it to check_envelope_status as tracking_token); creator_email sign-in stays available for the dashboard.Input schema{
"type": "object",
"properties": {
"creator_email": {
"type": "string",
"format": "email",
"description": "REQUIRED deliverable address that becomes the creator record: creation/completion mail and the evidence bundle land there, and signing in with it later (magic link) opens the dashboard for this envelope."
},
"document_name": {
"type": "string",
"description": "Human-readable name for the document"
},
"pdf_base64": {
"type": "string",
"description": "Base64-encoded PDF, ≤ ~3 MB raw (synchronous-invoke body cap). For larger documents use pdf_url."
},
"pdf_url": {
"type": "string",
"format": "uri",
"description": "https URL the service fetches the PDF from server-side (the large-document escape)."
},
"signers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"description": "Signer email address"
},
"name": {
"type": "string",
"description": "Signer display name"
}
},
"required": [
"email",
"name"
],
"additionalProperties": false
},
"minItems": 1,
"maxItems": 20,
"description": "1–20 signers (email + display name)"
},
"message": {
"type": "string",
"description": "Optional message included in the signing-request email"
},
"expiry_days": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Days until the envelope expires unsigned (omit for the operator default)."
},
"callback_url": {
"type": "string",
"format": "uri",
"description": "https completion-webhook URL; the 201 returns callback_secret once for verifying deliveries."
},
"auto_close": {
"type": "boolean",
"description": "false = manual seal (call seal after all signers sign) rather than auto-distribute."
},
"idempotency_key": {
"type": "string",
"maxLength": 256,
"description": "Your spending-intent key: a retry with the same key replays the same envelope without paying twice. Omitted → one is generated and returned as spending_intent_key."
}
},
"required": [
"creator_email",
"document_name",
"signers"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Create envelope (wallet-paid)",
"readOnlyHint": false,
"destructiveHint": true,
"openWorldHint": true
} | — | WritesDestructiveOpen world | — |
list_envelopesList the envelopes you (the authenticated creator) have sent, with each one's status.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}Annotations{
"title": "List envelopes",
"readOnlyHint": true,
"openWorldHint": true
} | — | Read onlyOpen world | — |
send_reminderSend a reminder email to all pending signers on an envelope.Input schema{
"type": "object",
"properties": {
"envelope_id": {
"type": "string",
"minLength": 1,
"description": "The envelope ID"
}
},
"required": [
"envelope_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Send reminder",
"readOnlyHint": false,
"destructiveHint": false,
"openWorldHint": true
} | — | WritesNon-destructiveOpen world | — |
void_envelopeVoid an active envelope. Cancels all pending signing requests and notifies signers. Irreversible.Input schema{
"type": "object",
"properties": {
"envelope_id": {
"type": "string",
"minLength": 1,
"description": "The envelope ID to void"
}
},
"required": [
"envelope_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Annotations{
"title": "Void envelope",
"readOnlyHint": false,
"destructiveHint": true,
"openWorldHint": true
} | — | WritesDestructiveOpen world | — |
wallet_statusReport the payer's payment readiness for wallet-paid envelope creation: payer provenance (source kind + public address + network — never key material), asset, on-chain balance (read resiliently across independent RPC providers), the live per-envelope price (read from the x402 route's own challenge), and whether the balance covers it — when short, a structured QR-ready fund_wallet action (ERC-681 payment URI for exactly the shortfall). Read-only — never creates, spends, or initiates an on-chain transaction. Needs no API key: the wallet-paid path works without KYSIGNED_AUTHORIZATION. The payer resolves once from: an explicit allowance file (KYSIGNED_RUN402_ALLOWANCE_PATH), an embedder-injected opaque signer, or the host-local run402 allowance (`run402 init`); its key is never a tool argument and never appears in output.Input schema{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {}
}Annotations{
"title": "Wallet status",
"readOnlyHint": true,
"openWorldHint": true
} | — | Read onlyOpen world | — |
Resources 0
- None observed.
Resource templates 0
- None observed.
Prompts 0
- None observed.
Remote endpoints
| Endpoint | Transport | Authentication | Health | Observed |
|---|---|---|---|---|
| No verified remote endpoint is linked. | ||||
kysigned-mcp Server questions
How do I install kysigned-mcp Server?
No verified package installation command is available in the retained catalog evidence.
What tools does kysigned-mcp Server provide?
kysigned-mcp Server exposed 7 tools during independent protocol observation, including check_envelope_status, create_envelope, create_envelope_x402, list_envelopes, send_reminder, void_envelope, wallet_status.
Is kysigned-mcp Server secure?
Our scanner tested version 11addffe05f6ff043de78fdd9d1f1cc5d4804e65 without proving a finding in the methods exercised. This is not a guarantee that every deployment is secure.
Explore related MCP server guides
Curated product and capability guides containing this catalog record.