# 微信公众号内容搜索工具 (Weixin Search MCP)

这是一个基于 MCP (Model Context Protocol) 的工具，用于搜索和获取微信公众号文章内容。通过搜狗微信搜索接口，可以方便地获取公众号文章并提取内容。

<p align="center">
  <a href="media/weixin-search-mcp-promo.mp4">
    <img src="media/weixin-search-mcp-promo.gif" alt="weixin_search_mcp 演示" width="720">
  </a>
  <br>
  <em>▶️ 点击查看带打字声 + 配乐的高清 MP4（45s）</em>
</p>

<!--
  想在 README 里直接内嵌「带声音的播放器」？GitHub 上唯一的办法：
  1. 打开本仓库任意 issue / PR 评论框（或 Releases 编辑页）
  2. 把 media/weixin-search-mcp-promo.mp4 拖进去，等它上传生成一个
     https://github.com/user-attachments/assets/xxxx 链接
  3. 把那串链接单独一行粘进这里，GitHub 会自动渲染成带声音的播放器
  （提交进仓库的 mp4 用 <video> 标签会被 GitHub 过滤，不渲染，所以才要这一步）
-->

## 功能特点

- 通过关键词在搜狗微信搜索中查找公众号文章
- 自动获取文章的真实链接（从搜狗跳转链接转为微信原始链接）
- 提取文章的完整正文内容
- 支持批量获取多篇文章

## 安装方法

### 环境要求

- Python 3.12 或更高版本
- uv 包管理工具

### 安装步骤

使用 uv 创建虚拟环境并安装：

```bash
# 创建虚拟环境
uv venv

# 激活虚拟环境
source .venv/bin/activate  # Linux/Mac
# 或者在Windows上:
# .venv\Scripts\activate

# 安装项目
uv pip install -e .
```

## 使用方法

### 启动服务

启动HTTP服务器：

```bash
weixin_search_mcp --transport http --port 8809 --host 0.0.0.0
```

或者使用标准输入/输出模式（用于与其他应用集成）：

```bash
weixin_search_mcp --transport stdio
```

通过 PyPI / `uvx` 直接运行：

```bash
uvx --from weixin-search-mcp weixin_search_mcp --transport stdio
```

### 4. 配置MCP服务

有两种方式可以配置和启动MCP服务：

#### 方式一：使用stdio协议（直接连接）

在Claude配置中添加以下内容：

```json
{
    "mcpServers": {
        "weixin_search_mcp": {
            "command": "uvx",
            "args": ["--from", "weixin-search-mcp", "weixin_search_mcp", "--transport", "stdio"]
        }
    }
}
```

#### 方式二：使用HTTP协议

1. 启动HTTP服务：

```sh
uvx --from weixin-search-mcp weixin_search_mcp --transport http --port 8809
```

2. 在Claude配置中添加以下内容：

```json
{
    "mcpServers": {
        "weixin_search_mcp": {
            "type": "http",
            "url": "http://localhost:8809/mcp"
        }
    }
}
```

## 工具使用说明

本项目提供了以下工具来搜索和获取微信公众号内容：

### 微信搜索工具
- **weixin_search**: 在搜狗微信搜索中搜索指定关键词并返回结果列表
  - 参数:
    - `query` - 搜索关键词
    - `page` - 可选，页码，默认 `1`
  - 返回: 包含标题、链接、真实URL、发布时间、页码的文章列表

### 多页搜索工具
- **weixin_search_all**: 自动翻页搜索多页微信公众号文章
  - 参数:
    - `query` - 搜索关键词
    - `max_pages` - 可选，最大页数，默认 `10`
  - 返回: 聚合后的多页结果列表

### 内容获取工具
- **get_weixin_article_content**: 获取微信公众号文章的正文内容
  - 参数: 
    - `real_url` - 真实微信公众号文章链接
    - `referer` - 可选，请求来源，通常为weixin_search返回的链接
  - 返回: 文章正文内容

### 使用示例

1. 搜索关键词相关的微信公众号文章:

```python
results = weixin_search("人工智能")
```

按指定页搜索：

```python
results = weixin_search("人工智能", page=2)
```

自动翻页抓取：

```python
all_results = weixin_search_all("人工智能", max_pages=3)
```

2. 获取文章内容:

```python
article_content = get_weixin_article_content(real_url="https://mp.weixin.qq.com/...", referer="https://weixin.sogou.com/...")
```

## 注意事项

- 该工具依赖于搜狗微信搜索接口，如果接口变更可能会影响工具功能
- 请合理控制请求频率，避免被搜狗或微信官方限制访问
- 获取的内容仅供学习研究使用，请遵守相关法律法规

## 许可证

MIT
