PenlyDoc
Send documents for e-signature, track who signed and save sealed PDFs with PenlyDoc.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
penlydoc-mcpclaude mcp add penlydoc -e 'PENLY_API_KEY=<your penly_api_key>' -e 'PENLY_URL=https://penlydoc.com' -- npx -y penlydoc-mcp@0.1.1
{
"mcpServers": {
"penlydoc": {
"command": "npx",
"args": [
"-y",
"penlydoc-mcp@0.1.1"
],
"env": {
"PENLY_API_KEY": "<your penly_api_key>",
"PENLY_URL": "https://penlydoc.com"
}
}
}
}
Environment variables
PENLY_API_KEYrequired secret PenlyDoc API key (console → Developers)PENLY_URLPenlyDoc instance URL
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
PenlyDoc MCP server
Let an AI assistant send documents for e-signature with PenlyDoc and follow them: "Send the lease to Mia Novak from the Residential lease template, rent 950 EUR", "Who still has to sign order 42?", "Save the signed contract to ./signed".
It is a Model Context Protocol server that runs on your computer (stdio) and talks to the PenlyDoc REST API with your organisation's API key. Works with any MCP client.
Setup
- Create an organisation at penlydoc.com (free) and copy an API key from Console → Developers.
- Add the server to your MCP client's configuration:
{
"mcpServers": {
"penlydoc": {
"command": "npx",
"args": ["-y", "penlydoc-mcp"],
"env": { "PENLY_API_KEY": "sk_…" }
}
}
}
Node.js 18.17 or newer is needed. PENLY_URL points the server at another PenlyDoc instance (default https://penlydoc.com).
Treat the API key like a password: it can send documents in your organisation's name. Give the assistant a key of its own, so you can revoke it in the console without touching your other integrations.
Tools
| Tool | What it does | Side effects |
|---|---|---|
get_organisation | Which organisation the key belongs to, sending limit | none |
list_templates | Templates with their roles and data keys | none |
send_from_template | Create a document from a template; send: true e-mails the people | e-mails real people |
send_document | Upload local PDFs or photos and create a document; boxes from {{sig:1}} tags or coordinates | e-mails real people when send: true |
list_documents | Documents with status and who has signed; filter by status or your reference | none |
get_document | One document: each person, opened, signed or declined, and when | none |
get_history | Hash-chained history with times and IP addresses | none |
send_draft | Send a draft | e-mails real people |
send_reminder | Remind everyone whose turn it is | e-mails real people |
cancel_document | Void a document that is still being signed | cannot be undone |
create_signing_link | One-hour link for an embedded signer | the link signs as that person |
download_signed_pdf | Save the sealed PDF of a completed document to a file | writes a local file (never overwrites) |
verify_pdf | Check a signed PDF: seal intact, who signed | none, no key needed |
The server tells the assistant to confirm people, e-mail addresses and documents with you before anything is sent. Most MCP clients also ask you before each tool call; keep that on for the tools that e-mail people.
Learn more
MIT licensed.
Frequently asked questions
What is PenlyDoc?
Send documents for e-signature, track who signed and save sealed PDFs with PenlyDoc.
How do I install PenlyDoc?
It runs on your machine. In Claude Code: claude mcp add penlydoc -e 'PENLY_API_KEY=<your penly_api_key>' -e 'PENLY_URL=https://penlydoc.com' -- npx -y penlydoc-mcp@0.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does PenlyDoc need an API key?
Yes. It expects PENLY_API_KEY, which you set in its configuration.
Is PenlyDoc open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains PenlyDoc?
It is published by OrestKlymko. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.