微信公众号文章爬取服务

一个用于爬取和检索微信公众号文章的MCP服务器,支持AI代理添加公众号、触发文章爬取并以Markdown格式获取文章。

  • by kelvintt
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kelvintt/my_first_mcp_server

使用说明

微信文章抓取器MCP服务器

这是一个MCP服务器,旨在为AI代理抓取和检索微信官方账号文章。它允许代理添加官方帐户,触发文章抓取,并以Markdown格式检索抓取的文章。

特性

  • 添加官方账号:将微信公众号添加到监控列表中。
  • 列出官方账户:查看当前所有受监控的官方账户。
  • 报废物品:触发特定官方账户的抓取任务,以获取其历史文章。
  • 获取报废物品:根据各种标准(例如,官方账号、关键字、日期范围)检索抓取的文章。

安装

  1. 克隆存储库:

    git clone <repository_url>
    cd mcp-server-wechat-article-scraper
    
  2. 创建并激活虚拟环境:

    python -m venv .venv
    # On Windows
    .venv\Scripts\activate
    # On macOS/Linux
    source .venv/bin/activate
    
  3. 安装依赖项:

    pip install -e .
    
  4. 安装web浏览器:此服务器使用无头浏览器进行抓取。确保您的系统上安装了Chrome或Edge浏览器。

用法

要运行MCP服务器,请执行 server.py 文件:

python src/mcp_server_wechat_article_scraper/server.py

然后,服务器将通过STDIO监听命令。AI代理可以使用定义的工具与它进行交互。

配置

您可以使用环境变量配置服务器:

  • WECHAT_SCRAPER_BROWSER_PATH:(可选)指定浏览器可执行文件的路径(例如。, C:\Program Files\Google\Chrome\Application\chrome.exe).如果未设置,系统将尝试自动找到它。
  • WECHAT_SCRAPER_DATA_DIR:(可选)指定数据存储的目录(例如,数据库文件、抓取缓存)。默认为a data 服务器工作目录中的文件夹。

工具

此MCP服务器提供以下工具:

  • add_official_account:添加微信公众号进行监控。
  • list_official_accounts:列出所有被监控的微信公众号。
  • scrape_official_account_articles:为特定帐户触发文章抓取任务。
  • get_scraped_articles:检索以前抓取的文章。

请参阅 spec.md 文件在 .trae/specs/wechat-article-mcp-server/ 详细工具规范、输入/输出模式和错误处理的目录。

发展

运行测试

pytest tests/

项目结构

mcp-server-wechat-article-scraper/
├── src/
│   └── mcp_server_wechat_article_scraper/
│       ├── server.py         # MCP server main file
│       ├── tools/            # Tool definitions
│       │   ├── __init__.py
│       │   ├── add_official_account.py
│       │   ├── list_official_accounts.py
│       │   ├── scrape_official_account_articles.py
│       │   └── get_scraped_articles.py
│       └── utils/            # Utility functions and modules
│           ├── __init__.py
│           ├── api_client.py # API request helpers (for internal use, e.g., browser control)
│           ├── formatters.py # Response formatting
│           └── errors.py     # Error handling
├── pyproject.toml
├── README.md
└── tests/
    └── ...