Skip to main content
Glama

CNR MCP

让 Claude Code、GitHub Copilot、Cursor 等 Agent 检索、阅读和引用中国知网论文。 支持校内 IP 直接识别与校外统一身份认证(Shibboleth / CARSI)两种机构访问方式。

机构适配是自动的:登录后从页面读取机构名,不依赖硬编码名单,任何学校都能识别。 另外内置了 40 所院校的 SSO 入口(北京、沈阳、大连的主要高校), 这些学校在校外可以直接跳转到本校认证页,无需手动查找。

访问方式

本项目支持两种知网机构访问方式,无需切换代码:

场景

需要做什么

校内 Wi-Fi / 校园网

知网按 IP 自动识别机构,不需要登录,直接检索即可

校外

跑一次 --login,在专用 Chrome 窗口里点「机构登录 → 校外访问」,选择你的学校并完成统一认证

登录状态保存在独立 Chrome 档案中(默认 ~/CNKIResearchMCP/browser-profile), 不会影响你日常使用的 Chrome。会话过期后重跑 --login 即可。

校外访问能否成功取决于学校当前是否开通 CARSI 或校外访问服务, 以及学校是否订阅了对应文献。本工具不提供任何绕过订阅或访问控制的能力。

Related MCP server: cnki-mcp

安装

需要:Python 3.10+、Google Chrome。

cd ~/cnr-mcp
uv venv --python 3.11
uv pip install -e .

本项目使用你本机已安装的 Chrome(CNKI_BROWSER_CHANNEL 默认 chrome), 不需要另外下载 Playwright 的 Chromium。

登录(仅校外需要)

.venv/bin/python -m cnki_mcp_server --login

会打开一个专用 Chrome 窗口:

  1. 在知网首页点「机构登录」→「校外访问」;

  2. 机构选择你的学校;

  3. 在学校统一认证页面完成登录;

  4. 回到终端按回车确认。

校内 IP 用户可以跳过这一步,直接接入 Agent。

学校适配

机构身份不需要预先配置,代码里也没有「支持哪些学校」的白名单。

机构识别:从页面读,不靠名单

登录(校内 IP 或校外 SSO)之后,知网首页头部会显示 中央财经大学图书馆 这样的文字,工具从 div.ecp_header_unitName 直接读取并去掉「图书馆」后缀,得到学校名。

这样任何学校都能识别,包括没有列进任何名单的。识别结果用于:

  • get_login_status 返回的 institution_visible

  • 自动记忆到 ~/CNKIResearchMCP/institutions.json,下次校外登录直接复用

校外 SSO:内置 40 所院校入口

校外访问知网要走学校的统一身份认证(Shibboleth / CARSI)。 每次登录都去知网机构目录里查一遍很慢,所以内置了一批常用院校的 entityID:

地区

数量

学校

北京

24

清华、北大、人大、北航、北理、中国农大、北师大、中央民大、北交大、北工大、北科大、北化工、北邮、北林、北中医、中国传媒、中央财经、对外经贸、中央音乐、中国政法、华北电力、中国矿大(北京)、中国石油(北京)、中国地质(北京)

沈阳

8

东北大学、辽宁大学、中国医科大学、沈阳农大、沈阳工大、沈阳航空航天、沈阳理工、沈阳药科

大连

8

大连理工、大连海事、大连医科、大连外国语、大连海洋、大连交通、东北财经、辽宁师范

合计

40

以代码里的 KNOWN_SSO_ENTITY_IDS 为准。

不在表里的学校也能用,只是需要现场查一次目录:

  1. 已内置 → 直接拼出 SSO 地址跳转,无需查询目录

  2. 本地学过(之前登录成功过)→ 用缓存的地址

  3. 都没有 → 实时检索 fsso.cnki.net 的机构目录,查到后自动记忆

三种路径都会验证落地页是真登录页(有密码框、正文不是 XML 元数据), 验证不通过才继续下一条,避免停在 Shibboleth 元数据文档上。

加一所新学校

如果某所学校常用,想免去现场查询,加一行即可:

KNOWN_SSO_ENTITY_IDS = {
    ...
    "某某大学": "https://idp.xxx.edu.cn/idp/shibboleth",
}

entityID 可以从知网 校外访问系统 输入校名后 的自动补全链接里拿到(entityID= 后面的部分)。

两个注意点:

  • 存 entityID,不要存完整 URL。https://idp.xxx.edu.cn/idp/shibboleth 直接打开是 XML 元数据,不是登录页;必须由代码包成 fsso.cnki.net/Shibboleth.sso/Login?entityID=... 才能跳转。

  • 少数学校的 IdP 只支持 http,https 会被浏览器直接拒绝。这类学校加进 INSTITUTIONS_HTTP_ONLY 集合即可(目前只有大连交通大学)。

未接入知网 FSSO 的学校

有些学校在 CARSI 里但没进知网的机构目录(如北京外国语大学、北京体育大学、 大连工业大学)。这类学校无法自动跳转,工具会停在机构列表页让你手动选择。 如果确认该校有 CARSI、只是知网目录没收录,可以按上面的方法手工补一个 entityID。

接入 Claude Code

用户级(所有项目可用):

claude mcp add --transport stdio --scope user cnki -- ~/cnr-mcp/.venv/bin/python -m cnki_mcp_server

或手动写进 ~/.claude.json:

{
  "mcpServers": {
    "cnki": {
      "command": "/path/to/cnr-mcp/.venv/bin/python",
      "args": ["-m", "cnki_mcp_server"]
    }
  }
}

重启 Claude Code,用 /mcp 查看 cnki 是否已连接。

接入其他 Agent

本工具是标准的 stdio MCP server(FastMCP 4.x),任何支持 MCP 的客户端都能接, 换的只是配置文件位置,工具名和行为完全一致。

GitHub Copilot(VS Code)

VS Code 1.102+ 内置 MCP 支持。在工作区建 .vscode/mcp.json (或从命令面板 MCP: Open User Configuration 打开用户级配置):

{
  "servers": {
    "cnki": {
      "type": "stdio",
      "command": "/path/to/cnr-mcp/.venv/bin/python",
      "args": ["-m", "cnki_mcp_server"]
    }
  }
}

在 Copilot Chat 里把对话模式切到 Agent,工具选择器里勾选 cnki 即可。 注意 command 要写绝对路径 —— Copilot 启动子进程时的 PATH 未必包含项目虚拟环境。

Cursor

~/.cursor/mcp.json(全局)或项目根目录 .cursor/mcp.json(单项目):

{
  "mcpServers": {
    "cnki": {
      "command": "/path/to/cnr-mcp/.venv/bin/python",
      "args": ["-m", "cnki_mcp_server"]
    }
  }
}

在 Cursor Settings → MCP 里确认 cnki 显示为绿色(已连接)。

WorkBuddy / 其他 MCP 客户端

WorkBuddy 这类客户端大多在设置界面提供「添加 MCP Server」的表单, 或允许直接导入 JSON。需要填的字段只有三个:

字段

填什么

类型 / Transport

stdio

启动命令

/path/to/cnr-mcp/.venv/bin/python

启动参数

-m cnki_mcp_server(即 args: ["-m", "cnki_mcp_server"])

如果客户端只支持 HTTP 传输(或你想让多个 Agent 共用一个实例), 用 HTTP 模式启动:

