Skip to main content
Glama
ChengDSYJ-Studio

CNKI-Enhanced-MCP

CNKI-Enhanced-MCP

让 AI 真正使用中国知网检索、筛选和处理学术文献。

CNKI-Enhanced-MCP 是一个基于 Playwright 的本地 MCP Server。你可以直接输入一个词、一句话或完整研究问题,它会操作知网页面完成检索,读取候选论文的摘要与来源信息,综合相关性和学术质量重新排序,最后返回带知网详情页链接的论文标题。

它也支持知网原生高级检索、完整题录读取、当前权限下的在线 HTML 正文、PDF/CAJ 下载、引文导出,以及为文本中的论文标题添加知网链接。

IMPORTANT

本项目仅供个人学习研究目的使用。。请遵守 CNKI 服务条款、版权规则、访问频率限制和所在机构的数据库许可。

为什么使用它

普通关键词搜索往往会同时返回高度相关但质量较低的本科论文、普通校刊、低影响力会议论文,以及题目相似但主题不同的记录。CNKI-Enhanced-MCP 在知网检索结果之上增加了一层面向研究工作的处理:

  • 自动把自然语言问题拆成适合知网的搜索矩阵;

  • 多关键词场景自动使用高级检索,并处理组内 OR、组间 AND;

  • 提取标题、作者、摘要、关键词、机构、基金、来源、文献类型、收录层级、影响因子、被引和下载量等元数据;

  • 先判断是否真正相关,再结合来源与文献质量重新排序;

  • 不固定返回 10 篇:优质结果多就多返回,少就少返回,不用低质量论文补足数量;

  • 默认响应只展示论文标题和详情页链接,减少 MCP 上下文消耗;

  • 所有单篇论文操作都使用完整标题,不要求先搜索或保存内部编号。

Related MCP server: cnki-mcp

主要功能

智能搜索

输入“违约金”“自动驾驶”,或者“自动驾驶交通事故中生产者责任如何认定”这样的研究问题。MCP 会自行规划检索字段、搜索矩阵和候选增强过程。

自然搜索始终执行质量增强,调用者不能关闭摘要和来源检查。公开参数只有:

query · mode · limit · year_from · year_to · profile

知网原生结构化检索

当你已经知道要检索哪些字段时,可以直接指定篇名、主题、关键词、作者、机构、基金、摘要、来源、DOI 等条件,并组合 AND、OR、NOT、年份、排序、来源层级和文献类型过滤。

元数据、正文和下载

  • 按一个或多个完整标题,或者按一次搜索的 search_id,读取完整题录与摘要;

  • 使用当前账号或机构权限读取知网提供的在线 HTML/XML 正文;

  • 使用当前合法权限下载 PDF 或 CAJ,但不会解析 PDF/CAJ;

  • 未搜索过的标题会自动执行知网“篇名 + 精确”检索,只有完整标题匹配才会采用,不会用相似论文代替。

引文和文本处理

  • 支持 GB/T 7714、APA、MLA、Chicago、Vancouver;

  • 支持 BibTeX、RIS、EndNote、CSL-JSON、JSON、CSV、Markdown;

  • 支持使用白名单字段定义安全的自定义导出模板;

  • 可以把文本中的 《论文标题》 转换为指向知网详情页的 Markdown 链接。

快速开始

环境要求

  • Windows、macOS 或 Linux;

  • Python 3.11 或更高版本;

  • 能正常访问 CNKI 的网络环境;

  • 在线全文和下载功能需要相应的个人账号、校园网或机构订阅权限。

项目会把 Python 环境、Playwright Chromium、登录状态和运行数据全部放在项目目录中,不会把这些文件散落到用户主目录。

一键安装

下载或克隆项目后,在项目目录运行:

macOS / Linux:

python3 install.py

Windows PowerShell:

py install.py

如果 Linux 还没有 Chromium 所需的系统库:

python3 install.py --with-system-deps

安装器会自动:

  1. 在项目中创建 .venv

  2. 安装 CNKI-Enhanced-MCP;

  3. 把 Chromium 下载到 .playwright-browsers

  4. 创建 .cnki-data 运行目录;

  5. 生成包含绝对路径的 mcp-config.generated.json

