notebooklm-mcp-cli
通过 CLI 或 MCP 协议操控 Google NotebookLM,批量处理资料、生成播客/视频/幻灯片等多元内容
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
通过 CLI 或 MCP 协议操控 Google NotebookLM,批量处理资料、生成播客/视频/幻灯片等多元内容
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
GitHub: jacob-bd/notebooklm-mcp-cli · 5,519 · MIT License · Python 3.11+
想象一下:你花了三小时读完一篇50页的论文,关掉PDF的那一刻,大脑已经开始遗忘细节。一周后再翻出来,连核心论点都记不清了。Google NotebookLM就是为了解决这个痛点而生的——它能"记住"你上传的所有资料,并生成音频概述、视频、幻灯片等多元格式输出。而 notebooklm-mcp-cli 正是这把瑞士军刀的命令行版本,让你不打开浏览器也能操控NotebookLM。
Google NotebookLM是Google在2023年推出的人工智能笔记与研究工具,定位介于ChatGPT和传统笔记应用之间。它的核心差异在于专注于私有知识库——你可以上传PDF、网页、Google Doc、YouTube视频,它会基于这些资料回答问题、生成摘要,不像通用LLM那样依赖公开数据。
NotebookLM还有一个杀手级功能:Audio Overview(音频概述),能用自然对话风格把资料内容"播客化",两个人工智能主持人会围绕你的资料展开讨论,听起来就像真正的播客节目。这个功能从2024年火到2025年,在社交媒体上引发了大量传播。
然而,NotebookLM一直缺少编程接口(API),所有操作必须在网页端完成。这对于需要批量处理大量资料、做自动化工作流的用户来说极其不便。notebooklm-mcp-cli的作者Jacob Ben-David就是这样一位用户——他需要一个命令行工具来自动化自己的研究流程,于是自己动手写了这个项目。
这是整个项目最有趣的部分:notebooklm-mcp-cli使用的是NotebookLM的内部API,而非公开接口。
Google NotebookLM并没有对外提供官方API,所有底层调用都是通过浏览器与服务器之间的RPC(Remote Procedure Call)实现的——具体来说是Google的 batchexecute 协议。这套协议用短随机字符串作为方法名(如 wXbhsf),Google会不定期轮换这些方法ID,且完全不公开文档。
项目作者通过逆向工程,分析了浏览器Network面板中的请求,抓取到了这些RPC方法的ID和请求格式,然后基于Python的 httpx 库重新实现了完整的调用链路。这是一种典型的 API逆向工程 技术路线。
既然没有官方API,自然也就没有官方API Key。notebooklm-mcp-cli的认证方案是从浏览器中提取cookies:
AUTH, SECAUTH, APISID 等关键cookies这种方式的好处是用户无需暴露密码或API key,坏处是cookies有效期有限(通常2-4周),过期后需要重新提取。工具内置了headless浏览器自动刷新机制,在登录状态未完全失效前可以自动续期。
Model Context Protocol(MCP)是Anthropic在2024年底推出的开放协议,旨在让AI助手(如Claude、Cursor、Copilot)能够调用外部工具。notebooklm-mcp-cli将自己实现为一个 MCP Server,暴露了约39个工具供AI助手调用:
| 功能类别 | 工具数量 | 典型工具 |
|---|---|---|
| 笔记本管理 | 5 | notebook_list, notebook_create, notebook_delete |
| 来源管理 | 8 | source_add, source_sync_drive, source_get_content |
| Studio内容生成 | 6 | studio_create (audio/video/slides/infographic) |
| 查询与问答 | 4 | notebook_query, cross_notebook_query |
| 下载与分享 | 5 | download_artifact, notebook_share_public |
| 研究功能 | 4 | research_start, research_import |
| 批处理与流水线 | 3 | batch, pipeline |
| 标签管理 | 3 | tag_add, tag_select |
通过MCP集成,用户可以让Claude Code用自然语言操控NotebookLM,例如:"帮我把这篇arxiv论文加入笔记本,生成一个音频概述,然后下载MP3文件"——一条指令,全部搞定。
项目代码结构清晰,采用模块化设计:
nlm技术栈非常务实:
~/.notebooklm-mcp-cli/)代码质量方面,项目使用 ruff 进行lint检查、mypy 进行静态类型检查、pytest + pytest-asyncio 进行测试。虽然作者自称"非职业开发者",但代码结构组织合理,错误处理较为完善。
从安装角度,这是一个非常简单的Python包:
uv tool install notebooklm-mcp-cli # 推荐方式
# 或
pip install notebooklm-mcp-cli
安装后得到两个可执行文件:nlm(命令行工具)和 notebooklm-mcp(MCP服务器)。
最大的门槛在于认证。你需要:
nlm login,工具会自动打开浏览器整个过程对非技术用户来说稍微有些折腾,但作者提供了详细的文档和多浏览器支持,踩坑成本不高。认证有效期约2-4周,过期后需要重新登录。
不支持一键部署:项目没有Dockerfile,也没有docker-compose.yml,依赖本地Python环境。对于想要在服务器上长期运行或Docker化部署的用户,当前方案不友好。不过考虑到NotebookLM本身是网页服务,通过浏览器认证也是无奈之举。
作为一个逆向工程项目,notebooklm-mcp-cli有几个天然的局限性:
1. 免费额度有限:NotebookLM免费版每天约50次查询额度,超出后会限流。作者测试过Pro版和Google AI Ultra($249/月)版,也可以使用。
2. API随时可能失效:Google不定期轮换RPC方法ID,一旦轮换,所有API调用会失败。项目通过 refresh_auth 定期检查,且支持 NOTEBOOKLM_RPC_OVERRIDES 环境变量热修复,但用户仍需关注更新。
3. Cookies有效期短:每次认证有效期仅2-4周,远不如API Key方便。虽然有headless自动刷新,但一旦完全过期,必须重新走 nlm login 流程。
4. 非企业账号限制:作者明确说明只测试了个人/免费账号和Pro账号,企业账号可能存在兼容问题。
notebooklm-mcp-cli展示了一个有意思的现象:当大厂不提供API时,社区会自己动手逆向。从Twitter API,到Reddit API,再到今天的NotebookLM,这个模式一直在重复。
从Star增长来看(5,519 ,创建于2025年12月),项目在半年多时间内获得了大量关注。这说明用户对NotebookLM的自动化需求非常强烈——不仅仅是研究者需要批量处理论文,还有播客爱好者想要自动化音频生成、内容创作者需要批量处理素材等场景。
MCP协议的引入是这个项目的另一大价值。它不只是一个CLI工具,而是将NotebookLM能力嵌入AI助手工作流的关键节点。当Claude Code或Cursor可以直接调用NotebookLM的能力时,研究者的生产力会得到质的提升——AI助手帮你读论文、生成播客、做幻灯片,所有环节无缝衔接。
这个项目也验证了MCP协议的实用性:不同于LangChain等重型框架,MCP是一个轻量级的协议标准,让任何工具都能快速变成AI可调用的技能。这可能是AI辅助编程的下一个主流方向。