agentleFS
m4yk3ldevm4yk3ldev/notebooklm-mcp/skills/notebooklm/SKILL.md

notebooklm

Skill21 starsChanged 23 days agoMITView on GitHub

Drive Google NotebookLM from the agent through the notebooklm-mcp server — create and manage notebooks, add sources (URLs, text, local files, Google Drive), ask questions answered only from those sources, run web/Drive research, and generate Studio content (audio overviews, video overviews, slide decks, reports, infographics, flashcards, quizzes). Use when the user mentions NotebookLM, a notebook of sources, "ask my sources", source-grounded answers, a podcast/audio overview, study guides, flashcards or quizzes from documents, or wants research collected into a notebook.

69 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use django-verification, django-security and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • mstuder-slalomSkill

    django-verification

    Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.

    Also in 3 projects that use this

  • mstuder-slalomSkill

    django-security

    Django security best practices, authentication, authorization, CSRF protection, SQL injection prevention, XSS prevention, and secure deployment configurations.

    Also in 3 projects that use this

  • sirakinbSkill

    last30days

    Research a topic from the last 30 days on Reddit + X + Web, become an expert, and write copy-paste-ready prompts for the user's target tool.

    Also in 4 projects that use this

  • younghaiSkill

    google-calendar

    Google Calendar 일정 조회, 검색, 등록. "일정", "스케줄", "캘린더" 등을 언급하면 자동 실행. Daily Note 작성, Weekly Review에 사용.

    Also in 3 projects that use this

  • royaluniondesign-sysSkill

    deployment-patterns

    Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications.

    Also in 3 projects that use this

  • LuisSambranoSkill

    firecrawl

    Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API

    Also in 3 projects that use this

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 1 is distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 66 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Check first: if tools such as notebook_list are already available, skip this section.

    line 12
  2. Very specific:

    If source_add_url says NotebookLM could not fetch the page, check notebook_get before retrying: the source is sometimes listed anyway.

    line 55
  3. Very specific:

    Prefer notebook_query over reading raw sources.

    line 59
  4. Distinctive:

    Use when the user wants NotebookLM to find sources for them.

    line 63
  5. Very specific:

    Every generator needs confirm: true.

    line 72
  6. Very specific:

    All accept source_ids to limit which sources are used (omit for all).

    line 84

“Common” is measured: kept by at least 6 in 10 of the 66 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

NotebookLM via MCP

This skill uses the @m4ykeldev/notebooklm-mcp server, which exposes NotebookLM as 27 MCP tools. NotebookLM has no public API; the server talks to the same internal RPC endpoint the web app uses, authenticated with the user's own Google session cookies.

Setup

Check first: if tools such as notebook_list are already available, skip this section.

  1. Authenticate once (opens Chrome, waits for the Google login, stores cookies in ~/.notebooklm-mcp/auth.json):

    npx -y @m4ykeldev/notebooklm-mcp auth

    Headless / CI: set NOTEBOOKLM_COOKIES instead. Fallbacks: auth --manual (paste cookies) or auth --file tokens.json.

  2. Register the server with the client.

    Claude Code:

    claude mcp add --transport stdio notebooklm -- npx -y @m4ykeldev/notebooklm-mcp serve

    Any JSON-configured client (Cursor, VS Code, Claude Desktop, ...):

    {
      "mcpServers": {
        "notebooklm": {
          "command": "npx",
          "args": ["-y", "@m4ykeldev/notebooklm-mcp", "serve"]
        }
      }
    }

    Long answers on big notebooks: append "--query-timeout", "180000" to args.

The authentication step needs the user at a browser. Ask them to run it; do not try to log in on their behalf.