CNKI_MCP_PORT=8000 ~/cnr-mcp/.venv/bin/python -m cnki_mcp_server --http

然后在客户端里添加远程 MCP,地址填 http://127.0.0.1:8000/mcp。 服务默认只监听 127.0.0.1,不要改成 0.0.0.0 —— 它带着你的知网机构权限。

通用要点

  • 命令写绝对路径:Agent 拉起的子进程往往拿不到你的 shell 配置,找不到 python

  • 同时只能跑一个实例:专用 Chrome 档案有文件锁,两个实例抢同一个 profile 会失败。 多个 Agent 要共用,就都连同一个 HTTP 模式实例

  • 首次连接会拉起 Chrome:在配置里加 "env": {"CNKI_SHOW_BROWSER": "false"} 可保持后台运行(默认已是后台)

  • 验证仍需要人:遇到滑块时窗口会跳到前台等你操作, 在 Agent 客户端里看起来就是「工具调用卡住」,属正常现象,时限由 CNKI_CAPTCHA_TIMEOUT 控制(默认 300 秒)

  • 不需要为每个 Agent 重新登录:会话存在 Chrome 档案里,所有 Agent 共用

可配置环境变量

变量

默认值

说明

CNKI_INSTITUTIONS

空

可选的补充机构名(逗号分隔)。机构名默认从页面自动读取,一般不需要设置;仅当页面结构变化导致读不到时才用于兜底匹配

CNKI_DATA_DIR

~/CNKIResearchMCP

数据目录

CNKI_PROFILE_DIR

$CNKI_DATA_DIR/browser-profile

专用 Chrome 档案

CNKI_HEADLESS

true

后台运行浏览器;调试时可设为 false

CNKI_BROWSER_CHANNEL

chrome

可改成 msedge

CNKI_DIRECT

true

专用浏览器是否绕过系统代理直连知网

CNKI_MCP_PORT

8000

--http 模式端口

CNKI_CAPTCHA_TIMEOUT

300

等待人工完成验证的秒数

CNKI_IDLE_TIMEOUT

1800

常驻浏览器空闲多久后自动关闭(秒)

CNKI_ZOTERO_DIR

~/Zotero

本地 Zotero 数据目录,用于读取已有 PDF

CNKI_CDP_URL

空

设置后连接你本机已开启调试端口的 Chrome,而不是启动独立 profile

CNKI_SHOW_BROWSER

false

为 true 时把工作标签页切到前台(调试用);默认后台运行

也可以在 ~/CNKIResearchMCP/settings.json 里写 {"show_browser": true}, 改完立即生效、不用重启(优先级高于环境变量):

echo '{"show_browser": true}'  > ~/CNKIResearchMCP/settings.json   # 调试可见
echo '{"show_browser": false}' > ~/CNKIResearchMCP/settings.json   # 默认后台

| CNKI_USER_AGENT | 空 | 一般不要设。默认让 Chrome 报告真实 UA | | CNKI_HEADLESS | false | 设为 true 则不显示窗口;此时遇到验证请求会直接报错,因为没有窗口可操作 |

可用工具

工具

用途

search_cnki

多字段检索、作者/期刊筛选、多页和排序

get_paper_detail

获取完整题录、摘要和可用权限入口

read_paper_fulltext

分段读取机构授权的在线正文(HTML 阅读器)

read_pdf_text

读取本地 PDF 的正文,纯本地、不联网、不触发验证

read_papers_batch

批量读取多篇正文(1–20 篇),一次调用完成;缓存的走本地进程池

download_papers_batch

批量下载 PDF,已缓存的自动跳过

list_cached_papers

列出本地已有的论文(CNKI 缓存 + Zotero 书库),纯离线

get_paper_citations

参考文献(本文引用了谁)/ 引证文献(谁引用了本文)

download_paper_pdf

下载机构授权 PDF

find_best_match

根据标题核验并匹配文献

get_login_status

检查会话状态,不返回认证秘密

renew_session

重新登录知网(先开窗口,完成后调 confirmed=true)

会话过期怎么判断

知网不会提示 Cookie 过期,页面看起来一切正常,实际只表现为下载失败或提示「机构没有额度」。 知网也没有公开 Cookie 有效期,公开的只有机构漫游时限(非假期 15 天、假期 60 天、 全球学术快报授权 3 天),且校内 IP 认证根本不依赖 Cookie。

因此本项目不设固定时长,而是用两条可验证的信号:

  1. 本地检查:每次任务开始前读取浏览器里知网 Cookie 的 expires。 只有「持有的 Cookie 全部过期」才判定会话失效——空 Cookie 不算失败,因为 IP 认证不需要它。

  2. 失败时验证:下载按钮没出现时,先加载一次知网检查机构身份,再决定是报「文献无 PDF」 还是报「会话已过期」。

判定过期后不会再反复重试,而是要求你调用 renew_session 手动恢复:

renew_session()                    # 打开知网窗口
# 校内直接访问即可;校外点「机构登录 → 校外访问」
renew_session(confirmed=True)      # 验证并记录

效率:几处关键取舍

检索

  • 直达结果页:用 korder + kw + crossids 直接打开结果列表,跳过首页加载、逐字输入和联想框。

  • 排序按控件状态决定,不靠猜。知网结果页打开时默认就是「被引降序」,无条件再点一次会翻成升序——这正是曾经"按被引排序却返回零被引文献"的原因。现在读取控件的 cur / ASC / DESC 类,只在方向不对时点击。

  • 结果表一次取出:整张表用一次 page.evaluate 取回,而不是逐行、逐字段读 DOM。

读取

  • 优先 read_paper_pdf(下载 + 本地解析)。HTML 阅读器是独立的高风控入口,同一篇文献在线阅读容易弹滑块,下载则不会。

  • 缓存按论文身份定位:归一化标题 + 第一作者 + 年份。知网摘要页 URL 带易变的 v= 参数,同一篇每次检索都会得到不同标签,按标签缓存等于永远不命中。

  • 解析结果存旁车(.txt + .meta.json),用 size 和 mtime 校验;只对缓存目录内的文件写旁车,不碰 Zotero 书库。

  • 已缓存的读取完全不启动浏览器,不触发 Cookie 预检。

批量

  • read_papers_batch 默认并发 1。提高并发更容易触发点选验证,保持串行更稳妥。

  • 已缓存部分用进程池并行解析:pypdf 是 CPU 密集型,线程受 GIL 限制,进程池能真正并行。

  • 整批正文按 total_char_budget 分配(默认 2 万字),超出的条目改为返回 text_path,避免结果被静默截断。

来源类别(核心期刊)筛选

search_cnki 的 source_category 参数可以按核心期刊目录筛选:

query='ESG', source_category='北大核心,CSSCI'

为什么这个能力要单独做:知网专业检索的字段下拉里只有 16 个字段 (主题、篇关摘、关键词、篇名、全文、作者、第一作者、通讯作者、作者单位、 基金、摘要、小标题、参考文献、分类号、文献来源、DOI),没有来源类别, 所以表达式写不出这个条件,只能走结果页侧栏的 dl[groupid="LYBSM"] 分组。

实现优先级:能用表达式表达的一律走表达式(稳健、一次生效);只有表达式 表达不了的才走侧栏。侧栏是点击驱动的 JS 状态,URL 里不体现,比表达式脆弱。

