Skip to main content
Glama
WloBy-Labs

ZhihuMCP

by WloBy-Labs

zhihu-mcp

以读为主的知乎 MCP 服务器(stdio),统一读取:

  • 知乎想法https://www.zhihu.com/pin/{id}

  • 专栏文章https://zhuanlan.zhihu.com/p/{id}

  • 回答https://www.zhihu.com/question/{qid}/answer/{aid}

  • 一级评论(分页)、楼中楼回复(分页)

  • 作者、正文、发布时间、赞数、评论数等元信息

  • 用户当天动态发现:按自然日拉取某用户发布的回答/文章/想法列表

  • 问题搜索:按关键词搜问题,定位「回答最多 / 浏览量最热」的那个(可按日期精确过滤)

兼容 Claude Code CLICodex CLI。不含点赞/关注等社交写操作;仅有的两个写工具是回答草稿/编辑(zhihu_draft_answerzhihu_edit_answer),默认只存草稿或只预览,且受独立限频保护(间隔 ≥60s、每小时 ≤3 次),详见下方工具表。

工作原理

  • Playwright 管理一个独立持久化浏览器目录(默认 ~/.zhihu-mcp/browser-profile),不读取、不影响你日常浏览器的 Cookie。

  • 默认使用系统 Chrome(channel: "chrome",指纹更真实),失败时回退 Playwright 内置 Chromium。

  • 数据获取分层:

    1. 在已登录页面环境内同源调用知乎接口(评论、想法正文);

    2. 接口失效/触发校验时,导航到内容页解析内嵌的 js-initialData JSON(文章正文的主路径,因 /api/v4/articles 有浏览器签名校验);

    3. 最后回退 DOM 选择器解析。

  • 评论接口的签名校验是间歇性的(实测同一请求时而 200 时而 10003):先自动重试; 一级评论在重试仍失败时会导航到内容页,拦截页面自身发出的带签名请求作为终极回退。

  • 内置限速:相邻请求 ≥1.5s(含抖动)、每分钟 ≤20 次,可用环境变量调整。

  • Cookie 安全:登录态只存在本地浏览器目录;不经由 MCP 返回、不写日志、.gitignore 已排除。

Related MCP server: Zhihu-Collections-MCP

安装

cd ZhihuMCP
npm install
npm run build
# 若本机没有 Chrome,需要装内置浏览器:
# npx playwright install chromium

登录(首次使用)

推荐在终端登录(不受 MCP 工具超时限制):

npm run login

会弹出浏览器窗口,用知乎 App 扫码即可,完成后窗口自动关闭。也可以在对话里调用 zhihu_login 工具(需保证客户端工具超时 ≥3 分钟)。

登录过期时,任何工具会返回 NOT_LOGGED_IN 错误并提示重新登录。

接入 Claude Code CLI

方式一(命令行注册,作用于当前项目):

claude mcp add zhihu -- node /绝对路径/ZhihuMCP/dist/index.js
# 全局可用:claude mcp add --scope user zhihu -- node /绝对路径/ZhihuMCP/dist/index.js

方式二(项目 .mcp.json):

{
  "mcpServers": {
    "zhihu": {
      "command": "node",
      "args": ["/绝对路径/ZhihuMCP/dist/index.js"]
    }
  }
}

如需在对话内使用 zhihu_login(等待扫码约 1-3 分钟),启动时调大工具超时:

MCP_TOOL_TIMEOUT=300000 claude

接入 Codex CLI

~/.codex/config.toml 增加:

[mcp_servers.zhihu]
command = "node"
args = ["/绝对路径/ZhihuMCP/dist/index.js"]
# 如需在对话内扫码登录,调大工具超时(秒):
tool_timeout_sec = 300

或使用命令行(较新版本):

codex mcp add zhihu -- node /绝对路径/ZhihuMCP/dist/index.js

MCP 工具

工具

参数

说明

zhihu_login

打开浏览器窗口扫码登录

zhihu_check_login

返回 logged_in 与用户名

zhihu_get_content