添加到 MCP 客户端

打开安装器生成的 mcp-config.generated.json,把其中的 cnki 配置复制到支持 MCP 的客户端,然后重启客户端。

配置结构如下,实际路径以生成文件为准:

{
  "mcpServers": {
    "cnki": {
      "command": "/ABSOLUTE/PATH/CNKI-Enhanced-MCP/.venv/bin/cnki-enhanced-mcp",
      "env": {
        "PLAYWRIGHT_BROWSERS_PATH": "/ABSOLUTE/PATH/CNKI-Enhanced-MCP/.playwright-browsers",
        "CNKI_MCP_DATA_DIR": "/ABSOLUTE/PATH/CNKI-Enhanced-MCP/.cnki-data"
      }
    }
  }
}

本项目不会自动修改任何 MCP 客户端的全局配置。

第一次使用

先让 MCP 调用 cnki_login。支持三类环境:

  • 校园网或机构 IP 已经拥有访问权限;

  • 知网个人账号登录;

  • 学校图书馆、WebVPN 或统一身份认证等校外入口。

账号密码和学校 SSO 凭据应由你直接在打开的浏览器中输入,不要把密码发送给模型。登录完成后,浏览器 profile 会保存在项目的 .cnki-data/browser-profiles 中供以后复用。

除登录外,搜索使用的可见 Chromium 会自动最小化,尽量减少对桌面工作的干扰。知网可能对无头浏览器触发额外安全验证,因此当前搜索固定使用有头浏览器。

使用示例

自然语言搜索

{
  "query": "自动驾驶交通事故中的生产者责任",
  "mode": "balanced",
  "year_from": 2020
}

mode 可以是:

  • precise:更严格,适合概念明确的主题;

  • balanced:默认选择,兼顾召回与准确性;

  • broad:扩大候选范围,但不会降低最终质量门槛。

limit 是返回数量上限,不是必须凑满的数量。如果只有 3 篇达到相关性和质量标准,即使 limit=10 也只返回 3 篇。

结构化检索

{
  "conditions": [
    {"field": "subject", "value": "违约金", "match": "fuzzy"},
    {"field": "author", "value": "王利明", "operator": "AND", "match": "exact"}
  ],
  "year_from": 2020,
  "sort_by": "cited",
  "pages": 3
}

结构化检索忠实执行调用者指定的知网字段和布尔关系,不会替代自然语言搜索。适合系统综述、查找特定作者、限定期刊或构造可复现检索式。

读取论文元数据

{
  "titles": ["违约金酌减规则论"],
  "fields": ["title", "authors", "source", "year", "abstract", "keywords"],
  "refresh": true
}

也可以传入 search_id 分页读取整次搜索的结果。titlessearch_id 可以同时使用,重复论文会自动合并。

读取在线 HTML 正文

{
  "title": "完整论文标题",
  "read_all": true
}

默认返回当前权限允许的全部在线正文。需要控制上下文时,可以设置 read_all=false,再使用 offsetmax_characterssection 分段读取。

返回中的:

  • complete_available_content 表示知网已经交付的在线内容是否全部返回;

  • complete_article 表示当前拥有完整授权,且正文已经全部返回;

  • status=trial 只在正文出现明确试读截断证据时使用,不根据阅读器 URL 的路由参数猜测权限。

导出引文

{
  "titles": ["违约金酌减规则论"],
  "format": "bibtex",
  "save_filename": "references.bib"
}

也可以用一次搜索的 search_id 批量导出。生成文件只会写入 .cnki-data/exports

自定义格式示例:

{
  "titles": ["违约金酌减规则论"],
  "format": "custom",
  "custom_template": "{authors}.《{title}》[{resource_type}].{source},{year}:{pages}.{url}"
}

为文本添加知网链接

输入:

关于违约金调整,可以参考《违约金酌减规则论》。

工具会保留原文并把完整论文标题转换成知网详情页链接。标题中含有嵌套书名号时也可以处理。

MCP 工具

工具

用途

cnki_login

