Notebooklm MCP

by roomi-fields• 217•• Scanned•Claim this listing•Request removal
Developer Toolsagentic skillanthropicautomationcitationsclaude code

Google Gemini Notebook (formerly NotebookLM) over MCP + a local HTTP REST API. Citation-backed Q&A, full Studio generation, chat history, multi-account rotation. For Claude Code, Codex, Cursor, n8n, Zapier, Make.

Notebooklm MCP is an open-source mcp server by roomi-fields, written mainly in TypeScript, with 217 GitHub stars and the MIT license. Its code was last updated Oct 30, 2026.

Scan summary: scanned Nov 5, 2026 at commit f3939d6. Seen able to run shell commands, read environment and secrets. Scan policy

Scanned
Full scan at f3939d6 · Nov 5, 2026
Scanned Builds Boots No undeclared egress Reproducible
Static code scanwarn
Secrets scanpass
Dependency audit119 known vulnerabilitiesfail
Manifestserver.jsonpass
Buildpass
Boot & handshake49 toolspass
Network egresspass
Reproducible (×3)pass

Findings (49)

  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • high
    dependencies issue
    Details are available to the maintainer after claiming this listing.
  • medium
    Runs shell commands. Fine for some tools, but it means the agent can run anything your user can.
    src/http-wrapper.ts:1577
  • medium
    Runs shell commands. Fine for some tools, but it means the agent can run anything your user can.
    src/http-wrapper.ts:1590
  • medium
    Runs shell commands. Fine for some tools, but it means the agent can run anything your user can.
    src/http-wrapper.ts:1599
  • medium
    brace-expansion@1.1.14: 12 known vulnerabilities
    GHSA-3jxr-9vmj-r5cp, GHSA-6j4f-fj2g-mc7p, GHSA-mh99-v99m-4gvg, GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7 +7 more
    package-lock.json
  • medium
    brace-expansion@5.0.6: 6 known vulnerabilities
    GHSA-3jxr-9vmj-r5cp, GHSA-6j4f-fj2g-mc7p, GHSA-mh99-v99m-4gvg, GHSA-q2hr-2g5m-vwhr, GHSA-qhr7-859c-m2p7 +1 more
    package-lock.json
  • medium
    browserslist@4.28.2: 4 known vulnerabilities
    GHSA-73wf-gq98-2v4g, GHSA-c83g-rgw3-j3cx, GHSA-73wf-gq98-2v4g, GHSA-c83g-rgw3-j3cx
    package-lock.json
  • medium
    js-yaml@3.14.2: 8 known vulnerabilities
    GHSA-2883-xcg3-v3hh, GHSA-52cp-r559-cp3m, GHSA-5p4m-2wfm-xmqj, GHSA-h67p-54hq-rp68, GHSA-2883-xcg3-v3hh +3 more
    package-lock.json
  • medium
    js-yaml@4.2.0: 3 known vulnerabilities
    GHSA-2883-xcg3-v3hh, GHSA-52cp-r559-cp3m, GHSA-5p4m-2wfm-xmqj
    package-lock.json
  • medium
    @babel/plugin-transform-modules-systemjs@7.29.0: 1 known vulnerability
    GHSA-fv7c-fp4j-7gwp
    website/package-lock.json
  • medium
    body-parser@1.20.4: 2 known vulnerabilities
    GHSA-27r3-jxmh-p828, GHSA-v422-hmwv-36x6
    website/package-lock.json
  • medium
    compression@1.8.1: 1 known vulnerability
    GHSA-vc2v-76pw-4v95
    website/package-lock.json
  • medium
    fast-uri@3.1.0: 12 known vulnerabilities
    GHSA-333x-w4r6-6crp, GHSA-4c8g-83qw-93j6, GHSA-7p8r-x3mc-p8w7, GHSA-f65p-4m7j-42xc, GHSA-hrr3-gc8f-f4qj +7 more
    website/package-lock.json
  • medium
    follow-redirects@1.16.0: 3 known vulnerabilities
    GHSA-8r9p-f939-6h3c, GHSA-mrwp-f3q8-3g9p, GHSA-q3jh-wrc6-jgq8
    website/package-lock.json
  • medium
    image-size@2.0.2: 2 known vulnerabilities
    GHSA-5p2g-fcmc-qvqq, GHSA-w3rx-r6r6-pgpr
    website/package-lock.json
  • medium
    joi@17.13.3: 6 known vulnerabilities
    GHSA-4528-x5fx-h6hg, GHSA-6h2x-m376-mqjq, GHSA-6w3j-5fw6-r9vr, GHSA-gg4h-3hg2-grpc, GHSA-q7cg-457f-vx79 +1 more
    website/package-lock.json
  • medium
    js-yaml@4.1.1: 4 known vulnerabilities
    GHSA-2883-xcg3-v3hh, GHSA-52cp-r559-cp3m, GHSA-5p4m-2wfm-xmqj, GHSA-h67p-54hq-rp68
    website/package-lock.json
  • medium
    launch-editor@2.13.2: 4 known vulnerabilities
    GHSA-587h-7wmj-h5pm, GHSA-698v-4r3x-3vcv, GHSA-r825-w8mm-5pxw, GHSA-v6wh-96g9-6wx3
    website/package-lock.json
  • medium
    nanoid@3.3.11: 3 known vulnerabilities
    GHSA-28wg-ghj8-5hjv, GHSA-2v37-7h3g-55p8, GHSA-xwg4-73v4-xw9w
    website/package-lock.json
  • medium
    postcss@8.5.10: 3 known vulnerabilities
    GHSA-6g55-p6wh-862q, GHSA-fxqj-rqcc-2cmp, GHSA-r28c-9q8g-f849
    website/package-lock.json
  • medium
    serialize-javascript@6.0.2: 3 known vulnerabilities
    GHSA-5c6j-r48x-rmvq, GHSA-m5mm-p8h7-m29v, GHSA-qj8w-gfj5-8c6v
    website/package-lock.json
  • medium
    source-map-js@1.2.1: 1 known vulnerability
    GHSA-68fv-2mgg-jv7q
    website/package-lock.json
  • medium
    svgo@3.3.3: 3 known vulnerabilities
    GHSA-2p49-hgcm-8545, GHSA-4vpr-x523-8j87, GHSA-w27v-7q3p-w38r
    website/package-lock.json
  • medium
    uuid@8.3.2: 1 known vulnerability
    GHSA-w5hq-g745-h8pq
    website/package-lock.json
  • medium
    webpack-dev-middleware@7.4.5: 1 known vulnerability
    GHSA-g84c-rxfj-3j2c
    website/package-lock.json
  • medium
    ws@7.5.10: 1 known vulnerability
    GHSA-96hv-2xvq-fx4p
    website/package-lock.json
  • medium
    ws@8.20.0: 2 known vulnerabilities
    GHSA-58qx-3vcg-4xpx, GHSA-96hv-2xvq-fx4p
    website/package-lock.json
  • low
    In tests/examples/docs: Touches a sensitive credential location (SSH keys, cloud credentials, browser data or wallets). Expected for some tools, such as browser automation; check why.
    src/__tests__/security.test.ts:158
  • low
    In tests/examples/docs: Contacts a hard-coded IP address instead of a domain name.
    src/__tests__/session-manager.test.ts:142
  • low
    @humanfs/node@0.16.7: 1 known vulnerability
    GHSA-p498-v437-472g
    package-lock.json
  • low
    baseline-browser-mapping@2.10.38: 1 known vulnerability
    GHSA-w5vr-8v7q-w6rv
    package-lock.json
  • low
    deepmerge@4.3.1: 2 known vulnerabilities
    GHSA-gcqx-w48m-w2h4, GHSA-gcqx-w48m-w2h4
    package-lock.json
  • low
    glob@10.5.0: 1 known vulnerability
    GHSA-3g3m-2fjr-6pw4
    package-lock.json
  • low
    minimatch@9.0.8: 1 known vulnerability
    GHSA-g3hv-75wg-m249
    package-lock.json
  • low
    @babel/core@7.29.0: 1 known vulnerability
    GHSA-4x5r-pxfx-6jf8
    website/package-lock.json
  • low
    @swc/html@1.15.26: 1 known vulnerability
    GHSA-5qr2-v392-m9g8
    website/package-lock.json
  • low
    baseline-browser-mapping@2.10.20: 1 known vulnerability
    GHSA-w5vr-8v7q-w6rv
    website/package-lock.json
  • low
    colord@2.9.3: 1 known vulnerability
    GHSA-2wm5-q62r-hmrv
    website/package-lock.json
  • low
    http-proxy-middleware@2.0.9: 1 known vulnerability
    GHSA-64mm-vxmg-q3vj
    website/package-lock.json
  • low
    postcss-selector-parser@6.1.2: 2 known vulnerabilities
    GHSA-rj75-hqrm-r3gf, GHSA-w9m9-85wc-3x92
    website/package-lock.json
  • low
    postcss-selector-parser@7.1.1: 2 known vulnerabilities
    GHSA-rj75-hqrm-r3gf, GHSA-w9m9-85wc-3x92
    website/package-lock.json
  • low
    qs@6.14.2: 4 known vulnerabilities
    GHSA-4mjr-xmp4-gh2g, GHSA-6pq8-jhm2-2vcw, GHSA-q8mj-m7cp-5q26, GHSA-x5fp-wj9c-mxmx
    website/package-lock.json
  • low
    webpack-dev-server@5.2.3: 4 known vulnerabilities
    GHSA-79cf-xcqc-c78w, GHSA-f5vj-f2hx-8m93, GHSA-m28w-2pqf-7qgj, GHSA-mx8g-39q3-5c79
    website/package-lock.json
  • low
    package.json has a prepare script
    husky
    package.json
  • low
    Reads environment variables not listed in the manifest
    NOTEBOOKLM_ACCOUNT_ID, NOTEBOOKLM_DATA_DIR, LOCALAPPDATA, AUDIT_LEVEL, GITHUB_TOKEN, GH_TOKEN, NOTEBOOKLM_MCP_BASE_URL, NOTEBOOK_URL, NOTEBOOKLM_API_KEY, NBLM_ENCRYPTION_KEY, NOTEBOOKLM_RPC_OVERRIDES, NOTEBOOKLM_BL, NOTEBOOKLM_UPLOAD_ROOT, NOTEBOOKLM_DOWNLOAD_ROOT, MCP_HTTP_URL

