网站到PDF/Markdown MCP服务器
此MCP服务器获取网站(包括那些经过身份验证的网站)并将其转换为PDF或Markdown文档。它还可以遍历网页上的链接,并将其包含在生成的文档中,或返回发现的URL。
特性
- 将单个网页转换为PDF
- 将网页转换为Markdown格式
- 遍历网页上的链接,并将多个页面转换为单个PDF或Markdown文件
- 支持通过用户名和密码进行身份验证
- 可配置的链接遍历最大页面限制
- 遍历网站链接并返回URL,无需转换
设置
- 克隆此存储库
- 安装依赖项:
npm install- 复制示例环境文件:
cp .env.example .env- 启动服务器:
npm startAPI终点
将网站转换为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",
...
]
}定制
您可以通过修改中的相关功能来定制PDF和Markdown的生成 src/index.js:
PDF生成
这 websiteToPdf 功能支持:
- 自定义页面格式
- 背景渲染
- 边距
- 更多通过Puppeteer的选择
Markdown生成
这 websiteToMarkdown 函数使用Turndown库,该库提供:
- 自定义转换规则
- 能够保留某些HTML元素
- 处理代码块、标题和列表的选项
身份验证处理
默认实现采用简单的用户名/密码形式。您可能需要根据所针对的特定网站自定义身份验证逻辑。
使用Claude MCP
此服务器配置为可直接与Claude一起使用的Claude MCP(托管Claude插件)。要使用它:
自助主机设置
- 在Heroku、Vercel或您自己的基础设施等平台上托管此服务器
- 确保服务器可通过HTTPS公开访问
- 将icon.png文件添加到您的存储库
在Claude中安装
- 在浏览器中打开Claude并导航到插件部分
- 点击“创建插件”
- 输入托管MCP服务器的URL
- Claude将发现API端点并创建插件接口
- 保存并启用插件
Claude中的用法
安装后,您可以在与Claude的对话中直接使用MCP:
- “将example.com转换为PDF”
- “将example.com转换为Markdown”
- “从example.com获取所有URL”
- “使用用户名“myuser”和密码“mypass”通过身份验证转换网站”
该插件提供三个主要功能:
- 将网站转换为PDF
- 将网站转换为Markdown
- 浏览网站并返回发现的网址
地方发展
对于本地开发,您可以使用ngrok等工具将本地服务器暴露给互联网:
npm start
# In a separate terminal
ngrok http 3000然后在Claude中设置MCP时使用ngrok URL。

