zhihu-mcp

alizeeblack-code/zhihu-mcp
3 starsMITCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

Enables AI agents to search, read, and analyze Zhihu content including questions, answers, comments, and user activities through the MCP protocol.

README.md

zhihu-mcp

MCP for 知乎/zhihu.com。

让 AI Agent 能够搜索知乎内容、阅读问题和回答、分析评论区、追踪用户动态 — 通过标准 MCP 协议接入任何 AI 客户端。

项目简介

主要功能

<details> <summary><b>1. 搜索知乎内容</b></summary>

按关键词搜索知乎,支持按相关性、时间、热度排序,可过滤内容类型(问题/回答/文章)。

基于知乎内部 API,比 DOM 抓取更稳定可靠。

</details>

<details> <summary><b>2. 获取问题详情</b></summary>

获取知乎问题的完整信息:

  • 问题标题、描述、话题标签
  • 关注数、浏览数、回答数
  • Top 10 高赞回答列表(含作者、摘要、点赞数、链接)

</details>

<details> <summary><b>3. 阅读回答全文</b></summary>

获取指定回答的完整内容:

  • 作者名称和简介
  • 回答正文(图片替换为 [图片] 标记)
  • 点赞数、评论数
  • 发布/编辑时间

</details>

<details> <summary><b>4. 阅读专栏文章</b></summary>

获取知乎专栏(zhuanlan.zhihu.com)文章全文,包括作者、点赞数、评论数。

</details>

<details> <summary><b>5. 获取评论区</b></summary>

获取回答或文章的评论列表,包括评论内容和作者。支持自定义加载数量。

</details>

<details> <summary><b>6. 查看用户资料</b></summary>

获取知乎用户主页信息:昵称、简介、关注数、粉丝数、获赞数、回答数、文章数等。

</details>

<details> <summary><b>7. 追踪用户动态</b></summary>

实时抓取用户最近的活动(回答问题、发表文章、赞同内容等),自动存入本地 SQLite 数据库,支持历史查询。

</details>

风险说明

本项目使用 Playwright 驱动无头浏览器访问知乎,注入 stealth 反检测脚本。正常使用频率下(不频繁大量请求),风险较低。建议:

  • 使用已登录的 Cookie,避免频繁登录操作
  • 控制调用频率,避免短时间内大量请求
  • 本项目基于学习目的,禁止用于违法行为

1. 快速开始

1.1. 安装

需要 Python 3.10+mcp 包要求)。

# 克隆项目
git clone https://github.com/ay/zhihu-mcp.git
cd zhihu-mcp

# 创建虚拟环境并安装依赖
python3 -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate
pip install -r requirements.txt

# 安装 Playwright 浏览器
playwright install chromium

1.2. 配置 Cookie

知乎需要登录才能正常使用。将浏览器中的知乎 Cookie 导出为 cookies.json(Playwright 格式),放在项目根目录。

获取方式:

  1. 使用浏览器扩展(如 EditThisCookie、Cookie-Editor)导出
  2. 从其他知乎项目(如 zhihu_monitor)复制
  3. 确保包含 z_c0(认证 token)和 d_c0(设备 token)

1.3. 启动 MCP 服务

# 默认:无头模式
python3 mcp_server.py

# 如果需要看到浏览器界面(调试用)
HEADLESS=false python3 mcp_server.py

1.4. 验证

# 运行内置自测
python3 mcp_server.py --test

2. MCP 客户端接入

本服务使用 stdio 传输协议(标准输入/输出),兼容所有支持 stdio MCP 的客户端。

<details> <summary><b>Claude Code CLI</b></summary>

claude mcp add zhihu-mcp -- /path/to/zhihu-mcp/venv/bin/python3 /path/to/zhihu-mcp/mcp_server.py

</details>

<details> <summary><b>Claude Desktop</b></summary>

编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "zhihu-mcp": {
      "command": "/path/to/zhihu-mcp/venv/bin/python3",
      "args": ["/path/to/zhihu-mcp/mcp_server.py"],
      "env": {
        "HEADLESS": "true"
      }
    }
  }
}

