Kamy MCP server

Connect Kamy and your agent gets 59 tools, among them ask_kamy, attest_artifact, bulk_signature_requests. It answers at https://mcp.kamy.dev/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.

Status
Answering
Tools
59
Official
yes, served from kamy.dev
Reliability
10 of 10 checks
Response time
295 ms
Transport
streamable HTTP
Last checked
18 October 2026

Document API for AI-native software: render PDFs, e-sign, PAdES-seal, and verify.

Description as the publisher wrote it.

The 59 tools Kamy offers

ToolWhat it does
ask_kamyAsk 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.
Inputs: question
attest_artifactCryptographically sign an output your agent produced — a PDF, report, code patch, dataset, email — so a third party can later confirm those exact bytes are the ones that were recorded, unmodified. Pass content_text or content_base64 and Kam
Inputs: artifact_type, content_sha256, content_base64, content_text, metadata, feature
bulk_signature_requestsFan one already-rendered PDF out to up to 100 independent signers in a single call — the 'send this NDA to everyone on the list' path. Each signer gets their own request, their own sign link and their own invitation email, but they all shar
Inputs: renderId, signers, message, expiresIn, reminderCadenceHours, position
convert_documentConvert a file you already hold — .docx, .xlsx or .csv — into a PDF, preserving its existing content. Pass the bytes base64-encoded together with the original filename, which is what the API uses to detect the input type. This is the inboun
Inputs: filename, fileBase64, name
create_envelopeSend a single PDF to 2–10 signers as one envelope. This is the multi-signer counterpart to create_signature_request, which handles exactly one signer — the API rejects an envelope with fewer than two recipients, so pick the tool by signer c
Inputs: renderId, pdfUrl, recipients, routing, position, message
create_scheduleSet up a recurring render: a cron expression, a template, and where each document goes. Use this instead of render_pdf when the user wants a document produced repeatedly on a calendar — a weekly report, a monthly invoice run — so nothing ha
Inputs: name, template, schedule, channel, recipients, data
create_signature_requestSend a previously rendered PDF to a signer for e-signature when a Kamy API key is configured. Without a key, returns dashboard setup instructions.
Inputs: renderId, signerEmail, signerName, position, message, authMethod
create_templateCreate a new custom PDF template owned by this account: a name, a unique slug, a Handlebars/HTML body, and optional CSS and JSON Schema. The slug is what render_pdf then takes as `template`. Custom templates are a paid feature — on the Free
Inputs: name, slug, html, css, schema, description
create_webhookRegister an HTTPS endpoint that Kamy POSTs to when work finishes, so a long render or an e-signature does not have to be polled. Use this when the caller owns a server that can receive callbacks; use get_job or list_renders when it cannot.
Inputs: url, events, enabled
delete_schedulePermanently delete a recurring schedule so it stops firing. There is no undo and no trash — recreate it with create_schedule if it is deleted by mistake, so confirm with the user before calling this on a schedule you did not just create. If
Inputs: schedule_id
edit_pdfModify an existing PDF: fill AcroForm fields by name, stamp text at absolute coordinates, or paint opaque boxes over regions. Operations apply in the order given, to either a render you own (renderId) or a PDF Kamy downloads from a public U
Inputs: renderId, pdfUrl, operations, name, flattenFields
extract_documentExtract 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 docum
Inputs: template, source_url, source_base64
extract_from_renderRead the text or the form fields back out of a document this account already rendered, without uploading anything. Pass type='text' (the default) for per-page text plus a joined fullText string, or type='fields' for the PDF's AcroForm field
Inputs: render_id, type
get_accountRead everything about the authenticated Kamy account in one call: profile, plan and plan status, the plan's limits (renders per month, API keys, seats, custom templates, overage pricing, priority queue), month-to-date render usage, and whet
get_envelopeFetch one multi-signer envelope with every recipient in signing order — each with a live sign_url, status, recipient_order, expires_at and last_reminded_at — plus the envelope's own status and routing. This is the tool for 'who still has no
Inputs: envelopeId
get_jobPoll an asynchronous render job started by render_async. Returns { jobId, status } where status is 'queued', 'processing', 'completed' or 'failed'; on 'completed' the response also carries `render` with the finished document's id, signed UR
Inputs: job_id
get_provenance_chainReplay everything recorded under one run_id — artifacts from attest_artifact and calls from record_agent_action — in order, with each record's link to its parent hash. Use it to answer 'what did this agent actually do, and in what sequence?
Inputs: run_id
get_renderFetch one previously produced document by its render id, with a freshly signed download URL valid for the next hour. This is the recovery path for an expired link: the URL is minted at read time, so calling this again on an old render alway
Inputs: render_id
get_render_pagesRasterise every page of an existing render to a PNG image and return one signed 1-hour URL per page, with pixel width and height. Use this when a page has to be looked at rather than read — thumbnails, previews, visual QA of a layout, or an
Inputs: render_id, dpi
get_signature_certificateReturns 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 re
Inputs: signatureRequestId
get_signature_requestFetch one signature request by id, with the detail list_signature_requests leaves out: the placed_fields layout, signed_at plus signed_ip and signed_user_agent, last_reminded_at, cc_emails, and envelope_id + recipient_order when it is part
Inputs: signatureRequestId
get_signature_templateFetch one e-signature preset in full, including the placed_fields array and position that list_signature_templates omits. Use it to inspect or copy an existing field layout before applying it through create_signature_request's signatureTemp
Inputs: signatureTemplateId
get_startedEverything needed to go from nothing to a rendered document in one call: the steps to create an API key in the dashboard, and — when you name a `framework` — the install command for the Kamy SDK, the environment variable it reads, and the c
Inputs: framework, packageManager, template
get_template_schemaFetch the JSON Schema (exact data shape) and a copy-pasteable sample payload for a Kamy system template by slug. Call this before render_pdf so you fill the right fields with the right types instead of guessing. No authentication required.
Inputs: slug
get_template_versionFetch one template version snapshot in full — html, css, schema, createdBy, createdAt — exactly as it was frozen when that version was cut. Use list_template_versions first to find the number. Use this to inspect what a released version act
Inputs: templateId, version
get_uploadLook up a stored asset by its upload id: filename, contentType, sizeBytes, status, its `kamy://asset/<id>` reference, and a freshly signed downloadUrl valid for one hour once the bytes exist. Its main use is confirming an out-of-band transf
Inputs: uploadId
list_rendersList the documents this account has already produced, newest first. This is how you find a PDF made earlier — in a previous turn, by a schedule, or by another process — when you no longer hold its URL. Download URLs returned by the render t
Inputs: page, page_size
list_schedulesList this account's recurring render schedules, newest first, with the id needed to delete one. Use it to answer what is already automated before creating a duplicate, and to diagnose a schedule that is not producing documents: each row car
Inputs: limit, offset
list_signature_requestsList signature requests created by the configured Kamy account, newest first. Without a key, returns dashboard setup instructions.
Inputs: limit, offset
list_signature_templatesList this account's reusable e-signature presets — saved field placements, default invite message, default link lifetime and CC list — newest first. These are signing presets, NOT the document catalog: list_templates is what render_pdf draw
Inputs: limit, offset
list_template_versionsList a template's immutable version snapshots, newest first, as { id, version, createdAt }. This is where the version number that publish_template and rollback_template take comes from. Bodies are deliberately not included — call get_templa
Inputs: templateId
list_templatesList Kamy's public system PDF templates. No authentication required.
list_webhooksList the webhook endpoints registered on this account, with the id needed to test one. Each row carries url, events, enabled, and lastDeliveryAt / lastStatus from the most recent delivery — lastStatus is the HTTP code the caller's own serve
merge_pdfsConcatenate 2–20 existing renders into a single new PDF, in exactly the order the ids are given. Both the inputs and the output are Kamy render ids, so this is the composition step after several render_pdf / convert_document / edit_pdf call
Inputs: renderIds, name
pki_sign_pdfCryptographically sign an existing render with PAdES when a Kamy API key is configured. Without a key, returns dashboard setup instructions.
Inputs: renderId, reason, location, signerName, signerEmail, withTimestamp
preview_field_placementCheck a placedFields layout against a real render's page geometry before anything is sent: no signature request is created, no email goes out, and no signature quota is spent. It accepts exactly what create_signature_request accepts — all s
Inputs: renderId, placedFields
publish_templateMake a template version live for rendering. Called with no `version`, it snapshots the current draft into a new version and points published_version at it — this is how you ship an edit made with update_template. Called with an existing `ve
Inputs: templateId, version
record_agent_actionAppend one signed tool_call -> tool_result pair to a tamper-evident ledger. Call it after any consequential tool invocation — a payment, an outbound email, a write into a customer system — so there is a hash-chained record of what the agent
Inputs: server, tool, tool_call, tool_result, run_id, parent_sha256
remind_signatureResend the signature invitation email. Pass signatureRequestId to nudge one signer, or envelopeId to nudge every currently-pending recipient of an envelope — supply exactly one; there is no separate envelope-reminder tool. This sends real e
Inputs: signatureRequestId, envelopeId
render_asyncQueue one PDF render and return immediately with { jobId, status: 'queued' } instead of waiting for the document. Choose this over render_pdf when blocking is not acceptable — a heavy template, a large data set, or a turn where you have oth
Inputs: template, data, name, format, margin, metadata
19 more tools

render_batch, render_docx, render_html, render_pdf, render_pptx, render_xlsx, rollback_template, scan_tool_description, split_pdf, test_webhook, trace_record, trace_record_batch, trace_search, update_template, upload_file, validate_payload, verify_attestation, verify_mcp_server, verify_pdf_signature

Add Kamy to your AI client

Every block below points at https://mcp.kamy.dev/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http kamy https://mcp.kamy.dev/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "kamy": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.kamy.dev/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "kamy": {
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "kamy": {
      "type": "http",
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "kamy": {
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "kamy": {
      "serverUrl": "https://mcp.kamy.dev/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "kamy": {
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: Kamy
version: 0.0.1
schema: v1
mcpServers:
  - name: Kamy
    type: streamable-http
    url: https://mcp.kamy.dev/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "kamy": {
      "httpUrl": "https://mcp.kamy.dev/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "kamy": {
      "type": "http",
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "kamy": {
      "url": "https://mcp.kamy.dev/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fmcp.kamy.dev%2Fmcp&type=streamable_http&id=kamy&name=Kamy

Is Kamy up right now?

It answered our last check on 18 October 2026 in 295 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to Kamy

Questions about Kamy

Is there an official Kamy MCP server?

Yes. It is published by kamy.dev and served from mcp.kamy.dev, the vendor's own domain: https://mcp.kamy.dev/mcp.

How many tools does Kamy have?

59, as returned by the server's own tools/list on 31 August 2026: ask_kamy, attest_artifact, bulk_signature_requests, convert_document, create_envelope, create_schedule, create_signature_request, create_template, and 51 more.

Is Kamy down?

It answered our last check on 18 October 2026 in 295 ms. Over 10 checks since 5 September 2026 it answered 10.

How do I add Kamy to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.kamy.dev/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does Kamy need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: dev.kamy. Endpoint host: mcp.kamy.dev. ARD identifier: urn:air:dev.kamy:mcp:kamy. First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.