Skip to main content
Glama

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_9afb57dbb6478c441ad101129fca65847f5745403f9d718b3de6d934c9b63f88

Related MCP server: DocAPI MCP

Tools

Tool

What it does

render_pdf

Render a branded PDF. Input: template_id (or raw html) + data object. Returns a signed download URL.

render_image

Render a PNG image (e.g. OG/social card). Input: template_id (or raw html) + data object. Returns a signed download URL.

list_templates

List available templates: id, name, description, outputType. No API key needed.

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

DOCJET_API_KEY

Yes

Your DocJet API key (binfra_ prefix). Sent as a Bearer token; never logged.

DOCJET_BASE_URL

No

Override the API base URL (default https://api.docjet.dev).

How it works

  • Stdio transport using the official @modelcontextprotocol/sdk (v1).

  • render_pdfPOST /v1/render?response=url, render_imagePOST /v1/image?response=url, list_templatesGET /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).

License

MIT

Available Tools

3 tools
list_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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoTemplate variables (Handlebars data object)
htmlNoRaw HTML to render (max 512 KB) — alternative to template_id
template_idNoTemplate ID from list_templates (provide template_id OR html)

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoTemplate variables (Handlebars data object)
htmlNoRaw HTML to render (max 512 KB) — alternative to template_id
template_idNoTemplate ID from list_templates (provide template_id OR html)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 3 tool updatesv1.0.1
    • First observedlist_templates
    • First observedrender_image
    • First observedrender_pdf

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing templates, rendering to PNG, and rendering to PDF. No functional overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: list_templates, render_image, render_pdf.

Tool Count5/5

With only 3 tools, the set is tightly scoped to the core functionality of template discovery and rendering, which is appropriate for this service.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Generate 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.
    6
    17
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables PDF and image generation from templates, JSON, HTML, or URLs through the PDF Gen Studio API. Supports rendering, template management, and multiple output formats.
    14
    1
    MIT

Latest Blog Posts

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