MCP server for Zhihu (知乎) AI assistant integration, providing tools to query Zhihu's AI chat (Zhida), search answers/articles, fetch content, and monitor topics
Server exposes 7 tools with partial schema coverage. Tool names follow verb_noun convention (zhida_ask, zhida_get_session, zhihu_search_and_fetch). Descriptions present but vary in quality: zhida_ask and zhihu_search_and_fetch have detailed docstrings (200+ chars); others are brief (30-80 chars). Input schemas visible for all tools with type declarations and parameter descriptions. However, output schemas are NOT documented, LLMs cannot predict return structure. No error handling guidance, no recovery hints. No tool annotations (readOnlyHint, destructiveHint). Code shows blocking I/O (waits for stream 'End') which may cause timeout issues in agent loops. Composition is reasonable (each tool has single responsibility), but missing pagination guidance for list_sessions and search results.
ask a new question or follow-up (blocking; waits for stream `End` then returns aggregated result)
deep-dive one citation card by URL: pulls the full HTML content of a zhihu answer/article
pull the full conversation for a session id (works for the numeric id in share-URLs like zhida.zhihu.com/search/<id>)
the user's own session history
检查 cookie 有效性 + 用户信息 + 签发时间. Agent 应定时调用.
[Agent 定时监控专用] 一次并发监控 N 个独立话题. 每个 topic 独立跑 zhihu_search_and_fetch, 用 ThreadPoolExecutor 并发, 结果按 topic 分组返回
Output schemas not documented. LLMs cannot predict return structure for any tool. zhida_ask returns {question, ...turn_dict}, zhida_list_sessions returns list[dict], zhihu_search_and_fetch returns {query, total_searched, filtered_count, items[], errors[], elapsed_seconds}, none of this is in the tool definition.
No error handling guidance. Tools can fail (invalid URL, cookie expired, API rate limit, network timeout) but return no recovery hints. E.g., zhida_fetch_zhihu raises ValueError('URL is not a zhihu answer/article') with no suggestion for what to do next.
No tool annotations. All tools are READ_ONLY but lack readOnlyHint in schema. This prevents agents from reasoning about side effects and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
一次调用完成: 搜关键词 → 按质量筛选 → **并发抓正文**. 支持的过滤维度: min_vote (质量), kinds (类型), since_days (时间), already_seen_ids (dedup)
Blocking I/O in zhida_ask: 'waits for stream End then returns aggregated result'. No timeout specified. Agent calling this in a loop risks hanging indefinitely if stream never closes.
Parameter descriptions lack format/constraint details. E.g., 'chat_model' defaults to 'CM_DEEP_SEEK_R1' but no enum of valid values. 'knowledge_ids' is array but no description of element type or format. LLMs cannot validate inputs.