你有没有遇到过这样的情况:在网上看到一篇很好的技术文章,想把它保存下来作为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
开源状态公开状态
LanguagesJavaScript 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函数逻辑。

能否下载整个网站

这个工具的设计目标是单页面下载,不是网站爬虫。如果你有整站镜像的需求,建议配合wgethttrack等专业工具使用,然后再用这个工具批量处理镜像下来的HTML文件。

七、总结

markdown-downloader精准地解决了一个小问题,但解决得很好。它在“网页内容获取”和“AI可处理格式”之间架起了一座轻便的桥梁。对于那些经常需要把在线文档、博客文章、教程页面纳入自己工作流的开发者、研究人员或者AI爱好者来说,这个小工具能实打实地提高效率。

这个项目还有一个值得关注的价值:它是MCP生态中一个很好的实践范例。它展示了如何构建一个功能单一但实用的MCP服务器,并通过工具接口暴露给AI客户端。如果你正在学习MCP开发,这个项目的源代码(虽然主要是JavaScript)结构清晰,值得借鉴。

最后有一点小建议:作者可以考虑增加对本地HTML文件的支持,以及允许用户自定义Jina.ai服务的参数(比如指定输出格式)。不过对于当前的版本来说,它已经完成了一个干净利落的职责:把网页变成Markdown,存好备查。

标签: 内容抓取

已有 33 条评论

    1. AmandaGreen AmandaGreen

      I appreciate that the tool validates the download directory before writing. No silent failures.

    2. MarkAdams MarkAdams

      The 96% JavaScript codebase is easy to hack on. I added a custom user agent string.

    3. LauraBaker LauraBaker

      For Chinese users, the service might be slow. Consider setting up a mirror or using a VPN.

    4. EricNelson EricNelson

      The comparison with traditional copy-paste is night and day. This preserves structure beautifully.

    5. DeborahMitchell DeborahMitchell

      This is my first MCP server and the article held my hand perfectly. Now I understand the protocol.