返回市场
媒体爬虫MCP服务

媒体爬虫MCP服务

作者:mcp-service21 星标更新:2025-11-13

项目介绍

技术文档摘要

MediaCrawler MCP 服务

MCP 服务使 AI 能够原生使用社交媒体数据。爬虫部分参考了 MediaCrawler,升级其 CLI 爬虫至 MCP 标准工具,允许 Claude/ChatGPT 直接调用,配置一次即可长期使用。

index .png

<p> <img alt="Python" src="https://img.shields.io/badge/Python-3.8%2B-3776AB?logo=python&logoColor=white" /> <img alt="Playwright" src="https://img.shields.io/badge/Playwright-Enabled-2EAD33?logo=playwright&logoColor=white" /> <img alt="MCP" src="https://img.shields.io/badge/MCP-Tools-6E56CF" /> <img alt="Redis" src="https://img.shields.io/badge/Redis-Cache-D82C20?logo=redis&logoColor=white" /> <img alt="Status" src="https://img.shields.io/badge/Status-Alpha-F59E0B" /> </p>

目录

项目简介

MediaCrawler MCP 服务是一个个人数据采集工具包,它使用 MCP(模型上下文协议)将社交媒体公开信息转化为可以直接被 AI 助手调用的标准工具。核心能力包括“外部化登录管理”、“任务级别配置隔离”、“浏览器上下文复用”以及“结构化数据输出”。

该项目目前专注于“高质量内容的爬取与自动化”,优先考虑稳定性和质量:

  • 优先支持高质量生态:Bilibili、小红书,其次是抖音、微博、知乎、贴吧等。
  • 强调可持续风控策略和精准捕获,以最小化请求规模。
  • 输出扁平化的结构供 AI 分析,避免冗余嵌套和噪声字段。

关注方向(高质量内容):

  • Bilibili:视频内容及互动数据,适合视频分析和社会行为分析。
  • 小红书:电商购物指南、产品推荐及品牌分析。
  • 抖音:短视频及用户行为分析,适合营销效果评估。
  • 微博:舆论分析及热点追踪。
  • 知乎:知识管理和市场调研,在专业领域分析中具有高价值。

关键优势:

  • 升级 UI 至 FastMCP UI,迁移所有管理页面(/dashboard、/login、/config、/observer),并稳定运行。
  • 重构爬虫配置组装:去除冗余封装,汇聚到功能构建和更清晰的分层。
  • 小红书更改其 DOM 定位策略,降低风险敏感性,实现更稳定的爬取(逐步改进)。
  • Bilibili 登录和爬取逻辑优化,通过测试,稳定运行;移除一些服务层选项封装。
  • 更改路由以直接使用 FastMCP 路由和蓝图,统一注册和调试体验。

同时,数据持久化目录和显示统一在平台代码下:

  • 统一目录:bilixhs,不再使用历史目录名(如 bilibili)。
  • Bilibili 媒体下载路径:data/bili/videos
  • “数据持久化概览”的统计同时包含 json/csvvideos 子目录体积。

bili-detail.png

从脚本到标准:可复用的 MCP 工具

Media crawler mcp 服务打破了传统的临时脚本模式,转变为可复用的标准 MCP 工具。支持跨多平台的数据捕获,模块化设计使得扩展和维护更加高效,无需重复编写脚本。

登录完全外部化:可视化界面+二维码/Cookie 双模式,持久状态

采用外部登录机制,提供可视化界面和二维码/Cookie 双模式,使身份验证更加灵活。支持持久登录状态,避免频繁登录操作,提高数据捕获的稳定性和便利性。

真正的工程化:层级解耦、Pydantic 模型、状态缓存及风控友好

采用分层解耦架构和 Pydantic 模型确保高效的数据验证和一致性。状态缓存和风控设计使系统更加稳定,减少负载,提高捕获效率。

文本格式友好:适合 AI 分析,不返回冗余嵌套数据

content_nice.png

与其他类似的 MCP 相比,Media crawler mcp 服务捕获的数据简洁且无冗余,特别适合 AI 分析。避免复杂的嵌套数据让 AI 模型更容易和高效地处理数据。