url

读取想法/文章/回答正文与元信息

zhihu_list_comments

url, cursor?, limit?(≤20)

分页读取一级评论(想法/文章/回答)

zhihu_list_replies

comment_id, cursor?, limit?(≤20)

分页读取楼中楼回复

zhihu_list_followees

url_token?, cursor?, limit?(≤20)

分页读取「关注的人」,省略 url_token 查当前登录用户

zhihu_list_user_activity

url_token, date?, tz_offset_hours?, types?, max_items?

发现某用户在指定自然日(默认今天,北京时间)发布的回答/文章/想法列表

zhihu_search_questions

keyword, date?, limit?(≤50)

按关键词搜问题,返回按回答数降序列表并给出「回答最多」most_answers 与「浏览量最热」hottest 两个候选;传 date 按标题精确过滤到当天

zhihu_draft_answer

question_url, text, publish?

写操作:把纯文本写入问题的回答,默认仅存草稿

zhihu_edit_answer

answer_url, text, mode?, confirm?

写操作:编辑已发布回答,默认只预览、需 confirm=true 才改

写操作:zhihu_draft_answer(默认存草稿)

这是唯一的写工具,用于给知乎问题回答。与读工具不同,它会改变账号状态,因此有额外护栏:

  • 默认只存草稿publish 省略或为 false):通过页面自动化把文本写入回答编辑器,触发知乎自动保存,不点发布。你需要在网页端/App「创作中心 → 草稿箱」或问题页检查后手动发布。publish: true 才会直接发布。

  • 不逆向签名:全程走页面自身的编辑器与请求(与真人操作同路径),不构造写接口签名、不对抗验证码。

  • 防覆盖:若该问题已有未发布草稿,或你已回答过该问题,工具会拒绝写入并报错,不会覆盖已有内容。

  • 独立严格限频:默认写操作间隔 ≥60s、每小时 ≤3 次(超限直接报 RATE_LIMITED,不排队)。自动化发布比阅读更易触发风控,强烈建议低频、草稿优先、人工过目后再发

  • 格式:文本按换行分段写入,暂不渲染 Markdown(标题/加粗/列表会作为纯文本)。

  • 返回 modedraft/published)、answer_url(发布时)、question_titlechars

命令行用法(读文本文件存草稿):

node scripts/draft.mjs "https://www.zhihu.com/question/123456" answer.txt            # 存草稿
node scripts/draft.mjs "https://www.zhihu.com/question/123456" answer.txt --publish  # 直接发布(谨慎)

写操作:zhihu_edit_answer(编辑已发布回答,两步确认)

编辑已发布的回答会改动线上公开内容,风险高于草稿,因此护栏更重:

  • 默认只预览confirm 省略或 false):进入编辑器读取并返回当前线上内容和字数,不做任何修改、不消耗写配额。核对后带 confirm: true 才真正修改并点「提交修改」。

  • 两种模式mode: "append"(默认)在原回答末尾追加,保留原文与图片mode: "replace" 整篇替换——注意写入的是纯文本,原回答的图片/加粗/列表等富文本会丢失

  • 改前自动本地备份:覆盖前把原文存到 ~/.zhihu-mcp/backups/answer-{id}-{时间}.txt,改坏可找回。

  • 只能编辑本人发布的回答(否则页面无「修改」入口,会报错)。

  • 同样走写操作限频。

命令行用法:

node scripts/edit.mjs "https://www.zhihu.com/answer/123" update.txt              # 预览当前内容(不改)
node scripts/edit.mjs "https://www.zhihu.com/answer/123" update.txt --confirm    # 末尾追加并提交
node scripts/edit.mjs "https://www.zhihu.com/answer/123" full.txt --replace --confirm  # 整篇替换并提交

统一返回结构

zhihu_get_content

