Back to home@SepineTam

cnki-mcp

An MCP server for reach CNKI.

Stars
24
Language
Python
Created
Jul 3, 2026
Updated
Aug 29, 2026

Introduction

cnki-mcp

An MCP server for reach CNKI.

免责声明:该项目仅为个人学习项目,且仅供学习参考。 该项目不隶属任何公司、机构,与中国知网(下简称为知网或CNKI)无任何所属关系。 该项目不应用于非法手段,包括但不限于:批量访问知网进行搜索,以非正规途径获取知网论文,利用该项目进行违法违规的行为。 如有上述行为,本项目不构成任何因果利害关系,由使用者自行负责。最终解释权归本项目所有。

首次初始化

首次使用时运行:

uv run cnki-mcp init

命令会询问 Profile 名称,直接回车使用 default。也可以直接指定名称:

uv run cnki-mcp init --profile school

请在打开的浏览器中完成学校或机构认证。初始化成功后,该 Profile 会成为默认 Profile,后续启动和检索无需重复指定。

推荐启动方式

推荐使用 HTTP。下面两条命令效果相同,默认监听 127.0.0.1:7788

uv run cnki-mcp
uv run cnki-mcp serve --transport http --host 127.0.0.1 --port 7788

服务启动时会打开一个持久浏览器,并在服务进程退出时关闭。项目只提供知网检索和 文章信息读取,不提供全文下载。

按 ISSN 获取某一期的全部文章 metadata:

uv run cnki-mcp tool journal --issn 1002-9621 --year 2026 --vol 1

这里的 --vol 表示知网页面上的期号。返回结果会把真正的卷号 volume 和期号 issue 分开提供。尚未发行的年份或期号会返回 IssueNotAvailable

通过期刊名称搜索 ISSN:

uv run cnki-mcp tool issn --journal "世界经济"

搜索会忽略期刊名中的空格和标点,并返回知网搜索到的全部候选期刊。期刊目录来自 知网期刊导航页。工具每次都会通过 ISSN 重新定位期刊并获取当次有效的页面地址, 不会保存其中会失效的 p 参数。

通过 Python 使用

该项目提供了 Python API 供学习参考:

# pip install cnki-mcp

from cnki_mcp import CnkiClient

with CnkiClient(profile="profile1") as client:
    results = client.search(
        "TI='生态' and KY='生态文明'",
        sort_by="date",
    )

文档