检测校园网/IP 权限,或打开浏览器等待账号、学校校外入口登录

cnki_session_status

检查当前登录、机构访问和验证码状态

cnki_search

自然语言智能检索、搜索矩阵、摘要与质量重排

cnki_structured_search

执行调用者指定的知网原生高级检索条件

cnki_get_metadata

按完整标题或 search_id 读取单篇/批量元数据

cnki_download_paper

使用当前权限下载 PDF/CAJ 到项目目录

cnki_read_online_html

读取当前权限下的在线 HTML/XML 正文

cnki_export_citations

导出常用引文样式、交换格式或自定义格式

cnki_link_references

为文本中的完整论文标题添加知网链接

搜索与排序是怎样工作的

自然搜索大致经过以下过程:

  1. 规范化用户输入,识别中文概念、英文缩写、标准号和版本标识;

  2. 自动构造概念组和知网搜索矩阵;

  3. 单一短语使用快速检索,多关键词使用高级检索;

  4. 分别执行主题、篇名和关键词检索,并合并重复记录;

  5. 根据标题、关键词、矩阵命中和标识符进行第一轮相关性排序;

  6. 动态选择高潜力候选,读取摘要和来源质量信息;

  7. 在确认相关的论文中提取少量反馈词,必要时执行一次有边界的补充检索;

  8. 先应用相关性门槛,再综合相关性与质量证据重新排序;

  9. 使用绝对质量门槛和头部相对门槛决定最终返回数量。

质量增强始终执行。候选不超过 30 篇时全部增强;31~100 篇以 40 篇为目标;101~300 篇以 60 篇为目标;更大结果集以 80 篇为目标。所有详情访问还受到单篇和总时间预算约束,避免失控访问。

质量证据包括:

  • CSSCI、北大核心、SCI、SSCI、EI、CSCD、AMI 等可验证收录信息;

  • 期刊复合影响因子和综合影响因子;

  • 按发表年份校正的被引表现;

  • 期刊、博士论文、硕士论文、本科论文、会议论文、报纸等文献类型;

  • 摘要、关键词与原始问题的真实相关性。

系统不会维护“不知名大学”或“差期刊”黑名单。无法确认质量时会保守降权,避免某一普通校刊仅因标题高度相关就排在可靠研究之前。

数据、隐私与文件位置

所有运行数据默认位于项目目录:

.playwright-browsers/       Playwright Chromium
.cnki-data/
├── browser-profiles/       登录状态与 Cookie
├── diagnostics/            页面改版或失败诊断
├── downloads/              下载的 PDF/CAJ
├── exports/                引文与题录导出文件
└── cnki.sqlite3            搜索记录与元数据缓存

删除项目目录即可一并删除运行环境和本地数据。.cnki-data 可能包含敏感 Cookie、机构身份和下载记录,请勿提交到 GitHub、发送给他人或包含在公开压缩包中。

本项目遵循以下边界:

  • 密码不作为 MCP 参数,不进入模型上下文;

  • 验证码只能由用户在可见浏览器中完成;

  • 不绕过付费墙、试读限制或机构权限;

  • 在线正文不持久化,阅读器临时授权参数不会返回给客户端;

  • 下载和导出路径限制在项目工作区内;

  • 自定义引文模板只进行白名单字段替换,不执行表达式或代码。

平台支持与限制

安装和路径逻辑支持 Windows、macOS 与 Linux。当前真实端到端验证环境为 macOS arm64、Python 3.13 和 Playwright Chromium;Windows/Linux 分支经过自动化测试,但仍欢迎对应平台的实际反馈。

使用时还应了解:

  • CNKI 会不定期修改页面结构,页面改版后可能需要更新选择器;

  • 搜索和详情访问是浏览器自动化,速度慢于官方 API;

  • CNKI 风控、验证码、账号状态和机构订阅会影响实际结果;

  • 在线 HTML 并非所有论文都提供,完整程度取决于当前合法权限;

  • PDF/CAJ 只负责下载,不读取或解析;

  • 引文格式基于知网现有元数据生成,正式投稿前仍应按目标期刊规范复核。

开发

安装开发依赖:

python3 install.py --dev

运行测试:

./scripts/test.sh

Windows PowerShell:

py install.py --dev

当前自动化测试覆盖搜索规划、结构化检索、质量排序、动态候选池、标题精确解析、HTML 权限识别、引文导出、文本链接、路径隔离和 MCP 公开 schema。真实 CNKI 端到端验证脚本位于 tests/verify_all_tools.py;它会实际访问知网并可能下载论文,不应在没有合法权限时运行。

贡献前请阅读 CONTRIBUTING.mdSECURITY.md

License

本项目采用 GNU General Public License v3.0 or later。第三方组件许可见 THIRD_PARTY_NOTICES.md

使用本软件不代表获得任何 CNKI 内容许可。用户仍需自行遵守 CNKI 服务条款、版权规则和所在机构的数据库使用政策。

Available Tools

9 tools
cnki_download_paperA

使用当前合法 CNKI 权限下载论文,文件始终保存在工作区项目目录内。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes论文完整标题;未缓存时自动执行篇名精确检索
profileNodefault
overwriteNo
subdirectoryNo.cnki-data/downloads 下的可选子目录,不允许写到工作区外
preferred_formatNopdf、caj 或 autopdf

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

The description discloses an important behavioral detail beyond the annotations: files are always saved within the workspace project directory. It also indicates the use of current legal permissions, which implies session-dependent behavior. The annotations only state readOnlyHint=false and openWorldHint=true, so this additional context adds meaningful value.

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 a single, compact sentence that conveys the core function and a key behavioral guarantee. Every word is useful and there is no redundancy or filler.

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?

While the description conveys the basic purpose and file location, it does not mention authentication prerequisites (e.g., needing cnki_login or a valid session), error scenarios, or behavior when the paper is not cached. The presence of an output schema reduces the need to explain return values, but given the sibling tools for session management, more contextual guidance would be helpful.

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 60%, with title, subdirectory, and preferred_format described. The tool description does not add extra explanation for the undocumented profile and overwrite parameters. However, it reinforces the workspace-location constraint related to subdirectory, providing some overlap. Overall, the description adds marginal value beyond 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 the tool's purpose: download a paper using current valid CNKI permissions. It names the specific action (download) and the resource (paper), and the mention of saving files in the workspace distinguishes it from read-only tools like cnki_read_online_html.

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?

No explicit guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites like needing an active CNKI session, nor does it contrast with sibling tools such as cnki_search or cnki_get_metadata. The phrase 'using current legal CNKI permissions' implies a session requirement but does not state when this tool should be selected.

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

cnki_export_citationsA

将缓存题录导出为常用引文、BibTeX/RIS/EndNote/CSL-JSON/CSV 或安全自定义模板。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
formatNo引文样式或题录交换格式gbt7714
offsetNo
titlesNo要导出的完整论文标题列表;未缓存的标题会先自动执行篇名精确检索
profileNo自动检索未缓存标题时使用的浏览器身份名称default
search_idNo要导出的历史 search_id
save_filenameNo可选文件名;保存到工作区 .cnki-data/exports,不允许写到外部
custom_templateNoformat=custom 时使用;如 {authors}. {title}[{resource_type}]. {source}, {year}. {url}

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

The description adds no behavioral detail beyond the annotation readOnlyHint=false. It does not mention that uncached titles trigger automatic searches, that files are saved to a workspace, or any side effects. The phrase '安全自定义模板' is vague and uninformative.

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, focused sentence that conveys the core purpose and lists output options. No redundant fluff, front-loaded with the action and object.

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

Completeness2/5

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

The tool has 8 parameters, complex behaviors like auto-searching uncached titles, file saving, and custom templates, but the description only provides a high-level summary. It does not prepare the agent for side effects, prerequisites, or exceptional cases, though schema parameter details partially fill this gap.

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 75%, covering most parameters (format, titles, profile, search_id, save_filename, custom_template). The tool description itself does not explain parameters, but the schema carries the weight. Missing limit and offset are standard pagination parameters, so the lack is not critical.

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 verb '导出' (export) and the resource '缓存题录' (cached bibliographic records), listing specific output formats (BibTeX, RIS, EndNote, CSL-JSON, CSV). This distinguishes it from sibling tools like search, download, and read operations.

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 explains that it exports cached records, which implies a prerequisite (having cached data). It does not explicitly exclude alternatives or mention when not to use, but the context is clear enough for an agent to select this for export tasks.

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