{
  "ok": true,
  "content_type": "pin | article",
  "id": "…",
  "url": "…",
  "title": "文章标题(想法为 null)",
  "body": "正文纯文本",
  "images": ["…"],
  "author": { "id": "…", "url_token": "…", "name": "…", "headline": "…", "avatar_url": "…" },
  "published_at": "ISO8601",
  "updated_at": "ISO8601",
  "vote_count": 0,
  "comment_count": 0,
  "source": "api | initial_data | dom"
}

zhihu_list_comments / zhihu_list_replies

{
  "ok": true,
  "comments": [
    {
      "id": "…",
      "content": "评论纯文本",
      "author": { "…": "…" },
      "created_at": "ISO8601",
      "like_count": 0,
      "reply_count": 3,
      "reply_to_author": { "…": "被回复者(楼中楼)" },
      "is_author": true
    }
  ],
  "next_cursor": "下一页游标,null 表示无",
  "has_more": true,
  "total": 42
}

zhihu_list_followees

{
  "ok": true,
  "url_token": "被查询用户",
  "users": [
    {
      "id": "…", "url_token": "…", "name": "…", "headline": "…",
      "avatar_url": "…", "follower_count": 0, "answer_count": 0, "articles_count": 0
    }
  ],
  "next_cursor": "5",
  "has_more": true,
  "total": 10
}

翻页:首页不传 cursor;之后把上一页的 next_cursor 原样传入,直到 has_more=false

zhihu_list_user_activity

{
  "ok": true,
  "url_token": "xu-ze-qiu",
  "date": "2026-07-13",
  "tz_offset_hours": 8,
  "items": [
    {
      "type": "answer | article | pin",
      "id": "…",
      "url": "…(可直接喂给 zhihu_get_content / zhihu_list_comments)",
      "title": "回答=问题标题;文章=标题;想法=null",
      "excerpt": "摘要(≤140 字)",
      "created_at": "ISO8601",
      "voteup_count": 0,
      "comment_count": 0
    }
  ],
  "counts": { "answer": 4, "article": 0, "pin": 0 },
  "truncated": false
}

items 按发布时间倒序。三类内容按 created 降序拉取、翻到早于目标日即停止;某类达到 max_itemstruncated=true(可能漏掉更早的当天内容,可调大 max_items)。

zhihu_search_questions

{
  "ok": true,
  "keyword": "如何看待2026年7月13日A股行情",
  "date": "2026-07-13",
  "questions": [
    {
      "id": "…",
      "title": "…",
      "url": "https://www.zhihu.com/question/{id}",
      "answer_count": 159,
      "follower_count": 174,
      "visits_count": 485990,
      "comment_count": 0,
      "updated_at": "ISO8601"
    }
  ],
  "date_matched": 9,
  "most_answers": { "…": "answer_count 最大的问题" },
  "hottest": { "…": "visits_count 最大的问题" }
}

搜索为模糊匹配、会混入其它日期;传 date 会按标题(去空白后含「{年}年{月}月{日}日」)精确过滤到当天,most_answers/hottest 在命中集内选取(无命中回退全集)。questions 按回答数降序。「热度」以 visits_count(浏览量)为代理。

错误返回

{ "ok": false, "error": "NOT_LOGGED_IN", "message": "…", "hint": "…" }

错误码

含义

NOT_LOGGED_IN

未登录或登录过期,需 zhihu_login / npm run login

ANTI_CRAWLER

触发知乎风控校验,降低频率稍后重试;可 ZHIHU_MCP_HEADFUL=1 手动过校验

NOT_FOUND

内容不存在或已删除

RATE_LIMITED

请求过于频繁

INVALID_URL / INVALID_PARAM

链接或参数不合法

PARSE_ERROR

接口与 DOM 解析均失败(页面结构可能已变化)

BROWSER_ERROR

浏览器无法启动

LOGIN_TIMEOUT

扫码等待超时或窗口被关闭

环境变量

变量

默认值

说明

ZHIHU_MCP_PROFILE_DIR

~/.zhihu-mcp/browser-profile

浏览器持久化目录

ZHIHU_MCP_BROWSER_CHANNEL

chrome

浏览器 channel,失败回退内置 Chromium

ZHIHU_MCP_HEADFUL

0

1 始终有头运行(便于手动过风控)

ZHIHU_MCP_MIN_INTERVAL_MS

1500

相邻请求最小间隔

ZHIHU_MCP_MAX_PER_MINUTE

20

每分钟最大请求数

ZHIHU_MCP_LOGIN_TIMEOUT_MS

180000

扫码等待超时

ZHIHU_MCP_NAV_TIMEOUT_MS

30000

页面导航超时

ZHIHU_MCP_WRITE_MIN_INTERVAL_MS

60000

写操作最小间隔

ZHIHU_MCP_WRITE_MAX_PER_HOUR

3

写操作每小时上限

测试

npm test             # 单元测试(URL 解析、HTML 转文本、评论映射、错误分类)
npm run smoke        # 冒烟:拉起 MCP 服务器,列工具、查登录态
npm run acceptance   # 端到端验收(需已登录):想法/文章正文、评论分页、楼中楼、错误分类

验收说明:计划中的首个验收用例 pin/2060006380807968738 实测已被知乎删除 (接口 404、桌面页回落到首页信息流、评论区关闭仅残留计数 451),服务器对其正确返回 NOT_FOUND;验收脚本因此改用存活想法验证完整读取链路,并保留该链接验证错误分类。

已知限制

  • 想法评论区被关闭/内容被删时,知乎接口会返回空数据但 is_end 恒为 false; 本服务器会终止翻页(has_more=false)并透出 notice(如「评论区已关闭」)。

  • 楼中楼回复在知乎持续强制签名校验时只有重试兜底(一级评论有页面拦截回退)。

  • 成员内容接口(zhihu_list_user_activity 用到的 answers/articles/pins)的签名校验也是间歇性的,已内置签名错误自动重试;若持续触发仍会返回 ANTI_CRAWLER

  • 回答/文章正文走页面 js-initialData 解析(对应接口有签名校验);zhihu_list_user_activity 返回的 voteup_count 对回答可能为 null(列表接口未下发),需要精确赞数时用 zhihu_get_content 读单条。

  • zhihu_draft_answer 依赖问题页的回答编辑器 DOM;知乎改版可能需要更新按钮/编辑器选择器。文本不渲染 Markdown。

  • 尚无「读取问题正文」工具(问题页正文未做成工具;回答正文已由 zhihu_get_content 支持)。

  • 不做验证码绕过与风控对抗;触发校验时需人工在有头浏览器中处理。

  • zhihu_login 需要图形界面;纯远程/无头环境请先在本地登录后同步 ~/.zhihu-mcp 目录(注意其中含登录凭据,请勿提交仓库或外传)。

Available Tools

10 tools
zhihu_check_loginA
Read-only

检查当前知乎登录状态,返回 logged_in 与用户名。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the return payload (logged_in and username), adding behavioral detail. The readOnlyHint annotation already covers safety, so the explanation of return values supplements it without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with front-loaded verb and resource, zero filler. Every word adds meaning and the return values are mentioned compactly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, a read-only annotation, and the mention of return fields, the description fully covers the tool's needs. No output schema is present, but the description explicitly lists the expected return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline is 4. The description appropriately omits parameter details since there are none to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses specific verb '检查当前知乎登录状态' (check current Zhihu login status) and explicitly mentions returns (logged_in and username). Clearly distinguishes from sibling zhihu_login, which presumably performs login.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that this is a status-checking tool, implying it should be used to verify login before operations. No explicit alternatives or when-not-to-use guidance, but the purpose is self-evident and reading-oriented.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_draft_answerA