Core workflow

  1. Find or create the notebook. notebook_list returns IDs, titles and sources, up to max_results (default 100); if the count reaches it, call again with a higher value. Match by title before creating a duplicate. notebook_create returns the new ID.
  2. Add sources.
    • source_add_url — web pages and YouTube links.
    • source_add_text — pass content inline, or file_path for a local file. file_path must sit under the server's working directory or the OS temp dir; for anything else, read the file and pass content.
    • source_add_drive — needs the Drive file_id, a title and the MIME doc_type (e.g. application/vnd.google-apps.document).
    • Each of these returns the new source's id. Sources take a moment to process; check with notebook_get before querying one you just added.
    • If source_add_url says NotebookLM could not fetch the page, check notebook_get before retrying: the source is sometimes listed anyway.
  3. Ask questions. notebook_query answers only from the notebook's sources, using all of them by default. Restrict with source_ids when the user cares about specific documents. For follow-ups, pass back the returned conversation_id so the follow-up keeps context (the server remembers the conversation while it keeps running).
  4. Produce output with the Studio tools (below), or summarise with notebook_summarize.

Prefer notebook_query over reading raw sources. Use source_get_content only when the user needs the verbatim text of a source.

Research

Use when the user wants NotebookLM to find sources for them.

  1. research_start with query, source (web default, or drive) and mode (fast default, or deep for a longer, more thorough pass). Returns a task_id.
  2. Poll research_status until the status leaves in_progress. Deep research can take minutes; poll at a relaxed pace and tell the user it is still running.
  3. Show the user what was found, then research_import with source_indices for the ones they want. Indices are positions in the sources list returned by research_status. Only web results (those with a URL) can be imported: omitting source_indices imports every web result and skips Drive ones, while an index pointing at a Drive result is an error.
  4. Read the result: "Imported X of Y research sources". NotebookLM fetches each URL and silently skips the ones it can't reach, so X can be lower than Y. If none could be fetched the tool returns an error and the task shows import_failed; retrying usually works, or pick other results.

Studio content

Every generator needs confirm: true. These consume the user's NotebookLM quota and take minutes, so confirm the type and options with the user before calling. confirm is a required boolean: with confirm: false the tool returns pending_confirmation and does nothing; omitting it is a validation error.

ToolOptions
audio_overview_createformat: deep_dive, brief, critique, debate · length: short, default, long · language · focus_prompt
video_overview_createformat: explainer, brief · visual_style: auto_select, classic, whiteboard, kawaii, anime, watercolor, retro_print, heritage, paper_craft, ... · language · focus_prompt
slide_deck_createformat: detailed_deck, presenter_slides · length: short, default · language · focus_prompt
report_createreport_format: Briefing Doc, Study Guide, Blog Post, Create Your Own (with custom_prompt) · language
infographic_createorientation: landscape, portrait, square · detail_level: concise, standard, detailed · language · focus_prompt
flashcards_createdifficulty: easy, medium, hard
quiz_createquestion_count (default 5) · difficulty

All accept source_ids to limit which sources are used (omit for all). language is a BCP-47 code such as en or es; without it NotebookLM uses the account's language.

After starting one, poll studio_status for the notebook and find the artifact by the returned artifact_id: it lists older artifacts too. Each artifact reports pending, generating, completed or failed. Audio, video, infographics and slide decks (as PDF) get a download_url once completed. Give the user the URL; the download needs their Google session, so it opens in their browser. Reports, flashcards and quizzes have no file: point the user to the notebook in NotebookLM to read them.

Housekeeping

  • notebook_rename, notebook_get (sources and their IDs), source_get (one source's metadata).
  • source_sync_drive re-pulls the latest version of Drive sources.
  • notebook_delete and source_delete are permanent and need confirm: true. Name the exact notebook or source and get explicit approval from the user first.

When things fail

  • Auth errors (expired session, 401/403): call auth_refresh once. The server also tries to restore the session in the background. If it still fails, or the error says the session is signed out (redirected to Google sign-in, no CSRF token), ask the user to run npx -y @m4ykeldev/notebooklm-mcp auth again, then retry.
  • Timeouts on notebook_query: suggest raising --query-timeout, or narrow the question with source_ids.
  • Unexpected or empty responses: Google changes NotebookLM's internal API without notice. Report the error to the user rather than retrying in a loop, and suggest updating the package (npx -y @m4ykeldev/notebooklm-mcp@latest serve) or opening an issue on the GitHub repo.
  • auth_save_tokens is a manual fallback for cookies. Use it only when the user hands you cookies explicitly, and never echo cookie values back in chat.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.