jessyone/mcp-server-wechat-reader
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.
WeChat Reader MCP Server
微信公众号文章阅读器 MCP 服务器
🚀 功能特性
- 智能文章提取: 从微信公众号文章 URL 中提取完整内容和元数据
- 多种输出格式: 支持 Markdown 和纯文本两种输出格式
- 图片处理: 可选择是否包含图片链接,支持懒加载图片识别
- 反爬虫处理: 使用 Playwright 浏览器自动化技术,有效绕过反爬虫机制
- 资源管理: 集成代理池和 Cookie 池管理,提高抓取成功率
- 智能解析: 多重选择器策略,兼容各种页面结构和版本
- 内容清理: 自动移除广告、分享按钮等干扰元素,保留核心内容
- 错误恢复: 智能错误处理和状态报告机制
- 内容优化: 响应内容自动截断以符合 token 限制
📋 适用场景
- 📝 文章内容提取与摘要生成
- 🔍 RAG (检索增强生成) 应用的内容源
- 📊 公众号内容分析和存档
- 🔔 信息监控和数据收集
🛠️ 安装
前置要求
- Python 3.10+
- pip 或 uv 包管理器
安装步骤
- 克隆项目:
git clone <repository-url>
cd mcp-server-wechat-reader
- 安装依赖:
# 使用 pip
pip install -e .
# 或使用 uv (推荐)
uv pip install -e .
- 安装开发依赖(可选):
# 使用 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 配置文件中添加相应的服务器配置。
配置步骤
-
找到 MCP 配置文件
- 在 Cursor/Trae 中,MCP 配置文件通常位于:
~/.cursor/mcp.json(Cursor)~/.trae/mcp.json(Trae)
- 如果文件不存在,请创建该文件
- 在 Cursor/Trae 中,MCP 配置文件通常位于:
-
添加 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命令和服务器脚本的完整路径
验证配置
- 保存配置文件后,重启 Cursor/Trae IDE
- 在聊天界面中,您应该能看到可用的 MCP 工具
- 输入
/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(必需): 微信公众号文章的完整 URLoutput_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/proxyCOOKIE_POOL_URL(可选): Cookie 池服务的 URL,格式如http://cookie-service.com/api/cookiesDATABASE_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/
添加新功能
- 在
utils/中添加共享功能 - 在
tools/中实现新工具 - 在
server.py中注册工具 - 添加相应的测试
⚠️ 使用须知
法律合规
- 请遵守微信平台的使用条款和相关法律法规
- 尊重版权,合理使用抓取的内容
- 建议仅用于个人学习和研究目的
技术限制
- 某些文章可能因隐私设置或删除而无法访问
- 微信的反爬虫机制可能导致临时访问受限
- 建议控制请求频率,避免对微信服务器造成压力
最佳实践
- 使用有效的微信公众号文章链接 (mp.weixin.qq.com)
- 根据需要选择合适的输出格式
- 处理可能的网络错误和反爬虫拦截
- 在生产环境中考虑使用代理池
🐛 故障排除
常见错误
-
URL 无效
- 确保 URL 是微信公众号文章链接
- 检查 URL 格式是否正确
-
网络请求失败
- 检查网络连接
- 考虑使用代理
- 稍后重试
-
被反爬虫拦截
- 降低请求频率
- 更换 IP 地址
- 等待一段时间后重试
-
解析失败
- 检查文章是否正常显示
- 可能需要更新解析逻辑
📄 许可证
本项目采用 MIT 许可证。详见 LICENSE 文件。
🤝 贡献
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📞 支持
如果您在使用过程中遇到问题,请:
- 查看本 README 的故障排除部分
- 搜索已有的 Issue
- 创建新的 Issue 并提供详细信息
开始使用 WeChat Reader MCP Server 来读取微信文章吧! 🎉