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
- proyecto26/notebooklm-ai-plugintheir own version, first seen Nov 8, 2026
- LuisSambrano/antigravity-configtheir own version, first seen Nov 8, 2026
- delorenj/skillstheir own version, first seen Nov 7, 2026
- roomi-fields/notebooklm-skilltheir own version, first seen Nov 6, 2026
- TsinHzl/claude-code-configtheir own version, first seen Nov 1, 2026
- Mathews-Tom/armorytheir own version, first seen Nov 1, 2026
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-slalomSkilldjango-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-slalomSkilldjango-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
sirakinbSkilllast30days
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
younghaiSkillgoogle-calendar
Google Calendar 일정 조회, 검색, 등록. "일정", "스케줄", "캘린더" 등을 언급하면 자동 실행. Daily Note 작성, Weekly Review에 사용.
Also in 3 projects that use this
royaluniondesign-sysSkilldeployment-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
LuisSambranoSkillfirecrawl
Deep web scraping, screenshots, PDF parsing, and website crawling using Firecrawl API
Also in 3 projects that use this
Other versions69 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 69
- teng-lin/notebooklm-py★ 20ksame name
- ArtemXTech/personal-os-skills★ 545same name
- sanjay3290/ai-skills★ 452same name
- Mathews-Tom/armory★ 340same name
- roomi-fields/notebooklm-mcp★ 229same name
- cclank/notebooklm-skill★ 140same name
- chendongqi/OPB-Skills★ 125same name
- walidboulanouar/Ay-Skills★ 90same name
- proyecto26/notebooklm-ai-plugin★ 65same name
- artemnovitckii/notebooklm-coach★ 61same name
59 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- CLAUDE.mdCLAUDE.md
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
- Very specific: line 12
Check first: if tools such as notebook_list are already available, skip this section.
- Very specific: line 55
If source_add_url says NotebookLM could not fetch the page, check notebook_get before retrying: the source is sometimes listed anyway.
- Very specific: line 59
Prefer notebook_query over reading raw sources.
- Distinctive: line 63
Use when the user wants NotebookLM to find sources for them.
- Very specific: line 72
Every generator needs confirm: true.
- Very specific: line 84
All accept source_ids to limit which sources are used (omit for all).
“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.
Files
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.
Authenticate once (opens Chrome, waits for the Google login, stores cookies in
~/.notebooklm-mcp/auth.json):npx -y @m4ykeldev/notebooklm-mcp authHeadless / CI: set
NOTEBOOKLM_COOKIESinstead. Fallbacks:auth --manual(paste cookies) orauth --file tokens.json.Register the server with the client.
Claude Code:
claude mcp add --transport stdio notebooklm -- npx -y @m4ykeldev/notebooklm-mcp serveAny 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"toargs.
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
- Find or create the notebook.
notebook_listreturns IDs, titles and sources, up tomax_results(default 100); if the count reaches it, call again with a higher value. Match by title before creating a duplicate.notebook_createreturns the new ID. - Add sources.
source_add_url— web pages and YouTube links.source_add_text— passcontentinline, orfile_pathfor a local file.file_pathmust sit under the server's working directory or the OS temp dir; for anything else, read the file and passcontent.source_add_drive— needs the Drivefile_id, atitleand the MIMEdoc_type(e.g.application/vnd.google-apps.document).- Each of these returns the new source's
id. Sources take a moment to process; check withnotebook_getbefore querying one you just added. - If
source_add_urlsays NotebookLM could not fetch the page, checknotebook_getbefore retrying: the source is sometimes listed anyway.
- Ask questions.
notebook_queryanswers only from the notebook's sources, using all of them by default. Restrict withsource_idswhen the user cares about specific documents. For follow-ups, pass back the returnedconversation_idso the follow-up keeps context (the server remembers the conversation while it keeps running). - 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.
research_startwithquery,source(webdefault, ordrive) andmode(fastdefault, ordeepfor a longer, more thorough pass). Returns atask_id.- Poll
research_statusuntil the status leavesin_progress. Deep research can take minutes; poll at a relaxed pace and tell the user it is still running. - Show the user what was found, then
research_importwithsource_indicesfor the ones they want. Indices are positions in thesourceslist returned byresearch_status. Only web results (those with a URL) can be imported: omittingsource_indicesimports every web result and skips Drive ones, while an index pointing at a Drive result is an error. - 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.
| Tool | Options |
audio_overview_create | format: deep_dive, brief, critique, debate · length: short, default, long · language · focus_prompt |
video_overview_create | format: explainer, brief · visual_style: auto_select, classic, whiteboard, kawaii, anime, watercolor, retro_print, heritage, paper_craft, ... · language · focus_prompt |
slide_deck_create | format: detailed_deck, presenter_slides · length: short, default · language · focus_prompt |
report_create | report_format: Briefing Doc, Study Guide, Blog Post, Create Your Own (with custom_prompt) · language |
infographic_create | orientation: landscape, portrait, square · detail_level: concise, standard, detailed · language · focus_prompt |
flashcards_create | difficulty: easy, medium, hard |
quiz_create | question_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_drivere-pulls the latest version of Drive sources.notebook_deleteandsource_deleteare permanent and needconfirm: 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_refreshonce. 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 runnpx -y @m4ykeldev/notebooklm-mcp authagain, then retry. - Timeouts on
notebook_query: suggest raising--query-timeout, or narrow the question withsource_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_tokensis a manual fallback for cookies. Use it only when the user hands you cookies explicitly, and never echo cookie values back in chat.
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
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.

