NotebookLMPyPIMCPPythonOpen SourceIndie Dev

從零到 PyPI:讓 NotebookLM 可以被程式控制

··閱讀約 5 分鐘

2026-09-21 更新:Google Cloud 已提供企業版筆記本管理 API,需相應企業環境與授權。本文的 kof-notebooklm-mcp 是非官方網頁自動化工具;原文把整個 NotebookLM 說成不能由程式控制,範圍過大,已修正。

我想解決什麼問題?

目標很簡單。我想直接在開發環境(例如 Cursor IDE)裡建立 NotebookLM notebook、匯入技術文件或會議紀錄,並且提問後拿到附來源引用的答案。

如果這些動作可以由程式觸發,NotebookLM 就能成為完整工作流程裡的一個知識服務節點,而不是獨立使用的產品。

這個工具從哪裡來?

這個專案一開始不是獨立套件。kof-notebooklm-mcp 原本是 keeponfirst-local-brain 裡的內部工具。核心想法很直接:用本機 Git repository 當知識的唯一可信來源,讓文件和開發筆記跟著 codebase 一起演進,再讓 AI 工具持續閱讀、分析並提供回饋。

在這個架構裡,Git repo 是正式來源,文件跟著專案更新;NotebookLM 則是研究和分析節點,不是獨立 App。

實作時遇到的主要問題

第一個問題是驗證和登入流程。Google 登入包含多因素驗證與風險偵測,完全自動化並不實際。目前的做法是讓使用者第一次執行時手動登入,保存瀏覽器 session,之後再重複使用。

第二個問題是高度動態的 UI。NotebookLM 前端變動很大,自動化流程很容易壞。為了提高穩定性,實作會優先使用無障礙屬性與畫面上看得到的文字,避免綁死 DOM 結構,並在重要操作前檢查狀態。

為什麼拆成獨立套件?

工具一開始放在 monorepo 裡,開發方便,使用者安裝卻很麻煩。我面對的取捨很清楚:留在 monorepo 可以維持開發便利;拆成獨立套件需要整理架構,但能降低使用門檻。

最後我把它拆成 kof-notebooklm-mcp,讓使用者只要一行指令就能開始:pip install kof-notebooklm-mcp。

使用 Trusted Publisher 發布到 PyPI

發布流程使用 PyPI 的 Trusted Publisher。它不用管理長效 API token,發布權限直接綁定 GitHub repository,GitHub Actions 再透過 OIDC 自動驗證。設定不多,也比較適合長期維護。

最後想說的事

做這個專案的重點,是讓一個好用的工具真正進入工作流程。工具不能被程式控制時,受限的不只是效率,能做的事情也會跟著變少。

GitHub:https://github.com/keeponfirst/kof-notebooklm-mcp|PyPI:pip install kof-notebooklm-mcp

安裝完套件,還有瀏覽器與登入

套件頁列出三個設定步驟:安裝 Python 套件、安裝 Playwright Chromium、執行初始化登入。以下先用虛擬環境隔離依賴;套件要求 Python 3.10 以上。這裡核對的是公開安裝文件,沒有在本次修訂中替你登入 Google。

bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install kof-notebooklm-mcp
python -m playwright install chromium
kof-notebooklm-init

登入由你在開啟的瀏覽器完成;不要把密碼、驗證碼或瀏覽器 profile 放進 repo。套件文件的預設 profile 目錄是 ~/.kof-notebooklm/profile。它保存的是可重用的登入狀態,備份、共享或搬移時應當成帳戶憑證處理。

讓 MCP client 找到同一個執行環境

IDE 啟動 MCP server 時,不一定繼承你終端機的 .venv。若安裝成功卻說找不到指令,先在啟用虛擬環境的終端機執行 command -v kof-notebooklm-mcp,再把取得的完整路徑填入 client 的 command 欄位。不同 client 的設定檔位置不同,以下只示意套件名稱與欄位,不是所有 IDE 都能直接共用的設定檔。

json
{
  "mcpServers": {
    "notebooklm": {
      "command": "/absolute/path/to/.venv/bin/kof-notebooklm-mcp",
      "args": []
    }
  }
}

先做唯讀檢查,再建立測試筆記本

先呼叫 health_check 確認連線與登入,再用 list_notebooks 對照你在網頁看到的清單。只有這兩步成功,才建立一個專用測試筆記本,加入一小段已知內容並提問。比對答案與引用是否真來自該來源;工具回傳非空字串,不代表回答正確。

若清單是空的,先區分帳號沒有資料、登入失效、頁面尚未載入與選擇器失效。若來源已加入但回答找不到內容,先看來源是否處理完成。把失敗停在正確階段,比整套重新安裝更容易定位問題。

下一步:舊答案、半截串流與 UI 污染怎麼驗證

參考資料

查看作者的原始發布版本