微信文章阅读器MCP(Python)🚀
推荐的存储库名称: wechat-article-reader-mcp 建议的包名称(如果发布到PyPI): mcp-wechat-reader 建议的MCP服务器ID/客户端名称: wechat-article-reader
阅读公众微信文章,并将其转换为Markdown+结构化元数据。 📖 HTTP优先获取,并为棘手的页面提供可选的无头浏览器回退。 🧭🧩
快速开始✨
从GitHub安装(无需克隆)
- 使用紫外线(推荐):
- 基础安装: - uv pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader" - 启用浏览器回退: - uv pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader[browser]" - playwright install chromium - 启用HTTP MCP服务器传输: - uv pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader[mcp]"
- 直接使用pip:
- 基础安装: - pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader" - 使用浏览器回退: - pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader[browser]" - playwright install chromium - 使用MCP服务器传输: - pip install "git+https://github.com//wechat-article-reader-mcp.git#egg=mcp-wechat-reader[mcp]"
注意:当使用带有额外功能的VCS URL时(例如。, [browser], [mcp]),请确保将整个URL括在引号中。
克隆并在本地安装(对开发人员友好)
- 克隆并进入仓库:
- git clone https://github.com//wechat-article-reader-mcp.git - cd wechat-article-reader-mcp
- 安装(可编辑):
- uv pip install -e . - 使用浏览器回退: uv pip install -e .[browser] && playwright install chromium - 使用MCP服务器传输: uv pip install -e .[mcp]
直接使用Python
- 仅HTTP(无额外deps):
- python scripts/read_wechat_cli.py "https://mp.weixin.qq.com/s/" --no-browser
- 启用浏览器回退(建议用于复杂页面):
- pip install playwright - playwright install chromium - python scripts/read_wechat_cli.py "https://mp.weixin.qq.com/s/"
工具API🧰
- 姓名:
read_wechat_article - 输入:
- url:string(必填),必须以开头 https://mp.weixin.qq.com/s - include_images:boolean(可选,默认值:true) - force_browser:boolean(可选,默认值:false)--即使HTTP获取成功,也强制Playwright浏览器渲染
- 输出:
- title, author, pub_time, content_md, images[], links[], source_url, strategy, logs - 失败时: error, message
看 .trae/specs/my-mcp-server/read_wechat_article.json 对于规范。
配置⚙️
编辑 mcp_server_my_mcp_server/utils/config.py:
ua,referer,accept_language,timeout_secondsrate_limit_per_min,burstproxy(计划中),cache_ttl_secondsbrowser_enabled
与MCP运行时集成(类似Trae)🔌
通过uv将此项目导入您的Trae应用程序
选项A:将此项目安装到您的Trae应用程序环境中
uv pip install -e d:/code1/Q5/your-mcp-project- 使用浏览器回退:
uv pip install -e d:/code1/Q5/your-mcp-project[browser] && playwright install chromium
选项B:在Trae应用程序的pyproject.toml中声明为依赖项
[project]
dependencies = [
"mcp-wechat-reader @ file:///d:/code1/Q5/your-mcp-project"
]然后在Trae应用程序目录中运行:
uv pip install -r pyproject.toml
CLI示例🛠️
安装完成后,可以直接使用 read-wechat-cli 命令:
- 默认开启浏览器回退(需安装浏览器支持):
- 安装:uv pip install -e d:/code1/Q5/your-mcp-project[browser] && playwright install chromium - 运行:uv run read-wechat-cli https://mp.weixin.qq.com/s/...
- 仅使用 HTTP(禁用浏览器回退):
- 运行:uv run read-wechat-cli https://mp.weixin.qq.com/s/... --no-browser
- 输出中包含图片 URL:
- 运行:uv run read-wechat-cli https://mp.weixin.qq.com/s/... --include-images
- 强制使用浏览器渲染(即使 HTTP 成功也走浏览器):
- 运行:uv run read-wechat-cli https://mp.weixin.qq.com/s/... --force-browser
说明:
--no-browser现在会生效,CLI 会传入WechatReaderConfig(browser_enabled=False);若需浏览器回退,请安装[browser]额外依赖并执行playwright install chromium。--include-images控制是否在返回 JSON 的images[]字段中包含解析到的图片地址。--force-browser会在工具层传入force_browser=true,并且抓取策略返回值中的strategy将标记为browser_forced。
运行HTTP MCP服务器(用于mcpServers URL导入)🌐
- 安装时支持HTTP传输:
uv pip install -e ./your-mcp-project[mcp]
- 运行服务器(默认http://127.0.0.1:8000/mcp/):
uv run wechat-mcp-http
- 在Trae配置中(示例):
{
"mcpServers": {
"wechat-article-reader": {
"url": "http://127.0.0.1:8000/mcp/",
"headers": {
"Authorization": "Bearer "
}
}
}
}如果需要身份验证,请在HTTP层添加简单的令牌验证(FastMCP支持中间件模式),或将服务器置于强制身份验证的反向代理之后。
- 规格:确保
.trae/specs/my-mcp-server/read_wechat_article.json存在。 - 注册:进口
src/mcp_server_my_mcp_server/server.py并注册list_tools()地图。 - 调用:调用
read_wechat_article(url, include_images, force_browser)通过您的MCP工具调度器。 - 错误:句柄
invalid_url/need_auth/blocked_403/rate_limited_429/timeout/no_content.
备注📝
- 仅支持公共链接。不要使用需要登录或付费的内容。
- 图片/链接可能会过期;如果需要长期使用,可以考虑下载到对象存储。
- 遵守网站服务条款和费率限制。
测试✅
屏幕截图和演示📸
马上就来:
- CLI演示GIF显示HTTP优先与浏览器回退。
- 架构图(HTTP获取→ 解析→ 标记语言→ MCP输出)。
- Trae配置截图使用
mcpServers.
建筑示例(美人鱼):
flowchart TD
A[Input URL] --> B{Compliance check}
B -->|valid| C[HTTP fetch]
C -->|success| D[Parse + Markdown]
C -->|fail| E{Browser fallback?}
E -->|yes| F[Playwright fetch]
F --> D
E -->|no| G[Error]
D --> H[Return JSON]tests/test_read_wechat_article.py包含一个基本的无效URL测试。添加具有真实公共文章的集成测试。
