Token导航 LogoToken导航

MCP Server · 文档知识

MCP Html2pdf

一个基于Puppeteer的快速可靠API服务,用于将HTML内容和网页转换为PDF文档,支持多种自定义选项和MCP集成。

stdio官方级别未说明来源级核验工具 2puppeteer
浏览器自动化TypeScriptClaudeClaude Desktop

快速开始

作者 / 组织
iamsalt
提供方
iamsalt
运行时
Node.js

工具数量

2

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

MCP Html2pdf 属于文档知识类 MCP Server,公开资料标注 2 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

文档知识

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

npx puppeteer browsers install chrome

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Node.js,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 2 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

HTML到PDF API服务器

一个快速可靠的API服务器,用于使用Puppeteer将HTML内容和网页转换为PDF文档。

特性

  • 🌐 HTML转PDF:将HTML字符串转换为PDF文档
  • 🔗 PDF的URL:将网页转换为PDF文档
  • 🤖 MCP集成:通过模型上下文协议实现Claude桌面兼容性
  • ⚙️ 可配置的:基于环境的配置
  • 💾 文件输出:可选文件保存,可自定义命名
  • 📊 灵活的选项:可定制的PDF格式、边距、方向
  • 🚀 演出:增强的浏览器池和超时管理
  • 🔒 安全:输入验证和可配置限制
  • ✅ CI/CD:使用GitHub Actions进行自动化测试
  • 📊 覆盖:测试覆盖率报告和质量门

快速开始

先决条件

  • Node.js 18+
  • Chrome/Chromium浏览器

安装

# Clone the repository
git clone https://github.com/yourusername/mcp-html2pdf.git
cd mcp-html2pdf

# Install dependencies
pnpm install

# Install Chrome for Puppeteer
npx puppeteer browsers install chrome

# Start the API server
pnpm start

# Or start as MCP server for Claude Desktop
pnpm mcp

API服务器将于启动 http://localhost:3000 默认情况下。

API使用

将HTML转换为PDF

curl -X POST http://localhost:3000/html2pdf \
  -H "Content-Type: application/json" \
  -d '{"html":"
Hello World
"}' \
  --output document.pdf

将URL转换为PDF

curl -X POST http://localhost:3000/html2pdf \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}' \
  --output webpage.pdf

高级选项

curl -X POST http://localhost:3000/html2pdf \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "options": {
      "format": "A4",
      "orientation": "landscape",
      "margins": {"top": "1in", "bottom": "1in"},
      "printBackground": true,
      "filename": "custom.pdf",
      "saveToFile": true
    }
  }' \
  --output custom.pdf

MCP(模型上下文协议)集成

此服务器可以用作Claude Desktop的MCP服务器,允许您通过自然语言命令直接将HTML和URL转换为PDF。

Claude桌面设置

  1. 启动MCP服务器:
   pnpm mcp
  1. 配置Claude桌面:

添加到您的Claude Desktop配置文件中:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%/Claude/claude_desktop_config.json

   {
     "mcpServers": {
       "html2pdf": {
         "command": "node",
         "args": ["-r", "tsx/esm", "/absolute/path/to/mcp-html2pdf/src/mcp-server.ts"],
         "cwd": "/absolute/path/to/mcp-html2pdf"
       }
     }
   }
  1. pnpm的替代方案:
   {
     "mcpServers": {
       "html2pdf": {
         "command": "pnpm",
         "args": ["mcp"],
         "cwd": "/absolute/path/to/mcp-html2pdf"
       }
     }
   }

MCP使用示例

配置后,您可以在Claude Desktop中使用自然语言:

  • “将此HTML转换为PDF: `

Hello `"

  • “转换https://example.com转换为PDF并将其另存为example.PDF“
  • “从该URL生成横向PDF:https://github.com"

可用的MCP工具

  • convert_html_to.pdf:将HTML内容转换为PDF
  • convert_url_to_pdf:将网页URL转换为PDF

这两个工具都支持与REST API相同的所有选项。

有关MCP设置的详细说明,请参阅 MCP_SETUP.md.

配置

通过环境变量进行配置:

# Server settings
PORT=3000
MAX_REQUEST_SIZE=50mb

# PDF settings
PDF_FORMAT=A4                    # A4, Letter, Legal
PDF_PRINT_BACKGROUND=true
PDF_MARGIN_TOP=0.5in
PDF_MARGIN_RIGHT=0.5in
PDF_MARGIN_BOTTOM=0.5in
PDF_MARGIN_LEFT=0.5in

# File output
FILE_OUTPUT_ENABLED=true
FILE_OUTPUT_DIR=./output
FILE_OUTPUT_TEMPLATE={domain}-{timestamp}.pdf

# Timeouts
REQUEST_TIMEOUT=30000            # 30 seconds
PAGE_LOAD_TIMEOUT=20000          # 20 seconds

# Browser settings
BROWSER_HEADLESS=true
CHROME_EXECUTABLE_PATH=/path/to/chrome

请求选项

选项类型默认值描述
format字符串A4纸张格式(A4、信纸、法律版)
orientation字符串portrait页面方向
printBackground布尔值true打印背景图形
scale编号1.0比例因子
margins对象0.5in页边距
waitFor.networkIdle字符串networkidle0网络空闲状态
waitFor.timeout编号20000页面加载超时
waitFor.selectorstring-等待特定元素
filename字符串generated.pdf输出文件名
saveToFile布尔值false保存到服务器文件系统

