项目简介

NotebookLM MCP 服务器是一个功能强大的应用后端,它将Google NotebookLM的自动化能力封装成符合Model Context Protocol (MCP) 标准的工具集。这使得大型语言模型(LLM)客户端能够通过标准化的JSON-RPC协议与NotebookLM进行交互,例如发送消息、获取响应、管理笔记本等。该服务器支持持久化浏览器会话和流式响应,为LLM应用提供稳定、可扩展的上下文服务框架。

主要功能点

  • 自动化聊天: 支持向NotebookLM发送聊天消息,可以即时获取当前响应,也可以等待完整的流式响应,并提供发送消息和获取响应的组合操作。
  • 笔记本管理: 能够根据ID导航到特定的NotebookLM笔记本,并提供获取或设置默认笔记本ID的功能。
  • 服务器管理: 提供健康检查工具来监控服务器状态,并支持优雅地关闭服务器。
  • 持久化浏览器会话: 首次登录Google账号后,服务器能够保存会话,后续运行无需重复认证。
  • 流式响应处理: 精心设计以处理LLM的流式输出,确保获取完整的对话响应。

安装步骤

建议从PyPI(Python Package Index)安装,这是最简单的方法:

# 从PyPI安装
pip install notebooklm-mcp

# 或者,如果您需要从源代码安装:
git clone https://github.com/khengyun/notebooklm-mcp.git
cd notebooklm-mcp
pip install -e .

服务器配置

MCP客户端(如AutoGen的'McpWorkbench')需要知道如何启动此服务器并与其连接。以下是客户端可能需要的配置信息示例:

{
  "server_name": "notebooklm-mcp", // MCP服务器的名称,用于标识
  "command": "notebooklm-mcp",     // 启动MCP服务器的命令行指令
  "args": [                        // 传递给启动指令的参数列表
    "server",                      // 指定运行服务器模式
    "--notebook", "您的NotebookID",  // 替换为您的Google NotebookLM的实际ID,例如 "4741957b-f358-48fb-a16a-da8d20797bc6"
    "--headless", "true",           // 是否在无头模式下运行浏览器。"true"表示浏览器在后台运行无界面,"false"表示显示浏览器界面
    "--debug", "false"              // 是否开启详细的调试日志。"true"开启,"false"关闭
  ],
  "read_timeout_seconds": 60      // 客户端等待服务器响应的最大超时时间(秒)
}

请注意:

  • 'command': 这是用于启动NotebookLM MCP服务器的可执行命令。在安装后,'notebooklm-mcp'命令应该在您的系统路径中可用。
  • 'args': 这是传递给'notebooklm-mcp'命令的参数。
    • 'server': 告知CLI以MCP服务器模式运行。
    • '--notebook': 您的Google NotebookLM的唯一标识符。服务器将默认连接到此笔记本。
    • '--headless': 控制自动化浏览器是否在后台运行。首次运行时,建议将其设置为'false',以便手动完成Google账户登录。 登录并保存会话后,可以设置为'true'以实现无界面自动化。
    • '--debug': 启用或禁用详细日志,有助于问题诊断。
  • 'read_timeout_seconds': 这是MCP客户端等待从服务器接收JSON-RPC响应的超时时间。

基本使用方法

  1. 一次性设置(首次运行或登录过期): 当您首次启动服务器或需要重新登录时,您需要允许浏览器显示界面以便手动登录Google账户。

    # 首次运行,不带--headless,以便手动登录Google账户
    notebooklm-mcp server --notebook 您的NotebookID --headless false
    # 登录成功后,服务器会话会自动保存到 './chrome_profile_notebooklm' 目录。
    # 您可以关闭此会话,后续即可在无头模式下运行。
  2. 启动MCP服务器: 完成一次性登录设置并保存会话后,您可以启动MCP服务器。它将等待MCP客户端的连接和请求。

    # 在无头模式下启动MCP服务器
    notebooklm-mcp server --notebook 您的NotebookID --headless true
    
    # 或者使用环境变量来配置,然后直接运行:
    # export NOTEBOOKLM_NOTEBOOK_ID="您的NotebookID"
    # export NOTEBOOKLM_HEADLESS="true"
    # notebooklm-mcp server

    服务器启动后,将通过标准输入/输出(STDIO)协议等待MCP客户端的请求。

  3. 通过CLI进行交互式测试: 您也可以通过命令行界面直接与NotebookLM进行交互,这对于测试和快速任务非常方便。

    # 启动一个交互式聊天会话
    notebooklm-mcp chat --notebook 您的NotebookID
    
    # 发送一条消息并获取响应
    notebooklm-mcp chat --notebook 您的NotebookID --message "总结一下我最近上传的文档要点"
  4. 在LLM客户端中集成: 在支持MCP协议的LLM客户端(例如基于'mcp-python-sdk'构建的客户端,或AutoGen的'McpWorkbench')中,使用上述“服务器配置”中提供的JSON格式信息,即可实现与NotebookLM MCP服务器的无缝集成。您的LLM应用将能够调用服务器提供的工具来与Google NotebookLM进行自动化交互,获取上下文信息和执行任务。

信息

分类

AI与计算