内容
# notebooklm-py-diet-mcp

将您的AI代理连接到 [谷歌NotebookLM](https://notebooklm.google.com/)。查询您的笔记、添加来源、生成报告、播客、幻灯片和更多内容 - 直接从 [Cursor](https://cursor.com/)、[Claude Code](https://docs.claude.com/en/docs/claude-code) 或任何 [MCP兼容](https://modelcontextprotocol.io/) 的客户端。
**面向IDE级交互的NotebookLM工作流工具集。** 设计为智能轻量级的MCP服务器,以实现AI代码辅助原生多步骤工作流(研究、生成制品、下载和转换)。打包为单个工具调用,代理可以完成更多任务,而无需进行太多操作且不会失去功能。
基于 [**notebooklm-py**](https://github.com/teng-lin/notebooklm-py) 由 [Teng Lin](https://github.com/teng-lin) 构建。
> **非官方** -- 通过notebooklm-py使用未记录的谷歌API。 与谷歌无关。 API可能会在未通知的情况下更改。



需要对每个SDK方法进行精细控制?请参阅功能齐全的 [notebooklm-py-MCP](https://github.com/earlyprototype/notebooklm-py-MCP) (暴露了72个独立工具 - 主要用于测试)。
## 超出SDK
该服务器不仅仅是一个薄薄的包装。它添加了底层API不提供的功能:
- **模板化幻灯片生成** -- `templates/slide_styles.md`中包含三个捆绑的设计模板(企业、教育、创意)。将任何模板作为`instructions`参数传递给`generate_and_download`,NotebookLM将遵循指定的基调、颜色调色板、字体和布局规则。 使用相同的结构创建自己的模板。
- **PDF / PNG往返编辑** -- `pdf_to_png`将下载的幻灯片(或任何PDF)拆分为单个页面图像,以便LLM审查、批评或注释。`png_to_pdf`将编辑后的页面重新组装成单个文档。 这使得在NotebookLM界面中无法实现生成-审查-改进循环。
- **内联角色控制** -- `ask_question`接受可选的`persona`和`response_length`参数,在同一个调用中配置聊天角色,而不是需要单独的配置步骤。
## AI工作流工具(14)
| 工具 | 描述 |
|------|-------------|
| `list_notebooks_tool` | 列出所有笔记本及其ID和标题 |
| `create_notebook` | 创建一个新的笔记本 |
| `list_sources` | 列出笔记本中的所有来源 |
| `add_sources` | 在单个调用中添加多个来源(URL、文本、文件) |
| `ask_question` | 查询笔记本,可选角色、来源过滤和线程 |
| `generate_and_download` | 生成并下载制品(报告、音频、幻灯片、测验、信息图表) |
| `list_artifacts` | 列出笔记本中的制品 |
| `export_artifact` | 将制品导出到文件 |
| `research_and_import` | 研究主题并自动将结果作为来源导入 |
| `get_account_info` | 显示活动账户和可用配置文件 |
| `switch_account` | 切换到不同的谷歌账户配置文件 |
| `create_profile` | 创建新的账户配置文件并启动浏览器登录 |
| `pdf_to_png` | 将PDF转换为单个PNG图像(每页一个) |
| `png_to_pdf` | 将PNG图像合并为单个PDF文档 |
### MCP资源
| URI | 描述 |
|-----|-------------|
| `notebooklm://notebooks` | 列出所有笔记本(只读) |
| `notebooklm://notebook/{id}` | 笔记本详情,包括来源 |
### MCP提示
| 提示 | 描述 |
|--------|-------------|
| `analyze_notebook_sources` | 按主题分析笔记本来源的模板 |
| `research_topic_workflow` | 使用NotebookLM工具的研究工作流 |
| `generate_styled_slides` | 使用捆绑的设计模板(企业、教育、创意)生成幻灯片 |
## 先决条件
- Python 3.10 或更高版本
- 具有访问 [NotebookLM](https://notebooklm.google.com/) 权限的谷歌账户
- [Cursor](https://cursor.com/) 或另一个MCP兼容客户端
## 安装
### 1. 克隆仓库
```bash
git clone https://github.com/earlyprototype/notebooklm-py-diet-mcp.git
cd notebooklm-py-diet-mcp
```
### 2. 创建虚拟环境并安装依赖项
```bash
python -m venv venv
# Windows (PowerShell)
.\venv\Scripts\Activate.ps1
# macOS / Linux
source venv/bin/activate
pip install -e ".[dev]"
```
或者,从 `requirements.txt` 安装:
```bash
pip install -r requirements.txt
```
### 3. 安装Playwright(首次登录和自动重新身份验证所需)
```bash
playwright install chromium
```
### 4. 身份验证谷歌NotebookLM
```bash
# 设置账户配置文件目录
# Windows (PowerShell)
$env:NOTEBOOKLM_HOME = "$HOME\.notebooklm-work"
# macOS / Linux
export NOTEBOOKLM_HOME=~/.notebooklm-work
# 登录(打开浏览器窗口 - 选择您的谷歌账户)
notebooklm login
# 验证
notebooklm list
```
## 配置
### Cursor
将以下内容添加到您的 `.cursor/mcp.json` 文件中:
```json
{
"mcpServers": {
"notebooklm": {
"command": "<path-to-venv>/python",
"args": [
"<path-to-repo>/notebooklm_mcp_server.py"
]
}
}
}
```
用实际路径替换占位符路径。服务器在内部管理账户配置文件 - 不需要 `NOTEBOOKLM_HOME` 环境变量。 在运行时使用 `switch_account` 和 `get_account_info` 管理配置文件。
重启Cursor后保存配置。
### Claude Code
```bash
claude mcp add notebooklm -- python /path/to/notebooklm_mcp_server.py
```
### HTTP传输(用于MCP检查器或远程访问)
```bash
python notebooklm_mcp_server.py --http
```
然后将您的客户端连接到 `http://localhost:8000/mcp`。
## 多个谷歌账户
每个谷歌账户都存储在单独的目录中。 设置 `NOTEBOOKLM_HOME` 以在它们之间切换:
```bash
# 身份验证不同的账户
NOTEBOOKLM_HOME=~/.notebooklm-work notebooklm login # 工作账户
NOTEBOOKLM_HOME=~/.notebooklm notebooklm login # 个人账户
NOTEBOOKLM_HOME=~/.notebooklm-design notebooklm login # 另一个账户
```
`get_account_info` 工具显示当前活动的配置文件和可用的替代配置文件。 使用 `switch_account` 在运行时更改配置文件而无需重启。
## 使用示例
配置完成后,您可以直接从AI代理与NotebookLM交互:
**列出笔记本:**
> "列出我的NotebookLM笔记本"
**查询知识库:**
> "询问Strategy笔记本:我们的2026年关键目标是什么?"
**设置角色并提问:**
> "作为战略分析师,总结Research笔记本中的关键风险"
**一次添加多个来源:**
> "将以下网址添加到我的Research笔记本:https://example.com/article1, https://example.com/article2"
**生成和下载内容:**
> "为Project笔记本生成播客概述并保存它"
> "从Strategy笔记本生成报告并下载为PDF"
> "从Training笔记本创建信息图表"
**研究和导入:**
> "研究'数字制造趋势'并将顶级结果导入我的Research笔记本"
**生成样式化的幻灯片:**
> "使用企业模板为Strategy笔记本生成幻灯片"
## 幻灯片模板演示
三个捆绑的模板从相同的工作流中生成了明显不同的输出。 以下每个示例都是从创新素养培训计划的子部分生成的。
### 企业
战略咨询风格 - 衬线标题,蓝色强调,数据密集的布局,包含图表、表格和证据引用。
<p>
<img src="docs/demos/selected/corporate_1.png" width="32%" alt="企业幻灯片:历史类比映射" />
<img src="docs/demos/selected/corporate_2.png" width="32%" alt="企业幻灯片:诊断表" />
<img src="docs/demos/selected/corporate_3.png" width="32%" alt="企业幻灯片:推荐表" />
</p>
### 教育
工作坊和培训风格 - 暖奶油色背景,青绿色/琥珀色强调,插图概念,宽裕的空白。
<p>
<img src="docs/demos/selected/educational_1.png" width="32%" alt="教育幻灯片:操作与设计思维比较" />
<img src="docs/demos/selected/educational_2.png" width="32%" alt="教育幻灯片:四点捕获周期" />
<img src="docs/demos/selected/educational_3.png" width="32%" alt="教育幻灯片:被驳斥的假设原理" />
</p>
### 创意
推介风格 - 黑色背景,青绿色强调,粗体字,极简文本,视觉效果突出的布局。
<p>
<img src="docs/demos/selected/creative_1.png" width="32%" alt="创意幻灯片:暗色背景下的英雄声明" />
<img src="docs/demos/selected/creative_2.png" width="32%" alt="创意幻灯片:具有分裂对比度的促进差距" />
<img src="docs/demos/selected/creative_3.png" width="32%" alt="创意幻灯片:带有图标的2x2网格" />
</p>
有关完整的模板定义,请参见 `templates/slide_styles.md` 或使用相同的结构创建自己的模板。
## 项目结构
```
notebooklm-py-diet-mcp/
notebooklm_mcp_server.py # MCP服务器(14个工具、资源、提示)
pyproject.toml # Python打包和工具配置
requirements.txt # 便捷依赖文件
INSTRUCTIONS.md # 加载时注入LLM的上下文
LICENSE # MIT许可证
README.md # 本文
tests/
conftest.py # 共享测试夹具和模拟
test_helpers.py # 帮助函数单元测试
test_tools.py # 基于模拟的工具测试
test_lifespan.py # 服务器启动场景测试
templates/
slide_styles.md # 捆绑的幻灯片设计模板
docs/
setup.md # 详细设置指南
demos/selected/ #精选的幻灯片演示图像(README画廊)
demos/corporate/ # 完整的企业模板示例集
demos/educational/ # 完整的教育模板示例集
demos/creative/ # 完整的创意模板示例集
```
## 开发
### 运行测试
```bash
pip install -e ".[dev]"
pytest
```
### linting
```bash
ruff check .
ruff format .
```
## INSTRUCTIONS.md
`INSTRUCTIONS.md` 文件由MCP客户端在服务器端加载,提供LLM使用上下文 - 工作流模式、错误处理指南和工具约定。 将其放在 `notebooklm_mcp_server.py` 旁边或客户端使用的MCP服务器元数据目录中。
## 致谢
如果没有 [**notebooklm-py**](https://github.com/teng-lin/notebooklm-py) 由 [Teng Lin](https://github.com/teng-lin) 构建的这个项目就不会存在。 它提供了谷歌NotebookLM的完整Python API,而这个MCP服务器就是在此基础上构建的。
- [GitHub上的notebooklm-py](https://github.com/teng-lin/notebooklm-py)
- [PyPI上的notebooklm-py](https://pypi.org/project/notebooklm-py/)
MCP服务器是使用Anthropic的 [Model Context Protocol Python SDK](https://github.com/modelcontextprotocol/python-sdk) 构建的。
## 许可证
MIT - 有关详细信息,请参见 [LICENSE](LICENSE)。
## 免责声明
这是一个 **非官方** 项目。 它与谷歌无关,也不受谷歌支持或认可。 它依赖于可能在任何时候更改的未记录的API。 请自行承担风险。 有关凭证处理指南,请参见 [notebooklm-py安全策略](https://github.com/teng-lin/notebooklm-py/blob/main/SECURITY.md)。