其他注意事项:

  • 可选标签:北大核心 / CSSCI / AMI / WJCI / CSCD / EI / SCI(不同检索下可用项不同)

  • 多选是并集(OR)不是交集,与点选顺序无关。 想要「既是北大核心又是 CSSCI」做不到 —— 侧栏同一分面内只能 OR。

  • 选中后会重新加载结果列表并折叠分组,所以每次选择前都要先重新展开

  • 侧栏分组只对前 4 万条记录生效,超出时计数不完整

  • 整本期刊下载时不需要这个参数 —— 刊名定了,来源类别就固定了

  • 返回结果里的 source_category 字段会带 applied / missing / counts / total,便于核对

批量下载:先建清单表,再整轮执行

只要一次要下载的文献超过一小批(整本期刊某一年、某主题的全部论文、某作者的全部成果、 若干条件组合的检索结果),都走同一条流程。核心是先把清单表格定稿,再按表机械执行, 不要边搜边下。

  1. 确定检索条件 —— 用户给的所有条件都落到 search_cnki 参数上: journal、author、query、search_type、sort、pages。 只有刊名没有主题时 query='*' 通配;按期号归档用 sort='发表时间'; pages 拉满,翻页直到超出目标范围。

  2. 核对总量 —— 看 total_papers 与用户说的范围比对,结果里常混有邻近年份或 相关度不足的条目,先按条件筛掉。

  3. 建清单表 —— 全部条目一次性整理成表(分组键 / 标题 / 作者 / 标签),存成 TSV。 表格定稿后整轮往下跑,中途不再重新检索。

  4. 按分组分目录 —— 文件夹按分组键命名(2026-01、2026-02 …), save_dir 指向当期。

  5. 先问清非论文条目 —— 「导读与推荐」「重点选题指引」「招生简章」默认剔除,需要时先问。

  6. 警惕同名缓存跳过 —— 不同期次的同名条目命中缓存后 skipped=true, 文件不会落到当期目录,不能当已下载。

  7. 按表核对 —— 逐组统计「应有 / 已有」,缺失项列成 retry 清单再补。 一批超时不要立刻重试 —— 多为风控或机构配额触发,应停下等冷却。

先查本地,再联网

查文献前先调 list_cached_papers。 它把两个来源合在一起,全部离线:

来源

位置

读取方式

CNKI 缓存

~/CNKIResearchMCP/pdf-cache/

read_paper_pdf(按标签)

Zotero 书库

~/Zotero/storage/

read_pdf_text(按 file_path)

search_cnki 的每条结果也会带两个字段:

  • cached:CNKI 缓存里已经下载过

  • in_zotero:Zotero 书库里已有这篇(按标题模糊匹配)

命中任意一个就直接读本地,不联网、不触发验证。

Zotero 库路径可用 CNKI_ZOTERO_DIR 覆盖,默认 ~/Zotero。读取是只读的, Zotero 正在运行时也能用,不会修改你的书库。

批量读文献:先下 PDF 再本地读

在线 HTML 阅读器是知网管控最严的入口,最容易触发验证。如果一次要读十几二十篇, 推荐这条路径:

download_paper_pdf  →  read_pdf_text
  1. download_paper_pdf 把 PDF 存到本地

  2. read_pdf_text(或 read_paper_pdf,下载+解析一步到位)在本地抽文本,分段返回

下载也会触发验证——详情页点下载按钮同样可能弹滑块。 但两条路径的验证次数差别很大:

路径

每篇文献的联网请求

验证机会

在线阅读

打开阅读器 + 章节接口 + 每次重读都要再来一遍

多

下载 + 本地读

只有下载那一次

一次

所以真正的收益是:一篇文献只撞一次验证门,之后读多少遍都不联网。 读十几二十篇时差距很明显。

其他好处:

  • PDF 留在本地,反复引用不用重新联网

  • read_paper_pdf 按标签缓存,同一篇第二次读是瞬时的

注意:扫描版 PDF 没有文本层,会明确报错,需要另外做 OCR。

用你自己的 Chrome(推荐,可显著减少风控)

独立 profile 没有浏览历史、cookie 和扩展,在知网眼里是"陌生设备",容易触发风控。 把你的日常 Chrome 档案复制一份交给本工具用,就能带上真实的信任状态。

Chrome 136+ 出于安全考虑,禁止在默认档案上开启调试端口(即使显式写出默认路径)。 所以必须使用复制出来的独立目录。

一次性准备(首次启动自动执行)

MCP 会自己启动带调试端口的 Chrome,不需要手动跑脚本。唯一需要准备的是档案副本, 而这件事在服务首次启动时会自动尝试完成,不需要你主动发起。

自动执行的过程

  1. 服务第一次加载时,自动把日常 Chrome 档案复制到 ~/.cnki-chrome-profile

  2. 如果 Chrome 正开着,复制会失败 —— 这是唯一需要你配合的地方

  3. Agent 会从 get_login_status 的 profile_bootstrap 字段看到失败原因, 提示你退出 Chrome,然后重试

成功之后 profile_bootstrap.status 为 prepared 或 already_prepared,无需再管。

为什么不用你动手

独立档案没有浏览历史、Cookie 和扩展,在知网眼里是"陌生设备",更容易弹验证。 复制一份日常档案过来就能带上真实的信任状态。这件事做得越早,后面遇到的验证越少, 所以默认让它自动完成,而不是留给你去记。

想自己来做

cnr-prepare

不在 PATH 里就用完整路径,例如 ~/cnr-mcp/.venv/bin/cnr-prepare。 等价写法:<安装目录>/.venv/bin/python -m cnki_mcp_server --prepare-chrome。

执行前需要先完全退出 Chrome(⌘Q)。重做时加 --force。

也可以对 Agent 说「准备一下浏览器档案」,它会调用 prepare_browser_profile 工具代跑。

结果

日常档案会被复制到 ~/.cnki-chrome-profile(约 300 MB,排除缓存)。 只需做一次;之后重启电脑、重启 Chrome 都不必重复。不需要 sudo——只写用户主目录。

没有成功也不影响使用:MCP 会自动回退到独立档案,只是更容易触发验证。

让 MCP 使用它

~/.claude.json 的 cnki 项加 env:

"env": { "CNKI_CDP_URL": "http://127.0.0.1:9222" }

重启 Claude Code 生效。之后:

  • 调试端口的 Chrome 没开 → MCP 自动启动它

  • 已经在运行 → 直接复用

  • 找不到 Chrome 或档案副本 → 自动回退到独立档案,并打印原因

这个模式下的行为差异

  • 用复制档案里的 cookie / 历史 / 扩展,指纹与日常浏览器一致

  • 不会动你已有的标签页;工具只操作自己新开的标签

  • 不会关闭这个 Chrome;断开时只断开连接

  • 工具会新开一个状态标签页(home.html),显示当前在做什么和运行日志; 断开时只关闭这个标签页,你的标签一个不动

  • 自动启动时会直接打开状态页,不会多出空白页

  • 调试端口只监听 127.0.0.1,但本机任何程序都能通过它控制这个 Chrome,不用时关掉即可

什么时候需要重新复制档案