特性media-crawler-mcp-servicexiaohongshu-mcp (GitHub)MediaCrawlerBowenwin MCP Server
核心定位✅ 多平台爬虫+MCP发布服务✅ 小红书专用MCP❌ CLI爬虫脚本,非MCP✅ 基础MCP服务
支持平台✅ B站、小红书、抖音、微博等平台⚠️ 仅限小红书平台✅ 多平台CLI脚本⚠️ 平台支持有限
技术栈🐍 Python + Playwright + FastMCP🔷 Go + Playwright🐍 Python + Playwright🐍 Python
从脚本到标准✅ 标准化MCP工具,高度可复用✅ 标准MCP实现❌ 仅有CLI脚本,不可复用✅ 支持部分模块化
登录管理✅ Web UI+二维码/Cookie双模式✅ 独立登录工具❌ 基本登录,无可视化❌ 登录功能不全
浏览器池管理✅ 智能实例复用+延迟销毁⚠️ 基本浏览器管理❌ 无池化管理❌ 无池化管理
工程设计✅ 层级解耦、Pydantic模型、Redis缓存✅ 清晰代码结构❌ 架构紧耦合❌ 缺乏工程设计
数据格式✅ AI友好,扁平JSON,无冗余✅ 结构化JSON❌ 复杂嵌套JSON❌ 数据结构混乱
发布功能✅ 小红书图文/视频发布(开发中)✅ 小红书图文/视频发布❌ 无发布功能❌ 无发布功能
管理界面✅ FastMCP UI完整管理页面⚠️ 基本HTTP API❌ 无管理界面❌ 无管理界面
可扩展性✅ 模块化设计,易于扩展到新平台⚠️ 专注于小红书列表平台❌ 扩展困难⚠️ 可扩展性一般
部署方式🐳 Python服务+Docker支持🐳 Go二进制+Docker🐍 Python脚本🐍 Python服务
适用场景🎯 多平台数据采集+AI分析+自动发布🎯 深度运营小红书🎯 一次性数据收集🎯 基础MCP集成

项目开发待办事项

已完成

  • [x] 独立登录模块

  • [x] Bilibili 搜索/详情/创作者/评论

    • bili_search
    • bili_detail
    • bili_creator
    • bili_comments
  • [] 小红书搜索/详情/创作者/评论,近期正在修复风控措施

    • xhs_search
    • xhs_detail
    • xhs_creator
    • xhs_comments

进行中

  • [] 抖音
  • [] 知乎
  • [] 微博
  • [] 其他外部API
  • JWT认证:简单集成和安全认证机制的实现
  • [] 编写MCP/资源和MCP提示
  • [] 添加某些渠道的文章发布功能
  • [ ] **最佳实践写作(欢迎共创)**基于实际业务需求为这个MCP编写一个n8n工作流,并进行相应优化。

非目标

  • 不做复杂的权限管理,MCP通常作为个人本地服务/企业内部服务使用,接入企业内部网关认证更为合理。这里不做复杂封装。
  • 不创建复杂的多账号池、多租户、分布式集群等功能
  • 维护清晰架构,提供扩展点,鼓励他人根据需要自行扩展

快速开始

环境要求:Python 3.13+· Redis · Chrome/Chromium · (可选) Node.js 16+

  1. 克隆并安装依赖
git clone <your-repo-url>
cd media-crawler-mcp-service
poetry install
poetry run playwright install chromium
  1. 配置环境
cp .env.example .env
# 按需修改端口/平台开关/Redis等
  1. 启动服务
redis-server                 # 如未启动
poetry run python main.py    # 默认端口 9090

# 管理界面: http://localhost:9090/admin
# 工具调试: http://localhost:9.090/admin/inspector

管理界面与登录

1) 打开管理界面 http://localhost:9090/admin

index.png

2) 前往“登录管理”并选择平台(例如Bilibili)

login.png

3) 支持“二维码登录”或“Cookie登录”,状态会持久保存

