Markdown2PDF
Converta documentos Markdown para arquivos PDF com destaque de sintaxe, estilo personalizado e marca d'água opcional.
Documentação

Servidor MCP Markdown2PDF (markdown2pdf-mcp)
Um servidor MCP para converter documentos Markdown em arquivos PDF. Este servidor fornece uma maneira simples e eficiente de gerar PDFs a partir de conteúdo Markdown, com suporte para realce de sintaxe, estilos personalizados, números de página opcionais e posicionamento flexível de marcas d'água (somente na primeira página ou em todas as páginas).
Inspirado no markdown-pdf de Alan Shaw.
Recursos
- Converter Markdown para PDF com um único comando
- Realce de sintaxe para blocos de código
- Estilo CSS personalizado para saída em PDF
- Suporte para formatação Markdown padrão
- Renderização de diagramas Mermaid
- Geração de PDF moderna usando o mecanismo de renderização do Chrome
- Excelente suporte para recursos e fontes web modernas
- Carregamento e renderização confiáveis de recursos
- Números de página opcionais renderizados via rodapé do PDF
- Marcas d'água com escopo configurável (primeira página ou todas as páginas)
Limitações
Os seguintes elementos Markdown não são suportados:
- Equações matemáticas LaTeX (por exemplo,
$x^2$ou$$\sum_{i=1}^n x_i$$) - Fórmulas matemáticas complexas ou notação científica
Use apenas estes elementos Markdown suportados:
- Cabeçalhos (todos os níveis)
- Formatação de texto (negrito, itálico, tachado)
- Listas (ordenadas e não ordenadas)
- Blocos de código com realce de sintaxe
- Tabelas
- Citações em bloco
- Links
- Imagens (tanto arquivos locais quanto URLs externas)
- Listas de tarefas
- Diagramas Mermaid
Diagramas Mermaid
Para renderizar um diagrama Mermaid, use um bloco de código mermaid:
´´´markdown
graph TD;
A-->B;
A-->C;
B-->D;
C-->D;
´´´
Se houver um erro de sintaxe no seu diagrama, a mensagem de erro será renderizada no PDF, ajudando você a depurá-lo.
Instalação (a partir do código-fonte)
# 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
Instalação (via npm)
npm install markdown2pdf-mcp
Uso
Iniciando o Servidor
npm start
Usando a Ferramenta MCP
O servidor fornece uma única ferramenta create_pdf_from_markdown com os seguintes parâmetros:
{
// 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)
watermarkScope?: 'all-pages' | 'first-page'; // Defaults to 'all-pages'
showPageNumbers?: boolean; // Defaults to false
}
Exemplo com opções:
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",
watermarkScope: "first-page",
showPageNumbers: true,
},
});
Exemplo de uso mínimo:
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",
},
});
Executando sob demanda com npx
Você pode executar o servidor sem uma instalação local permanente pedindo ao npx para obter o pacote mais recente e executar seu ponto de entrada:
npx -y markdown2pdf-mcp@latest
Este comando instala o pacote em um espaço de trabalho temporário e então inicia o servidor MCP via sua CLI integrada. Aponte seu cliente compatível com MCP (por exemplo, Cline ou Claude Desktop) para este comando para iniciar o servidor sob demanda.
Configuração
Diretório de Saída
Você pode configurar o diretório de saída no arquivo de configurações do MCP para aplicativos que usam MCP, como Cline ou Claude. Se não configurado, ele salvará os arquivos em $HOME:
{
"mcpServers": {
"markdown2pdf": {
"args": ["/path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory"
}
}
}
}
A ferramenta lida automaticamente com conflitos de nomes de arquivo anexando números incrementais (por exemplo, output.pdf, output-1.pdf, output-2.pdf).
Suporte a Arquivos Grandes
A ferramenta lida automaticamente com arquivos Markdown grandes com:
- Tempos limite dinâmicos: Escala automaticamente com base no tamanho do conteúdo (até 5 minutos para arquivos muito grandes)
- Limites de memória: Alocação de 4GB de memória para o Chrome lidar com documentos complexos
- Validação de tamanho: Tamanho máximo de arquivo de 10MB com mensagens de erro claras
- Acompanhamento de progresso: Mostra o tamanho do conteúdo e o tempo de processamento estimado
Para arquivos muito grandes (mais de 1300 linhas), a ferramenta irá:
- Avisar sobre o tempo de processamento estendido
- Aumentar automaticamente os tempos limite
- Exibir o tamanho do conteúdo na resposta
- Fornecer mensagens de erro detalhadas se o processamento falhar
Registro Detalhado
Ative o registro detalhado para depuração:
{
"mcpServers": {
"markdown2pdf": {
"command": "node",
"args": ["/path/to/markdown2pdf-mcp/build/index.js"],
"env": {
"M2P_OUTPUT_DIR": "/path/to/output/directory",
"M2P_VERBOSE": "true"
}
}
}
}
Isso registrará as etapas de processamento no stderr sem interferir na comunicação MCP.
Prefere uma versão compilada localmente? Troque
"command"de volta paranodee aponte"args"para o caminho compilado debuild/index.jsem vez de usarnpx, por exemplo:"args": ["/path/to/markdown2pdf-mcp/build/index.js"].
Dependências
- @modelcontextprotocol/sdk - SDK MCP para implementação do servidor
- remarkable - Analisador Markdown
- highlight.js - Realce de sintaxe
- puppeteer - Geração de PDF moderna usando Chrome for Testing (v131.0.6778.204)
Versão do Chrome
Este pacote usa Chrome v131.0.6778.204 para geração consistente de PDF em todas as instalações. Esta versão é instalada automaticamente quando você executa npm install.
- tmp - Manipulação de arquivos temporários
Desenvolvimento
# Build the project
npm run build
# Start the server
npm start
Licença
MIT
Contribuindo
- Faça um fork do repositório
- Crie sua branch de recurso (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request
