提取网页内容并将其转换为简洁、适合LLM处理的Markdown格式,移除非必要元素同时保留关键元数据。
概述
MCP 服务器可读性解析器(Python / FastMCP)
致谢/参考
本项目基于 emzimmer 原创的 server-moz-readability 实现。(原始 README 文档请参阅 original README.md)
该 Python 实现将原始概念适配为基于 Python 的 MCP,使用 FastMCP 运行
Mozilla 可读性解析器 MCP 服务器
一个基于 模型上下文协议 (MCP) 服务器的 Python 实现,用于提取网页内容并转换为简洁、优化 LLM 处理的 Markdown 格式。
目录
功能特性
- 移除广告、导航栏、页脚等非核心内容
- 将纯净 HTML 转换为格式良好的 Markdown
- 优雅的错误处理机制
- 针对 LLM 处理优化
- 轻量高效
为何不直接抓取?
与简单抓取请求不同,本服务器:
- 使用 Readability 算法精准提取相关内容
- 消除广告、弹窗和导航菜单等干扰元素
- 通过移除冗余 HTML/CSS 降低 token 消耗
- 提供标准化的 Markdown 格式以优化 LLM 处理
- 能处理含动态内容的复杂网页
安装指南
- 克隆代码库:
bash
git clone https://github.com/jmh108/MCP-server-readability-python.git
cd MCP-server-readability-python
- 创建并激活虚拟环境:
bash
python -m venv venv
source venv/bin/activate # Windows系统使用: venv\Scripts\activate
- 安装依赖项:
bash
pip install -r requirements.txt
快速开始
- 启动服务器:
bash
fastmcp run server.py
- 示例请求:
bash
curl -X POST http://localhost:8000/tools/extract_content \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
工具参考
extract_content
抓取网页内容并转换为纯净 Markdown。
参数:
json
{
"url": {
"type": "string",
"description": "待解析的网站URL",
"required": true
}
}
返回:
json
{
"content": "Markdown内容..."
}
MCP 服务器配置
在 MCP 配置文件中添加以下内容进行服务器配置:
json
{
"mcpServers": {
"readability": {
"command": "fastmcp",
"args": ["run", "server.py"],
"env": {}
}
}
}
随后可通过 MCP 协议启动服务器,并通过 parse
工具进行访问。
依赖项
- readability-lxml - 内容提取
- html2text - HTML 转 Markdown
- beautifulsoup4 - DOM 解析
- requests - HTTP 请求
许可协议
MIT 许可证 - 详见 LICENSE 文件。