日常 Chrome 里重新登录知网、或 cookie 过期后,复制档案不会自动同步。 届时重新执行第 1 步(先关掉调试实例)即可。

验证与常驻窗口

知网会对自动化访问弹出两类验证:滑块(向右拖动)和点选图形(依次点击图中文字)。 本工具不会自动破解,只负责把窗口送到你面前。

一个窗口,全程复用

浏览器是常驻的:第一次请求打开一个 Chrome 窗口,之后所有检索、读正文、下载都在这同一个窗口里开标签页, 不会每次开关。验证通过一次,整个会话内都有效。

空闲时窗口会停在 ~/CNKIResearchMCP/home.html,上面写着「这是 MCP 常驻窗口,无需操作」, 不会出现空白的 about:blank。可以自己改这个文件,但下次启动 MCP 时会覆盖回默认内容。

空闲 30 分钟后自动关闭(可用 CNKI_IDLE_TIMEOUT 秒数调整)。手动关掉窗口也没关系,下次请求会重新打开。

遇到验证时

工具只在真的做不成事的时候才报告验证,不会因为页面上残留验证文案就提前退出。 检测到验证会立即返回,不会卡在那里等:

  1. 返回 captcha: true 和提示,验证所在标签页保留在窗口里

  2. 你手动完成滑块或点选图形

  3. 重新调用刚才的工具即可——验证状态在整个会话内有效

验证页不会在你操作途中被关掉。完成后再调一次,通常就直接通过了。

状态与日志

实际工作跑在后台标签页里,所以常驻窗口的首页会实时显示当前在做什么:

正在检索知网(ESG)/ 正在阅读文献(某某标题)/ 正在下载并解析 PDF(某某标题)/ 等待你完成验证 / 空闲

默认情况下,真正干活的标签页留在后台,前台始终是这一页,不会看到标签页反复开合。 调试时把 CNKI_SHOW_BROWSER 设为 true 即可看到实际操作过程。

页面下方有「运行日志」,默认折叠,点开可看带时间戳的历史记录(最多 200 条), 用来回溯刚才跑过什么。

也可以主动打开验证窗口(推荐在批量读文献前先做一次):

调用 open_verification_window 工具

它会在常驻窗口里打开知网首页并置顶,你完成验证后再发请求,后续都不会再被打断。

工具

用途

open_verification_window

打开可见验证窗口,手动完成滑块/点选

试一句

检查我的知网登录状态,然后检索近五年关于「公司金融」的中文论文,按被引量排序。

登录与安全

MCP 没有读取或设置 Cookie 的工具,也不会把 Cookie、令牌、账号或密码返回给模型。 所有网页导航均限制为 HTTPS 的 *.cnki.net 域名。使用 HTTP 模式时服务默认只监听 127.0.0.1,请勿改成 0.0.0.0。

许可

MIT 许可证,详见 LICENSE。

请遵守学校、数据库和版权方的使用规则,避免高频批量下载。

Available Tools

17 tools
download_paper_pdfDownload Paper PdfB

使用本机持久 SSO 会话下载机构已授权的 CNKI PDF 文件。

NameRequiredDescriptionDefault
paperYes论文标签(从 search_cnki 返回的 label 字段)
save_dirYesPDF 保存目录的绝对路径

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations at all, the description carries the full burden; it does disclose the important trait that the download depends on a local persistent SSO session and institutional authorization. It does not disclose side effects (writes a file to disk), failure behavior when the session expires or entitlement is missing, or whether a verification window may open (relevant given the open_verification_window sibling).

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?

A single compact sentence with no filler, and the key constraint (authorized via persistent SSO) is front-loaded. It is efficient but so terse that it omits behavior an agent needs, leaving little structure to build on.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and both required parameters are fully documented in the schema. Still, for a tool that mutates the filesystem and depends on live authentication, the description should say what happens on auth failure or when the PDF is already cached — gaps that matter given siblings like list_cached_papers and renew_session.

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%, and the schema already explains that 'paper' is a label from search_cnki and 'save_dir' must be an absolute path. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb and resource ('下载…CNKI PDF 文件') and adds the retrieval mechanism (local persistent SSO session). An agent can tell it downloads a single PDF for one paper, though it never explicitly contrasts itself with the sibling download_papers_batch or read_paper_pdf.

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

Usage Guidelines3/5

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

The clause '机构已授权的' implies the precondition that the user must have institutional entitlement, which is useful routing context. However, there is no explicit when-to-use vs. download_papers_batch / read_paper_pdf / list_cached_papers guidance, and no statement of what to do when unauthorized.

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

download_papers_batchDownload Papers BatchA

批量下载 PDF,一次调用完成多篇;已在缓存中的直接跳过。

NameRequiredDescriptionDefault
papersYes论文标签列表,最多 20 篇;已缓存的会跳过
save_dirYesPDF 保存目录的绝对路径
concurrencyNo并发下载数,默认 1;实测 2 路并发更容易触发验证

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It usefully discloses the cache-skip behavior, but says nothing about what happens on partial failures, that downloads may trigger verification (a concern the schema hints at), or what auth/session state is required.

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?

A single compact sentence with the batch capability front-loaded and the cache behavior as a secondary clause. No filler, nothing to cut.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and the three parameters are fully documented in the schema. However, for a networked batch download that can hit verification walls and requires a session, the description omits failure and auth context that an agent would need to plan around.

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 all three parameters including concurrency limits and the verification caveat are already documented in the schema. The description only restates the cache-skip rule, adding nothing beyond structured data; baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('批量下载 PDF') plus batch scope ('一次调用完成多篇'), which implicitly separates it from the single-file sibling download_paper_pdf. It never names the sibling explicitly, so differentiation relies on the word '批量'.

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

Usage Guidelines3/5

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

Usage is implied by '一次调用完成多篇' — use this when you have multiple papers. There is no explicit when-not guidance (e.g., use download_paper_pdf for a single paper) and no prerequisites such as login state mentioned, despite siblings like get_login_status and open_verification_window.

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

export_papersExport PapersA

把已缓存的论文 PDF 复制成「年份_作者_标题.pdf」,统一放进一个文件夹。纯本地,不联网。

论文定稿后要把引用文献一并交给别人时用这个:缓存里的文件名是哈希, 直接打包会看不出是哪一篇。

NameRequiredDescriptionDefault
papersNo要导出的论文:用 list_cached_papers 返回的 label(cnki:…)或 Zotero 条目的 zotero_key,前缀 zotero:。留空 = 导出全部 CNKI 已缓存论文
output_dirNo输出目录,默认 ~/Downloads/cnki-export

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/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, and it discloses useful traits: it works purely locally with no network access, it renames files by a deterministic year_author_title scheme, and it explains that the cache stores hash names — the reason the export exists. It still does not say what happens when a paper is not cached, when the output directory already contains files, or what the return looks like, but the disclosures it does make are valuable.

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?