Docker部署

FROM node:18-alpine

# Install Chrome dependencies
RUN apk add --no-cache \
    chromium \
    nss \
    freetype \
    harfbuzz

ENV CHROME_EXECUTABLE_PATH=/usr/bin/chromium-browser
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true

WORKDIR /app
COPY package*.json ./
RUN pnpm install --production

COPY . .
RUN pnpm build

EXPOSE 3000
CMD ["node", "dist/server.js"]
# Build and run
docker build -t html2pdf .
docker run -p 3000:3000 html2pdf

健康检查

curl http://localhost:3000/health

发展

设置

# Clone the repository
git clone https://github.com/yourusername/mcp-html2pdf.git
cd mcp-html2pdf

# Install dependencies
pnpm install

# Install Chrome for Puppeteer
npx puppeteer browsers install chrome

# Run in development mode
pnpm dev

# Run tests
pnpm test

# Build for production
pnpm build

脚本

  • pnpm start -启动生产API服务器
  • pnpm dev -开始开发API服务器
  • pnpm mcp -启动Claude Desktop的MCP服务器
  • pnpm test -运行测试
  • pnpm test:watch -在监视模式下运行测试
  • pnpm test:coverage -使用覆盖率报告运行测试
  • pnpm build -为生产而建
  • pnpm lint -运行ESLint
  • pnpm format -使用Prettier格式化代码

CI/CD

本项目使用GitHub Actions进行持续集成:

自动化测试

  • Node.js 20.x测试:针对Node.js 20.x兼容性进行了优化
  • 依赖管理:使用pnpm和锁文件验证
  • Chrome安装:Puppeteer测试的自动Chrome设置
  • Lint&Build:代码质量和TypeScript编译检查
  • MCP服务器测试:验证MCP服务器启动

覆盖范围报告

  • 测试覆盖率:Vitest与v8覆盖提供商合作
  • 覆盖阈值:分支、函数、行和语句的最小覆盖率为70%
  • Codecov集成:自动上传覆盖报告

质量门

  • 所有测试必须通过
  • 过梁必须通过(零错误策略)
  • 构建必须成功
  • 必须满足覆盖阈值

CI运行于:

  • 推到 main 和 develop 分支
  • 将请求拉到 main 分支

安全注意事项

在生产环境中部署时:

  • 使用反向代理(nginx、Apache)进行SSL终止
  • 配置防火墙规则以限制访问
  • 设置适当的资源限制
  • 监控滥用情况并实施限速
  • 考虑在容器化环境中运行

故障排除

未找到Chrome

npx puppeteer browsers install chrome

内存问题

  • 减少并发请求: MAX_CONCURRENT_REQUESTS=5
  • 如果页面加载缓慢,请增加超时值
  • 监控内存使用情况并定期重新启动服务
  • 浏览器池自动管理浏览器重用以提高效率

权限错误

  • 确保输出目录可写
  • 检查Chrome的可执行权限
  • 使用适当的用户权限运行

MCP集成问题

  • 确保Claude Desktop配置中的绝对路径
  • 配置更改后重新启动Claude Desktop
  • 检查MCP服务器日志: pnpm mcp (应显示“HTML转PDF MCP服务器在stdio上运行”)
  • 验证Chrome是否已安装: npx puppeteer browsers install chrome

CI/CD问题

  • 构建失败:检查TypeScript错误和lint问题
  • 测试失败:确保Chrome在CI环境中可用
  • 覆盖失败:在所有指标上保持至少70%的覆盖率

贡献

欢迎投稿!请按照以下步骤操作:

  1. 复刻仓库
  2. 创建要素分支: git checkout -b feature-name
  3. 进行更改并添加测试
  4. 确保所有检查均已通过:
   pnpm test           # Run tests
   pnpm test:coverage  # Check coverage
   pnpm lint           # Run linter
   pnpm build          # Verify build
  1. 格式代码: pnpm format
  2. 以明确的信息承诺: git commit -m "feat: add new feature"
  3. 推送到分支: git push origin feature-name
  4. 提交拉取请求

CI将自动运行所有测试、linting和覆盖率检查。

提交消息格式

  • feat: 对于新功能
  • fix: 用于修复错误
  • docs: 文档更改
  • test: 用于测试更改

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

支持

工具与能力

工具数量

2

资源数量

0

提示词数量

0

能力标签

PDF转换TypeScript本地部署网页转PDFAPI服务PuppeteerMCP集成

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

读长文档提问

把 PDF、Markdown 和笔记交给模型,按章节追问细节。

整理知识库

把零散资料归档、打标签,检索时更容易命中。

批量出摘要

提取要点,输出能直接引用的段落。

选择建议

值得选的地方

  • 只提供 2 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Node.js,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在文档知识场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
MCP Html2pdf

MCP World · 本页

2stdio有1 个2026-05-17
Cherry Studio

MCP World

0未说明未标注1 个2026-05-17
Pdf Math Translate

MCP World

0stdio有1 个2026-05-17
report generation

MCP World

0stdio有1 个2026-05-17
Anything To Notebooklm

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

MCP Html2pdf 怎么安装?

公开资料给出的安装命令是 npx puppeteer browsers install chrome,运行环境为 Node.js。装完后按客户端要求写进 MCP 配置,重启客户端生效。

MCP Html2pdf 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Node.js;保存后完全退出客户端再打开,配置才会生效。

MCP Html2pdf 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

MCP Html2pdf 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

MCP Html2pdf 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP