关于 distill-mcp
distill-mcp 是面向 Agent 的开源 MCP 服务,可将网页或提供的 HTML 转为整洁的 Markdown,并返回页面元数据。它会遵守 robots.txt 和 AI 退出声明。
主要功能
- 01提取网页主要内容为 Markdown
- 02转换已提供的 HTML,不抓取网页
- 03返回标题、作者、日期和语言
- 04说明访问限制及原因
适用场景
- 01向 Agent 提供易读的网页内容
- 02将现有 HTML 转为 Markdown
MCP 相关
向 MCP 客户端提供 `fetch_markdown` 和 `html_to_markdown` 工具。服务通过 stdio 在本地运行,并调用 Distill API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx bytestay-distill-mcpRAPIDAPI_KEY密钥Your RapidAPI keyAPI_MARKET_KEY密钥Your api.market key, used when RAPIDAPI_KEY is not setBYTESTAY_MARKETPLACErapidapi or apimarket, when both keys are set (the old name HFL_MARKETPLACE still works)本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Distill MCP 服务
为你的 AI Agent 从任意网页提取清晰的 Markdown:仅保留主要内容,不含导航、广告或脚本。Distill 遵守 robots.txt 和 AI 退出机制。
此服务开源(MIT)。它调用付费的 Distill API,该 API 提供免费套餐。
- 你需要使用自己的密钥,可从 RapidAPI 或 api.market 获取。
- 每次工具调用都会消耗套餐中的一次请求。
- 免费 Basic 套餐每月提供 15 次请求,设有硬性限制,因此不会产生额外账单。
1. 获取密钥
| 平台 | |
|---|---|
| RapidAPI | 套餐 |
| api.market | 商店 |
2. 将服务添加到 MCP 客户端
此服务通过 uv 在本地使用 stdio 运行。将密钥放入其环境变量中。
JSON 配置(Claude Desktop、Cursor、VS Code 和大多数客户端):
{
"mcpServers": {
"distill": {
"command": "uvx",
"args": ["--from", "bytestay-distill-mcp", "distill-mcp"],
"env": { "RAPIDAPI_KEY": "your-rapidapi-key" }
}
}
}
Claude Code:
claude mcp add distill --env RAPIDAPI_KEY=your-rapidapi-key -- uvx --from bytestay-distill-mcp distill-mcp
环境变量
| 变量 | 含义 |
|---|---|
RAPIDAPI_KEY | 你的 RapidAPI 密钥 |
API_MARKET_KEY | 你的 api.market 密钥;当未设置 RAPIDAPI_KEY 时使用 |
HFL_MARKETPLACE | 两个密钥都已设置时,使用 rapidapi 或 apimarket |
未设置密钥时,服务仍会启动。首次调用工具时会说明如何获取密钥。
也已在 Glama 上列出:
3. 工具
| 工具 | 功能 |
|---|---|
fetch_markdown(url, max_chars=20000, include_links=True, include_images=False, include_tables=True) | 获取网页并以 Markdown 返回其主要内容,包括标题、作者、日期和语言 |
html_to_markdown(html, base_url=None, …) | 对你已有的 HTML 执行相同处理;不会获取任何内容 |
当网站拒绝访问(robots.txt、noai 指令、机器人防护)时,status 会说明原因,note 会提醒 Agent 尊重这一限制。不要通过其他方式获取网页:条款禁止这样做。
成功时,status 为 ok。其他值(robots_txt、opted_out、blocked、not_html、http_error、unreachable)会说明为何没有内容。
每个工具都会返回 API 的 JSON 响应。
- 如果平台提供此信息,响应中会添加
quota_remaining:即本月套餐剩余的请求次数。 - 错误会用通俗语言说明,并告知下一步该怎么做:
- 密钥被拒绝,并附上订阅链接;
- 已达到配额,并附上套餐信息;
- API 无法处理的输入,并说明 API 给出的原因。
隐私
- 只有在工具收到本地文件路径时,才会读取该文件。文件会为此次请求发送到 API。
- API 会在内存中处理输入,不会存储。请参阅隐私政策。
- 你的密钥只会发送到你选择的平台。
限制
html最大为 5 MB。- 仅支持 HTML 页面;PDF 和其他文件会被拒绝(文档请使用 Unfold)。
- 此服务需要 Python 3.10+(uv 会为你安装)。
开发
uv venv && uv pip install -e ".[dev]"
.venv/bin/pytest # unit tests, no network; 100% coverage required
.venv/bin/ruff check src tests scripts
scripts/e2e_stdio.py distill 会像客户端一样通过 stdio 运行服务,并使用真实 API 调用其工具。此操作需要 RAPIDAPI_KEY 或 API_MARKET_KEY。
许可
MIT。Distill 本身是由 ByteStay 运营的付费 API,并提供免费套餐。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。