markdown2pdf-mcp
Markdown2PDF MCP サーバー (markdown2pdf-mcp)
Markdown文書をPDFファイルに変換するためのMCPサーバーです。このサーバーは、構文のハイライトとカスタムスタイルをサポートし、MarkdownコンテンツからPDFを生成するためのシンプルかつ効率的な方法を提供します。また、1ページ目に透かしを入れることも可能です。
Alan Shaw のmarkdown-pdfに触発されました。
特徴
1つのコマンドでMarkdownをPDFに変換する
コードブロックの構文強調表示
PDF出力のカスタムCSSスタイル
標準的なMarkdownフォーマットのサポート
Chrome のレンダリング エンジンを使用した最新の PDF 生成
最新のWeb機能とフォントの優れたサポート
信頼性の高いリソースの読み込みとレンダリング
Related MCP server: MD-PDF MCP Server
制限事項
次のマークダウン要素はサポートされていません。
LaTeXの数式(例:
$x^2$または$$\sum_{i=1}^n x_i$$)複雑な数式や科学的記法
サポートされている次のマークダウン要素に従ってください。
ヘッダー(全レベル)
テキストの書式設定(太字、斜体、取り消し線)
リスト(順序付きと順序なし)
構文強調表示付きのコードブロック
テーブル
引用ブロック
リンク
画像(ローカルファイルと外部 URL の両方)
タスクリスト
インストール
# Clone the repository
git clone https://github.com/2b3pro/markdown2pdf-mcp.git
# Navigate to the project directory
cd markdown2pdf-mcp
# Install dependencies
npm install
# Build the project
npm run build使用法
サーバーの起動
npm startMCPツールの使用
サーバーは、次のパラメータを持つ単一のツールcreate_pdf_from_markdownを提供します。
{
// Required parameters
markdown: string; // Markdown content to convert
// Optional parameters with defaults
outputFilename?: string; // Filename for the PDF (e.g., "output.pdf")
paperFormat?: string; // 'letter' (default), 'a4', 'a3', 'a5', 'legal', 'tabloid'
paperOrientation?: string; // 'portrait' (default), 'landscape'
paperBorder?: string; // '2cm' (default), accepts decimal values with CSS units (e.g., '1.5cm', '2.5mm', '0.5in', '10.5px')
watermark?: string; // Optional watermark text (max 15 characters, uppercase)
}オプション付きの例:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\nThis is a test document.",
outputFilename: "output.pdf",
paperFormat: "a4",
paperOrientation: "landscape",
paperBorder: "1.5cm",
watermark: "DRAFT",
},
});最小限の使用例:
await use_mcp_tool({
server_name: "markdown2pdf",
tool_name: "create_pdf_from_markdown",
arguments: {
markdown: "# Hello World\n\nThis is a test document.",
outputFilename: "output.pdf",
},
});構成
出力ディレクトリ
ClineやClaudeなど、MCPを使用するアプリでは、MCP設定ファイルで出力ディレクトリを設定できます。設定されていない場合は、ファイルは$HOMEに保存されます。
{
"mcpServers": {
"markdown2pdf": {
"command": "node",
"args": ["path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}ツールは、増分番号を追加することでファイル名の競合を自動的に処理します (例: output.pdf、output-1.pdf、output-2.pdf)。
依存関係
@modelcontextprotocol/sdk - サーバー実装用の MCP SDK
注目すべき- Markdownパーサー
highlight.js - 構文の強調表示
puppeteer - Chrome を使用したテスト用最新 PDF 生成 (v131.0.6778.204)
Chromeバージョン
このパッケージは、すべてのインストールで一貫したPDF生成を実現するために、Chrome v131.0.6778.204を使用しています。このバージョンは、 npm install実行すると自動的にインストールされます。
tmp - 一時ファイルの処理
発達
# Build the project
npm run build
# Start the server
npm startライセンス
マサチューセッツ工科大学
貢献
リポジトリをフォークする
機能ブランチを作成します(
git checkout -b feature/amazing-feature)変更をコミットします (
git commit -m 'Add some amazing feature')ブランチにプッシュする (
git push origin feature/amazing-feature)プルリクエストを開く
Available Tools
1 toolcreate_pdf_from_markdownA
Convert markdown content to PDF. Supports basic markdown elements like headers, lists, tables, code blocks, blockquotes, images (both local and external URLs), and Mermaid diagrams. Note: Cannot handle LaTeX math equations. Mermaid syntax errors will be displayed directly in the PDF output.
| Name | Required | Description | Default |
|---|---|---|---|
| markdown | Yes | Markdown content to convert to PDF | |
| outputFilename | No | Create a filename for the PDF file to be saved (default: "final-output.pdf"). The environmental variable M2P_OUTPUT_DIR sets the output path directory. If directory is not provided, it will default to user's HOME directory. | |
| paperBorder | No | Border margin for the PDF (default: 2cm). Use CSS units (cm, mm, in, px) | 20mm |
| paperFormat | No | Paper format for the PDF (default: letter) | letter |
| paperOrientation | No | Paper orientation for the PDF (default: portrait) | portrait |
| watermark | No | Optional watermark text (max 15 characters, uppercase), e.g. "DRAFT", "PRELIMINARY", "CONFIDENTIAL", "FOR REVIEW", etc |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it describes the conversion process, notes limitations (cannot handle LaTeX math), and specifies how errors (Mermaid syntax errors) are handled in the output. It also hints at file-saving behavior via the outputFilename parameter context.
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 appropriately sized and front-loaded, starting with the core purpose, then listing supported elements, and ending with limitations. Every sentence adds value without redundancy, making it efficient and easy to parse.
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 the tool's complexity (6 parameters, no output schema, no annotations), the description is quite complete: it covers purpose, supported features, limitations, and behavioral aspects. However, it could improve by mentioning the output format (PDF file) more explicitly or noting any side effects like file creation, though some of this is inferred from 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?
The schema description coverage is 100%, so the schema already documents all 6 parameters thoroughly. The description does not add any parameter-specific semantics beyond what the schema provides, such as explaining interactions between parameters or usage nuances. This meets the baseline for high schema coverage.
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's purpose with a specific verb ('Convert') and resource ('markdown content to PDF'), and distinguishes it by listing supported elements (headers, lists, tables, etc.) and limitations (no LaTeX math, Mermaid errors displayed). With no sibling tools, this level of detail is excellent.
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 implies usage by specifying what markdown elements are supported and what is not handled (LaTeX math), but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., other PDF generators or markdown processors). With no sibling tools, this is adequate but lacks broader context.
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 tool update
v1.0.0- First observed
create_pdf_from_markdown
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.
A single tool inherently has consistent naming, as there are no other tools to compare against. The name 'create_pdf_from_markdown' follows a clear verb_noun pattern.
One tool is too few for a server's purpose, as it severely limits functionality and flexibility. The server's scope (markdown to PDF conversion) could reasonably support additional tools for customization, validation, or batch processing.
The tool surface is severely incomplete for markdown-to-PDF conversion. While the core conversion is covered, there are obvious gaps such as no tools for configuring PDF settings (e.g., margins, page size), handling errors gracefully, or managing multiple conversions efficiently.
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
Generate PDF, Word (.docx) and PowerPoint (.pptx) documents from Markdown over MCP.
Hosted MCP server: convert PDFs to clean, LLM-ready Markdown with tables, formulas and OCR.
Markdown to PDF: headings, bold, code, lists, rules. A4/Letter/Legal. Free 30/hr. MCP + REST.
Document-to-Markdown MCP server — convert PDF, Office and HTML into LLM-ready Markdown.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that converts PDF files to Markdown format using AI sampling capabilities, supporting both local files and URLs with incremental conversion features.11MIT
- FlicenseAqualityDmaintenanceAn MCP server that enables bidirectional conversion between Markdown and PDF formats, including text extraction from specific pages and metadata retrieval. It supports customizable PDF output sizes and document processing through standard MCP tools.51-
- MIT
- AlicenseNot gradedqualityCmaintenanceA production-ready MCP server for converting documents and files to Markdown using Microsoft MarkItDown.MIT
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/2b3pro/markdown2pdf-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server