skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
reason-machines/devtools-skills146 installs

notebooklm-mcp-programmatic-access

Programmatic access to Google NotebookLM via CLI and MCP server for AI-powered research, podcast generation, and notebook management

How do I install this agent skill?

npx skills add https://github.com/reason-machines/devtools-skills --skill notebooklm-mcp-programmatic-access
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubwarn

    This skill provides programmatic access to Google NotebookLM via a third-party CLI and MCP server. It performs sensitive operations including extracting browser cookies for authentication and automatically modifying configuration files for AI tools like Claude and Cursor.

  • Socketpass

    No alerts

  • Snykwarn

    Risk: MEDIUM · 1 issue

What does this agent skill do?

NotebookLM MCP & CLI

Skill by ara.so — Devtools Skills collection.

notebooklm-mcp-cli provides programmatic access to Google NotebookLM through both a command-line interface (nlm) and Model Context Protocol (MCP) server (notebooklm-mcp). Use it to automate research workflows, generate AI podcasts, manage notebooks, and integrate NotebookLM into AI coding agents.

What It Does

  • Notebook Management: Create, list, delete, and share NotebookLM notebooks
  • Source Management: Add sources from URLs, text, Google Drive, or local files
  • AI Studio: Generate audio podcasts, video presentations, slide decks, and infographics
  • Query & Research: Query notebooks, perform web/Drive research, cross-notebook queries
  • Automation: Batch operations, pipelines, tagging, and smart selection
  • MCP Integration: Connect Claude, Gemini, Cursor, and other AI tools to NotebookLM
  • Profile Support: Manage multiple Google accounts with isolated browser sessions

Installation

Using uv (Recommended)

uv tool install notebooklm-mcp-cli

Using pip

pip install notebooklm-mcp-cli

Using pipx

pipx install notebooklm-mcp-cli

After installation, you get:

  • nlm — CLI command
  • notebooklm-mcp — MCP server executable

Authentication

Before using, authenticate with your Google account:

# Auto mode: launches browser, extracts cookies automatically
nlm login

# Check authentication status
nlm login --check

# Use named profiles for multiple Google accounts
nlm login --profile work
nlm login --profile personal

# Switch default profile
nlm login switch personal

# List all profiles
nlm login profile list

# Manual mode: import cookies from file
nlm login --manual --file cookies.txt

Profile Management:

nlm login profile list                # Show all profiles with emails
nlm login profile delete work         # Delete a profile
nlm login profile rename old new      # Rename a profile

Each profile maintains its own browser session and cookies, allowing simultaneous use of multiple Google accounts.

CLI Quick Start

Basic Workflow

# List existing notebooks
nlm notebook list

# Create a new notebook
nlm notebook create "AI Research Project"

# Add sources (URL, text, Drive, or file)
nlm source add <notebook-id> --url "https://example.com/article"
nlm source add <notebook-id> --text "Raw text content here"
nlm source add <notebook-id> --drive "https://docs.google.com/document/d/..."
nlm source add <notebook-id> --file ./document.pdf

# Query the notebook
nlm notebook query <notebook-id> "What are the key findings?"

# Generate a podcast
nlm studio create <notebook-id> --type audio --confirm

# Download the audio file
nlm download audio <notebook-id> <artifact-id>

# Share notebook publicly
nlm share public <notebook-id>

Studio Content Types

# Generate audio podcast
nlm studio create <notebook-id> --type audio --confirm

# Create video presentation
nlm studio create <notebook-id> --type video --confirm

# Generate slide deck
nlm studio create <notebook-id> --type slides --confirm

# Create infographic
nlm studio create <notebook-id> --type infographic --confirm

# Revise existing slide deck
nlm slides revise <notebook-id> <artifact-id> "Make it more technical"

Advanced Features

# Batch query multiple notebooks
nlm batch query "What are the main themes?" --tag research

# Cross-notebook query
nlm cross query "Compare findings across all notebooks" --tag project-alpha

# Run a pipeline
nlm pipeline run research-workflow --input '{"topic": "quantum computing"}'

# Tag notebooks for organization
nlm tag add <notebook-id> research ai ml
nlm tag list
nlm tag select --tag research --limit 5

# Web and Drive research
nlm research start <notebook-id> --query "latest AI developments" --max-results 10

Configuration

# Set preferred browser for authentication
nlm config set auth.browser brave

# Set default profile
nlm config set auth.default_profile work

# View all settings
nlm config list

MCP Server Setup

Automatic Configuration

# Add to Claude Code
nlm setup add claude-code

# Add to Claude Desktop
nlm setup add claude-desktop

# Add to Gemini CLI
nlm setup add gemini

# Add to Cursor
nlm setup add cursor

# Add to GitHub Copilot
nlm setup add github-copilot