把纯文本写入指定知乎问题的回答编辑器。默认只存草稿(不发布),需要人工在网页端/App 检查后手动发布;publish=true 才会直接点击发布。文本按换行分段,不支持 Markdown 渲染。写操作有独立严格限频(默认间隔≥60s、每小时≤3次)。若该问题已有未发布草稿或已回答过,会拒绝写入以防覆盖。

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes回答正文(纯文本,换行分段)
publishNotrue 时直接发布;默认 false 仅存草稿
question_urlYes知乎问题链接,如 https://www.zhihu.com/question/123456

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With only minimal annotations (readOnlyHint=false, destructiveHint=false), the description provides rich behavioral context: draft vs. publish, manual review requirement, plain-text line-break formatting, strict rate limits (≥60s interval, ≤3/hour), and overwrite-prevention refusal. This goes well beyond the annotations and helps the agent anticipate side effects and failures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the purpose first, then covers publishing semantics, formatting, rate limits, and refusal conditions in four dense sentences. Every sentence adds useful, non-redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description fully specifies the tool's behavior for selection and invocation: what it writes, how publishing works, formatting rules, rate limits, and refusal conditions. No important behavioral aspect is left ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with descriptions, so the baseline is 3. The description reinforces the text format and publish default but does not add substantial parameter-level meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a specific verb and resource: '把纯文本写入指定知乎问题的回答编辑器' (write plain text into the answer editor of a specified Zhihu question). It clearly distinguishes itself from sibling tools like zhihu_edit_answer by emphasizing draft-by-default behavior and refusing if an answer already exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains the default draft-only behavior, the publish=true option, and the refusal when an existing draft or answer is present, effectively implying use for new drafts. However, it does not explicitly name zhihu_edit_answer as the alternative for editing existing answers, so it falls just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_edit_answerA
Destructive

编辑你【已发布】的知乎回答。这会改动线上公开内容,因此有两步确认:默认 confirm=false 时只返回当前线上内容做预览、不修改;核对后带 confirm=true 才真正修改并提交。mode=append(默认)在原回答末尾追加,保留原内容与图片;mode=replace 整篇替换(注意:写入的是纯文本,原回答的图片/富文本格式会丢失)。修改前会自动本地备份原文。只能编辑本人发布的回答。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoappend=末尾追加(默认,安全);replace=整篇替换(会丢失原富文本格式)
textYesappend 模式为追加到末尾的文本;replace 模式为替换全文的文本(纯文本,换行分段)
confirmNo默认 false 只预览当前内容不修改;true 才真正执行编辑并提交
answer_urlYes回答链接,如 https://www.zhihu.com/question/{qid}/answer/{aid} 或 https://www.zhihu.com/answer/{aid}

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Even though annotations already mark the tool as destructive (destructiveHint=true), the description adds substantial behavioral detail: it modifies live public content, requires a two-step confirm (preview with confirm=false, commit with confirm=true), preserves original content in append mode, and warns that replace mode loses images and rich-text formatting. It also mentions automatic local backup before modification, going far beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph but every sentence serves a purpose: purpose, confirmation flow, mode semantics, data-loss warning, backup, and permission constraint. It is longer than minimal but justified for a destructive editing tool with multiple modes. The structure could be improved with bullet points, but it remains efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex destructive tool with no output schema, the description covers the workflow, mode differences, data-loss risks, backup, and permission requirements. It does not describe the success response after confirm=true or error scenarios (e.g., authentication failure), but the sibling login tools provide context and the parameters are fully documented. Overall, the description is nearly complete for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already fully documents all four parameters. The description reinforces parameter behavior (e.g., confirm=false previews, text varies by mode), but adds little meaning beyond what the schema already provides, such as the plain-text caveat already present in the text parameter description. Baseline 3 is appropriate when the schema carries the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: '编辑你【已发布】的知乎回答' (edit your published Zhihu answer), clearly distinguishing this from sibling tools like draft_answer (for unpublished drafts) and get_content (for reading). It further clarifies the two modes (append/replace), making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use context: editing one's own published answers, with a two-step confirmation workflow. It explicitly states a constraint, '只能编辑本人发布的回答' (can only edit answers published by yourself), but it does not name alternative tools or explicitly state when not to use this tool in favor of others, so it stops short of full alternative differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_get_contentA
Read-only

