Command Palette

Search for a command to run...

UnylyUnyly
Весь каталог

Pdf Reporter

БесплатноНе проверен

MCP server for rendering Mermaid diagrams to SVG and converting Markdown with callout blocks into styled PDF reports.

GitHubEmbed

Описание

MCP server for rendering Mermaid diagrams to SVG and converting Markdown with callout blocks into styled PDF reports.

README

CI Docker TypeScript Tests Mutation Score License: MIT Node.js

PDF Reporter MCP

Multi-purpose MCP server for generating SVG diagrams and PDF documents. Render Mermaid diagrams to SVG, compose Markdown content with callout blocks, and produce styled PDF reports — all through standard MCP tools.

Features

  • Mermaid to SVG — Render Mermaid diagrams to clean SVG via dedicated MCP tool
  • Markdown to PDF — Convert Markdown content with custom callout blocks to styled PDF documents
  • Callout Blocks — 9 callout types (idea, automation, warning, success, info, critical, business, expert, tip) using :::type Title syntax
  • Pastel Theme — Professional styling with configurable pastel color palette
  • Harmonious Diagrams — Pastel fills with tonal text and borders for visual consistency
  • MCP Protocol — Standard MCP server with stdio and SSE transports

Quick Start

Installation

git clone https://github.com/alexmakeev/pdf-reporter-mcp.git
cd pdf-reporter-mcp
npm install

Usage

# Development
npm run dev

# Production
npm run build && npm start

# Docker (pre-built image)
docker run --rm -p 3000:3000 -e TRANSPORT=sse ghcr.io/alexmakeev/pdf-reporter-mcp:latest

# Docker (build locally)
docker compose up

MCP Client Configuration

{
  "mcpServers": {
    "pdf-reporter": {
      "command": "node",
      "args": ["/path/to/pdf-reporter-mcp/dist/server.js"]
    }
  }
}

Docker

Pre-built Docker images are published to GitHub Container Registry on every push to main.

Pull and Run

docker pull ghcr.io/alexmakeev/pdf-reporter-mcp:latest
docker run --rm -p 3000:3000 -e TRANSPORT=sse ghcr.io/alexmakeev/pdf-reporter-mcp:latest

MCP Client Configuration (Docker)

{
  "mcpServers": {
    "pdf-reporter": {
      "url": "http://localhost:3000/sse"
    }
  }
}

Available Tags

Tag Description
latest Latest build from main branch
main Same as latest
v1.0.0 Specific release version
sha-abc1234 Specific commit build

Custom Configuration

docker run --rm \
  -p 3000:3000 \
  -e TRANSPORT=sse \
  -e THEME_PRIMARY_COLOR="#E81E63" \
  -v $(pwd)/output:/app/output \
  ghcr.io/alexmakeev/pdf-reporter-mcp:latest

MCP Tools

1. render_diagram

Render a single Mermaid diagram to SVG.

Input Parameters:

  • mermaid (required, string) — Mermaid diagram definition

Output:

{
  "svg": "<svg>...</svg>"
}

2. render_content

Render Markdown content with callouts and diagram placeholders to HTML.

Input Parameters:

  • content (required, string) — Markdown content with optional callout syntax
  • diagrams (optional, object) — Pre-rendered SVG diagrams: { [name]: string }

Output:

{
  "html": "<article>...</article>"
}

3. generate_pdf

Generate a PDF document from HTML content.

Input Parameters:

  • title (required, string) — Document title for cover page
  • html (required, string) — Rendered HTML content
  • subtitle (optional, string) — Document subtitle
  • logo (optional, string) — Logo as data URI or file path
  • template (optional, string, default: generic) — Template name
  • options (optional, object) — PDF generation options:
    • pageSize (string, default: A4) — Page size (e.g. A4, Letter)
    • toc (boolean, default: false) — Generate table of contents
    • headerTemplate (string or false) — Custom header template HTML
    • footerTemplate (string or false) — Custom footer template HTML
    • margins (object) — Page margins with top, bottom, left, right (e.g. 17mm)

