docjet-mcp
OfficialClick on "Install 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., "@docjet-mcpRender the 'invoice-ro' template for client 'Acme Corp' with amount $500."
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.
docjet-mcp
MCP server for DocJet — render branded PDF documents (invoices, reports, certificates) and PNG social images directly from any MCP client (Claude Desktop, Claude Code, Cursor, Windsurf, ...).
Send a template ID or raw HTML plus JSON data; get back a signed download URL. Runs locally over stdio via npx — nothing to host.
Quick start
Add to your MCP client configuration:
{
"mcpServers": {
"docjet": {
"command": "npx",
"args": ["docjet-mcp"],
"env": {
"DOCJET_API_KEY": "binfra_your_key_here"
}
}
}
}Get an API key at docjet.dev. To try it without signing up, use the public demo key (rate-limited to 3 req/min, 50 renders/month, shared by everyone):
binfra_9afb57dbb6478c441ad101129fca65847f5745403f9d718b3de6d934c9b63f88Related MCP server: DocAPI MCP
Tools
Tool | What it does |
| Render a branded PDF. Input: |
| Render a PNG image (e.g. OG/social card). Input: |
| List available templates: |
Example prompt once connected:
"List the DocJet templates, then render the invoice-ro template with client 'Demo SRL' and total 1000 as a PDF."
Environment variables
Variable | Required | Description |
| Yes | Your DocJet API key ( |
| No | Override the API base URL (default |
How it works
Stdio transport using the official
@modelcontextprotocol/sdk(v1).render_pdf→POST /v1/render?response=url,render_image→POST /v1/image?response=url,list_templates→GET /v1/templates.Template IDs are validated locally against
^[a-z0-9][a-z0-9-]{0,63}$before any network call.API errors surface as MCP error content with the DocJet error code (e.g.
QUOTA_EXCEEDED,RATE_LIMITED).
Links
API docs: docjet.dev/docs
Support: support@docjet.dev
License
MIT
Available Tools
3 toolslist_templatesList TemplatesA
List the available DocJet templates: id, name, description and outputType (pdf or png). Use a returned id as template_id in render_pdf / render_image.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
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 indicates a read-only list operation and specifies return fields, but does not disclose potential pagination, order, or rate limits. Adequate for a simple list tool.
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 that front-loads the purpose, lists return fields, and ties to sibling tools. Every part is useful and 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?
Given no output schema and no required parameters, the description fully explains what is returned and how to use the results. Complete for a list-only 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?
No parameters exist, and schema coverage is 100%. The description adds value by detailing the return fields and their purpose, exceeding the baseline expectation.
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 lists templates with specific fields (id, name, description, outputType) and distinguishes it from siblings by indicating the id is used in render_pdf/render_image.
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?
It tells when to use the tool (before rendering) by stating the returned id is used in render_pdf/render_image. It does not explicitly state when not to use it, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_imageRender ImageA
Render a PNG image (e.g. an OG/social card) with the DocJet API. Provide a template_id (discover them with list_templates) or raw html, plus a data object for template variables. Returns a signed download URL for the PNG.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Template variables (Handlebars data object) | |
| html | No | Raw HTML to render (max 512 KB) — alternative to template_id | |
| template_id | No | Template ID from list_templates (provide template_id OR html) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the return value (signed download URL for PNG), but does not disclose other behavioral aspects such as rate limits, authentication requirements, or whether the operation is idempotent. Adequate but not exhaustive.
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 long, front-loaded with the core purpose, and contains no unnecessary information. Every sentence is valuable and direct.
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 that there is no output schema, the description adequately covers the return type (signed download URL). It also mentions the html size limit (512 KB) indirectly via schema. Could be more complete about the URL format or expiration, but overall sufficient for a tool with three parameters.
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 description coverage is 100%, and the description adds value by explaining the relationship between template_id and html (alternatives) and referencing list_templates. The data parameter is described as Handlebars data object, which adds context 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 tool renders a PNG image using the DocJet API, with specific use-case examples (OG/social card). It distinguishes itself from sibling tools by specifying PNG output vs list_templates and render_pdf.
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 explains the two options for input (template_id or raw html) and mentions using list_templates to discover template IDs. It provides clear guidance on what to provide, but could be improved by explicitly stating when not to use this tool (e.g., for PDF rendering).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
render_pdfRender PDFA
Render a branded PDF document with the DocJet API. Provide a template_id (discover them with list_templates) or raw html, plus a data object for template variables. Returns a signed download URL for the PDF.
| Name | Required | Description | Default |
|---|---|---|---|
| data | No | Template variables (Handlebars data object) | |
| html | No | Raw HTML to render (max 512 KB) — alternative to template_id | |
| template_id | No | Template ID from list_templates (provide template_id OR html) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description covers the basic action (render, return signed URL) but does not disclose potential authorization requirements, rate limits, or any side effects. It implies a creation operation but lacks detail on what happens to the PDF or if files are stored.
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, under 40 words, no redundancy. Information is front-loaded with the core action and key parameters.
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 the main inputs and output (signed download URL). Missing explicit mention that template_id and html are mutually exclusive, but implied. For a tool with 3 parameters, it is reasonably complete given no output schema.
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. Description reiterates the two alternatives (template_id or html) and mentions data object, but does not add significant new semantic meaning beyond the schema's own 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 it renders a PDF using either a template_id (with reference to list_templates) or raw HTML, plus data. It distinguishes from siblings by specifying the PDF output and referencing the template discovery 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?
Description explicitly mentions when to use: when rendering a PDF with either a template or raw HTML. It references list_templates for discovery but does not contrast with render_image or provide when-not-to-use scenarios. Still, clear enough for an AI to decide.
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. Dates show when Glama detected each change.
3 tool updates
v1.0.1- First observed
list_templates - First observed
render_image - First observed
render_pdf
TDQS
Each tool has a clearly distinct purpose: listing templates, rendering to PNG, and rendering to PDF. No functional overlap.
All tool names follow a consistent verb_noun pattern: list_templates, render_image, render_pdf.
With only 3 tools, the set is tightly scoped to the core functionality of template discovery and rendering, which is appropriate for this service.
The tools cover the primary use case of listing and rendering templates. The ability to provide raw HTML compensates for missing template management, though a tool to create/update templates would be a minor gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Turn HTML or templates into branded invoice & document PDFs from your agent. One call, no install.
Markdown in, any format out. PDFs merged, split, watermarked. Runs on our own doc engines.
MCP server for Api2Pdf — generate PDFs & images from HTML, URLs or office files; merge, barcodes.
Generate HTML to PDF documents in bulk or single — raw replacements or based on conditions, loops
Related MCP Servers
- AlicenseBqualityDmaintenanceA universal MCP server for document processing, conversion, and automation. Handle PDF, DOCX, HTML, Markdown, and more through a unified API and toolset.1333139MIT
- 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.66MIT
- AlicenseAqualityCmaintenanceGenerate production-ready PDFs from Markdown, HTML, or built-in templates (invoices, resumes, reports) directly from Claude or any MCP-compatible AI agent via the DocRenders API.617MIT
- AlicenseNot gradedqualityDmaintenanceEnables PDF and image generation from templates, JSON, HTML, or URLs through the PDF Gen Studio API. Supports rendering, template management, and multiple output formats.141MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/docjet-dev/docjet-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server