Network activity

During install
registry.npmjs.org
While running
No connections

Tools exposed (49)

  • notebook_ask

    # Conversational Research Partner (NotebookLM • Gemini 2.5 • Session RAG) ## No Active Notebook - Visit https://notebooklm.google to create a notebook and get a share link - Use **add_notebook** to add it to your library (explains how to get the link) - Use **list_notebooks** to show available sour

  • library_discover

    🚀 AUTO-DISCOVERY — Automatically generate notebook metadata via NotebookLM (RECOMMENDED) ## When to Use - User provides NotebookLM URL and wants quick/automatic setup - User prefers not to manually specify metadata - Default choice for adding notebooks ## Workflow 1) User provides NotebookLM URL

  • library_add

    📝 MANUAL ENTRY — Add notebook with manually specified metadata (use auto_discover_notebook instead) ## When to Use - Auto-discovery failed or unavailable - User has specific metadata requirements - User prefers manual control ## Conversation Workflow (Mandatory) When the user says: "I have a Note

  • library_list

    List all library notebooks with metadata (name, topics, use cases, URL). Use this to present options, then ask which notebook to use for the task.

  • library_get

    Get detailed information about a specific notebook by ID

  • library_select

    Set a notebook as the active default (used when ask_question has no notebook_id). ## When To Use - User switches context: "Let's work on React now" - User asks explicitly to activate a notebook - Obvious task change requires another notebook ## Auto-Switching - Safe to auto-switch if the context i

  • library_update

    Update notebook metadata based on user intent. ## Pattern 1) Identify target notebook and fields (topics, description, use_cases, tags, url) 2) Propose the exact change back to the user 3) After explicit confirmation, call this tool ## Examples - User: "React notebook also covers Next.js 14" You

  • library_remove

    Dangerous — requires explicit user confirmation. ## Confirmation Workflow 1) User requests removal ("Remove the React notebook") 2) Look up full name to confirm 3) Ask: "Remove '[notebook_name]' from your library? (Does not delete the actual NotebookLM notebook)" 4) Only on explicit "Yes" → call re

  • library_search

    Search library by query (name, description, topics, tags). Use to propose relevant notebooks for the task and then ask which to use.

  • library_stats

    Get statistics about your notebook library (total notebooks, usage, etc.)

  • session_list

    List all active sessions with stats (age, message count, last activity). Use to continue the most relevant session instead of starting from scratch.

  • session_close

    Close a specific session by session ID. Ask before closing if the user might still need it.

  • session_reset

    Reset a session's chat history (keep same session ID). Use for a clean slate when the task changes; ask the user before resetting.

  • server_health

    Get server health status including authentication state, active sessions, and configuration. Use this to verify the server is ready before starting research workflows. If authenticated=false and having persistent issues: Consider running cleanup_data(preserve_library=true) + setup_auth for fresh st

  • auth_setup

    Google authentication for NotebookLM access - opens a browser window for manual login to your Google account. Returns immediately after opening the browser. You have up to 10 minutes to complete the login. Use 'get_health' tool afterwards to verify authentication was saved successfully. Use this for

  • auth_logout

    De-authenticate (logout) - Clears all authentication data for security. Use this when: - User wants to log out for security reasons - Removing credentials before shutting down - Clearing auth without immediately re-authenticating This will: 1. Close all active browser sessions 2. Delete all saved a

  • auth_switch

    Switch to a different Google account or re-authenticate. Use this when: - NotebookLM usage limit is reached (compute-based, refreshes every 5 hours) - You want to switch to a different Google account - Authentication is broken and needs a fresh start This will: 1. Close all active browser sessions

  • server_cleanup

    ULTRATHINK Deep Cleanup - Scans entire system for ALL NotebookLM MCP data files across 8 categories. Always runs in deep mode, shows categorized preview before deletion. ⚠️ CRITICAL: Close ALL Chrome/Chromium instances BEFORE running this tool! Open browsers can prevent cleanup and cause issues. C

  • source_add

    Add a source (document, URL, text, YouTube video) to the current NotebookLM notebook. Supported source types: - file: Upload a local file (PDF, DOCX, TXT, etc.) - url: Add a web page URL - text: Paste text content directly - youtube: Add a YouTube video URL - google_drive: Add a Google Drive docume

  • source_delete

    Delete a source from the current NotebookLM notebook. You can identify the source to delete by either: - source_id: The unique identifier of the source - source_name: The name/title of the source (partial match supported) Use list_content first to see available sources and their IDs/names. WARNIN

  • source_list

    List the sources of a NotebookLM notebook, with their IDs and titles. Use this to get the source_id that read_source and delete_source expect. RPC-backed (no browser).

  • source_read

    Read a source’s full indexed content — the exact text NotebookLM reasons over, which the web UI only ever shows in fragments. Use it to quote a source verbatim, to check what was actually ingested from a PDF or web page, or to feed the raw material to another tool. Identify the source by source_id

  • content_delete

    Delete a generated Studio artifact (audio overview, video, report, infographic, presentation, data table, flashcards, quiz) from a notebook. Use list_content first to get the artifact id. RPC-backed (no browser). WARNING: irreversible. Note-backed mind maps are not covered — they live in the notes

  • content_generate

    Generate content from your NotebookLM sources. Supported content types: - audio_overview: Audio podcast/overview (Deep Dive conversation with two AI hosts) - video: Video summary that visually explains main topics (brief or explainer format) - presentation: Slides/presentation with AI-generated con

  • content_list

    List all sources and generated content in the current notebook. Returns: - Sources: Documents, URLs, and other uploaded materials - Generated content: Audio overviews

  • content_download

    Download or export generated content from NotebookLM. Supported content types: - audio_overview: Downloads as audio file (MP3) - video: Downloads as video file - infographic: Downloads as image file - presentation: Exports to Google Slides (returns URL) - data_table: Exports to Google Sheets (retur

  • note_create

    Create a note in the NotebookLM Studio panel. Notes are user-created annotations that appear in your notebook. Use them to save research findings, summaries, key insights, or any custom content you want to keep alongside your sources. Notes support markdown formatting for rich text content.

  • note_save_chat

    Save the current NotebookLM chat/discussion to a note. This tool extracts all messages from the current conversation (both user questions and NotebookLM AI responses) and saves them as a formatted note in the Studio panel. Use this to: - Preserve important research conversations - Create a summary

  • note_to_source

    Convert a note to a source document in NotebookLM. This feature allows you to convert an existing note into a source, making the note content available for RAG queries and research. The method: 1. Finds the note by title in the Studio panel 2. Attempts to use NotebookLM's native "Convert to source

  • vault_batch

    Run a list of questions against a notebook and persist each answer to disk as two artifacts: `{slug}.md` (markdown with YAML frontmatter, answer body and cited source excerpts) and `{slug}.json` (structured payload conforming to the nblm-answer-v1 schema). Designed for one-shot ingestion of a notebo

  • notebook_list

    Scrape the NotebookLM homepage to get a real list of all notebooks with their IDs and names. This tool navigates to notebooklm.google.com and extracts: - Notebook ID (UUID from URL) - Notebook name (displayed title) - Notebook URL Use this to: - Discover notebooks not yet in your library - Get acc

  • notebook_create

    Create a brand-new empty notebook directly in NotebookLM (no pre-existing URL required, unlike `add_notebook` which only registers an already-created notebook into the library). Returns `{ notebook_url, notebook_id, name_applied, actual_name, message }`. - `notebook_url` / `notebook_id`: always the

  • notebook_delete

    Delete one or more notebooks directly from NotebookLM (UI-level deletion, not just from the local library). Pass an array of notebook IDs (UUIDs from `list_notebooks_from_nblm`). Returns `{ deleted: [...], failed: [...] }` so the caller can retry or report on partial failures. Use this to: - Bulk-

  • note_list

    List all user notes in the NotebookLM Studio panel. Returns note titles, IDs, and timestamps (e.g. details).

  • note_get

    Retrieve the full title and text content of a specific note in the NotebookLM Studio panel.

  • rename_source

    Rename one source inside a notebook. RPC-backed (no browser). Identify the source by `source_id` (see list_sources) or by `source_name` — an ambiguous name is refused rather than guessed.

  • check_source_freshness

    Say whether URL / Drive sources have drifted from what they point at. Name no source to check the whole notebook. RPC-backed (no browser). `stale: null` means the server did not say — not that the source is current.

  • get_source_guide

    Read NotebookLM’s own summary and key topics for a single source. RPC-backed. A source NotebookLM has not summarised yet returns an empty summary.

  • search_passages

    Find the passages in a notebook’s sources that match a query, ranked best first. RPC-backed (no browser). This is retrieval, not an answer: nothing is generated, no generation quota is spent, and you get the indexed text with its offsets. Prefer this over ask_question when you want the evidence rath

  • get_notebook_summary

    Read a notebook’s own summary of its sources and the questions it suggests asking. RPC-backed (no browser). Cheaper than asking a question to find out what is in there.

  • get_chat_history

    Read back the questions and answers already recorded in a notebook, newest first. RPC-backed (no browser). NotebookLM exposes only the most recent conversation, which is what you get unless you pass `conversation_id`.

  • delete_chat_history

    Clear a notebook’s chat history. RPC-backed (no browser). NotebookLM has no per-turn delete: the whole conversation goes. The next question then starts a fresh conversation.

  • export_artifact

    Export a finished Studio artifact to Google Docs or Google Sheets. RPC-backed. Returns the created document link when the server sends one.

  • revise_slide

    Revise one slide of an existing slide deck from a prompt, instead of regenerating the whole deck. RPC-backed. `slide_index` is zero-based. The call returns as soon as the revision is accepted; poll list_content for the result.

  • share_notebook

    Read a notebook’s sharing status, or toggle its public link. Omit `set_public` to just read status (public link on/off, owner/collaborators). Set `set_public: true`/`false` to enable/disable the public link. RPC-backed (no browser).

  • generate_study_aid

    Generate a study aid from a notebook’s sources: flashcards or a quiz. RPC-backed (no browser). Returns when generation completes.

  • generate_mind_map

    Generate and save a mind map from a notebook’s sources. RPC-backed (no browser). Returns the saved mind-map id and its JSON structure.

  • manage_labels

    Manage a notebook’s source labels (RPC-backed): list them, create one, or delete some. action=list (default) / create (needs name) / delete (needs label_ids).

  • research_sources

    Discover web sources for a notebook via NotebookLM Fast Research. RPC-backed. Returns the found sources; set `import: true` to also add them to the notebook.

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

Notebooklm MCP alternatives

View more →

Similar mcp servers in Developer Tools, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Notebooklm MCP (this page)
roomi-fields
217MITOct 30, 2026Scanned, no flagged issues
MCP Use
mcp-use
11kMITOct 30, 2026Scanned, no flagged issues
MobileBuildMCP
getsentry
6.5kMITNov 1, 2026Scanned, no flagged issues
Gemini Notebook MCP CLI
jacob-bd
6.4kMITOct 27, 2026Scanned, no flagged issues
Mcporter
openclaw
5.1kMITOct 27, 2026Scanned, no flagged issues
Flint Chart
microsoft
4.5kMITNov 1, 2026Scanned, no flagged issues