Skip to content
Agentmart
Submit a tool

Notebooklm MCP Secure

Security-hardened NotebookLM MCP with post-quantum encryption

Connector by Pantheon-Security · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 87
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/pantheon-security-notebooklm-mcp-secure

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Security-hardened NotebookLM MCP with post-quantum encryption

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
33 read · 17 write · 6 delete · 8 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 64

Read from the source code; the running server may list different tools.

Read 33 · Look things up without changing anything.

  • ask_question
  • cleanup_data
  • collect_audit_evidence
  • compliance_dashboard
  • compliance_score
  • deep_research
  • gemini_query
  • get_audio_status
  • get_consent_status
  • get_data_table
  • get_health
  • get_incident_status
Show 21 more tools
  • get_library_stats
  • get_notebook
  • get_notebook_chat_history
  • get_policy
  • get_project_info
  • get_query_history
  • get_quota
  • get_research_status
  • get_video_status
  • list_documents
  • list_evidence_packages
  • list_notebooks
  • list_policies
  • list_sessions
  • list_sources
  • list_webhooks
  • query_chunked_document
  • query_document
  • search_notebooks
  • verify_audit_log_integrity
  • verify_evidence_integrity

Write 17 · Create, change, send or run things.

  • add_folder
  • add_notebook
  • add_source
  • batch_create_notebooks
  • close_session
  • configure_webhook
  • create_notebook
  • download_audio
  • grant_consent
  • run_health_check
  • select_notebook
  • set_quota_tier
Show 5 more tools
  • submit_dsar
  • sync_library
  • test_webhook
  • update_notebook
  • upload_document

Delete 6 · Delete, drop, revoke or wipe things.

  • delete_document
  • remove_notebook
  • remove_source
  • remove_webhook
  • reset_session
  • revoke_consent

Not yet classified 8 · We could not tell from the name and description.

  • export_library
  • export_user_data
  • generate_audio_overview
  • generate_compliance_report
  • generate_data_table
  • generate_video_overview
  • report_security_incident
  • request_data_erasure

Network hosts it talks to 8

  • accounts.google.com · found in code
  • github.com · found in code
  • hooks.slack.com · found in code
  • notebook.google.com · found in code
  • notebooklm.google.com · found in code
  • owasp.org · found in code
  • pantheonsecurity.io · found in code
  • react.dev · found in code

Files it touches

  • /home/ross-churchill/Documents/notebooklm-mcp-secure/.medusa.yml
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/package.json
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/src/index.ts
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/src/tools/definitions/ask-question.ts
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/src/tools/definitions/system.ts
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/src/utils/secure-memory.ts
  • /home/ross-churchill/Documents/notebooklm-mcp-secure/tests/secure-memory.test.ts
  • /tmp/chat-history.json
  • /tmp/notebooklm-sources-discovery.png
  • /var/log
  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (64)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_folder

    Add all files from a local folder as sources to a NotebookLM notebook. ## Use this when - User wants to add a folder of PDFs, docs, or text files to a notebook - Adding 5+ files at once (faster than calling add_source repeatedly) ## Behaviour - Scans the folder for supported file types (default: .pdf, .txt, .md, .docx) - Adds each file one-by-one with progress updates - Skips files that fail and reports them in the summary - If file count exceeds your tier's source limit, auto-splits into multiple notebooks ## Dry Run First (recommended for large folders) ```json { "folder_path": "/path/to/…

  • add_notebook

    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.

  • add_source

    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" } } ```

  • ask_question

    Description is built at runtime.

  • batch_create_notebooks

    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:/…

  • cleanup_data

    Preview or delete NotebookLM MCP data across known install, browser, cache, log, backup, and trash locations. Run first with confirm=false, then rerun with confirm=true after review. Close all Chrome/Chromium instances before deleting browser data. Set preserve_library=true to keep the local notebook library. Optional categories (Claude project caches, editor logs, trash) are previewed but NOT deleted unless include_optional=true.

  • close_session

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

  • collect_audit_evidence

    Collect evidence package for compliance audits. Creates a verifiable package with checksums.

  • compliance_dashboard

    Get comprehensive compliance dashboard with GDPR, SOC2, and CSSF status. Shows overall compliance score, health status, and key metrics.

  • compliance_score

    Get current compliance score (0-100) for each regulation and overall. Includes detailed breakdown by category.

  • configure_webhook

    Add or update a webhook endpoint for event notifications. ## Supported Formats - generic: Standard JSON payload - slack: Slack webhook format - discord: Discord webhook format - teams: Microsoft Teams format ## Events Subscribe to specific events or use '*' for all events: - question_answered, notebook_created, notebook_deleted - source_added, source_removed - session_created, session_expired - auth_required, rate_limit_hit, security_incident - quota_warning, audio_generated, batch_complete ## Example ```json { "name": "Slack Notifications", "url": "https://hooks.slack.com/...", "form…

  • create_notebook

    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": "htt…

  • deep_research

    Perform deep research using Gemini's Deep Research agent. > **⚠️ REQUIRES GEMINI_API_KEY** - Do NOT use this tool unless GEMINI_API_KEY is configured. For notebook queries, use ask_question instead (no API key needed). This runs in the background and can take 1-5 minutes to complete. ## When to Use - ONLY when GEMINI_API_KEY is configured - You need comprehensive research on a topic NOT in your notebooks - No specific NotebookLM notebook is relevant ## When NOT to Use - **Use ask_question instead** for queries about your NotebookLM notebooks (no API key needed) - If GEMINI_API_KEY is not s…

  • delete_document

    Delete an uploaded document from Gemini. ## What This Does - Removes a file from Gemini Files API - File will no longer be available for queries - Frees up storage space ## Notes - Files auto-delete after 48 hours anyway - Use this to immediately remove sensitive documents ## Requirements - GEMINI_API_KEY environment variable must be set

  • download_audio

    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" } ```

