docrenders-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@docrenders-mcpCreate an invoice PDF for $2,500 design work, due June 17."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
docrenders-mcp
MCP server for DocRenders — generate production-ready PDFs from Claude and any MCP-compatible AI agent.
Tools
Tool | Description |
| Convert Markdown or HTML to a PDF |
| Generate a PDF from a built-in template with structured data |
| List all available templates and their fields |
| Check current period render usage |
Related MCP server: DocAPI MCP
Setup
1. Get a DocRenders API key
Sign up at docrenders.com and generate an API key from your dashboard.
2. Add to Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"docrenders": {
"command": "npx",
"args": ["-y", "docrenders-mcp"],
"env": {
"DOCRENDERS_API_KEY": "dcr_live_YOUR_API_KEY"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
3. Restart Claude Desktop
The DocRenders tools will be available in your next conversation.
Usage examples
Once configured, you can ask Claude things like:
"Generate an invoice PDF for Acme Corp for $2,500 of design work, due June 17."
"Create a PDF resume for Jordan Whistler, senior Go engineer, with experience at Acme and Startup Co."
"Convert this markdown report to a PDF with the ai-summary template."
"How many renders have I used this month?"
Available templates
Template | Required fields |
| name, date, total, items |
| merchant, date, total, items |
| name, email |
| title, date, summary |
| title, author, date, sections |
| sender_name, recipient_name, date, body, signature_name |
| title, client, date, prepared_by, sections |
See docrenders.com/docs for full field reference.
Development
git clone https://github.com/JWhist/docrenders-mcp
cd docrenders-mcp
npm install
npm run build
DOCRENDERS_API_KEY=dcr_live_... node dist/index.jsLicense
MIT
Available Tools
6 toolsget_templateB
Get the full field schema for a specific DocRenders template, including field types, descriptions, and examples.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Template name (e.g. "invoice", "resume") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It implies a read-only operation ('Get') but does not explicitly state safety, side effects, or permissions. The mention of 'field types, descriptions, and examples' adds some behavioral insight but is insufficient for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the tool's purpose and output details without unnecessary words. It is highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is nearly complete: it states the action, the target, and the content of the return value. It could mention that it is a safe, read-only operation, but given the tool's simplicity, it is sufficiently informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (1 parameter with a clear description and example). The tool description adds no extra meaning beyond the schema, so baseline score of 3 applies. No deficiency or additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the specific resource 'full field schema for a specific DocRenders template'. It distinguishes itself from sibling tools like 'list_templates' (listing templates) and 'render' / 'render_template' (rendering) by focusing on schema retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It only describes what the tool does, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usageA
Check the current period render usage for the authenticated DocRenders account.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes a read-only operation ('check') and is non-destructive. However, it does not disclose additional behavioral traits like rate limits, data freshness, or specific usage metrics returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One succinct sentence with no wasted words. The key information is front-loaded and immediately actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description adequately states the tool's purpose, it lacks details on what the return value contains (e.g., usage numbers, limits) since there is no output schema. For a simple zero-parameter tool, this is acceptable but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the description does not need to add parameter details. Per guidelines, 0 parameters gets baseline 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool does: 'Check the current period render usage for the authenticated DocRenders account.' It uses specific verb 'check' and resource 'render usage', distinguishing it clearly from sibling tools focused on templates and rendering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing account usage stats. It clearly identifies the context (authenticated account, current period) but does not explicitly state when not to use it or mention alternatives. Given siblings, the use case is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_templatesA
List all available DocRenders templates with their categories, tags, and field schemas. Supports optional filtering by category or tag.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category (e.g. "Business", "Technical", "Personal") | |
| tag | No | Filter by tag (e.g. "billing", "ai", "career") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description discloses return content and filtering but omits any behavioral traits like pagination, result limits, or rate limits. Adequate for a simple read-only list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the core action, no redundant words. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool without output schema, the description adequately specifies what is returned (categories, tags, field schemas) and mentions filtering. Could mention pagination or result size but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions already present. The description adds context that parameters are optional filters but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all available DocRenders templates with metadata (categories, tags, field schemas), distinguishing it from siblings like get_template (fetch specific) or render.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions optional filtering by category or tag, guiding when to use parameters. However, it does not explicitly rule out other scenarios or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
renderA
Convert Markdown or HTML to a PDF. Returns a signed download URL valid for 15 minutes.
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | No | Markdown content to render (GFM supported) | |
| html | No | Raw HTML content to render. Alternative to markdown. | |
| template | No | Built-in template name to apply for styling (e.g. "invoice"). Use render_template instead if you want to inject structured data. | |
| filename | No | Name of the stored PDF file (e.g. "invoice-123.pdf"). Defaults to "render.pdf". | |
| format | No | Page size | A4 |
| landscape | No | Landscape orientation | |
| margin_top | No | Top margin as a CSS length (e.g. "1in", "20mm"). Defaults to "1in". | |
| margin_right | No | Right margin. Defaults to "1in". | |
| margin_bottom | No | Bottom margin. Defaults to "1in". | |
| margin_left | No | Left margin. Defaults to "1in". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the output (signed URL, 15-min validity) and the conversion action. However, it does not clarify side effects, idempotency, or authentication needs, leaving gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: one for purpose and one for output. Every word earns its place. No fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers the core transformation and output nature. However, it lacks context about sibling tools or template usage, which would help the agent decide when to use this over render_template.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add new parameter semantics beyond what the schema already provides (e.g., 'Markdown or HTML' is already in property descriptions).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Convert Markdown or HTML to a PDF', specifying the verb and resource. It also mentions the output is a signed download URL, but does not explicitly distinguish from sibling tools like render_template, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when converting Markdown or HTML to PDF) but provides no explicit guidance on when not to use or alternatives. The sibling tool render_template is hinted in the schema but not in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_templateA
Generate a PDF from a DocRenders template by passing structured data. The template provides the document layout and styling. Use list_templates to see available templates and their required fields, or get_template for a specific template's schema.
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Template name (e.g. "invoice", "resume"). Use list_templates to see all available templates. | |
| data | Yes | Data fields for the template. Required and optional fields vary by template — call get_template to see the schema. | |
| filename | No | Name of the stored PDF file (e.g. "invoice-123.pdf"). Defaults to "render.pdf". | |
| format | No | Page size | A4 |
| landscape | No | Landscape orientation | |
| margin_top | No | Top margin as a CSS length (e.g. "1in", "20mm"). Defaults to "1in". | |
| margin_right | No | Right margin. Defaults to "1in". | |
| margin_bottom | No | Bottom margin. Defaults to "1in". | |
| margin_left | No | Left margin. Defaults to "1in". |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses core behavior (PDF generation from template + data) but omits critical details: return value (binary, file path?), side effects (file storage), error handling, rate limits, or auth requirements. Some transparency is provided but significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences (~40 words) with a clear front-loaded purpose statement. Every sentence serves a purpose: first defines the tool, second provides actionable guidance. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 9 parameters and no output schema, the description does not explain the return value or behavior (e.g., does it return a PDF binary or store a file?). It also fails to clarify how this differs from sibling `render_template_preview`. Important gaps make it incomplete for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by linking to `list_templates` for template discovery and `get_template` for schema details, contextualizing parameters beyond their schema descriptions. This meta-information enhances understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a PDF from a template using structured data, identifying verb, resource, and mechanism. However, it does not differentiate from sibling tools like `render` or `render_template_preview`, leaving ambiguity about when to use this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using `list_templates` and `get_template` as prerequisites but does not provide guidance on when to use this tool versus siblings (e.g., `render` or `render_template_preview`). Usage context is implied but lacks explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_template_previewA
Generate a preview PDF for a DocRenders template using its built-in preview_fields data. Returns a signed download URL. Previews are cached — repeated calls for the same template return instantly. Does not count against your render quota.
| Name | Required | Description | Default |
|---|---|---|---|
| template | Yes | Template name (e.g. "invoice", "resume") or user template ID (tpl_…) | |
| data | No | Optional data overrides. Omit to use the template's built-in preview_fields. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses caching behavior, signed URL return, and quota exemption, which are beyond the schema. It could add error handling or URL expiry details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, purpose-first, no fluff. Every sentence adds value (purpose, output, caching/quota).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, output, caching, quota. Lacks error scenarios and authentication context, but sufficient for a simple preview tool with good sibling context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description repeats the concept of built-in preview_fields but adds no new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Generate) and resource (preview PDF for a DocRenders template), and distinguishes from siblings like render and render_template by noting it does not count against quota and uses preview_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for previews via caching and quota statements, but does not explicitly contrast with siblings like render_template or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
v0.4.0- First observed
get_template - First observed
get_usage - First observed
list_templates - First observed
render - First observed
render_template - First observed
render_template_preview
TDQS
Scored across 6 tools
Each tool has a distinct purpose: template listing/schema retrieval, generic rendering, template-based rendering with data or preview data, and usage checking. No overlap.
All tool names use consistent snake_case with verb_noun pattern (e.g., list_templates, render_template). The pattern is predictable and clear.
Six tools cover all necessary operations for a document rendering service: template discovery, rendering, and usage monitoring. Neither too few nor too many.
The tool set provides full lifecycle coverage: listing templates, getting their schemas, rendering documents (both generic and template-based), previewing templates without quota cost, and checking usage. No obvious gaps.
Maintenance
Related MCP Connectors
Generate PDFs from templates via AI chat. Works with Claude, ChatGPT, Cursor, and any MCP client.
Generate invoice and receipt PDFs from JSON. Agent-callable document API with a free demo quota.
Turn HTML or templates into branded invoice & document PDFs from your agent. One call, no install.
Generate PDF reports from Re:port Flow templates via Claude and other AI agents.
Related MCP Servers
- AlicenseBqualityCmaintenanceMCP server that converts Markdown to high-quality PDF documents using LaTeX, enabling AI agents like Claude to generate professional PDFs without requiring sign-ups or credit cards.12410MIT
- AlicenseNot gradedqualityDmaintenanceDocAPI is an MCP server that lets AI agents generate PDFs, capture webpage screenshots, and render invoices or documents from HTML templates or structured data, no browser required.31MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that gives your AI assistant the power to convert Markdown into 14 professional document formats — PDF, DOCX, HTML, LaTeX, CSV, JSON, XML, XLSX, RTF, PNG, and more. Stop copy-pasting. Let the AI do the exporting.333MIT
- AlicenseAqualityCmaintenanceGenerate professional PDFs from Claude, Cursor, and other AI tools. Create invoices, contracts, reports, and certificates from templates or inline HTML markup.7431MIT