</details>

<details> <summary><b>Cursor</b></summary>

在项目根目录创建 .cursor/mcp.json

{
  "mcpServers": {
    "zhihu-mcp": {
      "command": "/path/to/zhihu-mcp/venv/bin/python3",
      "args": ["/path/to/zhihu-mcp/mcp_server.py"],
      "env": {
        "HEADLESS": "true"
      }
    }
  }
}

</details>

<details> <summary><b>VSCode</b></summary>

在项目根目录创建 .vscode/mcp.json

{
  "servers": {
    "zhihu-mcp": {
      "command": "/path/to/zhihu-mcp/venv/bin/python3",
      "args": ["/path/to/zhihu-mcp/mcp_server.py"],
      "env": {
        "HEADLESS": "true"
      }
    }
  }
}

</details>

<details> <summary><b>OpenClaw(通过 MCPorter)</b></summary>

# 安装 MCPorter(如未安装)
npm i -g mcporter

# 添加 zhihu-mcp 到 MCPorter 配置
npx mcporter config add zhihu-mcp /path/to/zhihu-mcp/venv/bin/python3 /path/to/zhihu-mcp/mcp_server.py

# 验证
npx mcporter list zhihu-mcp

或直接编辑 MCPorter 配置文件(通常在 ~/.config/mcporter/config.json 或 OpenClaw 项目的 config/mcporter.json):

{
  "mcpServers": {
    "zhihu-mcp": {
      "command": "/path/to/zhihu-mcp/venv/bin/python3",
      "args": ["/path/to/zhihu-mcp/mcp_server.py"],
      "env": {
        "HEADLESS": "true",
        "TMPDIR": "/tmp"
      }
    }
  }
}

</details>

<details> <summary><b>其他 MCP 客户端</b></summary>

任何支持 stdio MCP 协议的客户端都可以接入。核心配置:

  • command: python3(或 venv 中的 python 路径)
  • args: ["/path/to/zhihu-mcp/mcp_server.py"]
  • transport: stdio

</details>

3. 可用 MCP 工具

连接成功后,可使用以下 12 个 MCP 工具:

内容搜索与浏览

| 工具 | 说明 | 关键参数 | |------|------|----------| | search_content | 搜索知乎内容 | keyword(必需), sort(relevance/newest/most_upvoted), content_type(all/question/article/answer), count | | get_question_detail | 获取问题详情 + Top 回答列表 | question_id(必需) | | get_answer_detail | 获取回答完整内容 | question_id(必需), answer_id(必需) | | get_article_detail | 获取专栏文章全文 | article_id(必需) | | get_comments | 获取评论列表 | url(必需,内容页完整 URL), count |

用户相关

| 工具 | 说明 | 关键参数 | |------|------|----------| | user_profile | 获取用户主页信息 | token(必需,URL 中的用户标识,如 jiayaosu) | | get_activities | 实时抓取用户动态(会启动浏览器) | user(必需), count | | get_new_since | 查询本地数据库中的历史动态(不爬取) | hours, user | | get_db_stats | 数据库统计信息 | 无 |

认证管理

| 工具 | 说明 | 关键参数 | |------|------|----------| | check_login_status | 检查登录状态,返回用户名 | 无 | | cookie_status | Cookie 文件状态检查 | 无 | | delete_cookies | 删除 Cookie 文件,重置登录 | 无 |

4. OpenClaw Skills

预置的高级技能,将多个 MCP 工具组合成完整的工作流:

| Skill | 说明 | |-------|------| | research-on-zhihu | 知乎话题研究 — 搜索 + 阅读高赞回答 + 分析评论 → 输出研究报告 | | analyze-zhihu-question | 问题深度分析 — 获取问题详情 + 逐个阅读回答 → 输出观点分布 | | analyze-zhihu-answer | 回答深度分析 — 回答全文 + 评论区讨论 → 输出可信度评估 | | track-zhihu-user | 用户追踪 — 资料 + 动态抓取 → 输出用户画像和活跃领域 |

使用示例

帮我研究一下知乎上关于"大模型Agent"的讨论
分析这个知乎问题:https://www.zhihu.com/question/19550225
看看知乎用户 jiayaosu 最近在做什么
帮我看看这个回答的评论区怎么说:https://www.zhihu.com/question/19550225/answer/1992353258262504861

5. 架构

┌─────────────┐     MCP/stdio      ┌──────────────┐    Playwright     ┌──────────────┐
│   AI Agent   │◄──────────────────►│  mcp_server  │◄────────────────►│   Chromium    │
│              │                    │              │   (headless)      │  + stealth    │
│ Claude Code  │                    │   12 tools   │                   └──────┬───────┘
│ Cursor       │                    └──────┬───────┘                          │
│ OpenClaw     │                           │                                  ▼
│ ...          │                    ┌──────┴───────┐                  ┌──────────────┐
└─────────────┘                    │   SQLite DB   │                  │  zhihu.com   │
                                   │  (活动历史)    │                  └──────────────┘
                                   └──────────────┘

工作原理:

  1. AI Agent 通过 MCP stdio 协议调用工具
  2. mcp_server.py 接收请求,驱动 Playwright 无头浏览器
  3. 浏览器注入 stealth 反检测脚本,访问知乎页面
  4. 搜索功能使用知乎内部 API(/api/v4/search_v3),更稳定
  5. 其他功能通过 DOM 提取页面数据
  6. 用户动态自动存入 SQLite,支持历史查询

6. 项目结构

zhihu-mcp/
├── mcp_server.py            # MCP 服务器入口(12 个工具定义)
├── zhihu_mcp/               # 核心包
│   ├── scraper.py           # 知乎页面抓取(DOM 提取 + 内部 API)
│   ├── config.py            # 配置管理
│   ├── storage.py           # SQLite 数据层
│   ├── errors.py            # 自定义异常
│   ├── browser/
│   │   ├── manager.py       # 浏览器生命周期管理
│   │   └── stealth.py       # 反检测 JS 脚本注入
│   ├── cookies/
│   │   └── manager.py       # Cookie 加载与持久化
│   └── backend/
│       └── pinchtab.py      # Pinchtab HTTP 后端(备用)
├── skills/                  # OpenClaw 高级技能
│   ├── research-on-zhihu/
│   ├── analyze-zhihu-question/
│   ├── analyze-zhihu-answer/
│   └── track-zhihu-user/
├── tests/                   # 单元测试
├── config.example.json      # 配置文件模板
├── requirements.txt         # Python 依赖
└── pyproject.toml           # 项目元数据与打包配置

7. 常见问题

Q: Cookie 过期了怎么办?

重新从浏览器导出 Cookie,替换 cookies.json。关键 cookie z_c0 通常有效期约 6 个月。

Q: 搜索结果为空?

搜索功能使用知乎内部 API,需要有效的登录 Cookie。请先用 check_login_status 确认登录状态。

Q: 浏览器启动失败?

确保已运行 playwright install chromium 安装浏览器。macOS 上如果遇到沙箱问题,设置环境变量 TMPDIR=/tmp

Q: 和 zhihu_monitor 项目的关系?

zhihu-mcp 是 zhihu_monitor 的升级版,增加了搜索、内容详情、评论、用户资料等功能,并以标准 MCP 协议提供服务。

技术栈

  • Python 3.10+
  • Playwright — 浏览器自动化 + stealth 反检测
  • FastMCP (mcp) — MCP 协议服务器框架
  • SQLite — 本地数据持久化

致谢

本项目的开发受到以下开源项目的启发:

  • xiaohongshu-mcp by @xpzouying — 小红书 MCP 服务器。本项目的架构设计、MCP 工具组织方式和 OpenClaw Skills 格式均参考了该项目。
  • zhihu_monitor by @shural — 知乎用户动态监控工具。本项目的知乎 stealth 反检测策略、DOM 选择器和 Cookie 管理逻辑源自该项目。

感谢这两个项目的作者和贡献者们的优秀工作。

License

MIT

Related MCP servers

Browse all →