@roomi-fields/notebooklm-mcp 1.1.2
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.
- package/LICENSE +22 -0
- package/README.md +548 -0
- package/dist/auth/auth-manager.d.ts +139 -0
- package/dist/auth/auth-manager.d.ts.map +1 -0
- package/dist/auth/auth-manager.js +981 -0
- package/dist/auth/auth-manager.js.map +1 -0
- package/dist/config.d.ts +89 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +216 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +26 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +41 -0
- package/dist/errors.js.map +1 -0
- package/dist/http-wrapper.d.ts +8 -0
- package/dist/http-wrapper.d.ts.map +1 -0
- package/dist/http-wrapper.js +221 -0
- package/dist/http-wrapper.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +499 -0
- package/dist/index.js.map +1 -0
- package/dist/library/notebook-library.d.ts +81 -0
- package/dist/library/notebook-library.d.ts.map +1 -0
- package/dist/library/notebook-library.js +362 -0
- package/dist/library/notebook-library.js.map +1 -0
- package/dist/library/types.d.ts +67 -0
- package/dist/library/types.d.ts.map +1 -0
- package/dist/library/types.js +8 -0
- package/dist/library/types.js.map +1 -0
- package/dist/session/browser-session.d.ts +108 -0
- package/dist/session/browser-session.d.ts.map +1 -0
- package/dist/session/browser-session.js +630 -0
- package/dist/session/browser-session.js.map +1 -0
- package/dist/session/session-manager.d.ts +76 -0
- package/dist/session/session-manager.d.ts.map +1 -0
- package/dist/session/session-manager.js +273 -0
- package/dist/session/session-manager.js.map +1 -0
- package/dist/session/shared-context-manager.d.ts +107 -0
- package/dist/session/shared-context-manager.d.ts.map +1 -0
- package/dist/session/shared-context-manager.js +447 -0
- package/dist/session/shared-context-manager.js.map +1 -0
- package/dist/tools/index.d.ts +225 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +1396 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types.d.ts +82 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/cleanup-manager.d.ts +133 -0
- package/dist/utils/cleanup-manager.d.ts.map +1 -0
- package/dist/utils/cleanup-manager.js +673 -0
- package/dist/utils/cleanup-manager.js.map +1 -0
- package/dist/utils/logger.d.ts +61 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +92 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/page-utils.d.ts +54 -0
- package/dist/utils/page-utils.d.ts.map +1 -0
- package/dist/utils/page-utils.js +422 -0
- package/dist/utils/page-utils.js.map +1 -0
- package/dist/utils/stealth-utils.d.ts +135 -0
- package/dist/utils/stealth-utils.d.ts.map +1 -0
- package/dist/utils/stealth-utils.js +398 -0
- package/dist/utils/stealth-utils.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Wrapper for NotebookLM MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Exposes the MCP server via HTTP REST API
|
|
5
|
+
* Allows n8n and other tools to call the server without stdio
|
|
6
|
+
*/
|
|
7
|
+
import express from 'express';
|
|
8
|
+
import { AuthManager } from './auth/auth-manager.js';
|
|
9
|
+
import { SessionManager } from './session/session-manager.js';
|
|
10
|
+
import { NotebookLibrary } from './library/notebook-library.js';
|
|
11
|
+
import { ToolHandlers } from './tools/index.js';
|
|
12
|
+
import { log } from './utils/logger.js';
|
|
13
|
+
const app = express();
|
|
14
|
+
app.use(express.json());
|
|
15
|
+
// CORS for n8n
|
|
16
|
+
app.use((_req, res, next) => {
|
|
17
|
+
res.header('Access-Control-Allow-Origin', '*');
|
|
18
|
+
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
|
|
19
|
+
res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization');
|
|
20
|
+
if (_req.method === 'OPTIONS') {
|
|
21
|
+
return res.sendStatus(200);
|
|
22
|
+
}
|
|
23
|
+
next();
|
|
24
|
+
});
|
|
25
|
+
// Initialize managers
|
|
26
|
+
const authManager = new AuthManager();
|
|
27
|
+
const sessionManager = new SessionManager(authManager);
|
|
28
|
+
const library = new NotebookLibrary(sessionManager);
|
|
29
|
+
const toolHandlers = new ToolHandlers(sessionManager, authManager, library);
|
|
30
|
+
// Health check
|
|
31
|
+
app.get('/health', async (_req, res) => {
|
|
32
|
+
try {
|
|
33
|
+
const result = await toolHandlers.handleGetHealth();
|
|
34
|
+
res.json(result);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
res.status(500).json({
|
|
38
|
+
success: false,
|
|
39
|
+
error: error instanceof Error ? error.message : String(error)
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
// Ask question
|
|
44
|
+
app.post('/ask', async (req, res) => {
|
|
45
|
+
try {
|
|
46
|
+
const { question, session_id, notebook_id, notebook_url, show_browser } = req.body;
|
|
47
|
+
if (!question) {
|
|
48
|
+
return res.status(400).json({
|
|
49
|
+
success: false,
|
|
50
|
+
error: 'Missing required field: question'
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
const result = await toolHandlers.handleAskQuestion({ question, session_id, notebook_id, notebook_url, show_browser }, async (message, progress, total) => {
|
|
54
|
+
log.info(`Progress: ${message} (${progress}/${total})`);
|
|
55
|
+
});
|
|
56
|
+
res.json(result);
|
|
57
|
+
}
|
|
58
|
+
catch (error) {
|
|
59
|
+
res.status(500).json({
|
|
60
|
+
success: false,
|
|
61
|
+
error: error instanceof Error ? error.message : String(error)
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
// Setup auth
|
|
66
|
+
app.post('/setup-auth', async (req, res) => {
|
|
67
|
+
try {
|
|
68
|
+
const { show_browser } = req.body;
|
|
69
|
+
const result = await toolHandlers.handleSetupAuth({ show_browser }, async (message, progress, total) => {
|
|
70
|
+
log.info(`Progress: ${message} (${progress}/${total})`);
|
|
71
|
+
});
|
|
72
|
+
res.json(result);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
res.status(500).json({
|
|
76
|
+
success: false,
|
|
77
|
+
error: error instanceof Error ? error.message : String(error)
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
// List notebooks
|
|
82
|
+
app.get('/notebooks', async (_req, res) => {
|
|
83
|
+
try {
|
|
84
|
+
const result = await toolHandlers.handleListNotebooks();
|
|
85
|
+
res.json(result);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
res.status(500).json({
|
|
89
|
+
success: false,
|
|
90
|
+
error: error instanceof Error ? error.message : String(error)
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
// Add notebook
|
|
95
|
+
app.post('/notebooks', async (req, res) => {
|
|
96
|
+
try {
|
|
97
|
+
const { url, name, description, topics, content_types, use_cases, tags } = req.body;
|
|
98
|
+
if (!url || !name || !description || !topics) {
|
|
99
|
+
return res.status(400).json({
|
|
100
|
+
success: false,
|
|
101
|
+
error: 'Missing required fields: url, name, description, topics'
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
const result = await toolHandlers.handleAddNotebook({
|
|
105
|
+
url, name, description, topics, content_types, use_cases, tags
|
|
106
|
+
});
|
|
107
|
+
res.json(result);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
res.status(500).json({
|
|
111
|
+
success: false,
|
|
112
|
+
error: error instanceof Error ? error.message : String(error)
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
// Get notebook
|
|
117
|
+
app.get('/notebooks/:id', async (req, res) => {
|
|
118
|
+
try {
|
|
119
|
+
const result = await toolHandlers.handleGetNotebook({ id: req.params.id });
|
|
120
|
+
res.json(result);
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
res.status(500).json({
|
|
124
|
+
success: false,
|
|
125
|
+
error: error instanceof Error ? error.message : String(error)
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
// Delete notebook
|
|
130
|
+
app.delete('/notebooks/:id', async (req, res) => {
|
|
131
|
+
try {
|
|
132
|
+
const result = await toolHandlers.handleRemoveNotebook({ id: req.params.id });
|
|
133
|
+
res.json(result);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
res.status(500).json({
|
|
137
|
+
success: false,
|
|
138
|
+
error: error instanceof Error ? error.message : String(error)
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
// Activate notebook (set as active)
|
|
143
|
+
app.put('/notebooks/:id/activate', async (req, res) => {
|
|
144
|
+
try {
|
|
145
|
+
const result = await toolHandlers.handleSelectNotebook({ id: req.params.id });
|
|
146
|
+
res.json(result);
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
res.status(500).json({
|
|
150
|
+
success: false,
|
|
151
|
+
error: error instanceof Error ? error.message : String(error)
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
// List sessions
|
|
156
|
+
app.get('/sessions', async (_req, res) => {
|
|
157
|
+
try {
|
|
158
|
+
const result = await toolHandlers.handleListSessions();
|
|
159
|
+
res.json(result);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
res.status(500).json({
|
|
163
|
+
success: false,
|
|
164
|
+
error: error instanceof Error ? error.message : String(error)
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
// Close session
|
|
169
|
+
app.delete('/sessions/:id', async (req, res) => {
|
|
170
|
+
try {
|
|
171
|
+
const result = await toolHandlers.handleCloseSession({ session_id: req.params.id });
|
|
172
|
+
res.json(result);
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
res.status(500).json({
|
|
176
|
+
success: false,
|
|
177
|
+
error: error instanceof Error ? error.message : String(error)
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
// Start server
|
|
182
|
+
const PORT = Number(process.env.HTTP_PORT) || 3000;
|
|
183
|
+
const HOST = process.env.HTTP_HOST || '0.0.0.0';
|
|
184
|
+
app.listen(PORT, HOST, () => {
|
|
185
|
+
log.success(`đ NotebookLM MCP HTTP Server v1.1.2`);
|
|
186
|
+
log.success(` Listening on ${HOST}:${PORT}`);
|
|
187
|
+
log.info('');
|
|
188
|
+
log.info('đ Quick Links:');
|
|
189
|
+
log.info(` Health check: http://localhost:${PORT}/health`);
|
|
190
|
+
log.info(` API endpoint: http://localhost:${PORT}/ask`);
|
|
191
|
+
log.info('');
|
|
192
|
+
log.info('đ Available Endpoints:');
|
|
193
|
+
log.info(' POST /ask Ask a question to NotebookLM');
|
|
194
|
+
log.info(' GET /health Server health check');
|
|
195
|
+
log.info(' GET /notebooks List all notebooks');
|
|
196
|
+
log.info(' POST /notebooks Add a new notebook');
|
|
197
|
+
log.info(' GET /notebooks/:id Get notebook details');
|
|
198
|
+
log.info(' DELETE /notebooks/:id Delete a notebook');
|
|
199
|
+
log.info(' PUT /notebooks/:id/activate Activate a notebook (set as default)');
|
|
200
|
+
log.info(' GET /sessions List active sessions');
|
|
201
|
+
log.info(' DELETE /sessions/:id Close a session');
|
|
202
|
+
log.info('');
|
|
203
|
+
log.info('đĄ Configuration:');
|
|
204
|
+
log.info(` Host: ${HOST} ${HOST === '0.0.0.0' ? '(accessible from network)' : '(localhost only)'}`);
|
|
205
|
+
log.info(` Port: ${PORT}`);
|
|
206
|
+
log.info('');
|
|
207
|
+
log.dim('đ Documentation: ./deployment/docs/');
|
|
208
|
+
log.dim('âšī¸ Press Ctrl+C to stop');
|
|
209
|
+
});
|
|
210
|
+
// Graceful shutdown
|
|
211
|
+
process.on('SIGTERM', async () => {
|
|
212
|
+
log.info('SIGTERM received, shutting down gracefully...');
|
|
213
|
+
await toolHandlers.cleanup();
|
|
214
|
+
process.exit(0);
|
|
215
|
+
});
|
|
216
|
+
process.on('SIGINT', async () => {
|
|
217
|
+
log.info('SIGINT received, shutting down gracefully...');
|
|
218
|
+
await toolHandlers.cleanup();
|
|
219
|
+
process.exit(0);
|
|
220
|
+
});
|
|
221
|
+
//# sourceMappingURL=http-wrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-wrapper.js","sourceRoot":"","sources":["../src/http-wrapper.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* NotebookLM MCP Server
|
|
4
|
+
*
|
|
5
|
+
* MCP Server for Google NotebookLM - Chat with Gemini 2.5 through NotebookLM
|
|
6
|
+
* with session support and human-like behavior!
|
|
7
|
+
*
|
|
8
|
+
* Features:
|
|
9
|
+
* - Session-based contextual conversations
|
|
10
|
+
* - Auto re-login on session expiry
|
|
11
|
+
* - Human-like typing and mouse movements
|
|
12
|
+
* - Persistent browser fingerprint
|
|
13
|
+
* - Stealth mode with Patchright
|
|
14
|
+
* - Claude Code integration via npx
|
|
15
|
+
*
|
|
16
|
+
* Usage:
|
|
17
|
+
* npx notebooklm-mcp
|
|
18
|
+
* node dist/index.js
|
|
19
|
+
*
|
|
20
|
+
* Environment Variables:
|
|
21
|
+
* NOTEBOOK_URL - Default NotebookLM notebook URL
|
|
22
|
+
* AUTO_LOGIN_ENABLED - Enable automatic login (true/false)
|
|
23
|
+
* LOGIN_EMAIL - Google email for auto-login
|
|
24
|
+
* LOGIN_PASSWORD - Google password for auto-login
|
|
25
|
+
* HEADLESS - Run browser in headless mode (true/false)
|
|
26
|
+
* MAX_SESSIONS - Maximum concurrent sessions (default: 10)
|
|
27
|
+
* SESSION_TIMEOUT - Session timeout in seconds (default: 900)
|
|
28
|
+
*
|
|
29
|
+
* Based on the Python NotebookLM API implementation
|
|
30
|
+
*/
|
|
31
|
+
export {};
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG"}
|