List Kamy's public system PDF templates. No authentication required.
No parameters.
render_pdf
Render a PDF from a Kamy template and data when a Kamy API key is configured. Without a key, returns dashboard setup instructions.
Parameters (3)
templatestringrequired
Template slug (e.g., 'invoice') or template UUID
dataobjectrequired
Data to populate the template
formatstring
extract_document
Extract structured data from a PDF (invoice, receipt, contract, ID document, or any form). Returns the parsed JSON plus a public verify URL that proves the extraction matches the source. Use this when an agent needs to read an inbound document and act on it.
Parameters (3)
templatestringrequired
Predefined template id. invoice/receipt for AP and POS docs, contract for legal agreements, id_document for passports/IDs, generic_form for anything else.
source_urlstring
Public URL to a PDF (preferred). One of source_url or source_base64 is required.
source_base64string
Base64-encoded PDF bytes. Use when the source isn't publicly fetchable.
ask_kamy
Ask Kamy Brain a question about Kamy usage, templates, plans, or errors. Sends the question to Kamy's public assistant endpoint and returns a paragraph answer.
Parameters (1)
questionstringrequired
The question to ask Kamy about — how to render a template, why a render failed, what plan to pick, etc.
install_sdk
Get install commands and setup code for @kamydev/sdk in your framework.
Parameters (2)
frameworkstringrequired
The framework the user is working with
packageManagerstring
Package manager to use
generate_integration_code
Generate copy-paste integration code for a specific Kamy template and framework.
Parameters (2)
templatestringrequired
Template slug (e.g., 'invoice')
frameworkstringrequired
Target framework
create_signature_request
Send a previously rendered PDF to a signer for e-signature when a Kamy API key is configured. Without a key, returns dashboard setup instructions.
Parameters (14)
renderIdstringrequired
Render UUID returned by render_pdf or any /v1/render call. The render's PDF is the document the signer will receive.
signerEmailstringrequired
Recipient email address.
signerNamestringrequired
Recipient full name. Must be typed verbatim by the signer to confirm intent.
positionobject
Optional sender-chosen signature placement in PDF points (72 dpi, origin bottom-left). Defaults to bottom-right of the last page sized 220×64 pt; when omitted, the signer can drag the placeholder on the sign page.
messagestring
Optional message rendered in the email invitation body.
authMethodstring
Identity-verification mode. `link` (default) — possession of the secret URL is the only check. `email_otp` — sign page renders a 6-digit OTP gate; code emailed to `signerEmail`. `sms_otp` — same gate, code texted to `signerPhone` (which must then be supplied). Recommend `email_otp` for higher-value transactions.
signerPhonestring
E.164 phone number. Required when `authMethod` is `sms_otp`; ignored otherwise. Example: `+14155551234`.
ccEmailsarray
Up to 10 observer addresses CC'd on the invite and the completion notice. Not signers themselves.
expiresIninteger
How long (seconds) the sign link stays valid. Defaults to 30 days. Min 1 hour, max 30 days.
reminderCadenceHoursinteger
When set (24–168), the auto-reminder cron resends the invite every N hours while the request stays pending, up to 3 reminders. Omit for no auto-reminders.
signOnEveryPageboolean
When true, the server stamps the signer's signature on every page of the source PDF instead of only the configured position. Common B2B contract pattern.
requireStampboolean
Require the signer to upload a company stamp / seal alongside their personal signature (UAE, KSA, JP, KR, IN, CN B2B workflows). Server refuses to seal without one.
signatureTemplateIdstring
Apply a signature template's defaults (placedFields, position, message, expiresIn, ccEmails). Request-level fields override the template.
placedFieldsarray
Up to 100 sender-defined fillable fields stamped onto the PDF at sign time. Use for flat PDFs that don't ship AcroForm widgets. Names must be unique.
list_signature_requests
List signature requests created by the configured Kamy account, newest first. Without a key, returns dashboard setup instructions.
Parameters (2)
limitinteger
Default 50.
offsetinteger
Default 0.
get_signature_certificate
Returns the authenticated download URL for a signature request's Certificate of Completion PDF — the process audit trail (invite → opened → consent → signed, with IP / user-agent) that legal teams expect. Only available after the request reaches a terminal state. Without a key, returns dashboard setup instructions.
Parameters (1)
signatureRequestIdstringrequired
ID of the signature_request to fetch the Certificate of Completion for. Must be in a terminal state (signed / declined / delegated / voided / expired); pending requests return 409.
pki_sign_pdf
Cryptographically sign an existing render with PAdES when a Kamy API key is configured. Without a key, returns dashboard setup instructions.
Parameters (7)
renderIdstringrequired
Render UUID returned by render_pdf or any /v1/render call. The PDF will be sealed with a Kamy-issued X.509 leaf certificate.
Override the signer display name. Defaults to the account's full_name.
signerEmailstring
Override the signer email. Defaults to the account's email.
withTimestampboolean
When false, skip the RFC 3161 timestamp call (PAdES-B-B instead of B-T). Default: true.
withRevocationInfoboolean
When false, skip embedding the Kamy CA CRL into the PKCS#7 SignedData (PAdES-B-T instead of B-LT). Online verifiers can still fetch the CRL via the Distribution Point on the leaf cert. Default: true.
verify_pdf_signature
Compute the kamy.dev/verify URL for a PDF without making a Kamy API call. Pass the PDF as base64; the MCP Worker hashes it in-memory and does not store or forward it.
Parameters (1)
pdfBase64stringrequired
Base64-encoded PDF bytes. The MCP Worker hashes the file in-memory and does not store or forward it.
get_api_key_instructions
Return step-by-step instructions for creating a Kamy API key in the dashboard. Does not open the browser.
Open Plugins distribution for Kamy — install Kamy PDF generation
in Cursor, Claude Code, and any other Open-Plugins-compatible AI coding agent.
This repository ships only the plugin manifest and the agent-facing assets
(skill, rules, sub-agent, MCP config). The Kamy API, dashboard, SDK source, and
template engine live in private infrastructure; this repo is the install
surface for AI agents.
Point your Open-Plugins-compatible agent at this repository and follow the
host's plugin-install flow:
code
https://github.com/Kamy-Development/kamy-plugin
The agent reads .plugin/plugin.json and loads the components automatically.
You will also need a Kamy API key. Grab one from
kamy.dev/dashboard/keys and expose it as
KAMY_API_KEY in your environment so the MCP server picks it up.
Use Kamy without the plugin
If you don't use an Open-Plugins-compatible agent, install the SDK or CLI
directly:
bash
# SDK (Node, Bun, Deno, Workers, Edge, browser)
npm i @kamydev/sdk
# CLI (scripts, CI, previews)
npm i -g @kamydev/cli