Skip to main content
Glama
README.md
# plan-export-mcp

> **The visual export engine for coding agents. Turn Markdown plans and Mermaid diagrams into beautiful, shareable documents.**


---

## The Problem

When coding agents (**Cursor**, **Claude Code**, **Pi**, **Windsurf**, **Aider**) draft implementation plans or audit codebases, they generate rich Markdown with code diffs, Mermaid architecture diagrams, GitHub callouts, and task lists.

- **Inside your IDE:** It looks crisp and structured.
- **When sharing:** Sending raw `.md` on **WhatsApp, Slack, or Email** turns into an unreadable mess. Generic PDF converters output 1990s-style plain black-and-white academic papers, break Mermaid diagrams, and strip dark themes.

`plan-export-mcp` bridges this gap. It gives your AI agent a native MCP tool to export plans with **pixel-perfect visual fidelity**.

---



## Key Features

- **High-Res PNG (Long Screenshot):** Rendered at 2x Retina DPR. Ideal for **WhatsApp and Slack** because it renders inline in chat feeds without forcing teammates to download a PDF reader.
- **VS Code Code Highlighting:** Powered by **Shiki** with language badges and diff support (`+` / `-` lines).
- **GitHub Callouts & Alerts:** Native support for `> [!NOTE]`, `> [!WARNING]`, `> [!TIP]`, `> [!IMPORTANT]`, and `> [!CAUTION]`.
- **Technical Typography:** Visible Markdown prose uses Unicode arrows, comparisons, plus/minus, and ellipses while code, autolinks, HTML, and Mermaid stay unchanged.
- **Private Artifact References:** `file://`, `vscode://`, `cursor://`, and `windsurf://` links render only their labels as inline code, without exposing local paths.
- **Mermaid Architecture Diagrams:** Client-side vector rendering directly embedded as SVG.
- **Clean A4 PDF:** Print-optimized with background colors and screen contrast preserved.
- **Self-Contained HTML:** Embedded styles and local scripts with zero external dependencies.
- **Dual Mode:** Use it as an **MCP server** for AI agents or as a standalone **CLI tool**.

---

## Installation and Usage

### Prerequisites
- Node.js 18+
- npm, pnpm, or yarn

*(Note: HTML exports run in pure Node.js with zero browser dependencies. For PDF/PNG rendering, Puppeteer manages a lightweight headless browser automatically or uses system Chromium if present).*

---

### 1. Run with NPX (Recommended)

Runs on-demand without any global installation.

#### Claude Code (One-liner CLI)
```bash
claude mcp add plan-export npx -y @agmonetti/plan-export-mcp
```

#### Claude Desktop & Cursor (JSON Configuration)
Add to your `claude_desktop_config.json` or `.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "plan-export": {
      "command": "npx",
      "args": ["-y", "@agmonetti/plan-export-mcp"]
    }
  }
}
```

> **Tip (Linux/Docker)**: If Puppeteer cannot locate Chrome automatically, specify its path explicitly:
> ```json
> "env": {
>   "PUPPETEER_EXECUTABLE_PATH": "/usr/bin/google-chrome-stable"
> }
> ```

---

### 2. Install Globally from NPM

Ideal for instant startup without network latency on every invocation:

```bash
npm install -g @agmonetti/plan-export-mcp
```

```json
{
  "mcpServers": {
    "plan-export": {
      "command": "plan-export-mcp"
    }
  }
}
```

---

### 3. Install from Source (Development)

Clone the repository and build locally:

```bash
git clone https://github.com/agmonetti/plan-export-mcp.git
cd plan-export-mcp
npm install
npm run build
```

```json
{
  "mcpServers": {
    "plan-export": {
      "command": "node",
      "args": ["/path/to/plan-export-mcp/dist/index.js"]
    }
  }
}
```

---

### Standalone CLI Usage

You can also run it directly in your terminal:

```bash
# Export to PNG and PDF in dark mode
npx @agmonetti/plan-export-mcp docs/plan.md --theme dark

# Export to all formats in light mode
npx @agmonetti/plan-export-mcp docs/plan.md --theme light --formats png,pdf,html --output-dir exports/
```

---

## MCP Tool Reference: `export_plan`

Your AI agent can invoke this tool directly:

```typescript
{
  "input": "docs/plans/feature-auth.md", // or raw markdown string
  "theme": "dark",                       // "dark" | "light" (default: "dark")
  "formats": ["png", "pdf"],             // ["png", "pdf", "html"]
  "outputDir": "./exports",              // default: "./exports"
  "outputName": "auth-plan"              // default: derived from file
}
```

---

## Architecture

- **Runtime:** Node.js (>= 18) + TypeScript
- **MCP SDK:** `@modelcontextprotocol/sdk` (stdio transport)
- **Highlighter:** Shiki (VS Code TextMate engine)
- **Diagrams:** Mermaid.js
- **Headless Engine:** Puppeteer with intelligent fallback to system Chrome/Chromium.

---

## License

MIT © 2025

TDQS

A3.9/5.0

Scored across 2 tools

Disambiguation4/5

The two tools target different output types and inputs: one exports whole Markdown plans/audits, the other renders isolated Mermaid diagrams. There is mild potential for confusion when a plan includes diagrams, but the descriptions make the boundary clear.

Naming Consistency5/5

Both tools follow the same verb_noun pattern: export_plan and render_diagram. The naming is parallel, predictable, and accurately reflects each tool's function.

Tool Count3/5

With only two tools, the server feels thin but is still reasonably scoped for a narrow plan-export and diagram-rendering purpose. It is not bloated, yet it sits at the lower boundary of acceptable tool count.

Completeness4/5

The core workflows are covered: exporting plans to common document formats and rendering diagrams to image formats. Minor gaps exist, such as batch processing or combining plan text and diagrams into a single export, but agents can accomplish the primary tasks without dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues