mcp-server-wechat-reader

jessyone/mcp-server-wechat-reader

3.2

If you are the rightful owner of mcp-server-wechat-reader and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

WeChat Reader MCP Server is a tool designed to extract and process content from WeChat public account articles.

Tools
1
Resources
0
Prompts
0

WeChat Reader MCP Server

微信公众号文章阅读器 MCP 服务器

🚀 功能特性

  • 智能文章提取: 从微信公众号文章 URL 中提取完整内容和元数据
  • 多种输出格式: 支持 Markdown 和纯文本两种输出格式
  • 图片处理: 可选择是否包含图片链接,支持懒加载图片识别
  • 反爬虫处理: 使用 Playwright 浏览器自动化技术,有效绕过反爬虫机制
  • 资源管理: 集成代理池和 Cookie 池管理,提高抓取成功率
  • 智能解析: 多重选择器策略,兼容各种页面结构和版本
  • 内容清理: 自动移除广告、分享按钮等干扰元素,保留核心内容
  • 错误恢复: 智能错误处理和状态报告机制
  • 内容优化: 响应内容自动截断以符合 token 限制

📋 适用场景

  • 📝 文章内容提取与摘要生成
  • 🔍 RAG (检索增强生成) 应用的内容源
  • 📊 公众号内容分析和存档
  • 🔔 信息监控和数据收集

🛠️ 安装

前置要求

  • Python 3.10+
  • pip 或 uv 包管理器

安装步骤

  1. 克隆项目:
git clone <repository-url>
cd mcp-server-wechat-reader
  1. 安装依赖:
# 使用 pip
pip install -e .

# 或使用 uv (推荐)
uv pip install -e .
  1. 安装开发依赖(可选):
# 使用 pip
pip install -e .[dev]

# 或使用 uv
uv pip install -e .[dev]

🎯 使用方法

启动服务器

# 直接运行
python -m mcp_server_wechat_reader.server

# 或使用脚本
mcp-server-wechat-reader

在 Cursor/Trae 客户端中配置

要在 Cursor 或 Trae IDE 中使用 WeChat Reader MCP Server,您需要在 IDE 的 MCP 配置文件中添加相应的服务器配置。

配置步骤
  1. 找到 MCP 配置文件

    • 在 Cursor/Trae 中,MCP 配置文件通常位于:
      • ~/.cursor/mcp.json (Cursor)
      • ~/.trae/mcp.json (Trae)
    • 如果文件不存在,请创建该文件
  2. 添加 WeChat Reader 配置

在 MCP 配置文件中添加以下配置(请根据您的实际路径调整):

{
  "mcpServers": {
    "wechat-reader": {
      "command": "/path/to/your/venv/bin/fastmcp",
      "args": [
        "run",
        "/path/to/mcp-server-wechat-reader/src/mcp_server_wechat_reader/server.py"
      ]
    }
  }
}
配置示例(根据您的环境)
{
  "mcpServers": {
    "wechat-reader": {
      "command": "/Users/mac/Study/mcp-courseware-master/mcp-server-wechat-reader/.venv/bin/fastmcp",
      "args": [
        "run",
        "/Users/mac/Study/mcp-courseware-master/mcp-server-wechat-reader/src/mcp_server_wechat_reader/server.py"
      ]
    }
  }
}
路径说明
  • command: 指向您的 Python 虚拟环境中的 fastmcp 可执行文件

    • 如果您使用 uv,路径可能是:/path/to/project/.venv/bin/fastmcp
    • 如果您使用 pip,路径可能是:/path/to/project/.venv/bin/fastmcp
  • args: 包含 run 命令和服务器脚本的完整路径

验证配置
  1. 保存配置文件后,重启 Cursor/Trae IDE
  2. 在聊天界面中,您应该能看到可用的 MCP 工具
  3. 输入 /tools 或查看工具列表,确认 read_article 工具已加载
使用示例

配置成功后,您可以直接在 IDE 中使用:

请帮我读取这篇文章:https://mp.weixin.qq.com/s/xxxxxxxxx

或者使用工具调用格式:

{
  "url": "https://mp.weixin.qq.com/s/xxxxxxxxx",
  "output_format": "markdown",
  "include_images": false
}

使用 FastMCP 开发工具

# 使用 MCP Inspector 进行调试
fastmcp dev src/mcp_server_wechat_reader/server.py

# 查看工具列表
fastmcp install claude-desktop src/mcp_server_wechat_reader/server.py --preview

工具使用示例

read_article_tool

从微信公众号文章 URL 中提取内容:

{
  "url": "https://mp.weixin.qq.com/s/xxxxxxxxx",
  "output_format": "markdown",
  "include_images": false
}

参数说明:

  • url (必需): 微信公众号文章的完整 URL
  • output_format (可选): 输出格式,"markdown" 或 "text",默认 "markdown"
  • include_images (可选): 是否包含图片链接,默认 false

返回示例:

{
  "title": "文章标题",
  "author": "作者名称", 
  "official_account": "公众号名称",
  "publish_date": "2024-11-04",
  "content": "格式化后的文章内容...",
  "source_url": "https://mp.weixin.qq.com/s/xxxxxxxxx"
}

🏗️ 项目结构

mcp-server-wechat-reader/
├── src/
│   └── mcp_server_wechat_reader/
│       ├── server.py              # 主服务器文件
│       ├── tools/
│       │   ├── __init__.py
│       │   └── reader.py          # read_article 工具实现
│       └── utils/
│           ├── __init__.py
│           ├── api_client.py      # 网页抓取客户端
│           ├── formatters.py      # 响应格式化工具
│           └── errors.py          # 错误处理模块
├── tests/
├── pyproject.toml
└── README.md

⚙️ 配置

环境变量

服务器支持以下环境变量来增强抓取能力:

  • PROXY_POOL_URL (可选): 代理池服务的 URL,格式如 http://proxy-service.com/api/proxy
  • COOKIE_POOL_URL (可选): Cookie 池服务的 URL,格式如 http://cookie-service.com/api/cookies
  • DATABASE_URL (可选): 数据库连接字符串,用于数据持久化

配置示例

export PROXY_POOL_URL="http://your-proxy-pool.com/api/proxy"
export COOKIE_POOL_URL="http://your-cookie-pool.com/api/cookies"

注意: 这些服务是可选的。如果不配置,服务器将使用内置的基础抓取策略。

请求配置

服务器内置了以下配置来优化抓取效果:

  • 请求间隔: 2秒(避免频繁请求)
  • 请求超时: 60秒
  • User-Agent 轮换: 自动轮换浏览器标识
  • Cookie 管理: 自动管理会话状态

🔧 开发

本地开发

# 启动开发服务器
fastmcp dev src/mcp_server_wechat_reader/server.py

# 运行测试
pytest tests/

# 代码格式化
black src/ tests/

# 类型检查
mypy src/

添加新功能

  1. utils/ 中添加共享功能
  2. tools/ 中实现新工具
  3. server.py 中注册工具
  4. 添加相应的测试

⚠️ 使用须知

法律合规

  • 请遵守微信平台的使用条款和相关法律法规
  • 尊重版权,合理使用抓取的内容
  • 建议仅用于个人学习和研究目的

技术限制

  • 某些文章可能因隐私设置或删除而无法访问
  • 微信的反爬虫机制可能导致临时访问受限
  • 建议控制请求频率,避免对微信服务器造成压力

最佳实践

  • 使用有效的微信公众号文章链接 (mp.weixin.qq.com)
  • 根据需要选择合适的输出格式
  • 处理可能的网络错误和反爬虫拦截
  • 在生产环境中考虑使用代理池

🐛 故障排除

常见错误

  1. URL 无效

    • 确保 URL 是微信公众号文章链接
    • 检查 URL 格式是否正确
  2. 网络请求失败

    • 检查网络连接
    • 考虑使用代理
    • 稍后重试
  3. 被反爬虫拦截

    • 降低请求频率
    • 更换 IP 地址
    • 等待一段时间后重试
  4. 解析失败

    • 检查文章是否正常显示
    • 可能需要更新解析逻辑

📄 许可证

本项目采用 MIT 许可证。详见 LICENSE 文件。

🤝 贡献

欢迎提交 Issue 和 Pull Request!

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📞 支持

如果您在使用过程中遇到问题,请:

  1. 查看本 README 的故障排除部分
  2. 搜索已有的 Issue
  3. 创建新的 Issue 并提供详细信息

开始使用 WeChat Reader MCP Server 来读取微信文章吧! 🎉