mcpField
W
Website to PDF/Markdown MCP Server

Website to PDF/Markdown MCP Server

远程服务
github.com/ldangelo文件与存储379 周前更新
代码仓库

关于 Website to PDF/Markdown MCP Server

Website to PDF/Markdown MCP Server 可抓取网页并转换为 PDF 或 Markdown,也能遍历链接并处理多页内容。适合需要归档网页、提取文档或发现站内 URL 的用户。

主要功能

  1. 01网页转换为 PDF
  2. 02网页转换为 Markdown
  3. 03遍历链接并合并多页内容
  4. 04支持用户名和密码认证
  5. 05限制遍历页面数量
  6. 06遍历并返回发现的 URL

适用场景

  1. 01将网页保存为 PDF
  2. 02把网站内容转换为 Markdown
  3. 03汇总多个链接页面为文档
  4. 04收集网站中的页面 URL

MCP 相关

该 MCP 服务为 MCP 客户端提供网页转 PDF、转 Markdown 和遍历链接返回 URL 的功能。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://example.com
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

网站转 PDF/Markdown 的 MCP 服务

此 MCP 服务可抓取网站(包括需要身份验证的网站),并将其转换为 PDF 或 Markdown 文档。它还可以遍历网页上的链接,将这些链接对应的页面纳入生成的文档,或返回发现的 URL。

功能

  • 将单个网页转换为 PDF
  • 将网页转换为 Markdown 格式
  • 遍历网页上的链接,并将多个页面转换为单个 PDF 或 Markdown 文件
  • 支持通过用户名和密码进行身份验证
  • 可配置遍历链接时的最大页面数
  • 遍历网站链接并返回 URL,而不进行转换

设置

  1. 克隆此仓库
  2. 安装依赖项:
    npm install
    
  3. 复制环境变量示例文件:
    cp .env.example .env
    
  4. 启动服务:
    npm start
    

API 端点

将网站转换为 PDF
POST /api/convert

请求正文:

{
  "url": "https://example.com",
  "username": "optional-username",
  "password": "optional-password",
  "traverseLinks": true,
  "maxPages": 10
}

参数:

  • url:(必需)要转换为 PDF 的 URL
  • username:(可选)用于身份验证的用户名
  • 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 的 URL
  • username:(可选)用于身份验证的用户名
  • 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:(必需)开始遍历的 URL
  • username:(可选)用于身份验证的用户名
  • 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 配合使用。使用方法如下:

自托管设置
  1. 将此服务托管在 Heroku、Vercel 等平台,或托管在你自己的基础设施上
  2. 确保服务可通过 HTTPS 公开访问
  3. 在仓库中添加一个 icon.png 文件
在 Claude 中安装
  1. 在浏览器中打开 Claude,并前往 Plugins 部分
  2. 点击“Create a plugin”
  3. 输入托管 MCP 服务的 URL
  4. Claude 将发现 API 端点并创建插件界面
  5. 保存并启用插件
在 Claude 中使用

安装完成后,你可以在与 Claude 的对话中直接使用 MCP:

  • “将 example.com 转换为 PDF”
  • “将 example.com 转换为 Markdown”
  • “获取 example.com 上的所有 URL”
  • “使用用户名 'myuser' 和密码 'mypass' 转换需要身份验证的网站”

该插件提供三个主要功能:

  1. 将网站转换为 PDF
  2. 将网站转换为 Markdown
  3. 遍历网站并返回发现的 URL
本地开发

进行本地开发时,你可以使用 ngrok 等工具将本地服务暴露到互联网:

npm start
# In a separate terminal
ngrok http 3000

然后,在 Claude 中设置 MCP 时使用 ngrok URL。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。