@roomi-fields/notebooklm-mcp 1.5.2 → 1.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +219 -201
  3. package/deployment/INDEX.md +0 -0
  4. package/deployment/PACKAGE-FILES.txt +180 -180
  5. package/deployment/QUICK-START.md +0 -0
  6. package/deployment/docs/01-INSTALL.md +0 -0
  7. package/deployment/docs/02-CONFIGURATION.md +0 -0
  8. package/deployment/docs/03-API.md +99 -13
  9. package/deployment/docs/04-N8N-INTEGRATION.md +0 -0
  10. package/deployment/docs/05-TROUBLESHOOTING.md +0 -0
  11. package/deployment/docs/06-NOTEBOOK-LIBRARY.md +0 -0
  12. package/deployment/docs/07-AUTO-DISCOVERY.md +0 -0
  13. package/deployment/docs/08-DOCKER.md +303 -0
  14. package/deployment/docs/08-WSL-USAGE.md +0 -0
  15. package/deployment/docs/09-MULTI-INTERFACE.md +0 -0
  16. package/deployment/docs/10-CONTENT-MANAGEMENT.md +0 -0
  17. package/deployment/docs/11-MULTI-ACCOUNT.md +0 -0
  18. package/deployment/docs/README.md +9 -2
  19. package/deployment/scripts/README.md +0 -0
  20. package/deployment/scripts/install.ps1 +114 -114
  21. package/deployment/scripts/setup-auth.ps1 +217 -217
  22. package/deployment/scripts/start-server.ps1 +72 -72
  23. package/deployment/scripts/stop-server.ps1 +51 -51
  24. package/deployment/scripts/test-api.ps1 +651 -651
  25. package/deployment/scripts/test-auth.ps1 +0 -0
  26. package/deployment/scripts/test-auto-discovery.ps1 +295 -295
  27. package/deployment/scripts/test-cors.ps1 +398 -398
  28. package/deployment/scripts/test-errors.ps1 +581 -581
  29. package/deployment/scripts/test-server.ps1 +140 -140
  30. package/deployment/scripts/test-sessions.ps1 +426 -426
  31. package/deployment/scripts/test-validation.ps1 +299 -299
  32. package/dist/accounts/account-manager.d.ts +15 -0
  33. package/dist/accounts/account-manager.d.ts.map +1 -1
  34. package/dist/accounts/account-manager.js +104 -0
  35. package/dist/accounts/account-manager.js.map +1 -1
  36. package/dist/accounts/auto-login-manager.d.ts +0 -0
  37. package/dist/accounts/auto-login-manager.d.ts.map +1 -1
  38. package/dist/accounts/auto-login-manager.js +45 -28
  39. package/dist/accounts/auto-login-manager.js.map +1 -1
  40. package/dist/accounts/crypto.d.ts +0 -0
  41. package/dist/accounts/crypto.d.ts.map +0 -0
  42. package/dist/accounts/crypto.js +0 -0
  43. package/dist/accounts/crypto.js.map +0 -0
  44. package/dist/accounts/index.d.ts +0 -0
  45. package/dist/accounts/index.d.ts.map +0 -0
  46. package/dist/accounts/index.js +0 -0
  47. package/dist/accounts/index.js.map +0 -0
  48. package/dist/accounts/types.d.ts +0 -0
  49. package/dist/accounts/types.d.ts.map +0 -0
  50. package/dist/accounts/types.js +0 -0
  51. package/dist/accounts/types.js.map +0 -0
  52. package/dist/auth/auth-manager.d.ts +1 -1
  53. package/dist/auth/auth-manager.d.ts.map +1 -1
  54. package/dist/auth/auth-manager.js +33 -13
  55. package/dist/auth/auth-manager.js.map +1 -1
  56. package/dist/auto-discovery/auto-discovery.d.ts +0 -0
  57. package/dist/auto-discovery/auto-discovery.d.ts.map +0 -0
  58. package/dist/auto-discovery/auto-discovery.js +0 -0
  59. package/dist/auto-discovery/auto-discovery.js.map +0 -0
  60. package/dist/cli/accounts.d.ts +0 -0
  61. package/dist/cli/accounts.d.ts.map +0 -0
  62. package/dist/cli/accounts.js +0 -0
  63. package/dist/cli/accounts.js.map +0 -0
  64. package/dist/cli/de-auth.d.ts +0 -0
  65. package/dist/cli/de-auth.d.ts.map +0 -0
  66. package/dist/cli/de-auth.js +0 -0
  67. package/dist/cli/de-auth.js.map +0 -0
  68. package/dist/cli/help.d.ts +0 -0
  69. package/dist/cli/help.d.ts.map +0 -0
  70. package/dist/cli/help.js +0 -0
  71. package/dist/cli/help.js.map +0 -0
  72. package/dist/cli/setup-auth.d.ts +0 -0
  73. package/dist/cli/setup-auth.d.ts.map +0 -0
  74. package/dist/cli/setup-auth.js +18 -10
  75. package/dist/cli/setup-auth.js.map +1 -1
  76. package/dist/config.d.ts +1 -0
  77. package/dist/config.d.ts.map +1 -1
  78. package/dist/config.js +15 -1
  79. package/dist/config.js.map +1 -1
  80. package/dist/content/content-generator.d.ts +0 -0
  81. package/dist/content/content-generator.d.ts.map +0 -0
  82. package/dist/content/content-generator.js +0 -0
  83. package/dist/content/content-generator.js.map +0 -0
  84. package/dist/content/content-manager.d.ts +0 -0
  85. package/dist/content/content-manager.d.ts.map +0 -0
  86. package/dist/content/content-manager.js +0 -0
  87. package/dist/content/content-manager.js.map +0 -0
  88. package/dist/content/content-templates.d.ts +0 -0
  89. package/dist/content/content-templates.d.ts.map +0 -0
  90. package/dist/content/content-templates.js +0 -0
  91. package/dist/content/content-templates.js.map +0 -0
  92. package/dist/content/index.d.ts +0 -0
  93. package/dist/content/index.d.ts.map +0 -0
  94. package/dist/content/index.js +0 -0
  95. package/dist/content/index.js.map +0 -0
  96. package/dist/content/types.d.ts +0 -0
  97. package/dist/content/types.d.ts.map +0 -0
  98. package/dist/content/types.js +0 -0
  99. package/dist/content/types.js.map +0 -0
  100. package/dist/errors.d.ts +0 -0
  101. package/dist/errors.d.ts.map +0 -0
  102. package/dist/errors.js +0 -0
  103. package/dist/errors.js.map +0 -0
  104. package/dist/http-wrapper.d.ts +0 -0
  105. package/dist/http-wrapper.d.ts.map +1 -1
  106. package/dist/http-wrapper.js +275 -7
  107. package/dist/http-wrapper.js.map +1 -1
  108. package/dist/i18n/en.json +0 -0
  109. package/dist/i18n/fr.json +0 -0
  110. package/dist/i18n/index.d.ts +0 -0
  111. package/dist/i18n/index.d.ts.map +0 -0
  112. package/dist/i18n/index.js +0 -0
  113. package/dist/i18n/index.js.map +0 -0
  114. package/dist/index.d.ts +0 -0
  115. package/dist/index.d.ts.map +0 -0
  116. package/dist/index.js +0 -0
  117. package/dist/index.js.map +0 -0
  118. package/dist/library/notebook-library.d.ts +0 -0
  119. package/dist/library/notebook-library.d.ts.map +0 -0
  120. package/dist/library/notebook-library.js +0 -0
  121. package/dist/library/notebook-library.js.map +0 -0
  122. package/dist/library/types.d.ts +0 -0
  123. package/dist/library/types.d.ts.map +0 -0
  124. package/dist/library/types.js +0 -0
  125. package/dist/library/types.js.map +0 -0
  126. package/dist/session/browser-session.d.ts +0 -0
  127. package/dist/session/browser-session.d.ts.map +1 -1
  128. package/dist/session/browser-session.js +215 -91
  129. package/dist/session/browser-session.js.map +1 -1
  130. package/dist/session/session-manager.d.ts +0 -0
  131. package/dist/session/session-manager.d.ts.map +0 -0
  132. package/dist/session/session-manager.js +0 -0
  133. package/dist/session/session-manager.js.map +0 -0
  134. package/dist/session/shared-context-manager.d.ts +0 -0
  135. package/dist/session/shared-context-manager.d.ts.map +1 -1
  136. package/dist/session/shared-context-manager.js +38 -5
  137. package/dist/session/shared-context-manager.js.map +1 -1
  138. package/dist/startup/startup-manager.d.ts +60 -0
  139. package/dist/startup/startup-manager.d.ts.map +1 -0
  140. package/dist/startup/startup-manager.js +468 -0
  141. package/dist/startup/startup-manager.js.map +1 -0
  142. package/dist/stdio-http-proxy.d.ts +0 -0
  143. package/dist/stdio-http-proxy.d.ts.map +0 -0
  144. package/dist/stdio-http-proxy.js +91 -16
  145. package/dist/stdio-http-proxy.js.map +1 -1
  146. package/dist/tools/index.d.ts +1 -0
  147. package/dist/tools/index.d.ts.map +1 -1
  148. package/dist/tools/index.js +55 -34
  149. package/dist/tools/index.js.map +1 -1
  150. package/dist/types.d.ts +0 -0
  151. package/dist/types.d.ts.map +0 -0
  152. package/dist/types.js +0 -0
  153. package/dist/types.js.map +0 -0
  154. package/dist/utils/citation-extractor.d.ts +6 -7
  155. package/dist/utils/citation-extractor.d.ts.map +1 -1
  156. package/dist/utils/citation-extractor.js +138 -303
  157. package/dist/utils/citation-extractor.js.map +1 -1
  158. package/dist/utils/cleanup-manager.d.ts +0 -0
  159. package/dist/utils/cleanup-manager.d.ts.map +0 -0
  160. package/dist/utils/cleanup-manager.js +0 -0
  161. package/dist/utils/cleanup-manager.js.map +0 -0
  162. package/dist/utils/logger.d.ts +0 -0
  163. package/dist/utils/logger.d.ts.map +0 -0
  164. package/dist/utils/logger.js +0 -0
  165. package/dist/utils/logger.js.map +0 -0
  166. package/dist/utils/page-utils.d.ts +0 -0
  167. package/dist/utils/page-utils.d.ts.map +1 -1
  168. package/dist/utils/page-utils.js +12 -13
  169. package/dist/utils/page-utils.js.map +1 -1
  170. package/dist/utils/stealth-utils.d.ts +0 -0
  171. package/dist/utils/stealth-utils.d.ts.map +0 -0
  172. package/dist/utils/stealth-utils.js +0 -0
  173. package/dist/utils/stealth-utils.js.map +0 -0
  174. package/docs/ADDING_A_LANGUAGE.md +0 -0
  175. package/docs/ARCHITECTURE_MIGRATION_STUDY.md +0 -0
  176. package/docs/CHROME_PROFILE_LIMITATION.md +0 -0
  177. package/docs/MULTI_ACCOUNT_SYSTEM.md +0 -0
  178. package/docs/archive/auto-discovery-complet.md +906 -0
  179. package/package.json +4 -2
  180. package/scripts/add-totp.ts +110 -0
  181. package/scripts/archive/add-and-activate-notebook.ps1 +0 -0
  182. package/scripts/archive/add-new-notebook.ps1 +0 -0
  183. package/scripts/archive/add-rom1pey.ps1 +0 -0
  184. package/scripts/archive/add-rpmonster.ps1 +0 -0
  185. package/scripts/archive/add-source-debug.ps1 +0 -0
  186. package/scripts/archive/add-source-e2e.ps1 +0 -0
  187. package/scripts/archive/add-source-visible.ps1 +0 -0
  188. package/scripts/archive/add-test-notebook.ps1 +0 -0
  189. package/scripts/archive/add-test-source.ps1 +0 -0
  190. package/scripts/archive/capture-screen.ps1 +0 -0
  191. package/scripts/archive/change-language.mjs +0 -0
  192. package/scripts/archive/change-language.ts +0 -0
  193. package/scripts/archive/check-account.ps1 +0 -0
  194. package/scripts/archive/check-notebook-2.ps1 +0 -0
  195. package/scripts/archive/check-test-notebook.ps1 +0 -0
  196. package/scripts/archive/create-notebook-auto.ps1 +0 -0
  197. package/scripts/archive/create-notebook.ps1 +0 -0
  198. package/scripts/archive/create-rom1pey-notebook.ps1 +0 -0
  199. package/scripts/archive/create-rom1pey.ps1 +0 -0
  200. package/scripts/archive/create-test-notebook-fresh.ps1 +0 -0
  201. package/scripts/archive/create-test-notebook.ps1 +0 -0
  202. package/scripts/archive/debug-add-source-auto.ps1 +0 -0
  203. package/scripts/archive/debug-add-source.ps1 +0 -0
  204. package/scripts/archive/debug-add-text-source.ps1 +0 -0
  205. package/scripts/archive/debug-home.ps1 +0 -0
  206. package/scripts/archive/debug-selectors.ps1 +0 -0
  207. package/scripts/archive/debug-sources-panel.ps1 +0 -0
  208. package/scripts/archive/debug-ui.ps1 +0 -0
  209. package/scripts/archive/discover-home.ps1 +0 -0
  210. package/scripts/archive/kill-automation-chrome.ps1 +0 -0
  211. package/scripts/archive/list-my-notebooks.ps1 +0 -0
  212. package/scripts/archive/navigate-home-visible.ps1 +0 -0
  213. package/scripts/archive/navigate-home.ps1 +0 -0
  214. package/scripts/archive/run-e2e-english.ps1 +0 -0
  215. package/scripts/archive/run-e2e-rom1pey-v2.ps1 +0 -0
  216. package/scripts/archive/run-e2e-rom1pey.ps1 +0 -0
  217. package/scripts/archive/setup-english-test.ps1 +0 -0
  218. package/scripts/archive/setup-test-notebook.ps1 +0 -0
  219. package/scripts/archive/simple-add-source.ps1 +0 -0
  220. package/scripts/archive/t10.ps1 +0 -0
  221. package/scripts/archive/t20.ps1 +0 -0
  222. package/scripts/archive/t30.ps1 +0 -0
  223. package/scripts/archive/t31.ps1 +0 -0
  224. package/scripts/archive/t32.ps1 +0 -0
  225. package/scripts/archive/t39.ps1 +0 -0
  226. package/scripts/archive/t40.ps1 +0 -0
  227. package/scripts/archive/t53.ps1 +0 -0
  228. package/scripts/archive/t54.ps1 +0 -0
  229. package/scripts/archive/t55.ps1 +0 -0
  230. package/scripts/archive/t9.ps1 +0 -0
  231. package/scripts/archive/test-access.ps1 +0 -0
  232. package/scripts/archive/test-add-delete-source.ps1 +0 -0
  233. package/scripts/archive/test-add-source-visible.ps1 +0 -0
  234. package/scripts/archive/test-add-source.ps1 +0 -0
  235. package/scripts/archive/test-add-text-debug.ps1 +0 -0
  236. package/scripts/archive/test-add-text-source.ps1 +0 -0
  237. package/scripts/archive/test-add-url-source.ps1 +0 -0
  238. package/scripts/archive/test-ask-ascii.ps1 +0 -0
  239. package/scripts/archive/test-ask-cnv.ps1 +0 -0
  240. package/scripts/archive/test-ask-headed.ps1 +0 -0
  241. package/scripts/archive/test-ask-ifs.ps1 +0 -0
  242. package/scripts/archive/test-ask-now.ps1 +0 -0
  243. package/scripts/archive/test-ask-real.ps1 +0 -0
  244. package/scripts/archive/test-ask-visible.ps1 +0 -0
  245. package/scripts/archive/test-create-notebook.ps1 +0 -0
  246. package/scripts/archive/test-create-then-add.ps1 +0 -0
  247. package/scripts/archive/test-delete-source.ps1 +0 -0
  248. package/scripts/archive/test-e2e-notebook.ps1 +0 -0
  249. package/scripts/archive/test-english-notebook.ps1 +0 -0
  250. package/scripts/archive/test-english.ps1 +0 -0
  251. package/scripts/archive/test-full-custom-instructions.ps1 +0 -0
  252. package/scripts/archive/test-full-infographic.ps1 +0 -0
  253. package/scripts/archive/test-full-language.ps1 +0 -0
  254. package/scripts/archive/test-full-presentation.ps1 +0 -0
  255. package/scripts/archive/test-full-report.ps1 +0 -0
  256. package/scripts/archive/test-full-source-selection.ps1 +0 -0
  257. package/scripts/archive/test-full-video-brief.ps1 +0 -0
  258. package/scripts/archive/test-full-video-explainer.ps1 +0 -0
  259. package/scripts/archive/test-full-video-styles.ps1 +0 -0
  260. package/scripts/archive/test-generate-report.ps1 +0 -0
  261. package/scripts/archive/test-generate-study-guide.ps1 +0 -0
  262. package/scripts/archive/test-headed-ask.ps1 +0 -0
  263. package/scripts/archive/test-headed-now.ps1 +0 -0
  264. package/scripts/archive/test-headed.ps1 +0 -0
  265. package/scripts/archive/test-hello.ps1 +0 -0
  266. package/scripts/archive/test-i18n-studio.ps1 +0 -0
  267. package/scripts/archive/test-i18n.ps1 +0 -0
  268. package/scripts/archive/test-manual-headed.ps1 +0 -0
  269. package/scripts/archive/test-mathieu-quota.ps1 +0 -0
  270. package/scripts/archive/test-notebook-1.ps1 +0 -0
  271. package/scripts/archive/test-notebook-2-sources.ps1 +0 -0
  272. package/scripts/archive/test-notebook1.ps1 +0 -0
  273. package/scripts/archive/test-personal-notebook.ps1 +0 -0
  274. package/scripts/archive/test-rate-limit.ps1 +0 -0
  275. package/scripts/archive/test-real-ask.ps1 +0 -0
  276. package/scripts/archive/test-real-ask2.ps1 +0 -0
  277. package/scripts/archive/test-rom1pey.ps1 +0 -0
  278. package/scripts/archive/test-rotation-complete.ps1 +0 -0
  279. package/scripts/archive/test-rotation.ps1 +0 -0
  280. package/scripts/archive/test-show-browser.ps1 +0 -0
  281. package/scripts/archive/test-update-notebook.ps1 +0 -0
  282. package/scripts/archive/verify-language-slow.ps1 +0 -0
  283. package/scripts/archive/verify-language.ps1 +0 -0
  284. package/scripts/check-server.ps1 +0 -0
  285. package/scripts/docker-entrypoint.sh +25 -0
  286. package/scripts/mcp-proxy-hidden.ps1 +31 -0
  287. package/scripts/mcp-wsl-helper.sh +146 -146
  288. package/scripts/start-server-hidden.vbs +13 -0
  289. package/scripts/start-server.ps1 +0 -0
  290. package/scripts/start-vnc.sh +37 -0
  291. package/scripts/stop-server.bat +5 -0
  292. package/scripts/stop-server.ps1 +0 -0
  293. package/scripts/switch-account-language.sh +0 -0
  294. package/scripts/test-account.ps1 +0 -0
