npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@druckform/mcp

v3.0.0

Published

MCP adapter for druckform — HTTP upload/download + job lifecycle

Readme

@druckform/mcp

Druckform turns Markdown into styled, print-ready PDFs by way of LaTeX, for the case where an AI agent writes the document and it needs to look properly typeset rather than like a plain Markdown export. The name is German: a Druckform is the printing forme, the locked-up block of type a letterpress prints from, the last thing you assemble before you pull a proof.

@druckform/mcp is a Model Context Protocol server that hands that job to an agent. It wraps the @druckform/core engine as MCP tools, with an HTTP upload/download flow for getting files in and out of the render sandbox.

Status: experimental and unstable. For rendering with Claude Code, use the plugin (skill + druck CLI). This server is for custom MCP integrations and is still changing.

Do you need this package?

Usually not. For rendering with Claude Code, use the plugin: it adds a skill that drives the druck CLI (with Docker as the rendering backend) and does not use this MCP server.

/plugin marketplace add druckform/druckform
/plugin install druckform@druckform

Install @druckform/mcp yourself only if you're integrating druckform into your own MCP host, or experimenting with the MCP surface directly.

Run the server

npm install -g @druckform/mcp @druckform/core
druckform-mcp        # starts the MCP server (stdio) + its HTTP file endpoint

Requires Node.js ≥ 22 and the druck CLI from @druckform/core on PATH (or set DRUCK_BIN to the binary). Rendering needs the same tools as the engine: install them locally or let druck relay to Docker (DRUCK_ENGINE=auto).

Register it with an MCP-capable agent, e.g. Claude Code:

claude mcp add druckform -- druckform-mcp

How an agent renders through it

The tools mirror the engine and add a job lifecycle for file transfer:

  1. Discover: list_templates, then list_components (read each component's example and params).
  2. Validate (optional, recommended): validate_document catches unknown components and missing params/tokens before LaTeX runs.
  3. Open a job: render_document creates a job and returns an HTTP upload URL; upload the Markdown document plus any assets to it.
  4. Finalize and fetch: finalize_job runs the render; download the resulting PDF from the job's download URL. (refresh_job, list_job_files, and delete_job manage the job lifecycle.)

For a quick render without the upload step there's the inline helper render_markdown; preview_component renders a single component, and scaffold_component / validate_component support authoring. See the Extending guide → MCP workflow for the authoritative tool list and the full job flow.

Documentation

Related packages

MIT © druckform · github.com/druckform/druckform