你有没有遇到过这样的情况:在网上看到一篇很好的技术文章,想把它保存下来作为AI对话的上下文,结果复制粘贴后格式全乱,代码块没了,图片链接也丢了。或者你想把整个文档网站的页面都转换成Markdown格式,方便离线阅读或者喂给大模型处理。手动去转换或者写爬虫都太麻烦了。
现在有一个工具可以一键解决这个问题。markdown-downloader是一个MCP服务器,它利用Jina.ai的服务,能够把任何网页瞬间转换成干净的Markdown格式,并直接保存到你的本地目录。配置好之后,你只需要在AI助手里输入一个网址,它就会自动下载并保存好格式化的文档,省去了手动清理网页噪音的麻烦。
项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | markdown-downloader |
| GitHub地址 | https://github.com/dazeb/markdown-downloader |
| 项目描述 | A MCP Server that will download any webpage as markdown in an instant. Download docs straight to your IDE for AI context. Powered by Jina.ai |
| 作者 | dazeb |
| 开源协议 | MIT License |
| 开源状态 | 公开状态 |
| Languages | JavaScript 96.4%, Dockerfile 3.6% |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-03-28 |
一、项目介绍
markdown-downloader是一个基于MCP(Model Context Protocol)的服务器,它的核心功能非常纯粹:把任意网页转换成Markdown格式的纯文本文件并保存到本地。这个项目背后依赖于Jina.ai提供的r.jina.ai服务,该服务能够智能地提取网页的主体内容,去除广告、导航栏、页脚等干扰元素,并保留标题、段落、代码块和图片链接等重要结构。
这个MCP服务器提供了几个实用的工具接口:
下载Markdown文件(download_markdown):这是最核心的功能。你只需要提供一个网页URL,它就会自动调用Jina.ai的服务进行转换,并生成一个带时间戳的Markdown文件保存到指定目录。
设置下载目录(set_download_directory):你可以自定义文件保存的位置。这个设置会被持久化存储,下次使用时无需重新配置。
列出已下载文件(list_downloaded_files):查看你已经通过这个工具下载了哪些Markdown文件。
获取当前下载目录(get_download_directory):确认当前文件保存的位置。
值得一提的是,这个项目支持通过Smithery一键安装到Claude Desktop,也可以手动配置到Cline、Roo-Cline等支持MCP协议的IDE或客户端中。
二、核心优势
一键转换,零噪音内容
这是它最吸引人的地方。传统的复制粘贴会带进来大量的格式代码、侧边栏文字和脚本片段。而markdown-downloader通过Jina.ai的智能解析,只保留文章的核心内容,而且输出的是结构清晰的Markdown,代码块、列表、引用格式都能保留。
无缝集成AI工作流
这个工具本来就是为AI场景设计的。你可以直接在Claude Desktop或者Cline这样的AI编码助手中使用自然语言来触发下载。比如直接说“帮我把这篇React文档下载成Markdown”,AI就会自动调用工具完成操作。下载下来的Markdown文件可以直接作为AI对话的上下文,或者用于训练自己的模型。
跨平台与配置持久化
无论是在Windows、macOS还是Linux上,都能以相同的方式使用。配置好的下载目录会保存在系统的用户配置目录中(比如macOS的~/.config/markdown-downloader/config.json),不会因为重启MCP服务器而丢失。
自动生成有意义的文件名
下载的文件名不是乱码,而是基于原始网址自动生成的,并且附加了当天的日期。例如从https://example.com/blog-post下载的文件会被命名为example.com-blog-post-2026-04-26.md,一目了然。
三、适用场景
为AI模型准备训练素材
如果你在微调一个LLM或者做RAG(检索增强生成),需要大量的高质量文本数据。你可以批量下载相关的技术博客、文档页面或者新闻文章,这些清理过的Markdown文件直接就是很好的语料。
离线阅读与知识管理
把喜欢的在线文章保存到本地,即使没有网络也能阅读。而且Markdown格式兼容几乎所有笔记软件(Obsidian、Notion、Typora等)。你可以建立自己的知识库,把有价值的网页都“永久”保存下来。
软件开发中的文档集成
在开发AI应用或者编写自动化脚本时,可能需要动态获取某个网页的内容。你可以通过命令行或脚本调用这个MCP服务器的功能,把远程文档实时下载下来进行解析。
辅助代码审查与学习
当你在Cline这样的AI编程助手中开发时,可以随时下载某个框架的最新文档,然后让AI基于这份本地文档来解答你的问题。这样做比让AI依赖它过时的训练数据要可靠得多。
四、安装教程
前置准备
首先确保你的系统已经安装了Node.js,版本要求是16或更高。可以通过在终端输入node -v来检查。如果没有安装,可以去Node.js官网下载LTS版本。
你需要有一个支持MCP协议的客户端。这篇教程以配置到Cline(VS Code的AI插件)为例,也适用于Claude Desktop、Roo-Cline等。
方法一:通过Smithery一键安装(推荐用于Claude Desktop)
如果你使用的是Claude Desktop,这是最简单的方式。打开终端,直接运行:
npx -y @smithery/cli install @dazeb/markdown-downloader --client claude这个命令会自动完成下载、依赖安装和配置注入。完成后重启Claude Desktop就可以使用了。
方法二:手动安装并配置到Cline
第一步,克隆项目到本地:
git clone https://github.com/dazeb/markdown-downloader.git
cd markdown-downloader第二步,安装依赖并构建:
npm install
npm run build第三步,找到你的MCP配置文件。对于Cline,这个文件通常在用户目录下。在VS Code中,你可以通过命令面板(Cmd+Shift+P或Ctrl+Shift+P)输入“Cline: Open MCP Settings”来快速打开。
第四步,在配置文件中添加服务器条目。注意根据你的操作系统,路径写法有区别。
对于macOS或Linux:
{
"mcpServers": {
"markdown-downloader": {
"command": "node",
"args": [
"/path/to/your/markdown-downloader/build/index.js"
],
"disabled": false,
"alwaysAllow": [
"download_markdown",
"set_download_directory"
]
}
}
}请务必将/path/to/your/替换成你实际的克隆路径。
对于Windows:
{
"mcpServers": {
"markdown-downloader": {
"command": "node",
"args": [
"C:\\Users\\你的用户名\\Documents\\markdown-downloader\\build\\index.js"
],
"disabled": false,
"alwaysAllow": [
"download_markdown",
"set_download_directory"
]
}
}
}第五步,保存配置文件并重启你的IDE或AI客户端。
五、使用示例
配置完成后,你就可以在AI助手中使用自然语言来操作了。以下是一些典型的交互场景。
设置下载目录
你可以先告诉AI你想把文件存在哪里。例如在Cline中输入:
“Set my markdown download directory to ~/Documents/AI-Articles”
AI会调用set_download_directory工具,验证这个路径是否可写,然后保存配置。以后所有的下载都会默认存到这个文件夹。
下载一篇网页文章
这是最常用的操作。比如你看到一篇关于Next.js 15的新特性介绍,想把它保存下来。直接输入:
“Download the webpage at https://nextjs.org/blog/next-15 as markdown”
AI会调用download_markdown工具,几秒钟后就会返回类似下面的信息:
Successfully downloaded https://nextjs.org/blog/next-15 as markdown
Saved to: /Users/yourname/Documents/AI-Articles/nextjs.org-blog-next-15-2026-04-26.md
File size: 24.5 KB列出所有已下载的文件
如果你忘记之前保存过哪些文章,可以问:
“Show me all the markdown files I have downloaded”
AI会调用list_downloaded_files工具,列出目录中所有通过本工具下载的文件名和修改时间。
组合使用:下载并总结
更强大的用法是把下载功能和其他AI能力结合起来。你可以在同一个会话中这样说:
“Download the React 19 documentation page from https://react.dev/blog/2024/04/25/react-19, then summarize the key new features from the saved file.”
AI会先下载网页,然后读取刚刚保存的Markdown文件,并基于其内容生成一份要点总结。这就实现了从网页到结构化知识的即时转化。
批量下载多个页面
虽然这个工具本身一次只下载一个URL,但你可以在一个对话中连续发出多个指令,AI会依次执行。例如:
“Please download the markdown for the following three pages: [URL1], [URL2], [URL3]”
一个高质量的提示词会引导AI逐个调用工具,完成批量操作。
六、常见问题
下载失败或超时
首先确认你的网络可以正常访问外网,因为Jina.ai服务可能需要境外网络环境。其次检查目标网址是否真的可以公开访问(有些网站有反爬机制)。如果是个别复杂网站解析失败,可以尝试在网址后面加上?format=markdown参数。
保存的文件内容不完整
Jina.ai的解析服务对于某些动态渲染的页面(比如React驱动的单页应用)可能抓取不到完整内容。这种情况下,你可以尝试使用该页面的静态版本URL,或者寻找该网站的打印机友好版页面(通常在URL里加上?print=true)。另外,一些需要登录才能查看的内容也无法被下载。
如何更改下载目录
你可以随时通过对话来修改。直接告诉AI“Change my download directory to a new path”即可。也可以手动编辑配置文件(macOS位于~/.config/markdown-downloader/config.json,Windows位于%APPDATA%\markdown-downloader\config.json)。
文件名不是中文或者乱码
为了兼容性,脚本会把原始URL中的非ASCII字符进行转义处理。如果你想要中文文件名,可以在下载后手动重命名,或者修改源代码中的sanitizeUrl函数逻辑。
能否下载整个网站
这个工具的设计目标是单页面下载,不是网站爬虫。如果你有整站镜像的需求,建议配合wget或httrack等专业工具使用,然后再用这个工具批量处理镜像下来的HTML文件。
七、总结
markdown-downloader精准地解决了一个小问题,但解决得很好。它在“网页内容获取”和“AI可处理格式”之间架起了一座轻便的桥梁。对于那些经常需要把在线文档、博客文章、教程页面纳入自己工作流的开发者、研究人员或者AI爱好者来说,这个小工具能实打实地提高效率。
这个项目还有一个值得关注的价值:它是MCP生态中一个很好的实践范例。它展示了如何构建一个功能单一但实用的MCP服务器,并通过工具接口暴露给AI客户端。如果你正在学习MCP开发,这个项目的源代码(虽然主要是JavaScript)结构清晰,值得借鉴。
最后有一点小建议:作者可以考虑增加对本地HTML文件的支持,以及允许用户自定义Jina.ai服务的参数(比如指定输出格式)。不过对于当前的版本来说,它已经完成了一个干净利落的职责:把网页变成Markdown,存好备查。
The download speed is impressive. Usually takes less than 2 seconds per page.
Would love to see an option to download as JSON as well. But markdown is already very flexible.
This is a game changer for RAG applications. I feed these markdown files directly into my vector DB.
Does it work with localhost URLs? I tried `http://localhost:3000` and got a connection error.
The tutorial's troubleshooting section saved me. I forgot I was behind a corporate proxy.