关于 Website to PDF/Markdown MCP Server
Website to PDF/Markdown MCP Server 可抓取网页并转换为 PDF 或 Markdown,也能遍历链接并处理多页内容。适合需要归档网页、提取文档或发现站内 URL 的用户。
主要功能
- 01网页转换为 PDF
- 02网页转换为 Markdown
- 03遍历链接并合并多页内容
- 04支持用户名和密码认证
- 05限制遍历页面数量
- 06遍历并返回发现的 URL
适用场景
- 01将网页保存为 PDF
- 02把网站内容转换为 Markdown
- 03汇总多个链接页面为文档
- 04收集网站中的页面 URL
MCP 相关
该 MCP 服务为 MCP 客户端提供网页转 PDF、转 Markdown 和遍历链接返回 URL 的功能。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://example.comclaude mcp add --transport http website-to-pdf https://example.com{"mcpServers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}在 Cursor 中打开{"servers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}在 VS Code 中打开{"mcpServers":{"website-to-pdf":{"type":"http","url":"https://example.com"}}}{"mcpServers":{"website-to-pdf":{"serverUrl":"https://example.com"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
网站转 PDF/Markdown 的 MCP 服务
此 MCP 服务可抓取网站(包括需要身份验证的网站),并将其转换为 PDF 或 Markdown 文档。它还可以遍历网页上的链接,将这些链接对应的页面纳入生成的文档,或返回发现的 URL。
功能
- 将单个网页转换为 PDF
- 将网页转换为 Markdown 格式
- 遍历网页上的链接,并将多个页面转换为单个 PDF 或 Markdown 文件
- 支持通过用户名和密码进行身份验证
- 可配置遍历链接时的最大页面数
- 遍历网站链接并返回 URL,而不进行转换
设置
- 克隆此仓库
- 安装依赖项:
npm install - 复制环境变量示例文件:
cp .env.example .env - 启动服务:
npm start
API 端点
将网站转换为 PDF
POST /api/convert
请求正文:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"traverseLinks": true,
"maxPages": 10
}
参数:
url:(必需)要转换为 PDF 的 URLusername:(可选)用于身份验证的用户名password:(可选)用于身份验证的密码traverseLinks:(可选)是否遍历页面上的链接(默认值:false)maxPages:(可选)遍历链接时要处理的最大页面数(默认值:10)
响应:
响应将返回 PDF 文档,并附带适当的内容类型标头:
Content-Type: application/pdf
Content-Disposition: attachment; filename="example_com.pdf"
PDF 二进制内容会直接在响应正文中返回。
将网站转换为 Markdown
POST /api/to-markdown
请求正文:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"traverseLinks": true,
"maxPages": 10
}
参数:
url:(必需)要转换为 Markdown 的 URLusername:(可选)用于身份验证的用户名password:(可选)用于身份验证的密码traverseLinks:(可选)是否遍历页面上的链接(默认值:false)maxPages:(可选)遍历链接时要处理的最大页面数(默认值:10)
响应:
响应将返回 Markdown 文档,并附带适当的内容类型标头:
Content-Type: text/markdown
Content-Disposition: attachment; filename="example_com.md"
Markdown 内容会直接在响应正文中返回。
遍历网站并返回 URL
POST /api/traverse
请求正文:
{
"url": "https://example.com",
"username": "optional-username",
"password": "optional-password",
"maxPages": 10
}
参数:
url:(必需)开始遍历的 URLusername:(可选)用于身份验证的用户名password:(可选)用于身份验证的密码maxPages:(可选)要遍历的最大页面数(默认值:10)
响应:
{
"success": true,
"message": "Website traversed successfully (found 8 URLs)",
"urls": [
"https://example.com",
"https://example.com/page1",
"https://example.com/page2",
...
]
}
自定义
你可以通过修改 src/index.js 中的相关函数,自定义 PDF 和 Markdown 的生成方式:
PDF 生成
websiteToPdf 函数支持:
- 自定义页面格式
- 背景渲染
- 页面边距
- 以及 Puppeteer 选项提供的更多功能
Markdown 生成
websiteToMarkdown 函数使用 Turndown 库,该库提供:
- 自定义转换规则
- 保留特定 HTML 元素的功能
- 处理代码块、标题和列表的选项
身份验证处理
默认实现假设使用简单的用户名/密码表单。你可能需要根据目标网站自定义身份验证逻辑。
用作 Claude MCP
此服务配置为 Claude MCP(Managed Claude Plugin),可直接与 Claude 配合使用。使用方法如下:
自托管设置
- 将此服务托管在 Heroku、Vercel 等平台,或托管在你自己的基础设施上
- 确保服务可通过 HTTPS 公开访问
- 在仓库中添加一个 icon.png 文件
在 Claude 中安装
- 在浏览器中打开 Claude,并前往 Plugins 部分
- 点击“Create a plugin”
- 输入托管 MCP 服务的 URL
- Claude 将发现 API 端点并创建插件界面
- 保存并启用插件
在 Claude 中使用
安装完成后,你可以在与 Claude 的对话中直接使用 MCP:
- “将 example.com 转换为 PDF”
- “将 example.com 转换为 Markdown”
- “获取 example.com 上的所有 URL”
- “使用用户名 'myuser' 和密码 'mypass' 转换需要身份验证的网站”
该插件提供三个主要功能:
- 将网站转换为 PDF
- 将网站转换为 Markdown
- 遍历网站并返回发现的 URL
本地开发
进行本地开发时,你可以使用 ngrok 等工具将本地服务暴露到互联网:
npm start
# In a separate terminal
ngrok http 3000
然后,在 Claude 中设置 MCP 时使用 ngrok URL。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。