Two short paragraphs, front-loaded with the core operation and then the motivation. Every sentence earns its place and there is no filler, though the second paragraph is largely rationale rather than operational detail.

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 2-parameter tool whose parameters are fully documented, with an output schema, and with no safety annotations needed beyond 'local, no network', the description is nearly complete. It gives what the tool does, why it matters, and where the output goes; only edge-case behaviour (what happens when a paper is not cached) is missing.

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 both parameters are already fully documented — the paper labels (cnki:… / zotero:…) and the default output directory. The description adds no extra syntax or format details about them, so the baseline of 3 applies.

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 states a concrete verb and resource: it copies cached paper PDFs, renames them to '年份_作者_标题.pdf', and writes them into one folder. The line '纯本地,不联网' tells an agent it is a local file operation, which separates it from the network-downloading sibling tools such as download_papers_batch and download_paper_pdf.

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 gives a clear context for use: when the paper is finalised and the references must be handed to someone else, creating a plain 'list of citations'. It does not explicitly state when not to use it or name the sibling it replaces (for example, download_papers_batch when the PDFs are not yet cached), so the guidance is solid but incomplete.

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

find_best_matchFind Best MatchB

快速查找与输入标题最匹配的 CNKI 论文。

NameRequiredDescriptionDefault
queryYes论文标题

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description carries the full behavioral burden, yet it only says the lookup is 'quick/快速'. It does not state whether matching is exact or fuzzy, whether it is a pure read with no side effects, or how ties/no-match cases behave — all relevant given siblings like open_verification_window and the download/cache tools.

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?

One short sentence with zero waste and the matching criterion front-loaded. It is efficient but borders on under-specification rather than achieving tight completeness.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and there is only one well-documented parameter. Still, with no annotations and 16 siblings, the description should at minimum say this is a read-only best-match lookup and how it differs from search_cnki.

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% and the sole parameter already documents itself as '论文标题', so the schema does the heavy lifting. The description's phrase '输入标题' merely restates that, adding no constraints on length, formatting, or whether the full title is required.

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

Purpose4/5

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

States a specific verb ('查找...最匹配') and resource ('CNKI 论文'), so the agent knows it returns the single closest paper rather than a list. It does not name or contrast with the obvious sibling search_cnki, so the agent must infer the difference between 'best match' and 'search'.

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

Usage Guidelines3/5

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

Usage is only implied: 'with an input title' suggests using it when you already have a title and want one exact paper. There is no explicit when-to-use vs. search_cnki / get_paper_detail, and no statement about what happens when no match is found.

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

get_login_statusGet Login StatusA

检查 CNKI 持久登录状态;绝不返回 Cookie、令牌、账号或密码。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does add one genuinely useful behavioral fact: it never returns cookies, tokens, accounts, or passwords, which stops an agent from fishing for credentials. It does not disclose whether the check is purely local or triggers a browser/network call, nor any rate-limit or side-effect profile, so the disclosure is partial.

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 short clauses, front-loaded with what is checked and followed by the key privacy guarantee. Every clause earns its place and nothing is padded.

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?

An output schema exists, so return values need not be explained, and with zero parameters the surface is small. What remains thin is the operational context: no statement of when to call it relative to renew_session or whether the call has side effects.

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 takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description correctly adds no redundant parameter commentary.

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

Purpose4/5

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

States a specific verb (检查/check) and a specific resource (CNKI 持久登录状态/persistent login status), which is enough to separate it from read-oriented siblings like search_cnki or get_paper_detail. It does not explicitly contrast with the closest sibling, renew_session, so the boundary with session management is left implicit.

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

Usage Guidelines3/5

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

There is no explicit when-to-use or when-not-to-use statement, nor any reference to alternatives such as renew_session or open_verification_window. Usage is only inferable from the purpose itself (check status before an authenticated operation), which is the definition of implied guidance.

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

get_paper_bibtexGet Paper BibtexA

获取 CNKI 论文的 BibTeX 引用条目(来自 CNKI 官方导出,并补充 DOI、摘要、关键词),可直接复制到 .bib 文件中使用。

NameRequiredDescriptionDefault
paperYes论文标签(从 search_cnki 返回的 label 字段)

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden for behavioral transparency. It adds useful provenance and content information: this is the official CNKI export, supplemented with DOI, abstract, and keywords. However, it omits operational behavior such as whether an active session or login is required, whether some papers have no BibTeX, and whether results are cached.

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?

It is a single sentence that is front-loaded with the verb and resource. It contains no filler, and the parenthetical enrichment note earns its place by telling the agent what extra fields appear in the result.

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?

An output schema exists, so it does not need to describe return values, and the description identifies the data source and the enriched fields. The only gap is context about how it fits with its siblings and whether a session is needed.

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?

There is only one parameter, and schema coverage is 100%; the schema already explains that 'paper' is the label field returned by search_cnki. The description adds no additional syntax, format, or sourcing guidance beyond that, so the baseline of 3 for high-coverage schemas applies.

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

Purpose4/5

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

It uses the specific verb 'get' (获取) with a precise resource, the BibTeX citation entry, and the scope, CNKI papers. It distinguishes itself implicitly from the other sibling tools by naming the output format and the enrichment it adds (DOI, abstract, keywords), though it does not explicitly name a sibling tool to differentiate itself.

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

Usage Guidelines3/5

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

The phrase '可直接复制到 .bib 文件中使用' (can be copied directly into a .bib file and used) implies that this tool is useful when inserting citations into a reference manager. However, it does not say when to choose this tool rather than get_paper_detail or export_papers, nor does it mention prerequisites or exclusions.

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

get_paper_citationsGet Paper CitationsB

获取论文的参考文献(本文引用)或引证文献(引用本文)。

NameRequiredDescriptionDefault
kindNoreferences=参考文献(本文引用了谁);citing=引证文献(谁引用了本文)references
limitNo本次最多返回条数
paperYes论文标签(从 search_cnki 返回的 label 字段)
offsetNo起始条目序号,配合 next_offset 翻页

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses the two retrieval modes, but says nothing about pagination behavior, result ordering, rate/session constraints, or that paper labels must come from a prior search_cnki call (only the schema hints at this). For a zero-annotation tool this is a notable gap.

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?

A single compact sentence with the core operation front-loaded and no filler. However, it spends its only clause restating the kind enum that the schema already defines, rather than spending that space on usage or behavioral guidance.

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

Completeness3/5

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

With full schema coverage and an output schema present, the description needn't explain return values, so the essentials for calling the tool are covered. But for a zero-annotation tool with a required paper label sourced from another tool, a hint about that dependency and pagination would materially improve completeness.

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 kind, limit, offset and paper are all documented in the schema itself. The description only restates the kind semantics that the schema already spells out, adding no formatting or value-range detail beyond it. Baseline 3 applies.

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

Purpose4/5

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

The description names a specific verb (获取/get) and resource (论文的参考文献/引证文献) and clarifies both directions — what the paper cites vs. who cites it — so the agent can distinguish it from a generic detail lookup. It does not explicitly name or differentiate against siblings like get_paper_detail, which keeps it below a 5.

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

Usage Guidelines3/5

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

Usage is implied by the two-mode framing (references vs. citing), but there is no explicit statement of when to prefer this tool over get_paper_detail or search_cnki, nor any stated prerequisites. The agent must infer the call context.

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

get_paper_detailGet Paper DetailC

获取 CNKI 论文详情页的完整信息。

NameRequiredDescriptionDefault
paperYes论文标签(从 search_cnki 返回的 label 字段)

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, yet it discloses nothing beyond the basic fetch intent. It does not say whether a live CNKI session or login is required (siblings like renew_session and get_login_status imply session-dependent tooling), whether a browser window is opened, or what 'complete information' covers.

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?

