cuc-literature-mcp
Enables searching Web of Science for CUC SCI papers, downloading PDFs, and syncing results to Tencent Docs through persistent browser automation. Supports advanced queries, deduplication, CAS journal classification mapping, and incremental sync while preserving manual notes.
README
CUC Literature MCP:中传 SCI 论文检索、PDF 下载与腾讯文档同步
一个运行在用户电脑上的 TypeScript STDIO MCP,配套可被 Codex 自动发现的 Skill。它使用独立、持久化的 Chrome 或 Edge 配置访问 Web of Science、IEEE/开放全文和腾讯文档,不调用 OpenAI API,也不会读取或返回账号密码和 Cookie。
当前版本:
0.1.0。这是面向中国传媒大学机构访问场景的第一版。WOS、IEEE 和腾讯文档均为网页自动化适配器;网站改版后可能需要更新选择器。工具遇到不确定页面时会停止并返回可恢复错误,不会绕过验证码、登录或付费限制。
目录
能做什么
- 在 WOS Core Collection 构造并执行高级检索;
- 默认检索中国传媒大学2024年至当前年份的 SCI-EXPANDED 论文;
- 围绕无线通信、通信导航融合、通信感知一体化扩展 RIS、语义通信、近场定位、卫星通信、SAGIN、毫米波、太赫兹、MIMO、NOMA、车联网、无人机通信、信道编码和6G等紧邻主题;
- 按 DOI → WOS号 → 标准化题名去重;
- 从腾讯正式工作表只读提取“期刊—2025中科院大类分区”映射;
- 按 IEEE 机构正式PDF → 出版商开放PDF → 预印本/作者公开稿的顺序尝试下载;
- 只保存 HTTPS、具有
%PDF文件头、大小合理并通过 SHA-256 校验的文件; - 增量同步到腾讯文档的非正式工作表,保护人工备注和已有附件;
- 按年份倒序,同年份按
1区 Top → 1区 → 2区 Top → 2区 → 3区 → 4区 → 待核验整行排序; - 把运行进度保存在本地,可在登录或验证码处理后用原
run_id继续。
工作边界
本项目不会:
- 提供或共享中国传媒大学、WOS、IEEE、腾讯文档账号;
- 传输账号密码、Cookie 或浏览器配置;
- 绕过统一身份认证、验证码、机构权限或付费墙;
- 把未知中科院分区猜成“未收录”;
- 自动修改正式来源工作表“工作表1”;
- 授予论文 PDF 的再分发权。
每位使用者都必须拥有相应数据库和腾讯文档的合法访问权限。公开仓库不包含任何个人腾讯文档链接、浏览器登录态或已下载PDF。
让 Codex 指导安装
OpenAI 官方说明,Codex 会从仓库路径上的 .agents/skills 发现项目 Skill,本地 STDIO MCP 可以通过 codex mcp add 注册;ChatGPT 桌面应用、Codex CLI 和 IDE 扩展共享该配置:
把仓库交给 Codex 后,可以直接发送:
请先完整阅读仓库根目录的 AGENTS.md 和 README.md。
检查我的操作系统、Node.js、Codex 和浏览器环境,指导并执行本项目安装。
不要读取或复制 .runtime/chrome-profile,不要询问我的密码、Cookie或验证码。
安装前向我索取一个有编辑权限的腾讯表格URL;目标工作表使用“MCP测试”。
安装后执行 doctor,打开专用浏览器让我自行完成WOS、IEEE和腾讯文档登录,并告诉我如何开始第一次检索。
Codex 应按照 AGENTS.md 执行。登录、验证码和腾讯文档授权必须由用户在可见浏览器中亲自完成。
Windows 快速安装
1. 前置条件
- Windows 11,推荐;
- ChatGPT Windows 桌面应用或 Codex CLI;
- Node.js 20 或以上;
- Google Chrome,或 Microsoft Edge;
- Git,可选,也可以下载 ZIP。
可以在 PowerShell 检查:
node --version
npm --version
codex --version
如果没有 Node.js:
winget install OpenJS.NodeJS.LTS
如果没有 Git:
winget install Git.Git
安装后重新打开 PowerShell。
2. 获取仓库
git clone https://github.com/SHENAO1/cuc-literature-mcp.git
cd cuc-literature-mcp
也可以从 GitHub 的 Code → Download ZIP 下载并解压,然后在该目录打开 PowerShell。
3. 执行安装
把下面的示例链接替换成你有编辑权限的腾讯表格链接:
Set-ExecutionPolicy -Scope Process Bypass
./scripts/install.ps1 `
-TencentDocUrl "https://docs.qq.com/sheet/你的文档ID" `
-BrowserChannel chrome
使用 Edge:
./scripts/install.ps1 `
-TencentDocUrl "https://docs.qq.com/sheet/你的文档ID" `
-BrowserChannel msedge
安装脚本会:
- 用
npm ci安装锁定版本依赖; - 编译并运行完整测试;
- 把本机配置写到
.runtime/settings.json; - 使用
codex mcp add注册cuc-literature; - 执行安装诊断。
如果希望在其他项目目录也能用 $cuc-literature-search,增加:
-InstallGlobalSkill
完整 Windows 说明见 docs/WINDOWS.md。
macOS 快速安装
git clone https://github.com/SHENAO1/cuc-literature-mcp.git
cd cuc-literature-mcp
chmod +x scripts/install.sh scripts/uninstall.sh
./scripts/install.sh \
--tencent-doc-url "https://docs.qq.com/sheet/你的文档ID" \
--browser-channel chrome
可选的全局 Skill:
./scripts/install.sh \
--tencent-doc-url "https://docs.qq.com/sheet/你的文档ID" \
--install-global-skill
完整说明见 docs/MACOS.md。Linux/WSL 可以构建和运行协议测试,但本项目依赖可见桌面浏览器,第一版主要支持 Windows 原生和 macOS。
首次登录
安装后运行:
npm run login
工具会启动独立浏览器配置目录:
.runtime/chrome-profile
请在这个专用窗口中分别完成:
- 中国传媒大学统一身份认证;
- WOS 机构访问;
- IEEE Xplore 机构访问;
- 腾讯文档登录,并确认对目标文档有编辑和附件上传权限;
- 如果出现验证码,由用户自行完成。
完成后回到终端按回车,程序会重新检查会话。不要把日常 Chrome 的用户目录复制到 .runtime,也不要把 .runtime 分享给别人。
诊断当前会话:
npm run diagnose
安装诊断:
npm run doctor
完成安装或修改 MCP 配置后,重启 ChatGPT/Codex。
开始使用
在本仓库打开新的 Codex 会话,输入:
使用 $cuc-literature-search 检索中国传媒大学2024年以来无线通信、通信导航融合和通信感知一体化相关SCI论文,写入默认腾讯文档并下载PDF。
如果安装了全局 Skill,也可以在其他项目中这样调用。
正常编排顺序:
check_browser_session
→ refresh_partition_map
→ create_search_run
→ search_wos
→ download_fulltext
→ sync_results
→ get_run_status
出现 login_required、captcha_required 或 needs_user_action 时,不要新建运行。完成页面操作后让 Codex使用原 run_id 重试。详细示例见 docs/USAGE.md。
配置与输出
本机设置
安装器把非敏感设置写入:
.runtime/settings.json
该文件不会提交到 Git。重新配置:
npm run configure -- \
--tencent-doc-url "https://docs.qq.com/sheet/你的文档ID" \
--browser-channel chrome \
--source-sheet "工作表1" \
--target-sheet "MCP测试" \
--pdf-directory "output/pdfs"
PowerShell 可以把反斜杠续行改为一行,或使用反引号 `。
环境变量优先于 .runtime/settings.json:
| 变量 | 用途 | 默认值 |
|---|---|---|
CUC_LITERATURE_HOME |
项目绝对路径 | 当前工作目录 |
CUC_TENCENT_DOC_URL |
腾讯表格链接 | 必填,无公开默认值 |
CUC_SOURCE_SHEET |
分区映射来源表 | 工作表1 |
CUC_TARGET_SHEET |
MCP写入目标表 | MCP测试 |
CUC_PDF_DIR |
PDF目录 | output/pdfs |
CUC_BROWSER_CHANNEL |
chrome或msedge |
chrome |
CUC_WOS_URL |
WOS入口覆盖 | 中传机构入口 |
CUC_IEEE_URL |
IEEE入口覆盖 | 中传图书馆IEEE入口 |
CUC_HEADLESS |
测试用无头模式,设为1启用 |
不启用 |
腾讯文档表头
目标工作表固定写入 A—J:
论文题目、作者、年份、期刊、SCI索引、WOS号、DOI、
中科院SCI分区(2025大类)、PDF附件、学校数据库下载核验/未下载原因
- MCP 生成的 J 列以
[MCP]开头; - 已有非
[MCP]人工备注不覆盖; - 已有 PDF 附件不重复上传;
- 临时 K 列只用于整行排序,完成后清空;
- 目标工作表与来源工作表同名时程序拒绝运行。
本地文件
output/pdfs/<年份>/ 通过校验的PDF
.runtime/runs/<run-id>.json 可恢复进度
.runtime/chrome-profile/ 独立浏览器登录态
.runtime/partition-map.csv 本地分区映射
config/partition-overrides.csv 可提交的人工分区覆盖
分区覆盖 CSV 格式:
journal,normalized_journal,partition,top,source
IEEE Access,ieee access,2区,false,override
MCP 工具
| 工具 | 主要输入 | 作用 |
|---|---|---|
check_browser_session |
open_login_window |
检查 WOS、IEEE、腾讯文档会话 |
refresh_partition_map |
文档URL、来源工作表 | 只读提取期刊分区并生成本地映射 |
create_search_run |
主题、年份、单位、输出位置 | 创建 run_id 和 WOS 查询式 |
search_wos |
run_id |
检索、完整记录导出、筛选和去重 |
download_fulltext |
run_id |
下载并验证有权获取的PDF |
sync_results |
run_id |
增量写表、上传附件、整行排序 |
get_run_status |
run_id |
查看阶段、错误、输出和待操作项 |
所有工具返回简短文本和结构化 JSON。命中超过500篇时会停止,避免不受控批量操作。
升级与卸载
升级
git pull
./scripts/install.ps1 -TencentDocUrl "https://docs.qq.com/sheet/你的文档ID"
macOS:
git pull
./scripts/install.sh --tencent-doc-url "https://docs.qq.com/sheet/你的文档ID"
安装器只替换同名 cuc-literature MCP,不修改其他 MCP 配置。
Windows 卸载
只移除 MCP 注册,保留登录态、运行记录和PDF:
./scripts/uninstall.ps1
同时移除本地运行态和全局 Skill:
./scripts/uninstall.ps1 -RemoveRuntime -RemoveGlobalSkill
只有明确希望删除下载的论文时才增加:
-RemoveDownloadedPdfs
macOS 对应参数见 ./scripts/uninstall.sh --help或 docs/MACOS.md。
常见问题
codex 命令不存在
先确认 ChatGPT/Codex 已安装并重启终端。也可以在 ChatGPT 桌面应用中打开 Settings → MCP servers → Add server,选择 STDIO,手动填写 Node 路径和 dist/server.js。详细步骤见 docs/TROUBLESHOOTING.md。
PowerShell 禁止运行脚本
只对当前窗口临时放行:
Set-ExecutionPolicy -Scope Process Bypass
找不到 Chrome
安装 Chrome,或者重新执行安装并指定:
-BrowserChannel msedge
WOS 或 IEEE 一直要求登录
确认使用的是工具启动的专用浏览器窗口,且当前网络/账号具有中国传媒大学数据库权限。校外访问可能还需要学校允许的 VPN 或统一身份认证。
腾讯文档能打开但不能写入
确认文档不是只读共享,并拥有编辑、创建工作表和上传附件权限。第一版依赖腾讯表格网页UI;页面改版可能触发 TENCENT_UI_CHANGED 等错误。
为什么有论文没有PDF
常见原因包括机构无权限、无PDF入口、登录失效、验证码、HTML伪PDF、附件超过限制或只有不接受的版本。元数据仍可写入,J列会记录标准化原因。
更多错误码和恢复方式见 docs/TROUBLESHOOTING.md。
开发和测试
npm ci
npm run check
npm test
npm run validate:skill
测试覆盖:
- WOS查询、筛选、导出解析和500篇安全边界;
- DOI/WOS/题名标准化及去重;
- 中科院分区解析和排序;
- PDF文件头、大小和SHA-256校验;
- 人工备注保护;
- WOS、IEEE、腾讯文档合成页面状态;
- MCP工具枚举、Schema、错误结构和编译后STDIO握手。
GitHub Actions 在 Windows、macOS 和 Ubuntu 上执行构建与测试。真实机构登录后的端到端测试不会在公共 CI 中运行。
贡献前请阅读 CONTRIBUTING.md,安全问题请阅读 SECURITY.md。架构说明见 docs/ARCHITECTURE.md。
许可证
MIT。数据库、出版商页面、腾讯文档及下载论文分别受其自身条款和版权约束;MIT 许可证只覆盖本仓库代码和文档。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。