notebooklm-mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited notebooklm-mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Access Google NotebookLM from Claude Code with a single consistent interface, regardless of which underlying path is live this session. Wraps the notebooklm-mcp-cli MCP, the Claude-in-Chrome browser route, and the Playwright uploader.
named the target notebook, STOP and ask: "Which notebook should I use for this?"
before any query.
Pathos (intent), and Ethos (alignment) before it is presented. A global score below threshold loops back for revision.
MCP server: <loaded | not loaded -- using Path B>
MCP version: <x.y.z>
Auth status: <current | EXPIRED -- run "nlm login" before any notebook call>
Active path: <A | B | C>Package: notebooklm-mcp-cli (upstream github.com/jacob-bd/notebooklm-mcp-cli). Transport: stdio. Registered in ~/.claude.json. 35 tools prefixed mcp__notebooklm-mcp__*.
Binary location (Windows): C:\Users\<local-username>\.local\bin\notebooklm-mcp.EXE
Core tools:
mcp__notebooklm-mcp__server_info -- confirm server is live, return version.mcp__notebooklm-mcp__notebook_list -- list every notebook visible to theauthenticated account.
mcp__notebooklm-mcp__notebook_query -- query a specific notebook.mcp__notebooklm-mcp__source_add, notebook_get, search_notebooks -- dependingon session allowlist.
Check presence with ToolSearch select:mcp__notebooklm-mcp__server_info. If the search returns a schema, the MCP is loaded. If not, fall back to Path B.
Auth: nlm.EXE (Google OAuth). Account-scoped. Re-run nlm login after auth expiry or when switching Google accounts.
When the MCP is not loaded this session. Uses mcp__Claude_in_Chrome__* tools (navigate, get_page_text, javascript_tool, read_console_messages, read_page).
Recipe:
mcp__Claude_in_Chrome__navigate to the notebook URL the user named.mcp__Claude_in_Chrome__get_page_text to extract the current panel.mcp__Claude_in_Chrome__javascript_tool to post a chat query into thenotebook's chat surface (inspect the DOM first; selectors drift).
get_page_text again, extract.formatting noise) before passing it to the main context.
Never run headless. Inherits the logged-in Chrome session.
Script: <project-root>/notebooklm_uploader.py (see notebooklm-batch-uploader). Use: bulk source injection (adding books or markdown to notebooks at scale), not for single-query grounding. Requires pip install playwright and playwright install chromium. Uses channel="chrome" and headless=False.
use of the evidence downstream.
in a session log.
Ethos (no hallucination). Below threshold: loop back, revise.
Append to session_logs/session_log_YYYY-MM-DD.md:
## Entry [N]
- **Notebook (named by user):** [name + UUID]
- **Query:** [verbatim text passed]
- **Session ID:** [from MCP or "browser-{date}-{n}" for Path B]
- **Raw payload (ZCR sanitized):** [stripped content]
- **Trinity scores:** Logos=[0-5] Pathos=[0-5] Ethos=[0-5] -> [PROCEED | LOOP_BACK]
- **Gaps / follow-ups:** [list]notebook on the same day.
scratch/research directory first; promote only after review.
"query notebook", "ask notebooklm", "search notebooks", "list notebooks", "notebooklm server info", "get notebook", "inject source into notebook", "what did notebooklm say about", "cite from notebooklm", "pull evidence from", "grounding from notebook", "add source to notebook".
select:mcp__notebooklm-mcp__server_info)nlm login if expired)github.com/jacob-bd/notebooklm-mcp-clinotebooklm-batch-uploader (sibling repo)notebooklm-book-organizer (sibling repo)notebooklm-research-protocol (sibling repo)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.