读取知乎想法、专栏文章或回答的正文与元信息(作者、发布时间、赞数、评论数)。支持 https://www.zhihu.com/pin/{id}、https://zhuanlan.zhihu.com/p/{id}、https://www.zhihu.com/question/{qid}/answer/{aid}。评论请用 zhihu_list_comments。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes知乎想法、专栏文章或回答链接

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds valuable context about supported URL formats and the specific metadata returned (author, publish time, likes, comment count), going beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences: the first states the core function, the second details supported URL formats and redirects comment-related queries to another tool. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single parameter, a read-only annotation, and support for multiple URL types, the description sufficiently covers the tool's scope and return expectations. Minor omissions like pagination or size limits are not critical for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covering 100% of parameters already describes the 'url' parameter as a link. The tool description enriches this by listing the exact URL patterns accepted, providing meaning beyond the schema's minimal description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads content and metadata from Zhihu pins, column articles, and answers. It lists specific URL patterns, distinguishing it from sibling tools like zhihu_list_comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly directs users to use zhihu_list_comments for comments, providing a clear alternative. It defines the supported URL types, making it clear when to use this tool, though it doesn't discuss other potential alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_list_commentsA
Read-only

分页读取知乎想法或专栏文章的一级评论。首页不传 cursor;用返回的 next_cursor 取下一页,has_more=false 表示读完。楼中楼回复请用 zhihu_list_replies。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes知乎想法或专栏文章链接
limitNo每页条数,默认 20(接口上限 20)
cursorNo上一页返回的 next_cursor,首页省略

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint=true already discloses the safe read-only nature. The description adds meaningful behavioral context beyond that: how pagination works (cursor, next_cursor, has_more), and that only top-level comments are returned. It does not mention auth needs or rate limits, but the annotation lowers this burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise: two sentences, front-loaded with the main action, and every sentence carries necessary information. No filler or redundant restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read-only tool with no output schema, the description adequately covers the key usage complexity: pagination protocol, stopping condition, and the distinction between first-level and nested comments. It could have briefly described the overall response shape, but it does mention next_cursor and has_more, which covers the essential return guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters, so baseline is 3. The description adds value by explaining the cursor relationship (return next_cursor from previous page) and the '首页不传 cursor' rule, which is not fully obvious from the schema alone. The limit and url semantics are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('分页读取' - paginated read) on a specific resource ('知乎想法或专栏文章的一级评论' - first-level comments on Zhihu ideas or column articles). It also distinguishes itself from the sibling tool 'zhihu_list_replies' by explicitly noting that nested replies belong to that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use guidance is provided: use for first-level comments, and use zhihu_list_replies for '楼中楼回复' (nested replies). Pagination usage is clearly specified with instructions about cursor: '首页不传 cursor;用返回的 next_cursor 取下一页,has_more=false 表示读完.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_list_followeesA
Read-only

