Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Pantheon-Security/notebooklm-mcp-secure

NPM · @PAN-SEC/NOTEBOOKLM-MCP

Security-hardened NotebookLM MCP with post-quantum encryption

+1 this week 79 Trust /100

Last scanned (9 hours ago)

Scores higher than 61% of npm servers

Category Education and Research

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security93
  • No malware found by supply-chain analysis.Pass
  • CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.18, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. View diagnostics → Fail
  • No install/post-install scripts declared.Pass
  • 63 of 169 dependencies flagged as unhealthy (1 deprecated). View diagnostics → Partial
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 67 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 4692 tokens (~187/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management77
  • Stability observed for 23 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1
    • CVE-2026-111767 no longer affects this package ▲ security
    • CVE-2026-104850 no longer affects this package ▲ security
    • CVE-2026-111768 no longer affects this package ▲ security
    • CVE-2026-111771 no longer affects this package ▲ security
    • CVE-2026-111769 no longer affects this package ▲ security
    • GHSA-f897-62hf-6gxq no longer affects this package ▲ security
    • Known CVEs: CVE check failed: a known medium-severity CVE affects @hono/node-server 1.19.18, reached via @modelcontextprotocol/sdk > @hono/node-server. A fixed version is available. security
    • Stability: pass → 0.77 functional
  • 30 Oct 26 0
    • Stability: 0.97 → pass security
    • Package version: 2026.1.6 → 2026.5.0 functional
  • 29 Oct 26 0
    • CVE-2026-118663 affects this package: high ▼ security
    • Stability: pass → 0.97 functional
  • 28 Oct 26 0
    • GHSA-f897-62hf-6gxq affects this package: high ▼ security
  • 25 Oct 26 0
    • Package version: 2026.1.6 → 2026.5.0 functional
  • 21 Oct 26 0
    • CVE-2026-111771 affects this package: high ▼ security
    • CVE-2026-111768 affects this package: high ▼ security
    • CVE-2026-111769 affects this package: high ▼ security
    • CVE-2026-111767 affects this package: high ▼ security
  • 17 Oct 26 0
    • Stability: 0.97 → pass security
  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed npm/@pan-sec/notebooklm-mcp@2026.5.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Vulnerabilities 1 finding
ID CVE Severity Vector Fix available
GHSA-rmxm-3fg6-px4f CVE-2026-118663 medium CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N yes

Background: What a vulnerability scan can and cannot prove →

Dependencies 169 packages
Packages resolved 169
Deprecated 1
Stale 62
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 25 exposed · ~4,692 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_notebook ~196

Add a NotebookLM notebook to the local library after explicit user confirmation. Provide the NotebookLM URL plus concise metadata: name, description, topics, and optional use cases/tags. Do not infer missing metadata; ask the user first.

NameTypeReqDescription
content_typesarray–Types of content (e.g., ['documentation', 'examples', 'best practices'])
descriptionstringyesWhat knowledge/content is in this notebook
namestringyesDisplay name for the notebook (e.g., 'n8n Documentation')
tagsarray–Optional tags for organization
topicsarrayyesTopics covered in this notebook
urlstringyesThe NotebookLM notebook URL (must be a NotebookLM URL, e.g. https://notebook.google.com/notebook/<id>)
use_casesarray–When should Claude use this notebook (e.g., ['Implementing n8n workflows'])

No output schema declared.

No examples provided.

add_source ~166

Add a source to an existing NotebookLM notebook. If neither `notebook_id` nor `notebook_url` is provided, this tool uses the currently active notebook from the local library. ## Source Types - **url**: Web page URL - **text**: Text content (paste) - **file**: Local file path (PDF, DOCX, TXT) ## Example ```json { "notebook_id": "my-notebook", "source": { "type": "url", "value": "https://docs.example.com/api" } } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Direct notebook URL (overrides notebook_id)
sourceobjectyes–

No output schema declared.

No examples provided.

ask_question ~253

NotebookLM notebook Q&A via browser automation. No active notebook is selected. Use list_notebooks and select_notebook to choose one, or pass notebook_url. No Gemini API key is required, but browser authentication must be valid. If login is required, use the setup_auth tool and verify with get_health (or ask the user to run the notebooklm.auth-setup prompt for a guided walkthrough).

NameTypeReqDescription
browser_optionsobject–Optional browser behavior settings. Claude can control everything: visibility, typing speed, stealth mode, timeouts. Useful for debugging or fine-tuning.
notebook_idstring–Optional notebook ID from your library. If omitted, uses the active notebook. Use list_notebooks to see available notebooks.
notebook_urlstring–Optional notebook URL (overrides notebook_id). Use this for ad-hoc queries to notebooks not in your library.
questionstringyesThe question to ask NotebookLM
session_idstring–Optional session ID for contextual conversations. If omitted, a new session is created.
show_browserboolean–Show browser window for debugging (simple version). For advanced control (typing speed, stealth, etc.), use browser_options instead.

No output schema declared.

No examples provided.

batch_create_notebooks ~312

Create multiple NotebookLM notebooks in one operation. ## What This Tool Does - Creates up to 10 notebooks in a single batch operation - Reports progress for each notebook - Optionally continues on error or stops on first failure - Auto-adds created notebooks to your library ## Example Usage ```json { "notebooks": [ { "name": "React Documentation", "sources": [ { "type": "url", "value": "https://react.dev/reference" } ], "topics": ["react", "frontend"] }, { "name": "Node.js API", "sources": [ { "type": "url", "value": "https://nodejs.org/api/" } ], "topics": ["nodejs", "backend"] } ], "stop_on_error": false } ``` ## Limits - Maximum 10 notebooks per batch - Each notebook follows individual source limits (50-600 based on tier) - Delays between notebooks to avoid rate limiting ## Returns Summary with: - total: Number of notebooks attempted - succeeded: Successfully created count - failed: Failed count - results: Array of individual results

NameTypeReqDescription
notebooksarrayyesArray of notebooks to create (max 10)
show_browserboolean–Show browser window for debugging
stop_on_errorboolean–Stop batch if any notebook fails (default: false)

No output schema declared.

No examples provided.

create_notebook ~476

Create a new NotebookLM notebook with sources programmatically. ## What This Tool Does - Creates a NEW notebook in your NotebookLM account - Uploads sources (URLs, text, files) to the notebook - Returns the notebook URL for immediate use - Optionally adds to your local library ## Supported Source Types - **url**: Web page URL (documentation, articles, etc.) - **text**: Raw text content (code, notes, etc.) - **file**: Local file path (PDF, DOCX, TXT) ## Example Usage Create a notebook from API documentation: ```json { "name": "React Docs", "sources": [ { "type": "url", "value": "https://react.dev/reference/react" } ] } ``` Create a notebook with multiple sources: ```json { "name": "Security Research", "sources": [ { "type": "url", "value": "https://owasp.org/Top10" }, { "type": "file", "value": "/path/to/security-report.pdf" }, { "type": "text", "value": "Custom notes...", "title": "My Notes" } ], "description": "Security best practices and research", "topics": ["security", "owasp", "best-practices"] } ``` ## NotebookLM Limits (Free Tier) - 100 notebooks maximum - 50 sources per notebook - 500k words per source - 50 queries per day ## Notes - Requires authentication (run setup_auth first) - Creates notebook with sharing set to private by default - Large files may take longer to process

NameTypeReqDescription
auto_add_to_libraryboolean–Whether to automatically add the created notebook to your library (default: true)
browser_optionsobject–Optional browser settings for debugging
descriptionstring–Optional description for the notebook in your library
namestringyesDisplay name for the new notebook
show_browserboolean–Show browser window (shorthand for browser_options.show)
sourcesarrayyesArray of sources to add to the notebook
topicsarray–Optional topics for categorization in your library

No output schema declared.

No examples provided.

download_audio ~141

Download the generated audio overview file. ## Requirements - Audio must be in "ready" status - Use get_audio_status to check before downloading ## Output Downloads to specified path or ~/notebooklm-audio-{timestamp}.mp3 ## Example ```json { "notebook_id": "my-research", "output_path": "/path/to/save/podcast.mp3" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)
output_pathstring–Optional output file path (absolute, no .. or ~ allowed)

No output schema declared.

No examples provided.

generate_audio_overview ~148

Generate an AI-powered audio overview (podcast-style) for a notebook. ## What This Tool Does - Triggers NotebookLM's audio overview generation - Audio overviews are ~5-15 minute podcast-style summaries - Generation takes 2-5 minutes typically - Returns immediately with status (check with get_audio_status) ## Requirements - Notebook must have at least one source - Audio generation may not be available on all notebooks ## Example ```json { "notebook_id": "my-research" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

generate_data_table ~147

Generate a structured Data Table from notebook sources. ## What This Tool Does - Opens the Studio panel in NotebookLM - Generates a structured tabular extraction from notebook content - Tables organize key information from sources into rows and columns - Generation typically takes 1-3 minutes - Returns immediately with status (check with get_data_table) ## Requirements - Notebook must have at least one source - Authentication required (run setup_auth first) ## Example ```json { "notebook_id": "my-research" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

generate_video_overview ~364

Generate an AI-powered Video Overview for a notebook. ## What This Tool Does - Opens the Studio panel in NotebookLM - Generates a visual video summary of notebook content - Supports multiple visual styles and formats - Generation takes 3-10 minutes typically - Returns immediately with status (check with get_video_status) - NotebookLM does not currently expose a supported video download path through this MCP server; use the NotebookLM UI to download ready videos. ## Visual Styles - **auto-select** — Let NotebookLM choose the best style (default) - **custom** — Custom visual style - **classic** — Classic presentation style - **whiteboard** — Hand-drawn whiteboard style - **kawaii** — Cute kawaii style - **anime** — Anime-inspired visuals - **watercolour** — Watercolour painting style - **retro-print** — Retro print aesthetic - **heritage** — Heritage/traditional style - **paper-craft** — Paper-craft visual style ## Formats - **explainer** — Full explanation (5-15 min, default) - **brief** — Quick summary (1-3 min) ## Requirements - Notebook must have at least one source - Authentication required (run setup_auth first) ## Example ```json { "notebook_id": "my-research", "style": "whiteboard", "format": "brief" } ```

NameTypeReqDescription
formatstring–Video format (explainer = full, brief = short summary)
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)
stylestring–Visual style for the video overview

No output schema declared.

No examples provided.

get_audio_status ~117

Check the audio overview generation status for a notebook. ## Returns - status: "not_started" | "generating" | "ready" | "failed" | "unknown" - progress: Generation progress (0-100) if generating - duration: Audio duration in seconds if ready ## Example ```json { "notebook_id": "my-research" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

get_data_table ~170

Extract the generated Data Table content from a notebook. ## What This Tool Does - Navigates to the notebook's Studio panel - Extracts the table data (headers and rows) as structured JSON - Returns the full table content for analysis ## Returns - table.headers: Column headers - table.rows: Array of row arrays - table.totalRows: Number of rows - table.totalColumns: Number of columns ## Requirements - Data table must be generated first (use generate_data_table) - Returns error if table is not yet ready ## Example ```json { "notebook_id": "my-research" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

get_health ~201

Get server health status including authentication state, active sessions, and configuration. Use this to verify the server is ready before starting research workflows. **Deep Check Mode (v2026.1.1)** Set `deep_check: true` to actually verify the NotebookLM chat UI loads. This catches stale sessions where cookies exist but the UI won't load. Returns `chat_ui_accessible: true/false`. If authenticated=false and having persistent issues: Suggest to the user that a fresh start (cleanup_data with preserve_library=true, followed by setup_auth) may help, and ask for their confirmation before running any cleanup, since cleanup_data deletes browser/session data.

NameTypeReqDescription
deep_checkboolean–If true, actually navigates to NotebookLM and verifies the chat UI loads. More reliable but slower (~5s). Use this before important query sessions.
notebook_idstring–Notebook to check (for deep_check). Defaults to active notebook or first available.

No output schema declared.

No examples provided.

get_notebook ~29

Get detailed information about a specific notebook by ID

NameTypeReqDescription
idstringyesThe notebook ID

No output schema declared.

No examples provided.

get_quota ~221

Get current quota status including license tier, usage, and limits. Returns: - tier: 'free', 'pro', 'ultra', or 'unknown' - notebooks: used/limit/remaining/percent - sources: limit per notebook - queries: used/limit/remaining/percent/should_stop/reset_time - warnings: array of warning messages Quota Limits by Tier: - Free: 100 notebooks, 50 sources/notebook, 50 queries/day - Pro: 500 notebooks, 300 sources/notebook, 500 queries/day - Ultra: 500 notebooks, 600 sources/notebook, 5000 queries/day Use sync=true to fetch actual quota from Google's NotebookLM UI (requires browser). Without sync, returns locally tracked counts which may differ if you used NotebookLM directly in browser. Query counts reset daily at midnight.

NameTypeReqDescription
syncboolean–If true, navigate to NotebookLM and fetch actual quota from Google's UI. More accurate but requires browser automation. Default: false (use local tracking).

No output schema declared.

No examples provided.

get_video_status ~117

Check the Video Overview generation status for a notebook. ## Returns - status: "not_started" | "generating" | "ready" | "failed" | "unknown" - progress: Generation progress (0-100) if generating - duration: Video duration in seconds if ready ## Example ```json { "notebook_id": "my-research" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Or direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

list_notebooks ~41

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_sources ~74

List sources in a notebook. Provide notebook_id or notebook_url; if neither is provided, the active notebook from the local library is used. Returns source id, title, type, and status.

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Direct notebook URL (overrides notebook_id)

No output schema declared.

No examples provided.

re_auth ~286

Switch to a different Google account or re-authenticate. Use this when: - NotebookLM rate limit is reached (50 queries/day for free accounts) - 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 2. Delete all saved authentication data (cookies, Chrome profile) 3. Open browser for fresh Google login After completion, use 'get_health' to verify authentication. TROUBLESHOOTING for persistent auth issues: If re_auth fails repeatedly, suggest these steps to the user and ask for their confirmation before running any cleanup (cleanup_data deletes browser/session and installation data): 1. Ask the user to close ALL Chrome/Chromium instances 2. Run cleanup_data(confirm=false, preserve_library=true) to preview the files that would be removed 3. Only after the user reviews the preview and confirms, run cleanup_data(confirm=true, preserve_library=true) to clean everything except the library 4. Run re_auth again for a completely fresh start This removes old installation data and browser sessions that can cause conflicts.

NameTypeReqDescription
browser_optionsobject–Optional browser settings. Control visibility, timeouts, and stealth behavior.
show_browserboolean–Show browser window (simple version). Default: true for re-auth. For advanced control, use browser_options instead.

No output schema declared.

No examples provided.

remove_notebook ~135

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 remove_notebook Never remove without permission or based on assumptions. Example: User: "Delete the old React notebook" You: "Remove 'React Best Practices' from your library?" User: "Yes" → call remove_notebook

NameTypeReqDescription
idstringyesThe notebook ID to remove

No output schema declared.

No examples provided.

remove_source ~149

Remove a source from a NotebookLM notebook. If neither `notebook_id` nor `notebook_url` is provided, this tool uses the currently active notebook from the local library. ## Usage 1. First call list_sources to get source IDs 2. Then call remove_source with the source ID ## Example ```json { "notebook_id": "my-notebook", "source_id": "source-0" } ```

NameTypeReqDescription
notebook_idstring–Library notebook ID
notebook_urlstring–Direct notebook URL (overrides notebook_id)
source_idstringyesSource ID from list_sources (e.g., 'source-0')

No output schema declared.

No examples provided.

search_notebooks ~46

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

NameTypeReqDescription
querystringyesSearch query

No output schema declared.

No examples provided.

select_notebook ~150

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 is clear and you announce it: "Switching to React notebook for this task..." - If ambiguous, ask: "Switch to [notebook] for this task?" ## Example User: "Now let's build the React frontend" You: "Switching to React notebook..." (call select_notebook)

NameTypeReqDescription
idstringyesThe notebook ID to activate

No output schema declared.

No examples provided.

setup_auth ~245

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 first-time authentication or when auto-login credentials are not available. For switching accounts or rate-limit workarounds, use 're_auth' tool instead. TROUBLESHOOTING for persistent auth issues: If setup_auth fails or you encounter browser/session issues, suggest these steps to the user and get their confirmation before running any cleanup (cleanup_data deletes browser/session data): 1. Ask the user to close ALL Chrome/Chromium instances 2. Ask the user before running cleanup_data(confirm=true, preserve_library=true) to clean old data 3. Run setup_auth again for a fresh start This helps resolve conflicts from old browser sessions and installation data.

NameTypeReqDescription
browser_optionsobject–Optional browser settings. Control visibility, timeouts, and stealth behavior.
show_browserboolean–Show browser window (simple version). Default: true for setup. For advanced control, use browser_options instead.

No output schema declared.

No examples provided.

sync_library ~248

Sync your local library with actual NotebookLM notebooks. ## What This Tool Does - Navigates to NotebookLM and extracts all your notebooks - Compares with local library entries - Detects stale entries (notebooks deleted or URLs changed) - Identifies notebooks not in your library - Optionally auto-removes stale entries ## When To Use - Library seems out of sync with NotebookLM - After deleting notebooks in NotebookLM - To discover new notebooks to add - Before setting up automation workflows ## Output Returns a sync report with: - **matched**: Library entries that match actual notebooks - **staleEntries**: Library entries with no matching notebook (candidates for removal) - **missingNotebooks**: NotebookLM notebooks not in library (candidates for adding) - **suggestions**: Recommended actions ## Example Usage ```json { "auto_fix": false } ``` With auto-fix to remove stale entries: ```json { "auto_fix": true } ```

NameTypeReqDescription
auto_fixboolean–Automatically remove stale library entries (default: false)
show_browserboolean–Show browser window for debugging

No output schema declared.

No examples provided.

update_notebook ~260

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: "Add 'Next.js 14' to topics for React?" User: "Yes" → call update_notebook - User: "Include error handling in n8n description" You: "Update the n8n description to mention error handling?" User: "Yes" → call update_notebook Tip: You may update multiple fields at once if requested.

NameTypeReqDescription
content_typesarray–New content types
descriptionstring–New description
idstringyesThe notebook ID to update
namestring–New display name
tagsarray–New tags
topicsarray–New topics list
urlstring–New notebook URL (must be a NotebookLM URL, e.g. https://notebook.google.com/notebook/<id>)
use_casesarray–New use cases

No output schema declared.

No examples provided.

Install

How do I install the io.github.Pantheon-Security/notebooklm-mcp-secure server?

io.github.Pantheon-Security/notebooklm-mcp-secure runs locally as an npm package, launched with npx -y @pan-sec/notebooklm-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @pan-sec/notebooklm-mcp

# add to Claude Code
claude mcp add pantheon-security-notebooklm-mcp-secure -- npx -y @pan-sec/notebooklm-mcp
Common questions

What is the io.github.Pantheon-Security/notebooklm-mcp-secure server?

io.github.Pantheon-Security/notebooklm-mcp-secure is listed in the public MCP registry as io.github.Pantheon-Security/notebooklm-mcp-secure. Security-hardened NotebookLM MCP with post-quantum encryption. This page covers its npm package (@pan-sec/notebooklm-mcp).

Is the io.github.Pantheon-Security/notebooklm-mcp-secure server safe to use?

io.github.Pantheon-Security/notebooklm-mcp-secure scores 79 out of 100 on VerifyMCP. We recorded 1 known advisory against it as of 5 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Pantheon-Security/notebooklm-mcp-secure server expose?

io.github.Pantheon-Security/notebooklm-mcp-secure exposes 25 tools: ask_question, add_notebook, list_notebooks, get_notebook, select_notebook, and 20 more. Their descriptions and schemas cost roughly 4,692 tokens of context every time the server is loaded.

Is the io.github.Pantheon-Security/notebooklm-mcp-secure server still maintained?

io.github.Pantheon-Security/notebooklm-mcp-secure is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Pantheon-Security/notebooklm-mcp-secure server under?

io.github.Pantheon-Security/notebooklm-mcp-secure declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.