A single short sentence with no filler and the resource front-loaded. It is efficient, though its terseness is part of why the behavioral gaps exist.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the parameter is fully covered by the schema. However, with no annotations and no differentiation from several closely related siblings, the definition is only minimally sufficient for correct tool selection.

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% and the single parameter is well documented in the schema, including that the label comes from search_cnki. The description adds no additional semantics, so the baseline of 3 applies.

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

Purpose4/5

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

States a specific verb and resource: retrieving the complete information of a CNKI paper detail page. The intent is unambiguous, but it does not distinguish itself from siblings such as read_paper_fulltext, get_paper_citations, or get_paper_bibtex, which also return paper-level data.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus read_paper_fulltext, read_paper_pdf, get_paper_citations, or get_paper_bibtex. No prerequisites or exclusions are stated, so the agent must infer the choice from the name alone.

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

list_cached_papersList Cached PapersA

列出本地已有的论文(CNKI 缓存 + Zotero 书库)。纯离线,不访问知网。

查文献前先调用本工具。命中的文献用 read_pdf_text 读取其 file_path, 或(CNKI 缓存的)直接调 read_paper_pdf,都不会产生任何网络请求。

NameRequiredDescriptionDefault
queryNo可选:按标题或作者筛选,留空列出全部
include_zoteroNo是否包含本地 Zotero 书库中的 PDF

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations to lean on, the description carries the burden itself and discloses the important traits: fully offline, no CNKI access, and no network requests on the follow-up read paths. It doesn't cover result ordering, empty-result behavior, or size limits, keeping it short of a 5.

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?

Three short lines: what the tool returns, when to call it, and what to do with the results. The offline guarantee is stated up front rather than buried, and no sentence is 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?

An output schema exists, so return-shape detail is unnecessary; the description instead supplies the workflow context (call first, then read via file_path or read_paper_pdf). Minor gaps remain around result size and behavior when nothing matches, but nothing an agent needs to invoke it correctly is missing.

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 query and include_zotero are already documented in the schema, including the default of true for the latter. The description adds nothing about either parameter, so the baseline 3 applies.

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?

States a specific verb (列出) and a precisely scoped resource: local papers from two named sources (CNKI cache + Zotero library). The clause 纯离线,不访问知网 immediately distinguishes it from the online sibling search_cnki.

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?

Gives an explicit trigger (查文献前先调用本工具) and then routes the agent onward: use read_pdf_text with the returned file_path, or read_paper_pdf for CNKI-cached entries. This names both the condition and the alternatives, which is rarer than a mere 'use this to list papers'.

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

open_verification_windowOpen Verification WindowA

打开知网验证窗口,供你手动完成滑块或点选图形验证。

窗口会保持在最前,完成后无需关闭——同一浏览器会话内后续请求可直接通过。

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/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 behavioral burden and does a good job: it explains that the window stays in front, does not need to be closed, and enables later requests in the same browser session to pass. It does not cover edge cases such as what happens if no browser session exists, but the key session-persistence behavior is disclosed.

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 short sentences, front-loaded with the purpose and followed by the important post-completion behavior. Every sentence adds useful information with no waste.

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 the simple zero-parameter interface, absence of annotations, and presence of an output schema, the description covers the essential purpose and session behavior. It could be slightly more complete by stating when a verification window is likely needed, but it is adequate for correct invocation.

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 takes zero parameters, so there are no parameter semantics to document; baseline 4 applies. The description appropriately does not add irrelevant parameter details.

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

Purpose4/5

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

The description states a specific action and resource: opening a CNKI verification window for manual slider or click-image verification. It is clearly distinct from sibling tools such as search_cnki or read_paper_fulltext, though it does not explicitly name alternatives or contrast itself with tools like renew_session.

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 gives a clear usage context: call this when CNKI requires manual slider or click-image verification. It does not explicitly state when not to use it or name an alternative tool, but the context is sufficiently clear for an agent to infer the situation.

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

prepare_browser_profilePrepare Browser ProfileA

一次性准备:把日常 Chrome 档案复制给本工具,降低知网风控。

独立档案没有浏览历史、Cookie 和扩展,在知网眼里是陌生设备,更容易弹验证。 复制一份日常档案过来,就能带上真实的信任状态。只需要做一次, 之后重启电脑、重启 Chrome 都不用重复。

这是可选的:不做也能用,MCP 会回退到独立档案,只是更容易触发验证。

调用前请先完全退出 Chrome(macOS 按 ⌘Q),否则复制出来的档案不完整。 如果返回 status=chrome_running,提示用户退出 Chrome 后再次调用本工具即可。

也可以由用户自己在终端跑 cnr-prepare,效果相同。

NameRequiredDescriptionDefault
forceNo已存在时是否覆盖重做。默认 false,只在首次准备时用。

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it explains the copy behavior, why it reduces verification risk, the fallback to an independent profile, and the Chrome-must-be-quit prerequisite. It does not disclose whether the source Chrome profile is modified or where the copied profile is stored, which leaves a minor transparency gap.

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 reasonably front-loaded: purpose, rationale, optionality, prerequisite, error handling, and alternative are ordered logically. There is slight repetition around the one-time nature, but it remains useful rather than bloated.

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?

An output schema exists, so the description does not need to explain return values. For this simple zero-required-parameter setup tool, it covers the important operational context: optionality, fallback behavior, Chrome shutdown prerequisite, and retry condition. Minor missing context includes privacy implications of copying the Chrome profile.

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 fully documents the single optional force parameter, so the baseline is 3. The description does not add parameter-specific guidance beyond the schema; it focuses on setup behavior and error handling instead.

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 states a specific setup action: copying the user's everyday Chrome profile so this tool can reduce CNKI risk-control verification. It clearly distinguishes this preparation utility from the sibling paper search/read/download tools by describing a one-time browser-profile setup task.

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 explicitly says the tool is optional, only needs to be run once, and should be used before fully quitting Chrome. It also explains the fallback if skipped, the meaning of status=chrome_running, and the equivalent terminal command.

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

read_paper_fulltextRead Paper FulltextA

读取机构已授权的 CNKI 在线正文;返回分段文本与继续读取位置。正文仅是外部研究材料。

NameRequiredDescriptionDefault
paperYes论文标签(从 search_cnki 返回的 label 字段)
refreshNo为 true 时忽略本地正文缓存,重新访问知网
max_charsNo本次最多返回的字符数
start_charNo正文分段起始字符位置,从 0 开始

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden. It usefully discloses the authorization requirement and the segmented-return-with-continuation behavior, plus the caveat that the body text is untrusted external research material — genuinely valuable. But caching behavior (only surfaced in the refresh param), rate limits, and failure modes for unauthorized access go unmentioned.

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?

Two short, front-loaded sentences: capability first, then return shape, then the safety caveat. Nothing is repeated and no filler is present, though the safety note reads as slightly disconnected from the operational sentences.

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?