cnki_get_metadataA
Read-only

按完整标题或 search_id 统一读取单篇/批量论文元数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
fieldsNo可选元数据字段列表;默认返回全部公开元数据
offsetNo
titlesNo一个或多个完整论文标题;未缓存时自动执行篇名精确检索
profileNo检索未缓存标题或刷新元数据时使用的浏览器身份default
refreshNo是否重新访问详情页刷新元数据
search_idNo可选的历史搜索编号;可与 titles 同时使用

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint, covering safety and external variability. The description adds no significant behavioral detail beyond "read metadata"; it doesn't mention caching, refresh behavior, or auto-search as noted in the schema, so it stays at baseline.

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 a single, front-loaded sentence that conveys the core function and inputs with no filler. Every word is purposeful.

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 rich schema with parameter descriptions, an output schema, and annotations, the description sufficiently orients the agent to the tool's role. It clearly states the input mode (title or search_id) and the output scope (metadata for single/batch papers), which is enough to select and invoke 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 coverage is 71%, and the description highlights titles and search_id as the primary inputs, which aligns with the schema. It does not explain other parameters (limit, offset, fields, profile, refresh), but the schema provides sufficient descriptions for most, so the description adds only marginal meaning.

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 paper metadata (resource) using full titles or search_id (specific inputs), and supports single or batch mode. This distinguishes it from siblings like cnki_search (search) and cnki_download_paper (download), even without naming them.

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 phrase "按完整标题或 search_id" gives clear context: use this tool when you have complete titles or an existing search_id. It does not explicitly outline exclusions or alternatives, but the condition for use is unmistakable.

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

cnki_loginA

打开可见 Playwright 浏览器,检测校园网权限或等待用户手动完成账号/机构登录。

ParametersJSON Schema
NameRequiredDescriptionDefault
methodNo登录方式:auto、campus_ip、account、institution_remoteauto
profileNo工作区内保存的浏览器身份名称default
timeout_secondsNo等待用户完成登录的最长秒数
remote_access_urlNo学校图书馆/WebVPN/统一认证入口,仅 institution_remote 模式需要

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The description adds behavioral context beyond the annotations: it explicitly states that a visible Playwright browser will be opened and that the user must manually complete login, indicating an interactive operation. It also mentions detecting campus network permissions, which provides insight into the tool's decision-making. This is useful information not present in the annotations alone.

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 a single concise sentence that front-loads the primary action ('打开可见 Playwright 浏览器') and clearly communicates the login wait. There is no redundancy 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?

The description is reasonably complete for a login tool with an output schema. It explains the core workflow (open browser, detect permissions, wait for login). It does not detail the various login methods or post-login behavior, but these are covered by parameter descriptions and the output schema. However, it could benefit from mentioning the session impact or what happens after login.

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 has 100% parameter description coverage, with clear explanations for method, profile, timeout_seconds, and remote_access_url. The description adds no additional parameter semantics, but since the schema already covers all parameters, the baseline of 3 is appropriate.

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 purpose: it opens a visible Playwright browser, detects campus network permissions, and waits for the user to manually complete account/institution login. This is a specific action (open browser and login) with a clear resource (CNKI login), and it distinguishes from sibling tools like search, download, and session status.

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?

The description does not provide any guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or reference sibling tools like cnki_session_status or cnki_search. The usage context is implied (login is needed) but not explicitly stated.

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

cnki_read_online_htmlA
Read-only

使用当前合法权限读取全部或分段的 CNKI 在线 HTML 正文;不处理 PDF/CAJ。

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes论文完整标题;未缓存时自动执行篇名精确检索
offsetNo从在线正文的第几个字符开始返回
profileNodefault
sectionNo可选章节名或正文片段;从首次出现处开始读取,offset 改为相对该位置
read_allNo默认读取当前权限允许的全部 HTML 正文;设为 false 才启用分段读取
max_charactersNo仅 read_all=false 时生效的单次分段字符数