分页读取某用户「关注的人」列表。url_token 省略时查当前登录用户。首页不传 cursor;用返回的 next_cursor 取下一页,has_more=false 表示读完。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo每页条数,默认 20
cursorNo上一页返回的 next_cursor,首页省略
url_tokenNo用户的 url_token(个人主页 URL 中 /people/ 后的部分),省略则为当前登录用户

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, so the safety profile is known. The description goes beyond this by disclosing the pagination contract: omit cursor on first page, use returned next_cursor for subsequent pages, and stop when has_more=false. This is valuable behavioral information not present in the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loaded with the core purpose, and reads naturally. Every sentence adds meaningful usage information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a paginated read tool with no output schema, the description covers the essential operation: resource, default subject, and pagination protocol. It does not describe the return item structure, but '关注的人列表' makes the response type self-evident. The behavior is fully specified for practical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a bit of context by explaining the cursor flow and the default for url_token, but these details largely mirror the schema descriptions. It does not add substantial new parameter semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource: '分页读取某用户「关注的人」列表' (paged read of a user's followees list). It clearly identifies the operation and the target resource, and it is distinguishable from siblings like zhihu_list_user_activity and zhihu_list_comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: how to query the current user vs. a specific user via url_token, and how to handle pagination with cursor and has_more. It does not mention sibling alternatives or exclusions, but this is a simple list tool where the primary usage pattern is well explained.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_list_repliesA
Read-only

分页读取某条一级评论的楼中楼回复。comment_id 来自 zhihu_list_comments 返回的评论 id。首页不传 cursor;用返回的 next_cursor 取下一页。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo每页条数,默认 20(接口上限 20)
cursorNo上一页返回的 next_cursor,首页省略
comment_idYes一级评论 id

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already conveys safety. The description adds concrete pagination behavior (first page no cursor, use next_cursor later) and explains the provenance of comment_id, which goes beyond structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences fully convey the operation, pagination flow, and parameter provenance without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only paginated list tool, the description covers the workflow adequately. It lacks details about response contents or auth requirements, but the pagination instructions and schema fill most gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well-documented. The description adds extra semantic value by specifying that comment_id comes from zhihu_list_comments, which helps the agent source the correct value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool reads paginated nested replies for a given first-level comment (分页读取某条一级评论的楼中楼回复). It clearly distinguishes from sibling tool zhihu_list_comments by targeting replies to a comment rather than top-level comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear usage context: comment_id comes from zhihu_list_comments and cursor handling for pagination. It doesn't explicitly exclude alternatives, but the relationship to the sibling list tool makes the use case evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_list_user_activityA
Read-only

发现某用户在指定自然日(默认今天,Asia/Shanghai)发布的回答/文章/想法,返回条目列表(含 url、标题、摘要、发布时间、赞数、评论数),不含正文全文与评论。拿到列表后请用 zhihu_get_content 读正文、zhihu_list_comments 读热评。三类内容按发布时间降序拉取,翻到早于目标日即停止。url_token 是主页 URL 中 /people/ 后的部分。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo目标自然日 YYYY-MM-DD,省略则为 tz_offset_hours 时区下的今天
typesNo只取指定类型,省略则回答/文章/想法全取
max_itemsNo每类内容最多返回条数(安全上限),默认 40
url_tokenYes用户的 url_token(个人主页 URL 中 /people/ 后的部分)
tz_offset_hoursNo计算自然日边界所用的时区偏移,默认 8(北京时间)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses behavioral details: content is pulled in descending publish time and stops when items are earlier than the target day, and it explicitly excludes full content and comments. It also mentions the default timezone (Asia/Shanghai), adding valuable context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each with a clear purpose: the first explains purpose and output, the second provides cross-tool usage guidance, and the third covers ordering/stop behavior and url_token. Every sentence earns its place with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema and 5 parameters (all fully described in the schema), the description covers the essential workflow: what is listed, what is excluded, how to use related tools, and the pagination logic. It is self-sufficient for selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minor clarity by restating the date default (Asia/Shanghai) and the url_token definition (after /people/), but these are already present in the schema, so no significant extra semantics are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb '发现' (discover/list) with a clear resource: a user's answers/articles/pins on a specified natural day. It explicitly states what is returned and what is excluded, and distinguishes itself from sibling tools by directing to zhihu_get_content for full content and zhihu_list_comments for hot comments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use zhihu_get_content for reading the full content and zhihu_list_comments for hot comments after obtaining the list, clearly indicating when not to use this tool. It also clarifies that this tool only returns list metadata, not full text or comments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_loginA

打开浏览器窗口扫码登录知乎。登录态保存在本地独立浏览器目录,不经由 MCP 返回。注意:需要在有图形界面的机器上使用;若客户端工具调用超时时间较短(<3 分钟),建议改在终端运行 npm run login

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that login state is stored locally, not returned via MCP, and that graphical interface is required. It also mentions a workaround for short timeouts. It could add behavior on successful/failed scans, but the disclosed information is substantial.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences plus a note, front-loaded with the main action. Every sentence adds operational value, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter, no-output tool, the description covers prerequisites, side effects, and a fallback option. It lacks explicit success/failure behavior but is otherwise adequate for an AI agent to select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema covers 100% (vacuously). The baseline score of 4 applies, and the description adds context about what the tool returns (nothing), which is helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: opening a browser window for QR-code login to Zhihu. It uses specific verbs and resources, and the context about local storage distinguishes it from related tools like zhihu_check_login.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear operational context: requires a GUI and warns about timeout issues, suggesting a terminal alternative (`npm run login`). It does not explicitly contrast with sibling tools like zhihu_check_login, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

zhihu_search_questionsA
Read-only

按关键词搜索知乎问题(如「如何看待X月X日A股行情」),返回按回答数降序的问题列表,每条含 answer_count(回答数)、visits_count(浏览量=热度代理)、follower_count(关注数)、url。并直接给出 most_answers(回答最多的一个)与 hottest(浏览量最高的一个)两个候选。搜索是模糊匹配、会混入其它日期,传入 date(YYYY-MM-DD)会按标题精确过滤到当天再选候选。适合先定位当天的「今日行情」问题,再把它的 url 交给 zhihu_draft_answer。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo目标自然日 YYYY-MM-DD,用于按标题精确过滤(强烈建议传,避免选到别的日期)
limitNo返回问题条数上限,默认 20
keywordYes搜索关键词,如「如何看待2026年7月13日A股行情」

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses that search is fuzzy and may mix dates, that results are sorted by answer count, that visits_count serves as a heat proxy, and that it outputs specific candidates. These details help set expectations about behavior and output.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense: it covers purpose, output structure, two convenience fields, fuzzy matching behavior, and the recommended workflow in just a few sentences. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool with no output schema, the description fully specifies the return list fields and the two candidate objects. It also explains the sorting order and the purpose of each key field, making it self-sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains that the keyword is a fuzzy search query, that the date parameter filters titles to the exact day, and that limit controls the result count. It adds real-world context (like the example keyword) beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches Zhihu questions by keyword, returns a list sorted by answer count, and identifies two key candidates (most_answers and hottest). It also gives a concrete example query, distinguishing it from sibling tools like content retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit guidance: use this tool to locate the day's 'today's market' question, then pass its URL to zhihu_draft_answer. It also warns about fuzzy matching and advises passing a date to filter precisely, giving clear context for when and how to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv0.1.0
    • First observedzhihu_check_login
    • First observedzhihu_draft_answer
    • First observedzhihu_edit_answer
    • First observedzhihu_get_content
    • First observedzhihu_list_comments
    • First observedzhihu_list_followees
    • First observedzhihu_list_replies
    • First observedzhihu_list_user_activity
    • First observedzhihu_login
    • First observedzhihu_search_questions

TDQS

A4.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool has a clearly distinct purpose. zhihu_list_comments explicitly directs users to zhihu_list_replies for nested replies, and zhihu_get_content is separate from activity listing. No two tools appear to perform the same action.

Naming Consistency5/5

All tool names follow the consistent pattern zhihu_<verb>_<object> (e.g., list_comments, get_content, draft_answer). Even the exception 'login' is a simple verb that fits the overall naming convention.

Tool Count5/5

With 10 tools, the set is well-scoped for a Zhihu client, covering authentication, content retrieval, comment browsing, search, and answer creation. Each tool has a clear role without unnecessary bloat.

Completeness3/5

The set lacks a tool to read a question's full details (only answers/articles/thoughts are supported by zhihu_get_content), and there are no tools for commenting or publishing drafts directly. Agents can work around some gaps but question context is essential for many workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A simple HTTP API server that allows users to publish articles, create answers, manage columns, and upload images on Zhihu (a Chinese Q&A platform) through straightforward REST API endpoints.
    8
    -
  • A
    license
    A
    quality
    D
    maintenance
    A lightweight MCP server that provides read-only access to Xiaohongshu (Little Red Book) data, enabling search, note details, user profiles, and trending feeds via direct HTTP APIs.
    5
    14 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to search, read, and analyze Zhihu content including questions, answers, comments, and user activities through the MCP protocol.
    4
    MIT