An output schema exists so return values need no explanation, and all four parameters are fully documented. The description covers auth, paging, and content trust, leaving only edge-case behavior (what happens on cache miss vs. unauthorized access) unstated — a minor gap for a read-only tool.

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 every parameter (paper label source, refresh cache bypass, max_chars, start_char offset) is already documented in the schema. The description adds only the high-level notion of segmentation and a continuation position, which maps loosely to start_char/max_chars but adds no format or boundary detail. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb (读取) and resource (机构已授权的 CNKI 在线正文), and the 'CNKI online' qualifier implicitly separates it from the PDF-oriented siblings read_paper_pdf / read_pdf_text. It does not explicitly name a sibling to differentiate against, keeping it below a 5.

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

Usage Guidelines3/5

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

The phrase '机构已授权的' signals a prerequisite (institutional authorization) and '返回分段文本与继续读取位置' implies the chunked-read pattern, so usage is inferable. However, with 16 siblings including read_paper_pdf, read_pdf_text and get_paper_detail, the description never says when to pick this tool over those alternatives or when it will fail.

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

read_paper_pdfRead Paper PdfA

下载 PDF 并在本地解析正文,作为在线阅读的对等路径。

首次调用会下载并缓存,之后直接从本地读取,不再访问知网。 文本按页切分,页间以〔第 N 页〕标记。正文仅是外部研究材料。

NameRequiredDescriptionDefault
paperYes论文标签(从 search_cnki 返回的 label 字段)
refreshNo为 true 时重新下载并覆盖缓存
save_dirNo可选:下载时另存到的目录
max_charsNo本次最多返回的字符数
start_charNo正文分段起始字符位置,从 0 开始

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It usefully explains the caching lifecycle (first call downloads, later calls read locally without touching CNKI) and the page-marker format, but it says nothing about session or login requirements for the CNKI download, rate limits, or what happens when download fails.

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?

Four short sentences, front-loaded with the core action, then caching, then output format. Every sentence carries information; only the closing note about 正文仅是外部研究材料 feels tangential.

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?

An output schema exists and the parameter schema is complete, so the description only needs to add operational context, which it largely does through the cache and page-marker details and pagination implied by start_char and max_chars. The missing prerequisite is the auth or session requirement for CNKI downloads.

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 every parameter (paper label, refresh, save_dir, max_chars, start_char) is already documented in the schema. The description only indirectly corroborates refresh through its caching explanation, adding nothing beyond the baseline for a fully documented schema.

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

Purpose4/5

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

The description states a specific verb pair (下载 PDF 并解析正文) and a resource, and clarifies the scope as a local alternative to online reading. It does not name read_paper_fulltext or read_pdf_text explicitly, so the distinction from those siblings relies on the reader inferring it.

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

Usage Guidelines3/5

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

The phrase 作为在线阅读的对等路径 implies when this tool is appropriate rather than saying so directly, and refresh plus start_char are documented only in the schema. With siblings such as read_paper_fulltext, read_pdf_text, and download_paper_pdf present, the description never states which one to pick or under what conditions.

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

read_papers_batchRead Papers BatchA

批量读取多篇论文正文,把 N 次工具往返压缩成 1 次。

已缓存的 PDF 直接在本地多线程解析,不联网;未缓存的按 concurrency 并发抓取。 单篇失败不影响其他篇,错误逐条返回。

NameRequiredDescriptionDefault
papersYes论文标签列表(形如 cnki:1a2b3c4d5e6f),最多 20 篇
max_charsNo每篇返回的最大字符数
concurrencyNo并发抓取数,默认 1;实测 2 路并发明显更容易触发点选验证
total_char_budgetNo整批返回正文的总字数上限;超出部分改为给出 text_path,由调用方按需分段读取

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/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 and does well: it discloses that cached PDFs are parsed locally with no network, uncached ones are fetched concurrently, and per-item errors are isolated and returned individually. The remaining gap is that it never mentions login/verification requirements or the 20-paper cap for network-bound fetches, which matters given siblings like renew_session and open_verification_window.

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?

Three short sentences, front-loaded with the batch purpose, then execution behavior, then failure semantics. Every sentence carries distinct information with no 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?

An output schema exists and the input schema is fully documented, and the description covers caching, concurrency, and partial-failure behavior. It is nearly complete for calling the tool correctly, losing only the authentication/verification caveat that the sibling set suggests is relevant.

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 schema already documents papers, max_chars, concurrency, and total_char_budget thoroughly. The description only echoes the concurrency behavior already stated in the schema and adds no new parameter semantics, so baseline 3 applies.

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?

States a specific verb and resource ('批量读取多篇论文正文') plus the value proposition of collapsing N round trips into one. That framing clearly distinguishes it from the single-paper sibling read_paper_fulltext without needing to name it.

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 'N round trips → 1' framing implicitly tells the agent to use this instead of looping single reads, and the concurrency note about CAPTCHA triggering is practical guidance. It stops short of explicitly naming alternatives or stating when not to batch, so it is not a full 5.

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

read_pdf_textRead Pdf TextA

读取已下载 PDF 的正文。纯本地操作,不访问知网,不会触发任何验证。

NameRequiredDescriptionDefault
file_pathYes本地 PDF 的绝对路径,或 list_cached_papers 返回的论文标签(cnki:…)
max_charsNo本次最多返回的字符数
start_charNo起始字符位置,从 0 开始

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the key behavioral trait: no network access to CNKI and no verification triggered, which is exactly the risk an agent cares about here. It stops short of other relevant traits — what happens on a scanned PDF with no text layer, whether truncation is signalled when max_chars is hit, and failure behavior for a bad path.

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 short sentences, the core action front-loaded, and the safety constraint immediately after. Nothing redundant or padded.

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

Completeness3/5

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

An output schema exists, so return values needn't be explained, and the tool is simple. But the surrounding family contains two closely overlapping readers (read_paper_fulltext, read_paper_pdf) plus read_papers_batch, and the description gives no basis for choosing among them — the main missing piece for correct 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 file_path (absolute local path or cnki: tag), max_chars and start_char are all fully documented in the schema. The description adds only the implicit hint that file_path points at something already downloaded. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: read the body text of an already-downloaded PDF. The 'already downloaded' qualifier usefully scopes it. However, it never distinguishes itself from the near-identical siblings read_paper_fulltext and read_paper_pdf, so an agent cannot tell from this text which one to open.

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

Usage Guidelines3/5

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

There is no explicit 'use this when…' or mention of the alternatives. The clause 'pure local operation, does not access CNKI, does not trigger verification' implies the usage condition (call this when you want to avoid hitting CNKI/anti-bot flows), but the agent must infer that and is given no routing rule against the sibling readers.

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

renew_sessionRenew SessionA

重新建立知网会话:先打开登录窗口,完成后再调用一次并设 confirmed=true。

知网 Cookie 过期时页面不会提示,只表现为下载失败或提示「机构没有额度」。 遇到这种情况先用本工具恢复。

校外场景优先传 school:校内 IP 认证不通时,会自动打开该校的 统一身份认证页面,而不是让你在弹窗里逐层点。

NameRequiredDescriptionDefault
schoolNo学校名称,如「中央财经大学」。校外且校内 IP 认证失败时,会直接跳到该校的知网校外访问 SSO 登录页,省去手动找入口。留空则打开知网首页自行操作。
confirmedNo已在窗口里完成登录后设为 true,用于验证并记录会话已恢复

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/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 and does well: it discloses that the tool opens an interactive login window, that it must be called a second time with confirmed=true after the user logs in, and that passing school triggers an automatic SSO redirect rather than manual popup navigation. It does not say whether the call blocks, what happens if the user never completes login, or whether it is safe to repeat.

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?

