使用说明
NotebookLM MCP服务器
用于NotebookLM的MCP服务器,具有混合元数据强制执行功能(API名称字段+Google Docs自定义属性+本地JSON存储)。
特性
- ✅ 元数据操作:验证、获取、设置和查询自定义元数据
- ✅ 笔记本操作:列出、获取、创建、删除和共享笔记本(通过NotebookLM API)
- ✅ 源操作:添加、获取和删除源(谷歌文档、PDF、网址等)
- ✅ 音频概述:生成和删除音频概述
- ✅ 混合存储:三层元数据存储(API字段、Google文档、本地JSON)
- ✅ OAuth2身份验证:具有自动刷新功能的安全身份验证
- ✅ 缓存:30秒TTL以获得最佳性能
- ✅ 测试驱动开发:89多项全面覆盖的测试
建筑
MCP Server
↓
Metadata Manager (Orchestrator)
↓ ↓ ↓
[NotebookLM API] [Google Docs API] [Local JSON Store]
先决条件
- Node.js 18+
- 谷歌云项目:
- NotebookLM Enterprise API已启用
- 已启用Google Docs API
- 已启用Google Drive API
- OAuth2凭据(客户端ID和机密)
安装
# Clone or copy to your machine
cd /path/to/notebooklm-mcp
# Install dependencies
npm install
# Build
npm run build
配置
1.设置OAuth2凭据
设置环境变量:
export GOOGLE_CLIENT_ID="your-client-id.apps.googleusercontent.com"
export GOOGLE_CLIENT_SECRET="your-client-secret"
或创建 .env 文件:
GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
2.身份验证(第一次)
运行安装流程:
npm run setup # TODO: Implement OAuth web flow in future
这将:
- 打开浏览器进入Google OAuth同意屏幕
- 请求NotebookLM、Google Docs和Drive的权限
- 将凭据保存到
~/.notebooklm-mcp/credentials.json
手动测试
在生产环境中使用MCP服务器之前,我们建议遵循手动测试指南来验证一切是否正常工作。
指南将引导您完成以下操作:
- 第一阶段: 无身份验证元数据验证(5-10分钟)
- 第二阶段: OAuth设置和Claude代码集成(10-15分钟)
- 第三阶段: 端到端工作流测试(15-20分钟)
快速测试 (安装后):
# Build the server
npm run build
# Run automated tests
npm test
# Expected: 89 tests passing (10 test suites)
有关包括OAuth和Claude Code集成在内的详细测试,请参阅 手动测试指南.
用法
启动MCP服务器
npm start
服务器在stdio上运行,可以与Claude Code一起使用。
在Claude代码中配置
添加到您的Claude Code MCP配置中:
桌面: ~/.claude/desktop-config.json
{
"mcpServers": {
"notebooklm": {
"command": "/path/to/notebooklm-mcp/bin/notebooklm-mcp",
"env": {
"GOOGLE_CLIENT_ID": "your-client-id",
"GOOGLE_CLIENT_SECRET": "your-client-secret"
}
}
}
}
可用的MCP工具
元数据操作
notebooklm_validate_metadata-根据架构验证元数据notebooklm_get_metadata-获取笔记本/源的元数据notebooklm_set_metadata-设置元数据notebooklm_query_metadata-按元数据过滤器查询
笔记本操作
notebooklm_list_notebooks-列出最近查看的笔记本notebooklm_get_notebook-通过来源获取笔记本详细信息notebooklm_create_notebook-创建新笔记本notebooklm_delete_notebook-删除笔记本notebooklm_share_notebook-与用户共享笔记本
源操作
notebooklm_add_sources-将源添加到笔记本notebooklm_get_source-获取源详细信息notebooklm_remove_sources-删除源
音频概述操作
notebooklm_generate_audio-生成音频概述notebooklm_delete_audio-删除音频概述
元数据架构(v1.0)
必填字段
{
type: "notebook-source" // Fixed value
project: string // Project name
status: "active" | "archived" | "reference" | "in-progress"
}
可选字段
{
area?: string // PARA area (e.g., "vocation/spreetail")
tags?: string[] // Custom tags
created?: string // ISO date (YYYY-MM-DD)
modified?: string // ISO date (YYYY-MM-DD)
customFields?: object // Extensible custom metadata
}
示例
{
"type": "notebook-source",
"project": "palomino-nas",
"status": "active",
"area": "vocation/spreetail",
"tags": ["infrastructure", "backup"],
"created": "2026-02-17",
"modified": "2026-02-17",
"customFields": {
"priority": "high",
"owner": "brockbutler"
}
}
发展
运行测试
make test
# or
npm test
观看模式(TDD)
make test-watch
# or
npm run test:watch
覆盖范围报告
make test-coverage
构建
make build
# or
npm run build
项目结构
/Users/brockstudio/Projects/notebooklm-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server with 14 tools
│ ├── config.ts # Configuration
│ ├── validators/
│ │ └── schema.ts # Metadata validation
│ ├── storage/
│ │ └── metadata-store.ts # Local JSON store
│ ├── cache/
│ │ └── manager.ts # TTL cache
│ ├── auth/
│ │ └── oauth.ts # OAuth2 manager
│ ├── clients/
│ │ ├── notebooklm.ts # NotebookLM API client
│ │ └── google-docs.ts # Google Docs API client
│ └── managers/
│ └── metadata.ts # Metadata orchestrator
├── tests/
│ ├── unit/ # Unit tests
│ ├── integration/ # Integration tests
│ └── setup.ts # Test setup
├── bin/
│ └── notebooklm-mcp # Executable wrapper
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── jest.config.js
├── Makefile
└── README.md
运行时文件
~/.notebooklm-mcp/
├── credentials.json # OAuth tokens (chmod 600)
├── metadata.json # Local metadata store
└── metadata.json.backup # Backup (on corruption)
实施状态
✅ 已完成(任务1-14)
- 项目脚手架及配置
- 具有模式强制的元数据验证器
- 具有原子写入的本地JSON存储
- 带TTL的缓存管理器
- OAuth2凭据存储和令牌刷新
- Google Docs API客户端(存根)
- NotebookLM API客户端(存根)
- 元数据管理器编排层
- 配备14个工具的MCP服务器
- 综合测试(89+次测试)
- 集成和端到端测试
🔲 未来增强功能(MVP后)
- OAuth2 web流设置向导
- 真正的谷歌文档API集成
- Real NotebookLM API集成
- 高级查询(全文搜索)
- 多设备元数据同步
- 元数据的云备份
故障排除
“找不到凭据”
运行安装流程以向Google进行身份验证:
npm run setup # TODO: Implement OAuth web flow
“令牌刷新失败”
您的刷新令牌可能已过期。重新运行安装程序:
rm ~/.notebooklm-mcp/credentials.json
npm run setup
“尚未实现NotebookLM API”
NotebookLM API操作当前为存根。它们将在未来阶段通过真正的API集成来实现。
贡献
本项目遵循TDD原则。所有新功能都需要测试。
许可证
麻省理工学院
设计文件
- 建筑:
/Users/brockstudio/Projects/palomino-nas/docs/plans/2026-02-16-notebooklm-api-redesign.md - 实施计划:
/Users/brockstudio/Projects/palomino-nas/docs/plans/2026-02-16-notebooklm-api-implementation.md
