mcp-web-scraper

mcp-web-scraper

A comprehensive web scraping MCP server with 26 tools for fetching, parsing, extracting, and assisting with web content, returning Markdown-formatted results.

Category
访问服务器

README

MCP网页抓取服务器

一个基于FastMCP框架的功能全面的网页抓取MCP服务器,提供26个工具,覆盖网页获取、HTML解析、数据提取和辅助工具四大模块。所有工具返回Markdown格式字符串,可直接用于MCP客户端集成。

特性

  • 26个MCP工具 - 覆盖网页抓取全流程,从获取到解析到提取
  • Markdown输出 - 所有工具返回格式化的Markdown字符串,便于阅读和使用
  • 模块化设计 - 按功能拆分为4个独立模块,结构清晰易于维护
  • FastMCP框架 - 基于官方MCP Python SDK的FastMCP,开箱即用
  • 错误处理 - 每个工具内置完善的异常捕获和错误提示
  • 自动重定向 - 网页获取工具自动跟随HTTP重定向
  • 默认浏览器头 - 自带模拟浏览器的请求头,减少被反爬拦截
  • 流式下载 - 文件下载使用流式写入,支持大文件
  • HTML转Markdown - 内置完整的HTML到Markdown转换器
  • 智能内容提取 - 新闻文章和商品信息提取使用多种策略自动识别

安装

前置要求

  • Python 3.10+
  • pip 包管理器

安装步骤

# 克隆项目
git clone https://github.com/yourname/mcp-web-scraper.git
cd mcp-web-scraper

# 安装依赖
pip install -r requirements.txt

依赖列表

依赖 版本要求 用途
mcp >=1.0.0 MCP协议服务器框架
requests - HTTP请求库
beautifulsoup4 - HTML解析库
lxml - XML/HTML解析(XPath支持)
urllib3 - URL处理工具

使用方法

直接运行

python server.py

服务器将以stdio传输模式启动,等待MCP客户端连接。

配置MCP客户端

在MCP客户端配置文件中添加:

{
  "mcpServers": {
    "web-scraper": {
      "command": "python",
      "args": ["/path/to/mcp-web-scraper/server.py"]
    }
  }
}

使用示例

获取网页内容

# 工具: fetch_webpage
# 参数: url="https://example.com", timeout=30
# 返回: Markdown格式的HTML内容和响应信息

解析HTML表格

# 工具: parse_html_tables
# 参数: html="<table><tr><th>名称</th><th>价格</th></tr>..."
# 返回: Markdown表格格式的数据

CSS选择器提取

# 工具: extract_by_css_selector
# 参数: html="...", selector="div.product h2.title"
# 返回: 匹配元素的内容和属性

新闻文章提取

# 工具: extract_news_article
# 参数: html="..."
# 返回: 标题、作者、发布时间、正文等

HTML转Markdown

# 工具: html_to_markdown
# 参数: html="<h1>标题</h1><p>段落</p>..."
# 返回: Markdown格式文本

工具列表

网页获取模块(6个工具)

工具名 说明
fetch_webpage 获取网页HTML内容,返回状态码、编码、响应头和HTML正文
fetch_json_api 获取JSON API数据,支持查询参数,自动解析JSON响应
fetch_with_headers 使用自定义请求头获取网页,支持Cookie和认证头
download_file 下载文件到本地,支持流式下载大文件
check_website_status 检查网站状态码和响应信息,适用于可用性监控
fetch_with_pagination 分页获取数据,自动构建分页URL并依次获取

HTML解析模块(8个工具)

工具名 说明
parse_html_tables 解析HTML中的所有表格,转换为Markdown表格
extract_links 提取所有<a>标签的链接文本、URL、title和rel
extract_images 提取所有<img>标签的src、alt、宽高等信息
extract_text 提取纯文本内容,自动去除脚本和样式
extract_meta_tags 提取所有meta标签,包括charset、viewport、OG等
parse_html_structure 分析HTML的DOM结构,统计标签数量,展示层级树
clean_html 清洗HTML,移除脚本、样式、注释等非内容元素
html_to_markdown 将HTML转换为Markdown格式,支持标题、列表、表格等

数据提取模块(8个工具)

工具名 说明
extract_by_css_selector 使用CSS选择器提取元素,支持属性获取
extract_by_xpath 使用XPath表达式提取元素或属性值
extract_table_data 将指定表格数据提取为CSV格式
extract_list_data 提取HTML列表(ul/ol)的数据
extract_form_data 提取表单结构,包括input、textarea、select等字段
extract_news_article 智能提取新闻文章的标题、正文、作者、时间
extract_product_info 提取商品名称、价格、描述、图片、规格等信息
extract_social_metadata 提取Open Graph、Twitter Card、JSON-LD等社交元数据

辅助工具模块(4个工具)

工具名 说明
validate_url 验证URL格式是否合法,解析URL各组成部分
encode_decode_url 对URL进行百分号编码或解码
parse_query_params 解析URL中的查询参数,以表格展示
rate_limit_wait 请求间隔控制,避免触发反爬机制

技术栈

技术 说明
FastMCP MCP官方Python SDK提供的高层API,简化MCP服务器开发
Requests Python最流行的HTTP库,用于网页获取和文件下载
BeautifulSoup4 强大的HTML/XML解析库,用于DOM操作和内容提取
lxml 高性能的XML/HTML解析库,提供XPath支持
urllib3 URL处理工具库,提供URL编码解码支持

项目结构

mcp-web-scraper/
├── server.py          # 主入口,创建FastMCP实例并注册所有工具
├── fetch_tools.py     # 网页获取工具模块(6个工具)
├── parse_tools.py     # HTML解析工具模块(8个工具)
├── extract_tools.py   # 数据提取工具模块(8个工具)
├── utils.py           # 辅助工具模块(4个工具 + 内部函数)
├── requirements.txt   # Python依赖列表
├── README.md          # 项目文档
└── SKILL.md           # SkillHub技能描述

许可证

MIT License

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选