Show 49 more tools
  • export_library

    Export your notebook library to a backup file. ## Formats - **json**: Full backup with all metadata (recommended for restore) - **csv**: Simple list for spreadsheets (name, url, topics, last_used) ## Default Location If no output_path specified, saves to: ~/notebooklm-library-backup-{date}.{format} ## Example Usage ```json { "format": "json" } ``` Export to specific location: ```json { "format": "csv", "output_path": "/path/to/backup.csv" } ```

  • export_user_data

    Export all user data in machine-readable format (GDPR Article 20 - Right to Data Portability).

  • gemini_query

    Quick query to Gemini model with optional grounding tools. > **⚠️ REQUIRES GEMINI_API_KEY** - Do NOT use this tool unless GEMINI_API_KEY is configured. For notebook queries, use ask_question instead (no API key needed). Supports: - Google Search grounding for current information - Code execution for calculations - URL analysis for web content ## Requirements - GEMINI_API_KEY environment variable MUST be set ## When to Use (ONLY if API key is configured) - Quick factual questions NOT in your notebooks - Current events (with google_search tool) - Code calculations (with code_execution tool) …

  • generate_audio_overview

    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" } ```

  • generate_compliance_report

    Generate a compliance audit report. Supports multiple report types and formats.

  • generate_data_table

    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" } ```

  • generate_video_overview

    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*…

  • get_audio_status

    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" } ```

  • get_consent_status

    Get current consent status for all data processing purposes.

  • get_data_table

    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" } ```

  • get_health

    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…

  • get_incident_status

    Get status of security incidents including open, investigating, and resolved counts.

  • get_library_stats

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

  • get_notebook

    Get detailed information about a specific notebook by ID

  • get_notebook_chat_history

    Extract conversation history from a NotebookLM notebook's chat interface. This tool uses browser automation to navigate to a notebook and extract all Q&A pairs from the chat UI. This is useful for: - Recovering previous research conversations - Auditing what queries were made in a notebook - Understanding quota usage from direct NotebookLM browser usage - Resuming context from previous sessions ## Context Management Use `preview_only: true` to get a quick count before extracting full content. Use `output_file` to export to JSON instead of returning to context. Use `offset` with `limit` for p…

  • get_policy

    Get detailed information about a specific compliance policy.

  • get_project_info

    Get current project context and library location. Detects the project from the current working directory using: 1. Git repository root (looks for .git directory) 2. package.json location (for npm projects) 3. Current directory as fallback Returns: - project: { id, name, path, type } or null if using global library - library_path: Path to the active library.json file - is_project_library: Whether using per-project or global library Use this to understand which library context is active.

  • get_query_history

    Retrieve past NotebookLM queries and answers for reviewing research sessions. Use this tool to: - Review past research conversations - Find specific information from previous queries - Track which notebooks and sessions you've used - Search through question and answer content Returns query entries with question, answer, notebook, session, and timing info.

  • get_quota

    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, …

  • get_research_status

    Check the status of a background deep research task. Use this when you started deep_research with wait_for_completion=false. ## Returns - status: pending | running | completed | failed - answer: The research result (if completed) - error: Error message (if failed)

  • get_video_status

    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" } ```

  • grant_consent

    Grant consent for a specific data processing purpose.

  • list_documents

    List all documents uploaded to Gemini. ## What This Does - Shows all files currently stored in Gemini Files API - Files expire 48 hours after upload - Returns file names, sizes, and expiration times ## Use Cases - Check what documents are available for querying - Find file IDs for query_document - Monitor storage usage ## Requirements - GEMINI_API_KEY environment variable must be set

  • list_evidence_packages

    List all saved evidence packages with their metadata.

  • list_notebooks

    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.

  • list_policies

    List all compliance policies with their status and review dates.

  • list_sessions

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

  • list_sources

    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.

  • list_webhooks

    List all configured webhooks with their status and statistics. Returns array of webhooks with: id, name, url, enabled, events, format.

  • query_chunked_document

    Query a large document that was automatically chunked during upload. ## What This Does - Queries each chunk of a large document - Aggregates results into a single coherent answer - Handles documents of any size (1000+ pages) ## When to Use - After upload_document returns wasChunked=true - When you have multiple chunk file IDs to query together - For comprehensive analysis of large PDFs ## How It Works 1. Queries each chunk with your question 2. Collects answers from all chunks 3. Uses Gemini to synthesize a unified response 4. Returns aggregated answer with all sources ## Example If upload…

  • query_document

    Ask questions about an uploaded document. ## What This Does - Queries a document previously uploaded with upload_document - Uses Gemini's document understanding (text, images, charts, tables) - Returns answers grounded in the document content ## Features - Full document understanding (not just text extraction) - Can analyze charts, diagrams, and tables in PDFs - Multi-document queries (pass additional file IDs) - Fast API-based (no browser automation) ## When to Use - Quick document analysis without browser - Comparing multiple documents - Extracting specific information ## Requirements - …

  • remove_notebook

    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

  • remove_source

    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" } ```

  • remove_webhook

    Remove a configured webhook by ID.

  • report_security_incident

    Report a security incident for investigation and tracking.

  • request_data_erasure

    Request erasure of personal data (GDPR Article 17 - Right to Erasure). Creates an erasure request for review.

  • reset_session

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

  • revoke_consent

    Revoke previously granted consent for a data processing purpose.

  • run_health_check

    Run a comprehensive health check of all compliance components.

  • search_notebooks

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

  • select_notebook

    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)

  • set_quota_tier

    Manually set your NotebookLM license tier. Use this if: - Auto-detection failed (shows 'unknown') - You want to override the detected tier - You upgraded/downgraded your plan Tiers: - free: 100 notebooks, 50 sources, 50 queries/day - pro: 500 notebooks, 300 sources, 500 queries/day - ultra: 500 notebooks, 600 sources, 5000 queries/day

  • submit_dsar

    Submit a Data Subject Access Request (GDPR Article 15-17, 20). Initiates the DSAR workflow.

  • sync_library

    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 - **…

  • test_webhook

    Send a test event to a webhook to verify it's working. Sends a sample 'question_answered' event and returns success/failure.

  • update_notebook

    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.

  • upload_document

    Upload a document (PDF, text, etc.) to Gemini for querying. > **⚠️ REQUIRES GEMINI_API_KEY** - For adding documents to NotebookLM notebooks (no API key), use create_notebook or add_source instead. ## What This Does - Uploads a local file to Gemini's Files API - File is retained for 48 hours - Returns a file ID for use with query_document ## Auto-Chunking for Large PDFs (v1.10.0) - PDFs over 50MB or 1000 pages are automatically split into chunks - Each chunk is uploaded separately and tracked - Use query_chunked_document or pass all chunk IDs to query_document - Returns wasChunked=true and a…

  • verify_audit_log_integrity

    Verify the integrity of compliance audit logs using hash chain verification.

  • verify_evidence_integrity

    Verify the integrity of an evidence package using cryptographic checksums.

Signals

Stars
87
Forks
19
Open issues
1
Contributors
3
Weekly downloads
92
Last commit
Sep 3, 2026 (1 month ago)
Last release
Sep 3, 2026 (1 month ago)
Last package publish
Aug 29, 2026 (2 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.Pantheon-Security/notebooklm-mcp-secure
Version
2026.5.0
Auth
No auth
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

Notebooklm MCP Secure. Agent Mart. https://agentmart.dev/connectors/pantheon-security-notebooklm-mcp-secure (last updated 2026-10-24)