Four short blocks with the call protocol front-loaded, followed by the failure symptom that motivates the tool and the off-campus guidance. Every sentence carries actionable content; only mild redundancy between the description and the schema's school description.

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 an interactive, side-effect-heavy tool with no annotations, the description covers the workflow, the diagnostic symptom, and the SSO behavior, and an output schema exists so return values need not be explained. The main gap is failure handling — what to do if login is never completed or the renewal fails.

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% and both parameters are already documented in detail, so the schema does the heavy lifting. The description reinforces the two-step confirmed=true workflow and the off-campus rationale for school, but adds little semantic detail beyond what the schema properties already say; baseline 3 applies.

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

Purpose4/5

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

The opening line gives a specific verb and resource ('重新建立知网会话' — re-establish the CNKI session) and immediately describes the two-phase call protocol. It is clearly a session-repair tool, but it never names or contrasts with the near-siblings get_login_status and open_verification_window, which an agent must choose between.

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?

Strong, concrete triggering conditions: it states that expired CNKI cookies produce no visible prompt and surface only as download failures or an '机构没有额度' message, and that this tool should be used first in that case. It also prescribes the off-campus path (pass school). No explicit exclusions or named alternative tools are given, which keeps it below a 5.

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

search_cnkiSearch CnkiA

搜索 CNKI 论文,返回论文列表。支持通过 author 和 journal 参数分别筛选作者和期刊, 以及通过 source_category 按核心期刊目录筛选。

重要:query 参数只放主题/关键词/篇名,不要把作者名混入 query。 如需按作者搜索,请使用 author 参数。author 和 query 可组合使用。 示例:搜索张三关于经济增长的论文 → query='经济增长', author='张三' 示例:搜索核心期刊上的 ESG 研究 → query='ESG', source_category='北大核心,CSSCI'

NameRequiredDescriptionDefault
sortNo排序: 相关度/发表时间/被引/下载/综合 (英文: relevance/date/cited/download/composite)相关度
pagesNo搜索页数
queryYes搜索关键词(主题/篇名等,不要把作者名放在这里,请用 author 参数)。多个关键词用空格分隔,会自动用 AND 连接,如'北京 奥运'→SU='北京' * '奥运'
authorNo按作者筛选(可与 query 组合使用)。例如搜索某作者关于某主题的论文:query='经济增长', author='张三'。设置后自动使用专业检索。
journalNo限定期刊名称(精确匹配),如'经济研究'。多个期刊用+分隔,如'经济研究+管理世界'。设置后使用专业检索。
search_typeNo搜索类型: 主题/关键词/篇名/DOI (英文: subject/keyword/title/doi)。注意:按作者筛选请用 author 参数而非设置 search_type='作者'主题
source_categoryNo按期刊来源类别(核心目录)筛选,如 '北大核心'、'CSSCI',多个用逗号分隔(结果是并集)。可选值: 北大核心 / CSSCI / AMI / WJCI / CSCD。注意:这是结果页侧栏的分组筛选,专业检索没有对应字段;其他条件(年份、刊名、学科等)请优先用检索表达式,不要依赖侧栏。

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations, the description carries the full disclosure burden. It does add genuine behavioral detail — that setting author/journal switches the backend to 专业检索, and that source_category is a result-sidebar group filter with no professional-search equivalent — but it never mentions that this is a browser-session operation needing a login (siblings renew_session and get_login_status imply that dependency) or anything about rate limits or failure modes.

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?

Purpose is stated first, then the critical parameter constraint, then examples — a good front-loaded order with no filler prose. It is slightly redundant with the schema's own query and author descriptions, but the repetition is defensible for a misuse-prone parameter.

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 7-parameter search tool with an output schema (so return values need no explanation), the description covers search semantics, filter composition, and the sidebar-vs-expression caveat ('其他条件…请优先用检索表达式'). An agent can construct a correct call from this plus the schema; the only missing piece is session/auth state, which is minor here.

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 the baseline is 3; the description earns above that by repeating and reinforcing the highest-risk parameter rule (never put an author name in query) and by demonstrating parameter combinations in examples. Note the schema already documents sort/pages/search_type/source_category enumerations, so most added value is concentrated in the query-vs-author distinction.

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

Purpose4/5

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

The opening sentence gives a specific verb and resource plus the return shape: search CNKI papers and return a paper list. The scope is unmistakable against retrieval-oriented siblings like get_paper_detail or read_paper_fulltext, but no sibling is named explicitly, so differentiation is inferred rather than stated.

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 gives explicit routing rules with a warning ('重要:query 参数只放主题/关键词/篇名,不要把作者名混入 query'), tells the agent which parameter to use instead, and notes that author and query can be combined. Two worked examples ('经济增长' + author='张三'; 'ESG' + source_category='北大核心,CSSCI') remove any remaining ambiguity about how to compose a call.

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. 17 tool updatesv0.32.0
    • First observeddownload_paper_pdf
    • First observeddownload_papers_batch
    • First observedexport_papers
    • First observedfind_best_match
    • First observedget_login_status
    • First observedget_paper_bibtex
    • First observedget_paper_citations
    • First observedget_paper_detail
    • First observedlist_cached_papers
    • First observedopen_verification_window
    • First observedprepare_browser_profile
    • First observedread_paper_fulltext
    • First observedread_paper_pdf
    • First observedread_papers_batch
    • First observedread_pdf_text
    • First observedrenew_session
    • First observedsearch_cnki

TDQS

A3.5/5.0

Scored across 17 tools

Disambiguation3/5

Three overlapping reading tools (read_paper_fulltext for online, read_paper_pdf for download-and-parse, read_pdf_text for already-cached PDFs) require careful reading of the descriptions to distinguish, and find_best_match vs search_cnki overlap for retrieval. The descriptions do spell out the distinctions and the network side effects, but an agent can easily pick the wrong reader on first pass.

Naming Consistency4/5

All tools are snake_case with a leading verb (get_, search_, read_, download_, list_, export_, renew_), which is predictable. Minor deviations exist: the noun for the same concept varies (paper_fulltext vs paper_pdf vs pdf_text) and find_best_match/get_login_status are less self-describing than the rest.

Tool Count4/5

17 tools is slightly heavy but each covers a distinct lifecycle step: discovery, reading, batch fetching, session/auth recovery, and export. The inclusion of browser-session hygiene tools (renew_session, prepare_browser_profile, open_verification_window) is justified by the CNKI anti-bot domain.

Completeness4/5

The surface covers search, detail lookup, citations, fulltext (online and PDF), batch read/download, BibTeX export, and session/auth recovery — a full retrieval lifecycle. Gaps are minor: no metadata/field-filtered export besides BibTeX, and Zotero is only surfaced through list_cached_papers rather than dedicated library tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI agents to search and retrieve academic papers from China National Knowledge Infrastructure (CNKI), supporting various search types including subject, keyword, author, and DOI lookups.
    3
    21
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to search CNKI (China National Knowledge Infrastructure), download PDFs, and import them into Zotero with automatic PDF attachment.
    32
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to search and retrieve paper information from CNKI (China National Knowledge Infrastructure), supporting 15 search types, pagination, sorting, and detailed metadata extraction.
    3
    1
    MIT