Output Schema

ParametersJSON 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?

Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that access is limited by '当前合法权限' (current legal permissions) and that it handles HTML only, not PDF/CAJ. It also mentions '全部或分段' (all or segmented) reading behavior. This adds value beyond the annotations, though it does not detail error handling or pagination.

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 one concise sentence, front-loaded with the primary purpose and immediately states the format exclusion. 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 the tool has a detailed input schema with 83% coverage and an output schema, the description sufficiently outlines the core purpose and limitation (no PDF/CAJ). It could explicitly name alternative tools for non-HTML formats, but the sibling list and tool name provide enough context. The description covers the main usage for a read-only HTML reader.

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 descriptions cover 83% of parameters, including title, offset, section, read_all, and max_characters with meanings. The main description only references 'all or segmented' which maps to read_all and max_characters but doesn't explain them beyond schema. At high coverage, no extra parameter insight is required.

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: '使用当前合法权限读取全部或分段的 CNKI 在线 HTML 正文' (read all or segmented CNKI online HTML full text with current legal permissions). It explicitly excludes PDF/CAJ, which differentiates it from download_paper among siblings.

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 context that it reads HTML full text and handles only that format, explicitly stating '不处理 PDF/CAJ'. This implies for PDF/CAJ the agent should use a different tool, though no specific alternative is named. The intended use case is clear for reading CNKI HTML content.

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

cnki_session_statusA
Read-only

检查 CNKI 可访问性、机构/账号登录状态和验证码状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNo要检查的浏览器身份名称default

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe, non-destructive operation. The description adds value by specifying the exact statuses checked (accessibility, login, and CAPTCHA), which is more detailed than the tool name alone. There is no contradiction with 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 a single sentence that efficiently summarizes the tool's purpose with no redundant words. It front-loads the action verb and clearly lists the three aspects checked, making it highly concise 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 simple status-check tool with one optional parameter and an output schema, the description provides sufficient context. It covers the core functionality precisely, while the output schema and annotations fill in structural details. It could mention when to use it, but that is already accounted for in the usage guidelines dimension.

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 only parameter, profile, is fully documented in the schema with a clear description ('要检查的浏览器身份名称'). The description itself does not add parameter semantics, but since schema coverage is 100%, the schema already carries the burden. The description adds no extra context beyond 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 uses the specific verb '检查' (check) and clearly identifies the resource: CNKI accessibility, institution/account login status, and CAPTCHA status. This distinguishes it from sibling tools that perform actions like login, search, or download, making the 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 Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as cnki_login or cnki_search. It simply states what it does without mentioning scenarios or prerequisites (e.g., 'use before login'), leaving the agent without decision support.

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

TDQS

A3.9/5.0
Disambiguation4/5

Most tools target distinct operations (search, download, login, export), but cnki_search and cnki_structured_search have overlapping purposes. The descriptions clarify that one is a smart aggregated search while the other is strict structured search, so agents can differentiate with careful reading.

Naming Consistency4/5

All tools share the cnki_ prefix and mostly follow a verb_noun pattern (download_paper, get_metadata, export_citations). cnki_login is a bare verb and cnki_session_status is noun_noun, which deviate slightly from the predominant convention, but the pattern is still predictable.

Tool Count5/5

Nine tools is well within the ideal range for a domain-specific server. Each tool addresses a necessary step in the CNKI research workflow—searching, retrieving metadata, reading, downloading, linking, exporting, and session management—without redundancy.

Completeness5/5

The tool set covers the full lifecycle of working with CNKI papers: authentication, searching, structured retrieval, metadata fetching, HTML reading, PDF download, citation export, and reference linking. There are no obvious dead ends or missing core operations for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    C
    maintenance
    Enables AI assistants to search CNKI (China National Knowledge Infrastructure), download PDFs, and import them into Zotero with automatic PDF attachment.
    14
    MIT
  • A
    license
    A
    quality
    C
    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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChengDSYJ-Studio/CNKI-Enhanced-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server