package/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 Please Prompto! (Original NotebookLM MCP Server)
4
- Copyright (c) 2025 Romain Peyrichou - HTTP REST API Wrapper (Developed with Claude Code - Anthropic Claude Sonnet 4.5)
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Please Prompto! (Original NotebookLM MCP Server)
4
+ Copyright (c) 2025 Romain Peyrichou - HTTP REST API Wrapper (Developed with Claude Code - Anthropic Claude Sonnet 4.5)
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
package/README.md CHANGED
@@ -1,201 +1,219 @@
1
- <div align="center">
2
-
3
- # NotebookLM MCP Server
4
-
5
- > **Forked from** [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
6
-
7
- **Full automation of Google NotebookLM: Q&A, audio podcasts, and source management**
8
-
9
- <!-- Badges -->
10
-
11
- [![CI](https://github.com/roomi-fields/notebooklm-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/roomi-fields/notebooklm-mcp/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/%40roomi-fields%2Fnotebooklm-mcp.svg)](https://www.npmjs.com/package/@roomi-fields/notebooklm-mcp) [![npm downloads](https://img.shields.io/npm/dm/@roomi-fields/notebooklm-mcp.svg)](https://www.npmjs.com/package/@roomi-fields/notebooklm-mcp) [![codecov](https://codecov.io/gh/roomi-fields/notebooklm-mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/roomi-fields/notebooklm-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js->=18-green.svg)](https://nodejs.org/)
12
-
13
- [![MCP](https://img.shields.io/badge/MCP-2025-green.svg)](https://modelcontextprotocol.io/) [![Claude Code](https://img.shields.io/badge/Claude_Code-MCP-8A2BE2)](https://claude.ai/claude-code) [![n8n](https://img.shields.io/badge/n8n-HTTP_API-orange)](./deployment/docs/04-N8N-INTEGRATION.md) [![GitHub](https://img.shields.io/github/stars/roomi-fields/notebooklm-mcp?style=social)](https://github.com/roomi-fields/notebooklm-mcp)
14
-
15
- <!-- End Badges -->
16
-
17
- </div>
18
-
19
- ---
20
-
21
- ## Features
22
-
23
- ### Q&A with Citations
24
-
25
- - **Ask questions** to NotebookLM and get accurate, citation-backed answers
26
- - **Source citation extraction** with 5 formats: none, inline, footnotes, json, expanded
27
- - **Session management** for multi-turn conversations
28
-
29
- ### Content Generation
30
-
31
- Generate multiple content types from your notebook sources:
32
-
33
- | Content Type | Formats | Options |
34
- | ------------------ | ------------------------ | ---------------------------------------------- |
35
- | **Audio Overview** | Podcast-style discussion | Language (80+), custom instructions |
36
- | **Video** | Brief, Explainer | 6 visual styles, language, custom instructions |
37
- | **Infographic** | Horizontal, Vertical | Language, custom instructions |
38
- | **Report** | Summary, Detailed | Language, custom instructions |
39
- | **Presentation** | Overview, Detailed | Language, custom instructions |
40
- | **Data Table** | Simple, Detailed | Language, custom instructions |
41
-
42
- **Video Visual Styles**: classroom, documentary, animated, corporate, cinematic, minimalist
43
-
44
- ### Content Download
45
-
46
- - **Download Audio** — WAV audio files
47
- - **Download Video** — MP4 video files
48
- - **Download Infographic** — PNG image files
49
- - Text-based content (report, presentation, data_table) is returned in the API response
50
-
51
- ### Source Management
52
-
53
- - **Add sources**: Files (PDF, TXT, DOCX), URLs, Text, YouTube videos, Google Drive
54
- - **List sources**: View all sources in a notebook
55
-
56
- ### Notebook Library
57
-
58
- - **Multi-notebook management** with validation and smart selection
59
- - **Auto-discovery**: Automatically generate metadata via NotebookLM queries
60
- - **Search notebooks** by keyword in name, description, or topics
61
-
62
- ### Integration Options
63
-
64
- - **MCP Protocol** — Claude Code, Cursor, Codex, any MCP client
65
- - **HTTP REST API** — n8n, Zapier, Make.com, custom integrations
66
-
67
- ---
68
-
69
- ## Quick Start
70
-
71
- > ⚠️ **npm registry temporarily unavailable** - Install from GitHub instead (see below)
72
-
73
- ### Option 1: MCP Mode (Claude Code, Cursor, Codex)
74
-
75
- ```bash
76
- # Clone and build locally
77
- git clone https://github.com/roomi-fields/notebooklm-mcp.git
78
- cd notebooklm-mcp
79
- npm install && npm run build
80
-
81
- # Claude Code
82
- claude mcp add notebooklm node /path/to/notebooklm-mcp/dist/index.js
83
-
84
- # Cursor - add to ~/.cursor/mcp.json
85
- {
86
- "mcpServers": {
87
- "notebooklm": {
88
- "command": "node",
89
- "args": ["/path/to/notebooklm-mcp/dist/index.js"]
90
- }
91
- }
92
- }
93
- ```
94
-
95
- Then say: _"Log me in to NotebookLM"_ → Chrome opens → log in with Google.
96
-
97
- ### Option 2: HTTP REST API (n8n, Zapier, Make.com)
98
-
99
- ```bash
100
- git clone https://github.com/roomi-fields/notebooklm-mcp.git
101
- cd notebooklm-mcp
102
- npm install && npm run build
103
- npm run setup-auth # One-time Google login
104
- npm run start:http # Start server on port 3000
105
- ```
106
-
107
- ```bash
108
- # Query the API
109
- curl -X POST http://localhost:3000/ask \
110
- -H "Content-Type: application/json" \
111
- -d '{"question": "Explain X", "notebook_id": "my-notebook"}'
112
- ```
113
-
114
- ---
115
-
116
- ## Documentation
117
-
118
- | Guide | Description |
119
- | ------------------------------------------------------------ | ----------------------------------------- |
120
- | [Installation](./deployment/docs/01-INSTALL.md) | Step-by-step setup for HTTP and MCP modes |
121
- | [Configuration](./deployment/docs/02-CONFIGURATION.md) | Environment variables and security |
122
- | [API Reference](./deployment/docs/03-API.md) | Complete HTTP endpoint documentation |
123
- | [n8n Integration](./deployment/docs/04-N8N-INTEGRATION.md) | Workflow automation setup |
124
- | [Troubleshooting](./deployment/docs/05-TROUBLESHOOTING.md) | Common issues and solutions |
125
- | [Notebook Library](./deployment/docs/06-NOTEBOOK-LIBRARY.md) | Multi-notebook management |
126
- | [Auto-Discovery](./deployment/docs/07-AUTO-DISCOVERY.md) | Autonomous metadata generation |
127
- | [Multi-Interface](./deployment/docs/09-MULTI-INTERFACE.md) | Run Claude Desktop + HTTP simultaneously |
128
- | [Chrome Limitation](./docs/CHROME_PROFILE_LIMITATION.md) | Profile locking (solved in v1.3.6+) |
129
- | [Adding a Language](./docs/ADDING_A_LANGUAGE.md) | i18n system for multilingual UI support |
130
-
131
- ---
132
-
133
- ## Roadmap
134
-
135
- See [ROADMAP.md](./ROADMAP.md) for planned features and version history.
136
-
137
- **Latest releases:**
138
-
139
- - **v1.5.1** — Multilingual UI support (FR/EN) with i18n selector system + E2E tests (76 tests)
140
- - **v1.5.0** — Complete Studio content generation (video, infographic, presentation, data_table) + Notes management + Delete sources
141
- - **v1.4.0** — Content management (sources, audio, generation) + Multi-account
142
- - **v1.3.7** Source citation extraction (5 formats)
143
-
144
- **Not yet implemented:**
145
-
146
- - Discover sources (Web/Drive search with Fast/Deep modes)
147
- - Edit notes (create, delete, and convert are implemented)
148
-
149
- ---
150
-
151
- ## Disclaimer
152
-
153
- This tool automates browser interactions with NotebookLM. Use a dedicated Google account for automation. CLI tools like Claude Code can make mistakes — always review changes before deploying.
154
-
155
- See full [Disclaimer](#disclaimer-details) below.
156
-
157
- ---
158
-
159
- ## Contributing
160
-
161
- Found a bug? Have an idea? [Open an issue](https://github.com/roomi-fields/notebooklm-mcp/issues) or submit a PR!
162
-
163
- See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
164
-
165
- ## License
166
-
167
- MIT — Use freely in your projects. See [LICENSE](./LICENSE).
168
-
169
- ## Author
170
-
171
- **Romain Peyrichou**[@roomi-fields](https://github.com/roomi-fields)
172
-
173
- ---
174
-
175
- <details>
176
- <summary><a name="disclaimer-details"></a>Full Disclaimer</summary>
177
-
178
- **About browser automation:**
179
- While I've built in humanization features (realistic typing speeds, natural delays, mouse movements), I can't guarantee Google won't detect or flag automated usage. Use a dedicated Google account for automation.
180
-
181
- **About CLI tools and AI agents:**
182
- CLI tools like Claude Code, Codex, and similar AI-powered assistants are powerful but can make mistakes:
183
-
184
- - Always review changes before committing or deploying
185
- - Test in safe environments first
186
- - Keep backups of important work
187
- - AI agents are assistants, not infallible oracles
188
-
189
- I built this tool for myself and share it hoping it helps others, but I can't take responsibility for any issues that might occur. Use at your own discretion.
190
-
191
- </details>
192
-
193
- ---
194
-
195
- <div align="center">
196
-
197
- Built with frustration about hallucinated APIs, powered by Google's NotebookLM
198
-
199
- [Star on GitHub](https://github.com/roomi-fields/notebooklm-mcp) if this saves you debugging time!
200
-
201
- </div>
1
+ <div align="center">
2
+
3
+ # NotebookLM MCP Server
4
+
5
+ > **Forked from** [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
6
+
7
+ **Full automation of Google NotebookLM: Q&A, audio podcasts, and source management**
8
+
9
+ <!-- Badges -->
10
+
11
+ [![CI](https://github.com/roomi-fields/notebooklm-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/roomi-fields/notebooklm-mcp/actions/workflows/ci.yml) [![npm version](https://badge.fury.io/js/%40roomi-fields%2Fnotebooklm-mcp.svg)](https://www.npmjs.com/package/@roomi-fields/notebooklm-mcp) [![npm downloads](https://img.shields.io/npm/dm/@roomi-fields/notebooklm-mcp.svg)](https://www.npmjs.com/package/@roomi-fields/notebooklm-mcp) [![codecov](https://codecov.io/gh/roomi-fields/notebooklm-mcp/branch/main/graph/badge.svg)](https://codecov.io/gh/roomi-fields/notebooklm-mcp) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js->=18-green.svg)](https://nodejs.org/)
12
+
13
+ [![MCP](https://img.shields.io/badge/MCP-2025-green.svg)](https://modelcontextprotocol.io/) [![Claude Code](https://img.shields.io/badge/Claude_Code-MCP-8A2BE2)](https://claude.ai/claude-code) [![n8n](https://img.shields.io/badge/n8n-HTTP_API-orange)](./deployment/docs/04-N8N-INTEGRATION.md) [![GitHub](https://img.shields.io/github/stars/roomi-fields/notebooklm-mcp?style=social)](https://github.com/roomi-fields/notebooklm-mcp)
14
+
15
+ <!-- End Badges -->
16
+
17
+ </div>
18
+
19
+ ---
20
+
21
+ ## Features
22
+
23
+ ### Q&A with Citations
24
+
25
+ - **Ask questions** to NotebookLM and get accurate, citation-backed answers
26
+ - **Source citation extraction** with 5 formats: none, inline, footnotes, json, expanded (97% excerpt success rate)
27
+ - **Session management** for multi-turn conversations with auto-reauth on session expiry
28
+
29
+ ### Content Generation
30
+
31
+ Generate multiple content types from your notebook sources:
32
+
33
+ | Content Type | Formats | Options |
34
+ | ------------------ | ------------------------ | ---------------------------------------------- |
35
+ | **Audio Overview** | Podcast-style discussion | Language (80+), custom instructions |
36
+ | **Video** | Brief, Explainer | 6 visual styles, language, custom instructions |
37
+ | **Infographic** | Horizontal, Vertical | Language, custom instructions |
38
+ | **Report** | Summary, Detailed | Language, custom instructions |
39
+ | **Presentation** | Overview, Detailed | Language, custom instructions |
40
+ | **Data Table** | Simple, Detailed | Language, custom instructions |
41
+
42
+ **Video Visual Styles**: classroom, documentary, animated, corporate, cinematic, minimalist
43
+
44
+ ### Content Download
45
+
46
+ - **Download Audio** — WAV audio files
47
+ - **Download Video** — MP4 video files
48
+ - **Download Infographic** — PNG image files
49
+ - Text-based content (report, presentation, data_table) is returned in the API response
50
+
51
+ ### Source Management
52
+
53
+ - **Add sources**: Files (PDF, TXT, DOCX), URLs, Text, YouTube videos, Google Drive
54
+ - **List sources**: View all sources in a notebook
55
+
56
+ ### Notebook Library
57
+
58
+ - **Multi-notebook management** with validation and smart selection
59
+ - **Auto-discovery**: Automatically generate metadata via NotebookLM queries
60
+ - **Search notebooks** by keyword in name, description, or topics
61
+ - **Scrape notebooks**: List all notebooks from NotebookLM with IDs and names
62
+ - **Bulk delete**: Delete multiple notebooks at once
63
+
64
+ ### Integration Options
65
+
66
+ - **MCP Protocol** — Claude Code, Cursor, Codex, any MCP client
67
+ - **HTTP REST API** — n8n, Zapier, Make.com, custom integrations
68
+ - **Docker** — Isolated deployment with Docker or Docker Compose
69
+
70
+ ---
71
+
72
+ ## Quick Start
73
+
74
+ ### Option 1: MCP Mode (Claude Code, Cursor, Codex)
75
+
76
+ ```bash
77
+ # Clone and build locally
78
+ git clone https://github.com/roomi-fields/notebooklm-mcp.git
79
+ cd notebooklm-mcp
80
+ npm install && npm run build
81
+
82
+ # Claude Code
83
+ claude mcp add notebooklm node /path/to/notebooklm-mcp/dist/index.js
84
+
85
+ # Cursor - add to ~/.cursor/mcp.json
86
+ {
87
+ "mcpServers": {
88
+ "notebooklm": {
89
+ "command": "node",
90
+ "args": ["/path/to/notebooklm-mcp/dist/index.js"]
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ Then say: _"Log me in to NotebookLM"_ → Chrome opens → log in with Google.
97
+
98
+ ### Option 2: HTTP REST API (n8n, Zapier, Make.com)
99
+
100
+ ```bash
101
+ git clone https://github.com/roomi-fields/notebooklm-mcp.git
102
+ cd notebooklm-mcp
103
+ npm install && npm run build
104
+ npm run setup-auth # One-time Google login
105
+ npm run start:http # Start server on port 3000
106
+ ```
107
+
108
+ ```bash
109
+ # Query the API
110
+ curl -X POST http://localhost:3000/ask \
111
+ -H "Content-Type: application/json" \
112
+ -d '{"question": "Explain X", "notebook_id": "my-notebook"}'
113
+ ```
114
+
115
+ ### Option 3: Docker (NAS, Server)
116
+
117
+ ```bash
118
+ # Build and run
119
+ docker build -t notebooklm-mcp .
120
+ docker run -d --name notebooklm-mcp -p 3000:3000 -p 6080:6080 -v notebooklm-data:/data notebooklm-mcp
121
+
122
+ # Authenticate via noVNC
123
+ # 1. Open http://localhost:6080/vnc.html
124
+ # 2. Run: curl -X POST http://localhost:3000/setup-auth -d '{"show_browser":true}'
125
+ # 3. Login to Google in the VNC window
126
+ ```
127
+
128
+ See [Docker Guide](./deployment/docs/08-DOCKER.md) for NAS deployment (Synology, QNAP).
129
+
130
+ ---
131
+
132
+ ## Documentation
133
+
134
+ | Guide | Description |
135
+ | ------------------------------------------------------------ | ----------------------------------------- |
136
+ | [Installation](./deployment/docs/01-INSTALL.md) | Step-by-step setup for HTTP and MCP modes |
137
+ | [Configuration](./deployment/docs/02-CONFIGURATION.md) | Environment variables and security |
138
+ | [API Reference](./deployment/docs/03-API.md) | Complete HTTP endpoint documentation |
139
+ | [n8n Integration](./deployment/docs/04-N8N-INTEGRATION.md) | Workflow automation setup |
140
+ | [Troubleshooting](./deployment/docs/05-TROUBLESHOOTING.md) | Common issues and solutions |
141
+ | [Notebook Library](./deployment/docs/06-NOTEBOOK-LIBRARY.md) | Multi-notebook management |
142
+ | [Auto-Discovery](./deployment/docs/07-AUTO-DISCOVERY.md) | Autonomous metadata generation |
143
+ | [Docker](./deployment/docs/08-DOCKER.md) | Docker and Docker Compose deployment |
144
+ | [Multi-Interface](./deployment/docs/09-MULTI-INTERFACE.md) | Run Claude Desktop + HTTP simultaneously |
145
+ | [Chrome Limitation](./docs/CHROME_PROFILE_LIMITATION.md) | Profile locking (solved in v1.3.6+) |
146
+ | [Adding a Language](./docs/ADDING_A_LANGUAGE.md) | i18n system for multilingual UI support |
147
+
148
+ ---
149
+
150
+ ## Roadmap
151
+
152
+ See [ROADMAP.md](./ROADMAP.md) for planned features and version history.
153
+
154
+ **Latest releases:**
155
+
156
+ - **v1.5.3** — Docker deployment with noVNC for visual authentication + NAS support (Synology, QNAP)
157
+ - **v1.5.2** — Notebook scraping from NotebookLM + Bulk delete + Bug fixes
158
+ - **v1.5.1** — Multilingual UI support (FR/EN) with i18n selector system + E2E tests (76 tests)
159
+ - **v1.5.0** — Complete Studio content generation (video, infographic, presentation, data_table) + Notes management + Delete sources
160
+ - **v1.4.0** — Content management (sources, audio, generation) + Multi-account
161
+
162
+ **Not yet implemented:**
163
+
164
+ - Discover sources (Web/Drive search with Fast/Deep modes)
165
+ - Edit notes (create, delete, and convert are implemented)
166
+
167
+ ---
168
+
169
+ ## Disclaimer
170
+
171
+ This tool automates browser interactions with NotebookLM. Use a dedicated Google account for automation. CLI tools like Claude Code can make mistakes always review changes before deploying.
172
+
173
+ See full [Disclaimer](#disclaimer-details) below.
174
+
175
+ ---
176
+
177
+ ## Contributing
178
+
179
+ Found a bug? Have an idea? [Open an issue](https://github.com/roomi-fields/notebooklm-mcp/issues) or submit a PR!
180
+
181
+ See [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
182
+
183
+ ## License
184
+
185
+ MIT Use freely in your projects. See [LICENSE](./LICENSE).
186
+
187
+ ## Author
188
+
189
+ **Romain Peyrichou** [@roomi-fields](https://github.com/roomi-fields)
190
+
191
+ ---
192
+
193
+ <details>
194
+ <summary><a name="disclaimer-details"></a>Full Disclaimer</summary>
195
+
196
+ **About browser automation:**
197
+ While I've built in humanization features (realistic typing speeds, natural delays, mouse movements), I can't guarantee Google won't detect or flag automated usage. Use a dedicated Google account for automation.
198
+
199
+ **About CLI tools and AI agents:**
200
+ CLI tools like Claude Code, Codex, and similar AI-powered assistants are powerful but can make mistakes:
201
+
202
+ - Always review changes before committing or deploying
203
+ - Test in safe environments first
204
+ - Keep backups of important work
205
+ - AI agents are assistants, not infallible oracles
206
+
207
+ I built this tool for myself and share it hoping it helps others, but I can't take responsibility for any issues that might occur. Use at your own discretion.
208
+
209
+ </details>
210
+
211
+ ---
212
+
213
+ <div align="center">
214
+
215
+ Built with frustration about hallucinated APIs, powered by Google's NotebookLM
216
+
217
+ ⭐ [Star on GitHub](https://github.com/roomi-fields/notebooklm-mcp) if this saves you debugging time!
218
+
219
+ </div>
File without changes