Skip to main content
Glama

NotebookLM MCP Server

A remote Model Context Protocol (MCP) server that gives AI agents (Claude, Cursor, Copilot, etc.) full programmatic access to Google NotebookLM via browser automation.

Hosted on Vercel Β· Browser powered by Browserless.io


πŸ—ΊοΈ Architecture

AI Agent (Claude / Cursor)
        β”‚  MCP (Streamable HTTP)
        β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Vercel Function    β”‚  ← Next.js App Router
  β”‚  (TypeScript / MCP) β”‚     mcp-handler adapter
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚  WebSocket (CDP)
            β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Browserless.io     β”‚  ← Remote headless Chromium
  β”‚  (free tier)        β”‚     stealth mode enabled
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚  Playwright
            β–Ό
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
  β”‚  Google NotebookLM  β”‚  ← Authenticated via stored cookies
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⚑ Quick Start

Prerequisites

  • Node.js 18+

  • A free Browserless.io account β†’ get your API token

  • A Google account with access to NotebookLM

  • A Vercel account


Step 1 β€” Clone & install

git clone <your-repo-url>
cd notebooklm-mcp
npm install

Step 2 β€” Extract Google cookies (one-time)

This step opens a browser window for you to sign in. Runs locally only.

# Install playwright for local cookie extraction
npm install playwright --save-dev
npx playwright install chromium

# Run the extractor
npm run get-cookies
  1. A Chrome browser will open β†’ sign in to your Google account

  2. Navigate to NotebookLM and verify you can see your notebooks

  3. Switch back to the terminal and press Enter

  4. The script prints a NOTEBOOKLM_STORAGE_STATE=... value β€” copy it


Step 3 β€” Configure environment variables

Copy .env.example to .env.local and fill in your values:

cp .env.example .env.local
# From https://browserless.io β†’ your dashboard
BROWSERLESS_TOKEN=your_token_here

# From the get-cookies script output
NOTEBOOKLM_STORAGE_STATE=eyJjb29...

# Optional: closest region (sfo | lon | sea | fra)
BROWSERLESS_REGION=sfo

Step 4 β€” Test locally

npm run dev
# MCP endpoint: http://localhost:3000/api/mcp

Step 5 β€” Deploy to Vercel

# Install Vercel CLI
npm i -g vercel

# Deploy (follow the prompts)
vercel

# Add your environment variables (or use the Vercel dashboard)
vercel env add BROWSERLESS_TOKEN
vercel env add NOTEBOOKLM_STORAGE_STATE
vercel env add BROWSERLESS_REGION

# Deploy to production
vercel --prod

Your MCP server will be live at:

https://your-project.vercel.app/api/mcp

Step 6 β€” Connect your AI agent

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

{
  "mcpServers": {
    "notebooklm": {
      "url": "https://your-project.vercel.app/api/mcp"
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "notebooklm": {
      "url": "https://your-project.vercel.app/api/mcp"
    }
  }
}

πŸ› οΈ Available MCP Tools

Notebooks

Tool

Description

notebooklm_list_notebooks

List all notebooks in your account

notebooklm_create_notebook

Create a new notebook

notebooklm_get_notebook

Get details of a notebook by ID

notebooklm_delete_notebook

Delete a notebook permanently

Sources

Tool

Description

notebooklm_list_sources

List all sources in a notebook

notebooklm_add_source_url

Add a website URL as a source

notebooklm_add_source_youtube

Add a YouTube video as a source

notebooklm_add_source_text

Add plain text as a source

notebooklm_remove_source

Remove a source from a notebook

Chat / Query

Tool

Description

notebooklm_ask

Ask a question (single turn)

notebooklm_conversation

Multi-turn conversation (up to 10 questions)

Content Generation

Tool

Description

notebooklm_generate_audio

Generate an Audio Overview (podcast)

notebooklm_generate_quiz

Generate a quiz

notebooklm_generate_flashcards

Generate flashcards

notebooklm_generate_mindmap

Generate a mind map

notebooklm_generate_slideshow

Generate a slide deck

notebooklm_generate_study_guide

Generate a study guide

notebooklm_generate_briefing

Generate a briefing document

Utility

Tool

Description

notebooklm_health_check

Verify Browserless.io connection and session validity


πŸ”‘ Session Management

Google sessions typically last 30–90 days. When your session expires:

  1. Run npm run get-cookies again on your local machine

  2. Copy the new NOTEBOOKLM_STORAGE_STATE value

  3. Update it in Vercel: vercel env rm NOTEBOOKLM_STORAGE_STATE && vercel env add NOTEBOOKLM_STORAGE_STATE

  4. Re-deploy: vercel --prod

The notebooklm_health_check tool will tell you if the session is still valid.


πŸ’° Browserless.io Free Tier

The free tier gives you ~1,000 units/month.

Operation

Approx. cost

List notebooks

~1 unit

Add a URL source

~2–3 units

Ask a question

~2 units

Generate audio

~2 units

For typical personal use (~50–100 tool calls/month), the free tier is more than sufficient.


⚠️ Limitations

  • Vercel Hobby timeout: Functions are limited to 60 seconds. Long-running operations (audio generation) are started asynchronously and must be checked in the NotebookLM UI.

  • Session expiry: Google cookies expire. Re-run get-cookies when authentication fails.

  • UI changes: NotebookLM is a product under active development. If selectors break, open an issue.

  • Unofficial: This uses browser automation, not an official API. Google could change NotebookLM's interface at any time.


πŸ”§ Troubleshooting

"Session has expired" error β†’ Re-run npm run get-cookies and update NOTEBOOKLM_STORAGE_STATE in Vercel.

"BROWSERLESS_TOKEN is not set" error β†’ Add the token in Vercel dashboard β†’ Settings β†’ Environment Variables.

Tool returns "Could not find button" error β†’ NotebookLM's UI may have been updated. Check the notebooklm-py repo for updated selectors.

Timeout errors β†’ Browserless.io free tier may be under load. Wait a few minutes and retry.

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/20Youssef10/notebooklm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server