Output:

{
  "path": "/tmp/pdf-reporter-output/document-title.pdf",
  "size": "2.4 MB",
  "pages": 15
}

4. list_templates

List available report templates.

Output:

{
  "templates": [
    {
      "name": "generic",
      "description": "Universal report template with cover page, optional TOC, and markdown content"
    }
  ]
}

5. get_template_schema

Get the input schema for a specific template.

Input:

  • template (required, string) — Template name

Output:

{
  "required": ["title", "html"],
  "optional": ["subtitle", "logo", "options"]
}

Workflow

The typical workflow is three steps:

1. render_diagram  →  Mermaid source  →  SVG string
2. render_content  →  Markdown + SVGs  →  HTML
3. generate_pdf    →  HTML + metadata  →  PDF file

Callout Syntax

:::info Important Note
This is an informational callout block.
Supports **markdown** inside.
:::

:::warning Caution
Be careful with this operation.
:::

:::success Achievement Unlocked
All systems operational.
:::

Supported Callout Types

Type Emoji Use Case
info ℹ️ General information
idea 💡 New ideas and suggestions
automation 🤖 Automation features
warning ⚠️ Warnings and cautions
success Successful outcomes
critical 🔴 Critical alerts
business 💰 Business insights
expert 🔍 Expert recommendations
tip 💎 Tips and best practices

Example

See the demo report for a complete example featuring all capabilities.

Generated with examples/generate-demo.ts.

Theme Configuration

Variable Default Description
THEME_PRIMARY_COLOR #4169E1 Primary accent color (Royal Blue)
THEME_COVER_COLOR same as primary Cover page accent color

The server auto-generates a pastel palette from the primary color for backgrounds, table headers, and cover elements. All text remains dark for readability.

Example:

export THEME_PRIMARY_COLOR="#E81E63"
export THEME_COVER_COLOR="#880E4F"
npm run dev

Architecture

MCP Input
  → Mermaid Renderer (mmdc CLI → SVG)
  → Callout Parser (:::syntax → HTML)
  → Markdown Renderer (marked + highlight.js)
  → Template Engine (Handlebars)
  → PDF Generator (Puppeteer)

Development

npm run dev          # Start dev server
npm test             # Run 164 tests
npm run test:watch   # Watch mode
npm run test:mutation # Mutation testing (Stryker)
npm run build        # TypeScript compilation

See docs/dev.md for the full developer guide.

Deployment

See docs/prod.md for Docker and Dokploy deployment instructions.

Testing

  • 164 unit tests across 8 test suites (vitest)
  • 94.21% mutation score via Stryker (minimum 89% per module)
  • All tests run offline with mocked dependencies

Tech Stack

Component Technology
Runtime Node.js 20+, TypeScript (strict)
PDF Puppeteer (headless Chrome)
Diagrams @mermaid-js/mermaid-cli
Templates Handlebars
Markdown marked + highlight.js
MCP @modelcontextprotocol/sdk
Tests vitest + Stryker

License

MIT © Alexander Makeev

from github.com/alexmakeev/pdf-reporter-mcp

Установка Pdf Reporter

У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.

▸ github.com/alexmakeev/pdf-reporter-mcp

FAQ

Pdf Reporter MCP бесплатный?

Да, Pdf Reporter MCP бесплатный — установка в пару кликов через Unyly без оплаты.

Нужен ли API-ключ для Pdf Reporter?

Нет, Pdf Reporter работает без API-ключей и переменных окружения.

Pdf Reporter — hosted или self-hosted?

Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.

Как установить Pdf Reporter в Claude Desktop, Claude Code или Cursor?

Открой Pdf Reporter на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.

Похожие MCP

Compare Pdf Reporter with

Не уверен что выбрать?

Найди свой стек за 60 секунд

Автор?

Embed-бейдж для README

Похожее

Все в категории development