Skip to main content
Glama

WeChat Article Parser

by zenmindyj
README.md7.93 kB
# 微信公众号文章解析 MCP Server 基于 FastMCP 框架实现的微信公众号文章内容解析 MCP(Model Context Protocol)服务器。 ## 功能特性 - ✅ 解析微信公众号文章 URL - ✅ 提取文章标题、作者、发布时间 - ✅ 提取文章正文(纯文本格式) - ✅ 提取文章摘要/描述 - ✅ **LLM 深度分析**:使用大语言模型进行语义分析、观点提取、结构分析 - ✅ 专注于文字内容解析,不处理图片 - ✅ 基于 FastMCP 框架,使用 stdio 传输 - ✅ 遵循 MCP 规范,与所有 MCP 客户端兼容 ## 环境准备 ### 1. 创建虚拟环境 ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 # macOS/Linux: source venv/bin/activate # Windows: venv\Scripts\activate ``` ### 2. 安装依赖 ```bash pip install -r requirements.txt ``` 如果网络较慢,可以使用国内镜像源: ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 运行服务 ```bash python server.py ``` ## 在 Cursor 中配置 MCP 编辑 `~/.cursor/mcp.json`,添加以下配置: ```json { "mcpServers": { "wechat-article-parser": { "command": "python3", "args": ["/绝对路径/wechat-article-parser-mcp/server.py"] } } } ``` 重启 Cursor,即可使用微信公众号文章解析功能! ### 配置 LLM API(可选,用于深度分析) 如果需要使用 `analyze_with_llm` 工具,需要配置智谱 AI API Key。 **配置方式:环境变量(在 MCP 配置中)** 在 `~/.cursor/mcp.json` 中配置 API Key(已在安装步骤中配置): ```json { "wechat-article-parser": { "command": "python3", "args": ["/path/to/server.py"], "env": { "ZHIPU_API_KEY": "your-zhipu-api-key-here" } } } ``` **获取 API Key:** 访问 https://open.bigmodel.cn/ 注册并获取 API Key ## 可用工具 ### parse_article 解析微信公众号文章,生成详细摘要(使用 LLM 生成至少十句话的摘要,总结全文和分段要点)。 **参数:** - `url` (必填): 微信公众号文章 URL,例如:`https://mp.weixin.qq.com/s/...` **返回示例:** ```json { "success": true, "url": "https://mp.weixin.qq.com/s/...", "title": "文章标题", "author": "作者名称", "publish_time": "2024-01-01 12:00:00", "summary": "使用 LLM 生成的详细摘要(至少十句话,总结全文和分段要点)...", "metadata": { "charset": "utf-8", "content_type": "text/html" } } ``` **使用示例:** ``` parse_article( url="https://mp.weixin.qq.com/s/xxxxx" ) ``` ### analyze_with_llm 使用大语言模型进行深度语义分析和观点提取(推荐)。 **参数:** - `url` (可选): 微信公众号文章 URL,如果提供则自动解析文章内容 - `title` (可选): 文章标题,如果不提供 URL 则必须提供 - `author` (可选): 作者名称 - `content` (可选): 文章正文内容,如果不提供 URL 则必须提供 - `save_path` (可选): 保存分析结果的 Markdown 文件路径,如果不提供则自动生成文件名 - `model` (可选): LLM 模型名称,默认 "glm-4",可选 "glm-4-flash", "glm-3-turbo" 等(智谱 AI) - `analysis_type` (可选): 分析类型,默认 "comprehensive"(综合分析),可选 "viewpoint"(观点提取)、"structure"(结构分析) **分析类型说明:** - **comprehensive**(综合分析):完整分析,包括观点、结构、论证方式、语言风格、价值评估 - **viewpoint**(观点提取):专注于观点提取和分析,包括核心观点、分论点链条、论证方式、观点价值 - **structure**(结构分析):专注于文章结构分析,包括整体结构、段落组织、过渡衔接、层次划分、可读性 **返回示例:** ```json { "success": true, "message": "LLM analysis completed successfully", "file_path": "文章标题-LLM综合分析.md", "file_size": 12345, "article_info": { "title": "文章标题", "author": "作者名称", "content_length": 1234 }, "analysis_info": { "type": "comprehensive", "model": "glm-4", "provider": "zhipu", "method": "LLM semantic analysis" } } ``` **使用示例:** 方式 1:综合分析(默认) ``` analyze_with_llm( url="https://mp.weixin.qq.com/s/xxxxx" ) ``` 方式 2:只提取观点 ``` analyze_with_llm( url="https://mp.weixin.qq.com/s/xxxxx", analysis_type="viewpoint" ) ``` 方式 3:只分析结构 ``` analyze_with_llm( url="https://mp.weixin.qq.com/s/xxxxx", analysis_type="structure" ) ``` 方式 4:指定分析类型和模型 ``` analyze_with_llm( url="https://mp.weixin.qq.com/s/xxxxx", model="glm-4", analysis_type="viewpoint" ) ``` 方式 5:使用不同的模型 ``` analyze_with_llm( url="https://mp.weixin.qq.com/s/xxxxx", model="glm-4-flash" ) ``` **注意**:此工具需要智谱 AI API Key,会产生 API 调用费用。推荐使用 `glm-4` 模型,国内服务稳定且成本较低。 ## 使用场景 ### 场景 1:快速获取文章摘要 使用 `parse_article` 工具,快速获取文章标题、作者、发布时间,以及使用 LLM 生成的详细摘要(至少十句话,总结全文和分段要点)。 ### 场景 2:LLM 深度分析(推荐) 使用 `analyze_with_llm` 工具进行深度语义分析: - **观点提取**:自动识别核心观点和分论点链条 - **结构分析**:分析文章结构、段落组织、逻辑关系 - **论证方式**:识别使用的论证方式并评估效果 - **语言风格**:分析语言特点、表达技巧、可读性 - **价值评估**:评估观点价值、传播潜力、目标读者 ## 技术实现 ### 核心技术栈 - **FastMCP**: MCP 服务器框架 - **requests**: HTTP 请求库 - **BeautifulSoup4**: HTML 解析库 - **lxml**: XML/HTML 解析器(BeautifulSoup 后端) ### 解析流程 1. **URL 验证**:验证是否为有效的微信公众号文章 URL 2. **HTTP 请求**:使用 requests 发送 GET 请求,模拟浏览器访问 3. **HTML 解析**:使用 BeautifulSoup 解析 HTML 内容 4. **信息提取**: - 标题:从 `<h1>` 标签提取 - 作者:从作者相关的 CSS 类提取 - 发布时间:从时间相关的标签提取 - 正文:从 `rich_media_content` 或 `js_content` 提取纯文本 - 摘要:从 meta 标签提取 5. **内容清理**:移除 HTML 标签、脚本、样式,提取纯文本 6. **LLM 摘要生成**(parse_article):使用 LLM 生成详细摘要(至少十句话,总结全文和分段要点) 7. **结果返回**:返回 JSON 格式的结构化数据 ## 注意事项 1. **反爬虫机制**:微信公众号可能有反爬虫机制,建议: - 控制请求频率 - 使用合适的 User-Agent - 避免频繁请求同一公众号 2. **内容合法性**:确保解析和使用微信公众号文章内容符合相关法律法规和平台规定。 3. **URL 格式**:确保提供的是完整的微信公众号文章 URL,格式通常为: - `https://mp.weixin.qq.com/s/xxxxx` - `https://weixin.qq.com/s/xxxxx` 4. **内容更新**:微信公众号文章内容可能会更新,解析结果可能因时间而异。 ## 开发 ### 运行测试 ```bash # 运行所有测试 pytest # 运行测试并生成覆盖率报告 pytest --cov=server --cov-report=html # 运行类型检查 mypy server.py ``` ### 项目结构 ``` . ├── server.py # MCP 服务器主程序 ├── requirements.txt # Python 依赖包 ├── README.md # 项目文档(本文件) ├── .gitignore # Git 忽略文件 └── tests/ # 测试目录(可选) └── test_server.py # 服务器单元测试 ``` ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zenmindyj/mcp101'

If you have feedback or need assistance with the MCP directory API, please join our Discord server