# Add to Windsurf
nlm setup add windsurf

# Generate JSON for other tools
nlm setup add json

# List configured tools
nlm setup list

# Remove from a tool
nlm setup remove claude-code

Manual Configuration

If automatic setup doesn't work, add to your MCP client's config:

Claude Desktop/Code (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "notebooklm": {
      "command": "notebooklm-mcp"
    }
  }
}

Cursor (.cursor/mcp_config.json):

{
  "mcpServers": {
    "notebooklm": {
      "command": "notebooklm-mcp"
    }
  }
}

MCP Tools Reference

The MCP server provides 35 tools. Key tools include:

Notebook Operations

  • notebook_list — List all notebooks
  • notebook_create — Create new notebook
  • notebook_delete — Delete notebook
  • notebook_query — Query notebook (persists to web UI)
  • notebook_get — Get notebook details
  • notebook_share_public — Enable public sharing
  • notebook_share_invite — Share with specific users

Source Management

  • source_add — Add URL, text, Drive, or file source
  • source_list — List sources in notebook
  • source_delete — Remove source
  • source_sync_drive — Sync Drive folder

Studio Content

  • studio_create — Generate audio, video, slides, or infographic
  • studio_revise — Revise slide decks
  • download_artifact — Download generated content

Research

  • research_start — Web/Drive research
  • research_status — Check research progress
  • cross_notebook_query — Query across multiple notebooks

Batch & Automation

  • batch — Batch operations (query, create, delete)
  • pipeline — Multi-step workflows
  • tag — Tag and organize notebooks

Code Examples

Python: Using the MCP Client

from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

# Connect to the MCP server
server_params = StdioServerParameters(
    command="notebooklm-mcp",
    env=None
)

async with stdio_client(server_params) as (read, write):
    async with ClientSession(read, write) as session:
        await session.initialize()
        
        # List notebooks
        result = await session.call_tool("notebook_list", {})
        print(result)
        
        # Create notebook
        result = await session.call_tool("notebook_create", {
            "title": "Research Project"
        })
        notebook_id = result["id"]
        
        # Add source
        await session.call_tool("source_add", {
            "notebook": notebook_id,
            "url": "https://example.com/article"
        })
        
        # Query
        result = await session.call_tool("notebook_query", {
            "notebook": notebook_id,
            "query": "Summarize the key points"
        })
        print(result)
        
        # Generate podcast
        result = await session.call_tool("studio_create", {
            "notebook": notebook_id,
            "content_type": "audio",
            "confirm": True
        })
        artifact_id = result["artifact_id"]
        
        # Download
        audio_data = await session.call_tool("download_artifact", {
            "notebook": notebook_id,
            "artifact_id": artifact_id,
            "artifact_type": "audio"
        })

Shell Script: Automated Research Pipeline

#!/bin/bash

# Create notebook
NOTEBOOK_ID=$(nlm notebook create "Daily Research" | jq -r '.id')

# Add multiple sources
nlm source add "$NOTEBOOK_ID" --url "https://news.ycombinator.com"
nlm source add "$NOTEBOOK_ID" --url "https://arxiv.org/list/cs.AI/recent"

# Start web research
nlm research start "$NOTEBOOK_ID" --query "latest AI breakthroughs" --max-results 20

# Wait for research to complete
sleep 60

# Generate podcast
nlm studio create "$NOTEBOOK_ID" --type audio --confirm

# Get artifact ID
ARTIFACT_ID=$(nlm notebook get "$NOTEBOOK_ID" | jq -r '.artifacts[] | select(.type=="audio") | .id' | head -1)

# Download
nlm download audio "$NOTEBOOK_ID" "$ARTIFACT_ID" --output ./daily-brief.wav

# Share publicly
nlm share public "$NOTEBOOK_ID"

Python: Batch Processing

import subprocess
import json

# Tag notebooks for batch processing
notebooks = ["nb1", "nb2", "nb3"]
for nb in notebooks:
    subprocess.run(["nlm", "tag", "add", nb, "research", "2024"])

# Batch query
result = subprocess.run(
    ["nlm", "batch", "query", "What are the main themes?", "--tag", "research"],
    capture_output=True,
    text=True
)
batch_results = json.loads(result.stdout)

for nb_id, response in batch_results.items():
    print(f"Notebook {nb_id}:")
    print(response["answer"])
    print("---")

Natural Language with MCP (Claude Code)

Once configured, use natural language:

User: Create a NotebookLM notebook about quantum computing, add sources from 
      arxiv.org and nature.com, then generate a podcast summarizing the key concepts.

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/reason-machines/devtools-skills/notebooklm-mcp-programmatic-access">View notebooklm-mcp-programmatic-access on skillZs</a>