@pan-sec/notebooklm-mcp 2026.1.6 → 2026.1.8
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/dist/resources/resource-handlers.d.ts.map +1 -1
- package/dist/resources/resource-handlers.js +252 -2
- package/dist/resources/resource-handlers.js.map +1 -1
- package/dist/tools/annotations.d.ts +28 -0
- package/dist/tools/annotations.d.ts.map +1 -0
- package/dist/tools/annotations.js +480 -0
- package/dist/tools/annotations.js.map +1 -0
- package/dist/tools/definitions.d.ts +5 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +29 -2
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/icons.d.ts +18 -0
- package/dist/tools/icons.d.ts.map +1 -0
- package/dist/tools/icons.js +137 -0
- package/dist/tools/icons.js.map +1 -0
- package/dist/tools/index.d.ts +4 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/crypto.js +1 -1
- package/dist/utils/crypto.js.map +1 -1
- package/package.json +11 -11
- package/server.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-handlers.d.ts","sourceRoot":"","sources":["../../src/resources/resource-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"resource-handlers.d.ts","sourceRoot":"","sources":["../../src/resources/resource-handlers.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAExE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAqBjE;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAkB;gBAErB,OAAO,EAAE,eAAe;IAIpC;;OAEG;IACI,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwc7C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,eAAe;CAQxB"}
|
|
@@ -1,5 +1,21 @@
|
|
|
1
|
-
import { ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, CompleteRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
1
|
+
import { ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, CompleteRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
import { log } from "../utils/logger.js";
|
|
3
|
+
/**
|
|
4
|
+
* Create an SVG icon data URI
|
|
5
|
+
*/
|
|
6
|
+
function svgIcon(svg) {
|
|
7
|
+
const encoded = Buffer.from(svg).toString("base64");
|
|
8
|
+
return {
|
|
9
|
+
src: `data:image/svg+xml;base64,${encoded}`,
|
|
10
|
+
mimeType: "image/svg+xml",
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
// Resource icons
|
|
14
|
+
const ICONS = {
|
|
15
|
+
library: svgIcon(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg>`),
|
|
16
|
+
notebook: svgIcon(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>`),
|
|
17
|
+
metadata: svgIcon(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>`),
|
|
18
|
+
};
|
|
3
19
|
/**
|
|
4
20
|
* Handlers for MCP Resource-related requests
|
|
5
21
|
*/
|
|
@@ -12,7 +28,7 @@ export class ResourceHandlers {
|
|
|
12
28
|
* Register all resource handlers to the server
|
|
13
29
|
*/
|
|
14
30
|
registerHandlers(server) {
|
|
15
|
-
// List available resources
|
|
31
|
+
// List available resources (enhanced with icons and annotations)
|
|
16
32
|
server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
17
33
|
log.info("📚 [MCP] list_resources request received");
|
|
18
34
|
const notebooks = this.library.listNotebooks();
|
|
@@ -20,12 +36,18 @@ export class ResourceHandlers {
|
|
|
20
36
|
{
|
|
21
37
|
uri: "notebooklm://library",
|
|
22
38
|
name: "Notebook Library",
|
|
39
|
+
title: "NotebookLM Library",
|
|
23
40
|
description: "Complete notebook library with all available knowledge sources. " +
|
|
24
41
|
"Read this to discover what notebooks are available. " +
|
|
25
42
|
"⚠️ If you think a notebook might help with the user's task, " +
|
|
26
43
|
"ASK THE USER FOR PERMISSION before consulting it: " +
|
|
27
44
|
"'Should I consult the [notebook] for this task?'",
|
|
28
45
|
mimeType: "application/json",
|
|
46
|
+
icons: [ICONS.library],
|
|
47
|
+
annotations: {
|
|
48
|
+
audience: ["assistant"],
|
|
49
|
+
priority: 1.0, // High priority - main entry point
|
|
50
|
+
},
|
|
29
51
|
},
|
|
30
52
|
];
|
|
31
53
|
// Add individual notebook resources
|
|
@@ -33,9 +55,16 @@ export class ResourceHandlers {
|
|
|
33
55
|
resources.push({
|
|
34
56
|
uri: `notebooklm://library/${notebook.id}`,
|
|
35
57
|
name: notebook.name,
|
|
58
|
+
title: notebook.name,
|
|
36
59
|
description: `${notebook.description} | Topics: ${notebook.topics.join(", ")} | ` +
|
|
37
60
|
`💡 Use ask_question to query this notebook (ask user permission first if task isn't explicitly about these topics)`,
|
|
38
61
|
mimeType: "application/json",
|
|
62
|
+
icons: [ICONS.notebook],
|
|
63
|
+
annotations: {
|
|
64
|
+
audience: ["assistant"],
|
|
65
|
+
priority: 0.8,
|
|
66
|
+
...(notebook.last_used && { lastModified: notebook.last_used }),
|
|
67
|
+
},
|
|
39
68
|
});
|
|
40
69
|
}
|
|
41
70
|
// Add legacy metadata resource for backwards compatibility
|
|
@@ -44,10 +73,16 @@ export class ResourceHandlers {
|
|
|
44
73
|
resources.push({
|
|
45
74
|
uri: "notebooklm://metadata",
|
|
46
75
|
name: "Active Notebook Metadata (Legacy)",
|
|
76
|
+
title: "Active Notebook (Legacy)",
|
|
47
77
|
description: "Information about the currently active notebook. " +
|
|
48
78
|
"DEPRECATED: Use notebooklm://library instead for multi-notebook support. " +
|
|
49
79
|
"⚠️ Always ask user permission before using notebooks for tasks they didn't explicitly mention.",
|
|
50
80
|
mimeType: "application/json",
|
|
81
|
+
icons: [ICONS.metadata],
|
|
82
|
+
annotations: {
|
|
83
|
+
audience: ["assistant"],
|
|
84
|
+
priority: 0.3, // Low priority - deprecated
|
|
85
|
+
},
|
|
51
86
|
});
|
|
52
87
|
}
|
|
53
88
|
return { resources };
|
|
@@ -189,6 +224,221 @@ export class ResourceHandlers {
|
|
|
189
224
|
}
|
|
190
225
|
return { completion: { values: [], total: 0 } };
|
|
191
226
|
});
|
|
227
|
+
// List available prompts
|
|
228
|
+
server.setRequestHandler(ListPromptsRequestSchema, async () => {
|
|
229
|
+
log.info("📝 [MCP] list_prompts request received");
|
|
230
|
+
return {
|
|
231
|
+
prompts: [
|
|
232
|
+
{
|
|
233
|
+
name: "notebooklm.auth-setup",
|
|
234
|
+
description: "Guide for initial Google authentication setup for NotebookLM access. " +
|
|
235
|
+
"Use this when the user needs to authenticate for the first time.",
|
|
236
|
+
arguments: [],
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
name: "notebooklm.auth-repair",
|
|
240
|
+
description: "Troubleshooting guide for authentication issues. " +
|
|
241
|
+
"Use this when authentication fails or cookies have expired.",
|
|
242
|
+
arguments: [],
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: "notebooklm.quick-start",
|
|
246
|
+
description: "Quick start guide for NotebookLM MCP. " +
|
|
247
|
+
"Explains how to add notebooks, query them, and manage sessions.",
|
|
248
|
+
arguments: [],
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: "notebooklm.security-overview",
|
|
252
|
+
description: "Overview of security features in this hardened MCP server. " +
|
|
253
|
+
"Includes GDPR compliance, audit logging, and post-quantum encryption details.",
|
|
254
|
+
arguments: [],
|
|
255
|
+
},
|
|
256
|
+
],
|
|
257
|
+
};
|
|
258
|
+
});
|
|
259
|
+
// Get prompt content
|
|
260
|
+
server.setRequestHandler(GetPromptRequestSchema, async (request) => {
|
|
261
|
+
const { name } = request.params;
|
|
262
|
+
log.info(`📝 [MCP] get_prompt request: ${name}`);
|
|
263
|
+
switch (name) {
|
|
264
|
+
case "notebooklm.auth-setup":
|
|
265
|
+
return {
|
|
266
|
+
description: "Initial authentication setup guide",
|
|
267
|
+
messages: [
|
|
268
|
+
{
|
|
269
|
+
role: "user",
|
|
270
|
+
content: {
|
|
271
|
+
type: "text",
|
|
272
|
+
text: `# NotebookLM Authentication Setup
|
|
273
|
+
|
|
274
|
+
To authenticate with NotebookLM:
|
|
275
|
+
|
|
276
|
+
1. **Run the setup_auth tool** - This opens a browser window for Google login
|
|
277
|
+
2. **Complete Google login** - You have up to 10 minutes to log in
|
|
278
|
+
3. **Verify with get_health** - Check that authentication was saved successfully
|
|
279
|
+
|
|
280
|
+
\`\`\`
|
|
281
|
+
// Step 1: Start auth
|
|
282
|
+
setup_auth({ show_browser: true })
|
|
283
|
+
|
|
284
|
+
// Step 2: Complete login in browser...
|
|
285
|
+
|
|
286
|
+
// Step 3: Verify
|
|
287
|
+
get_health({ deep_check: true })
|
|
288
|
+
\`\`\`
|
|
289
|
+
|
|
290
|
+
**Tips:**
|
|
291
|
+
- Close all Chrome/Chromium instances before starting
|
|
292
|
+
- Use re_auth if you need to switch accounts
|
|
293
|
+
- Use cleanup_data if you have persistent issues`,
|
|
294
|
+
},
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
};
|
|
298
|
+
case "notebooklm.auth-repair":
|
|
299
|
+
return {
|
|
300
|
+
description: "Authentication troubleshooting guide",
|
|
301
|
+
messages: [
|
|
302
|
+
{
|
|
303
|
+
role: "user",
|
|
304
|
+
content: {
|
|
305
|
+
type: "text",
|
|
306
|
+
text: `# NotebookLM Authentication Repair
|
|
307
|
+
|
|
308
|
+
If authentication is failing:
|
|
309
|
+
|
|
310
|
+
## Quick Fix
|
|
311
|
+
\`\`\`
|
|
312
|
+
// Check current status
|
|
313
|
+
get_health({ deep_check: true })
|
|
314
|
+
|
|
315
|
+
// If cookies expired, re-authenticate
|
|
316
|
+
re_auth({ show_browser: true })
|
|
317
|
+
\`\`\`
|
|
318
|
+
|
|
319
|
+
## Full Reset (if quick fix fails)
|
|
320
|
+
\`\`\`
|
|
321
|
+
// 1. Close ALL Chrome/Chromium instances first!
|
|
322
|
+
|
|
323
|
+
// 2. Preview cleanup
|
|
324
|
+
cleanup_data({ confirm: false, preserve_library: true })
|
|
325
|
+
|
|
326
|
+
// 3. Execute cleanup
|
|
327
|
+
cleanup_data({ confirm: true, preserve_library: true })
|
|
328
|
+
|
|
329
|
+
// 4. Fresh authentication
|
|
330
|
+
setup_auth({ show_browser: true })
|
|
331
|
+
|
|
332
|
+
// 5. Verify
|
|
333
|
+
get_health({ deep_check: true })
|
|
334
|
+
\`\`\`
|
|
335
|
+
|
|
336
|
+
**Common Issues:**
|
|
337
|
+
- Rate limit hit (50 queries/day free) → re_auth to switch accounts
|
|
338
|
+
- Stale browser session → cleanup_data + setup_auth
|
|
339
|
+
- Cookies expired → re_auth`,
|
|
340
|
+
},
|
|
341
|
+
},
|
|
342
|
+
],
|
|
343
|
+
};
|
|
344
|
+
case "notebooklm.quick-start":
|
|
345
|
+
return {
|
|
346
|
+
description: "Quick start guide for NotebookLM MCP",
|
|
347
|
+
messages: [
|
|
348
|
+
{
|
|
349
|
+
role: "user",
|
|
350
|
+
content: {
|
|
351
|
+
type: "text",
|
|
352
|
+
text: `# NotebookLM MCP Quick Start
|
|
353
|
+
|
|
354
|
+
## 1. Add a Notebook
|
|
355
|
+
\`\`\`
|
|
356
|
+
add_notebook({
|
|
357
|
+
url: "https://notebooklm.google.com/notebook/...",
|
|
358
|
+
name: "My Documentation",
|
|
359
|
+
description: "API docs and examples",
|
|
360
|
+
topics: ["api", "documentation"]
|
|
361
|
+
})
|
|
362
|
+
\`\`\`
|
|
363
|
+
|
|
364
|
+
## 2. Query Your Notebook
|
|
365
|
+
\`\`\`
|
|
366
|
+
// Start a new session
|
|
367
|
+
ask_question({ question: "How do I use the API?" })
|
|
368
|
+
// Returns session_id
|
|
369
|
+
|
|
370
|
+
// Continue conversation
|
|
371
|
+
ask_question({
|
|
372
|
+
question: "Show me an example",
|
|
373
|
+
session_id: "..."
|
|
374
|
+
})
|
|
375
|
+
\`\`\`
|
|
376
|
+
|
|
377
|
+
## 3. Manage Library
|
|
378
|
+
\`\`\`
|
|
379
|
+
list_notebooks() // See all notebooks
|
|
380
|
+
select_notebook(...) // Set active notebook
|
|
381
|
+
search_notebooks(...) // Find notebooks by topic
|
|
382
|
+
\`\`\`
|
|
383
|
+
|
|
384
|
+
## 4. Direct Gemini Queries
|
|
385
|
+
\`\`\`
|
|
386
|
+
// Quick query with web grounding
|
|
387
|
+
gemini_query({
|
|
388
|
+
query: "Latest news about...",
|
|
389
|
+
tools: ["google_search"]
|
|
390
|
+
})
|
|
391
|
+
|
|
392
|
+
// Deep research (1-5 min)
|
|
393
|
+
deep_research({ query: "Comprehensive analysis of..." })
|
|
394
|
+
\`\`\``,
|
|
395
|
+
},
|
|
396
|
+
},
|
|
397
|
+
],
|
|
398
|
+
};
|
|
399
|
+
case "notebooklm.security-overview":
|
|
400
|
+
return {
|
|
401
|
+
description: "Security features overview",
|
|
402
|
+
messages: [
|
|
403
|
+
{
|
|
404
|
+
role: "user",
|
|
405
|
+
content: {
|
|
406
|
+
type: "text",
|
|
407
|
+
text: `# NotebookLM MCP Security Features
|
|
408
|
+
|
|
409
|
+
This is a security-hardened fork with 14 security layers:
|
|
410
|
+
|
|
411
|
+
## Core Security
|
|
412
|
+
- **Input Validation** - Zod schemas for all inputs
|
|
413
|
+
- **URL Whitelisting** - Only approved domains
|
|
414
|
+
- **Rate Limiting** - Abuse prevention
|
|
415
|
+
- **Session Timeout** - Auto-expire idle sessions
|
|
416
|
+
|
|
417
|
+
## Data Protection
|
|
418
|
+
- **Post-Quantum Encryption** - ML-KEM-768 + ChaCha20-Poly1305
|
|
419
|
+
- **Secrets Scanning** - Detect leaked credentials
|
|
420
|
+
- **Memory Scrubbing** - Secure data cleanup
|
|
421
|
+
- **Credential Masking** - Hide sensitive data in logs
|
|
422
|
+
|
|
423
|
+
## Enterprise Compliance
|
|
424
|
+
- **GDPR** - Consent management, data portability, right to erasure
|
|
425
|
+
- **SOC2** - Hash-chained audit logs, change management
|
|
426
|
+
- **CSSF** - 7-year retention, SIEM integration
|
|
427
|
+
|
|
428
|
+
## Monitoring
|
|
429
|
+
- **Audit Logging** - Tamper-evident hash chains
|
|
430
|
+
- **Certificate Pinning** - Prevent MITM attacks
|
|
431
|
+
- **Response Validation** - Detect injection attempts
|
|
432
|
+
|
|
433
|
+
Use \`get_health()\` to check security status.`,
|
|
434
|
+
},
|
|
435
|
+
},
|
|
436
|
+
],
|
|
437
|
+
};
|
|
438
|
+
default:
|
|
439
|
+
throw new Error(`Unknown prompt: ${name}`);
|
|
440
|
+
}
|
|
441
|
+
});
|
|
192
442
|
}
|
|
193
443
|
/**
|
|
194
444
|
* Return notebook IDs matching the provided input (case-insensitive contains)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-handlers.js","sourceRoot":"","sources":["../../src/resources/resource-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,kCAAkC,EAClC,yBAAyB,EACzB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"resource-handlers.js","sourceRoot":"","sources":["../../src/resources/resource-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tool Annotations for MCP UX Enhancement
|
|
3
|
+
*
|
|
4
|
+
* Annotations provide hints about tool behavior to help clients make better decisions.
|
|
5
|
+
*
|
|
6
|
+
* @see https://modelcontextprotocol.io/specification/draft/2025-03-26/server/tools#annotations
|
|
7
|
+
*/
|
|
8
|
+
import type { ToolAnnotations, ToolExecution } from "@modelcontextprotocol/sdk/types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Tool metadata including title, annotations, and execution hints
|
|
11
|
+
*/
|
|
12
|
+
export interface ToolMetadata {
|
|
13
|
+
/** Human-friendly title for the tool */
|
|
14
|
+
title: string;
|
|
15
|
+
/** Behavior hints for the client */
|
|
16
|
+
annotations?: ToolAnnotations;
|
|
17
|
+
/** Execution configuration (e.g., task support) */
|
|
18
|
+
execution?: ToolExecution;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Tool metadata mapped to tool names
|
|
22
|
+
*/
|
|
23
|
+
export declare const toolMetadata: Record<string, ToolMetadata>;
|
|
24
|
+
/**
|
|
25
|
+
* Get metadata for a tool by name
|
|
26
|
+
*/
|
|
27
|
+
export declare function getToolMetadata(toolName: string): ToolMetadata | undefined;
|
|
28
|
+
//# sourceMappingURL=annotations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAEzF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,mDAAmD;IACnD,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAsdrD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE1E"}
|