login_state.png

在 AI 助手中使用

MCP连接

  • MCP SSE端点:http://localhost:9090/mcp
  • 管理页面提供在线调试:http://localhost:9090/inspector
  • 本地/内网默认无认证;公网部署请添加网关认证。

工具命名和平台代码

  • 工具名称统一为 {platform}_{tool},平台代码:biliBilibilixhs小红书
  • 注册示例:
    • Bilibili:bili_searchbili_crawler_detailbili_crawler_creatorbili_search_time_range_httpbili_crawler_comments
    • 小红书:xhs_searchxhs_crawler_detailxhs_crawler_creatorxhs_crawler_comments

在 ChatGPT/Claude 中配置

  • 设置MCP服务器地址为上述SSE端点。
  • 选择相应的工具名称和参数调用;不确定参数时,先通过 /inspector 验证。

常见调用示例

  • Bilibili_search
{
  "keywords": "Python 机器学习",
  "page_size": 3,
  "page_num": 1
}
  • Bilibili 视频详情(bili_crawler_detail)
{
  "video_ids": ["444445981"]
}
  • 小红书搜索(xhs_search)
{
  "keywords": "咖啡",
  "page_num": 1,
  "page_size": 20
}
  • 小红书详情(xhs_crawler.detail,必须传递 xsec_token)
{
  "note_id": "68f9b8b20000000004010353",
  "xsec_token": "从搜索结果或分享链接解析",
  "xsec_source": "pc_search"
}

工具概览

管理页面上的 MCP 工具检查器将按平台分组显示已注册的工具,并可以在线调用和调试。

工具分布(按平台分组)

  • 服务工具

    • service_info - 服务信息
    • service_health - 健康检查
    • list_tools - 工具列表
    • tool_info - 工具详情
  • Bilibili 站

    • bili_search - 关键词搜索
    • bili_crawler_detail - 视频详情
    • bili_crawler_creator - 创作者内容/信息
    • bili_search_time_range_http - 时间范围搜索
    • bili_crawler_comments - 视频评论
  • 小红书(XHS)

    • xhs_search - 关键词搜索
    • xhs_crawler_detail - 笔记详情(需要 xsec_token)
    • xhs_crawler_creator - 创作者作品
    • xhs_crawler_comments - 笔记和评论

mcp_tools_inspector.png

架构与技术选型

🤖 AI助手 (Claude / ChatGPT)
           │  MCP协议
           ▼
🎯 MediaCrawler MCP服务
  ├─ 管理层: 登录/状态/配置
  ├─ 服务层: 各平台编排 (Bili...)
  └─ 工具层: bili_search/detail/creator/comments
           │
           ▼
🌐 Playwright 浏览器(上下文复用 / 风控友好)
  ├─ BrowserManager 统一管理
  ├─ 平台级实例隔离(每个平台独立浏览器)
  ├─ Login 和 Crawler 共享同一实例
  └─ 引用计数 + 互斥锁保护
           │
           ▼
💾 Redis 状态缓存 · 本地/结构化存储

开发与贡献流程

  1. 分叉并创建功能分支
  2. 阅读项目规范:Agent.md:1
  3. 本地开发和自测
  4. 提交PR并解释变更点

常见问题

无法启动?

poetry install
poetry run playwright install chromium
redis-cli ping   # 期望 PONG
APP__DEBUG=true poetry run python main.py

二维码不显示?

BROWSER__HEADLESS=false poetry run python main.py
poetry run playwright install-deps chromium

登录状态容易丢失?

  • 确认Redis稳定性及网络正常运行;避免高频触发风控

搜索为空或慢?

  • 优先使用 bili_search 减少页面大小,增大请求间隔

合规与合理使用

此项目定位为个人效率工具:

  • 遵守各平台的使用条款和robots.txt
  • 合理控制频率,避免给平台带来压力
  • 尊重内容创作者,不得用于商业爬取
  • 建议单次请求量小,请求间隔≥2秒

如果此项目对您的学习有帮助,欢迎 ⭐ Star 支持!