@roomi-fields/notebooklm-mcp 1.2.1 → 1.3.1
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/README.md +111 -25
- package/dist/auto-discovery/auto-discovery.d.ts +64 -0
- package/dist/auto-discovery/auto-discovery.d.ts.map +1 -0
- package/dist/auto-discovery/auto-discovery.js +166 -0
- package/dist/auto-discovery/auto-discovery.js.map +1 -0
- package/dist/http-wrapper.js +69 -1
- package/dist/http-wrapper.js.map +1 -1
- package/dist/index.js +44 -38
- package/dist/index.js.map +1 -1
- package/dist/library/notebook-library.d.ts.map +1 -1
- package/dist/library/notebook-library.js +1 -0
- package/dist/library/notebook-library.js.map +1 -1
- package/dist/library/types.d.ts +2 -0
- package/dist/library/types.d.ts.map +1 -1
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +106 -1
- package/dist/tools/index.js.map +1 -1
- package/docs/CHROME_PROFILE_LIMITATION.md +212 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
# NotebookLM MCP Server
|
|
4
4
|
|
|
5
|
+
> **Forked from** [PleasePrompto/notebooklm-mcp](https://github.com/PleasePrompto/notebooklm-mcp)
|
|
6
|
+
|
|
5
7
|
**Chat directly with NotebookLM for zero-hallucination answers based on your own notebooks**
|
|
6
8
|
|
|
7
9
|
[](https://www.typescriptlang.org/)
|
|
8
10
|
[](https://modelcontextprotocol.io/)
|
|
9
11
|
[](https://www.npmjs.com/package/@roomi-fields/notebooklm-mcp)
|
|
12
|
+
[](https://opensource.org/licenses/MIT)
|
|
13
|
+
[](https://claude.ai/claude-code)
|
|
14
|
+
[](./deployment/docs/04-N8N-INTEGRATION.md)
|
|
10
15
|
[](https://github.com/roomi-fields/notebooklm-mcp)
|
|
11
16
|
|
|
12
17
|
[MCP Installation](#mcp-installation) • [HTTP REST API](#http-rest-api) • [Why NotebookLM](#why-notebooklm-not-local-rag) • [Examples](#real-world-example) • [Documentation](./deployment/docs/)
|
|
@@ -15,6 +20,10 @@
|
|
|
15
20
|
|
|
16
21
|
---
|
|
17
22
|
|
|
23
|
+
> **⚠️ Current Limitation (v1.3.0):** HTTP and MCP stdio modes cannot run simultaneously due to Chrome profile locking. Choose one mode at a time, or see [Chrome Profile Limitation](./docs/CHROME_PROFILE_LIMITATION.md) for details. This will be fixed in v1.4.0 with automatic profile separation.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
18
27
|
## 🚀 Two Ways to Use This Server
|
|
19
28
|
|
|
20
29
|
### 1️⃣ **HTTP REST API** (New! Recommended for n8n, Zapier, Make.com)
|
|
@@ -184,6 +193,7 @@ curl -X POST http://localhost:3000/ask \
|
|
|
184
193
|
| `POST` | `/ask` | Ask a question to NotebookLM |
|
|
185
194
|
| `GET` | `/notebooks` | List all notebooks |
|
|
186
195
|
| `POST` | `/notebooks` | Add notebook (with live validation) |
|
|
196
|
+
| `POST` | `/notebooks/auto-discover` | Auto-generate notebook metadata |
|
|
187
197
|
| `DELETE` | `/notebooks/:id` | Remove a notebook |
|
|
188
198
|
| `PUT` | `/notebooks/:id/activate` | Set active notebook |
|
|
189
199
|
| `GET` | `/sessions` | List active sessions |
|
|
@@ -217,6 +227,69 @@ Perfect for n8n workflows:
|
|
|
217
227
|
|
|
218
228
|
**👉 n8n guide:** [deployment/docs/04-N8N-INTEGRATION.md](./deployment/docs/04-N8N-INTEGRATION.md)
|
|
219
229
|
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 🔍 Auto-Discovery : Self-Organizing Documentation
|
|
233
|
+
|
|
234
|
+
Autonomous resource discovery enables AI orchestrators to find and use relevant documentation without manual intervention.
|
|
235
|
+
|
|
236
|
+
### How it works
|
|
237
|
+
|
|
238
|
+
**1. Add notebook** (zero manual metadata):
|
|
239
|
+
```bash
|
|
240
|
+
curl -X POST http://localhost:3000/notebooks/auto-discover \
|
|
241
|
+
-H "Content-Type: application/json" \
|
|
242
|
+
-d '{"url": "https://notebooklm.google.com/notebook/YOUR_ID"}'
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
**2. System queries NotebookLM** to auto-generate:
|
|
246
|
+
- Kebab-case name (3 words max)
|
|
247
|
+
- Concise description (2 sentences)
|
|
248
|
+
- Relevant tags (8-10 keywords)
|
|
249
|
+
|
|
250
|
+
**3. Orchestrators discover autonomously**:
|
|
251
|
+
- Claude Code finds relevant docs without prompting
|
|
252
|
+
- n8n workflows auto-select documentation
|
|
253
|
+
- Cursor matches context to notebooks
|
|
254
|
+
|
|
255
|
+
### Progressive disclosure pattern
|
|
256
|
+
|
|
257
|
+
Inspired by [Claude Skills best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices#progressive-disclosure-patterns):
|
|
258
|
+
|
|
259
|
+
- **Level 0** (startup): Lightweight metadata loaded (~500 tokens)
|
|
260
|
+
- **Level 1** (matching): Local tag/description search (0 NotebookLM queries)
|
|
261
|
+
- **Level 2** (deep query): Targeted NotebookLM query only when needed
|
|
262
|
+
|
|
263
|
+
### Why this matters
|
|
264
|
+
|
|
265
|
+
**Before**: Manual library management, orchestrators can't discover resources autonomously
|
|
266
|
+
|
|
267
|
+
**After**: Self-organizing library, autonomous documentation discovery
|
|
268
|
+
|
|
269
|
+
Perfect for:
|
|
270
|
+
- ✅ Teams with 10+ documentation notebooks
|
|
271
|
+
- ✅ n8n workflows needing dynamic doc access
|
|
272
|
+
- ✅ Claude Code autonomous research
|
|
273
|
+
- ✅ Onboarding new developers without manual setup
|
|
274
|
+
|
|
275
|
+
### Example workflow
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
# 1. Add documentation notebooks (auto-discover metadata)
|
|
279
|
+
curl -X POST /notebooks/auto-discover -d '{"url": "https://notebooklm.google.com/notebook/n8n-docs"}'
|
|
280
|
+
curl -X POST /notebooks/auto-discover -d '{"url": "https://notebooklm.google.com/notebook/react-guide"}'
|
|
281
|
+
|
|
282
|
+
# 2. Claude Code autonomously discovers relevant notebook
|
|
283
|
+
User: "Build Gmail automation with n8n"
|
|
284
|
+
→ System matches: "n8n-docs" (tags: ["n8n", "gmail", "automation"])
|
|
285
|
+
→ Query NotebookLM: "Gmail node configuration?"
|
|
286
|
+
→ Claude implements with accurate info
|
|
287
|
+
|
|
288
|
+
# 3. Zero hallucinations, zero manual intervention
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
220
293
|
### Background Daemon Mode
|
|
221
294
|
|
|
222
295
|
Run the HTTP server as a background process without keeping a terminal window open:
|
|
@@ -568,38 +641,51 @@ That said, if you run into problems or have questions, feel free to open an issu
|
|
|
568
641
|
|
|
569
642
|
## Roadmap
|
|
570
643
|
|
|
571
|
-
|
|
644
|
+
### ✅ Implemented in v1.3.0
|
|
645
|
+
|
|
646
|
+
**🤖 Auto-Discovery: Autonomous Resource Discovery**
|
|
647
|
+
- ✅ Automatically generate notebook name, description, and tags via NotebookLM
|
|
648
|
+
- ✅ Progressive disclosure pattern inspired by Claude Skills best practices
|
|
649
|
+
- ✅ Zero-friction notebook addition (30 seconds vs 5 minutes)
|
|
650
|
+
- ✅ Validation of auto-generated metadata (kebab-case, description length, tags count)
|
|
651
|
+
- ✅ Orchestrators discover relevant documentation autonomously
|
|
652
|
+
|
|
653
|
+
**👉 See [Auto-Discovery Documentation](./deployment/docs/07-AUTO-DISCOVERY.md) for details**
|
|
654
|
+
|
|
655
|
+
### 🔜 Planned for v1.4.0+
|
|
572
656
|
|
|
573
|
-
|
|
574
|
-
|
|
657
|
+
**🔥 Separate Chrome Profiles by Mode (Priority):**
|
|
658
|
+
- Enable HTTP and MCP stdio modes to run simultaneously
|
|
659
|
+
- Automatic profile detection: `chrome_profile_http` vs `chrome_profile_stdio`
|
|
660
|
+
- No user configuration needed - just works
|
|
661
|
+
- Solves Chrome profile locking issue for dual-mode users
|
|
662
|
+
- **👉 See [Chrome Profile Limitation](./docs/CHROME_PROFILE_LIMITATION.md) for details**
|
|
575
663
|
|
|
576
|
-
**
|
|
577
|
-
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
- Built-in log rotation and monitoring
|
|
581
|
-
- **Windows Service**: Native Windows service installation via `nssm` or `node-windows`
|
|
582
|
-
- **Serverless-ready mode**: Lambda/cold-start compatible with lazy browser session initialization
|
|
664
|
+
**Smart Metadata Refresh:**
|
|
665
|
+
- Auto-detect when notebook content has changed
|
|
666
|
+
- Re-query NotebookLM to update metadata
|
|
667
|
+
- Endpoint: `PATCH /notebooks/:id/refresh`
|
|
583
668
|
|
|
584
|
-
**
|
|
669
|
+
**Semantic Matching:**
|
|
670
|
+
- Use embeddings for advanced notebook matching beyond tags
|
|
671
|
+
- Endpoint: `GET /notebooks/match?query=gmail&semantic=true`
|
|
585
672
|
|
|
586
|
-
|
|
587
|
-
|
|
673
|
+
**Usage Analytics:**
|
|
674
|
+
- Track which notebooks are queried together
|
|
675
|
+
- Suggest related notebooks based on usage patterns
|
|
676
|
+
- Endpoint: `GET /notebooks/:id/related`
|
|
588
677
|
|
|
589
|
-
|
|
590
|
-
1. When adding a notebook with empty metadata, automatically ask NotebookLM:
|
|
591
|
-
- "If you had to name this notebook in one word, what would it be?"
|
|
592
|
-
- "Give me 10 relevant keywords for this content"
|
|
593
|
-
- "Describe this notebook in one sentence"
|
|
594
|
-
2. Parse the response and auto-populate metadata fields
|
|
595
|
-
3. Available as both automatic mode (on add) and manual command (`/notebooks/:id/auto-fill`)
|
|
678
|
+
### 🚀 Previously Implemented
|
|
596
679
|
|
|
597
|
-
|
|
598
|
-
-
|
|
599
|
-
-
|
|
600
|
-
-
|
|
680
|
+
**✅ PM2 Daemon Mode (v1.1.2):**
|
|
681
|
+
- Cross-platform process manager with auto-restart
|
|
682
|
+
- Commands: `npm run daemon:start`, `daemon:logs`, `daemon:status`
|
|
683
|
+
- Built-in log rotation and monitoring
|
|
601
684
|
|
|
602
|
-
|
|
685
|
+
**✅ Multi-Notebook Library (v1.1.2):**
|
|
686
|
+
- Live validation of notebooks
|
|
687
|
+
- Duplicate detection
|
|
688
|
+
- Smart notebook selection
|
|
603
689
|
|
|
604
690
|
### 💡 Have an idea?
|
|
605
691
|
[Open a discussion](https://github.com/roomi-fields/notebooklm-mcp/discussions) to suggest new features!
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Discovery Module
|
|
3
|
+
*
|
|
4
|
+
* Automatically generates notebook metadata by querying NotebookLM itself.
|
|
5
|
+
* This enables autonomous resource discovery for AI orchestrators.
|
|
6
|
+
*
|
|
7
|
+
* Progressive Disclosure Pattern (inspired by Claude Skills best practices):
|
|
8
|
+
* - Level 0: Lightweight metadata loaded at startup
|
|
9
|
+
* - Level 1: Local matching without NotebookLM queries
|
|
10
|
+
* - Level 2: Deep query to NotebookLM only when needed
|
|
11
|
+
*/
|
|
12
|
+
import { SessionManager } from '../session/session-manager.js';
|
|
13
|
+
/**
|
|
14
|
+
* Metadata structure auto-generated from NotebookLM
|
|
15
|
+
*/
|
|
16
|
+
export interface AutoGeneratedMetadata {
|
|
17
|
+
name: string;
|
|
18
|
+
description: string;
|
|
19
|
+
tags: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* AutoDiscovery class
|
|
23
|
+
* Queries NotebookLM to auto-generate notebook metadata
|
|
24
|
+
*/
|
|
25
|
+
export declare class AutoDiscovery {
|
|
26
|
+
private sessionManager;
|
|
27
|
+
constructor(sessionManager: SessionManager);
|
|
28
|
+
/**
|
|
29
|
+
* Query the notebook to auto-generate its metadata
|
|
30
|
+
* Includes retry logic (max 2 retries with 2s delay)
|
|
31
|
+
*
|
|
32
|
+
* @param notebookUrl NotebookLM notebook URL
|
|
33
|
+
* @param maxRetries Maximum retry attempts (default: 2)
|
|
34
|
+
* @returns Auto-generated metadata
|
|
35
|
+
*/
|
|
36
|
+
discoverMetadata(notebookUrl: string, maxRetries?: number): Promise<AutoGeneratedMetadata>;
|
|
37
|
+
/**
|
|
38
|
+
* Generate the discovery prompt for NotebookLM
|
|
39
|
+
*
|
|
40
|
+
* This prompt is CRITICAL - it must be ultra-clear with no ambiguity.
|
|
41
|
+
* NotebookLM will analyze its own content and return structured metadata.
|
|
42
|
+
*/
|
|
43
|
+
private generatePrompt;
|
|
44
|
+
/**
|
|
45
|
+
* Parse and validate the NotebookLM response
|
|
46
|
+
*
|
|
47
|
+
* Handles common issues:
|
|
48
|
+
* - Markdown code blocks wrapping JSON
|
|
49
|
+
* - Extra whitespace
|
|
50
|
+
* - Invalid JSON syntax
|
|
51
|
+
*/
|
|
52
|
+
private parseResponse;
|
|
53
|
+
/**
|
|
54
|
+
* Validate that metadata respects all rules
|
|
55
|
+
*
|
|
56
|
+
* Throws detailed errors to help debugging
|
|
57
|
+
*/
|
|
58
|
+
private validateMetadata;
|
|
59
|
+
/**
|
|
60
|
+
* Simple delay helper for retry logic
|
|
61
|
+
*/
|
|
62
|
+
private delay;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=auto-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-discovery.d.ts","sourceRoot":"","sources":["../../src/auto-discovery/auto-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAElD;;;;;;;OAOG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,UAAU,SAAI,GACb,OAAO,CAAC,qBAAqB,CAAC;IAoDjC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAoBtB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa;IAiCrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-Discovery Module
|
|
3
|
+
*
|
|
4
|
+
* Automatically generates notebook metadata by querying NotebookLM itself.
|
|
5
|
+
* This enables autonomous resource discovery for AI orchestrators.
|
|
6
|
+
*
|
|
7
|
+
* Progressive Disclosure Pattern (inspired by Claude Skills best practices):
|
|
8
|
+
* - Level 0: Lightweight metadata loaded at startup
|
|
9
|
+
* - Level 1: Local matching without NotebookLM queries
|
|
10
|
+
* - Level 2: Deep query to NotebookLM only when needed
|
|
11
|
+
*/
|
|
12
|
+
import { log } from '../utils/logger.js';
|
|
13
|
+
/**
|
|
14
|
+
* AutoDiscovery class
|
|
15
|
+
* Queries NotebookLM to auto-generate notebook metadata
|
|
16
|
+
*/
|
|
17
|
+
export class AutoDiscovery {
|
|
18
|
+
sessionManager;
|
|
19
|
+
constructor(sessionManager) {
|
|
20
|
+
this.sessionManager = sessionManager;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Query the notebook to auto-generate its metadata
|
|
24
|
+
* Includes retry logic (max 2 retries with 2s delay)
|
|
25
|
+
*
|
|
26
|
+
* @param notebookUrl NotebookLM notebook URL
|
|
27
|
+
* @param maxRetries Maximum retry attempts (default: 2)
|
|
28
|
+
* @returns Auto-generated metadata
|
|
29
|
+
*/
|
|
30
|
+
async discoverMetadata(notebookUrl, maxRetries = 2) {
|
|
31
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
32
|
+
try {
|
|
33
|
+
log.info(`🔍 Auto-discovering metadata (attempt ${attempt + 1}/${maxRetries + 1})...`);
|
|
34
|
+
// 1. Create session for this notebook
|
|
35
|
+
const session = await this.sessionManager.getOrCreateSession(undefined, notebookUrl);
|
|
36
|
+
// 2. Send discovery prompt
|
|
37
|
+
const prompt = this.generatePrompt();
|
|
38
|
+
log.dim(` Sending discovery prompt to NotebookLM...`);
|
|
39
|
+
const response = await session.ask(prompt);
|
|
40
|
+
log.dim(` Received response (${response.length} chars)`);
|
|
41
|
+
// 3. Parse and validate response
|
|
42
|
+
const metadata = this.parseResponse(response);
|
|
43
|
+
this.validateMetadata(metadata);
|
|
44
|
+
log.success(`✅ Metadata auto-generated successfully`);
|
|
45
|
+
log.dim(` Name: ${metadata.name}`);
|
|
46
|
+
log.dim(` Tags: ${metadata.tags.length} keywords`);
|
|
47
|
+
return metadata;
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
51
|
+
if (attempt === maxRetries) {
|
|
52
|
+
log.error(`❌ Failed to auto-discover metadata after ${maxRetries + 1} attempts`);
|
|
53
|
+
throw new Error(`Auto-discovery failed: ${errorMessage}. Please verify the notebook is accessible.`);
|
|
54
|
+
}
|
|
55
|
+
log.warning(`⚠️ Attempt ${attempt + 1} failed: ${errorMessage}. Retrying in 2s...`);
|
|
56
|
+
await this.delay(2000);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
throw new Error('Auto-discovery failed after all retries');
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Generate the discovery prompt for NotebookLM
|
|
63
|
+
*
|
|
64
|
+
* This prompt is CRITICAL - it must be ultra-clear with no ambiguity.
|
|
65
|
+
* NotebookLM will analyze its own content and return structured metadata.
|
|
66
|
+
*/
|
|
67
|
+
generatePrompt() {
|
|
68
|
+
return `Analyze your complete content and respond ONLY in this JSON format:
|
|
69
|
+
|
|
70
|
+
{
|
|
71
|
+
"name": "example-notebook-name",
|
|
72
|
+
"description": "First sentence describes main topic. Second sentence adds key details.",
|
|
73
|
+
"tags": ["keyword1", "keyword2", "keyword3", "keyword4", "keyword5", "keyword6", "keyword7", "keyword8"]
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
Rules:
|
|
77
|
+
- name: 3 words maximum, kebab-case format (e.g., "react-hooks-guide", "n8n-api-docs")
|
|
78
|
+
- description: exactly 2 sentences, total length under 150 characters
|
|
79
|
+
- tags: between 8 and 10 keywords covering:
|
|
80
|
+
* Core concepts (3-4 tags like "react", "hooks", "state")
|
|
81
|
+
* Actions/verbs (2-3 tags like "debugging", "testing")
|
|
82
|
+
* Use contexts (2-3 tags like "frontend", "api", "automation")
|
|
83
|
+
|
|
84
|
+
OUTPUT ONLY VALID JSON. NO OTHER TEXT.`;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Parse and validate the NotebookLM response
|
|
88
|
+
*
|
|
89
|
+
* Handles common issues:
|
|
90
|
+
* - Markdown code blocks wrapping JSON
|
|
91
|
+
* - Extra whitespace
|
|
92
|
+
* - Invalid JSON syntax
|
|
93
|
+
*/
|
|
94
|
+
parseResponse(response) {
|
|
95
|
+
try {
|
|
96
|
+
// 1. Clean markdown code blocks if present
|
|
97
|
+
let cleaned = response
|
|
98
|
+
.replace(/```json\n?/g, '')
|
|
99
|
+
.replace(/```\n?/g, '')
|
|
100
|
+
.trim();
|
|
101
|
+
// 2. Parse JSON
|
|
102
|
+
const parsed = JSON.parse(cleaned);
|
|
103
|
+
// 3. Ensure required fields exist
|
|
104
|
+
if (!parsed.name || !parsed.description || !parsed.tags) {
|
|
105
|
+
throw new Error('Missing required fields (name, description, or tags)');
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
name: parsed.name,
|
|
109
|
+
description: parsed.description,
|
|
110
|
+
tags: parsed.tags,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof SyntaxError) {
|
|
115
|
+
throw new Error(`Invalid JSON response from NotebookLM. Response: ${response.substring(0, 200)}...`);
|
|
116
|
+
}
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Validate that metadata respects all rules
|
|
122
|
+
*
|
|
123
|
+
* Throws detailed errors to help debugging
|
|
124
|
+
*/
|
|
125
|
+
validateMetadata(metadata) {
|
|
126
|
+
// Validate name: kebab-case, 3 words max, no spaces
|
|
127
|
+
const nameRegex = /^[a-z0-9]+(-[a-z0-9]+){0,2}$/;
|
|
128
|
+
if (!nameRegex.test(metadata.name)) {
|
|
129
|
+
throw new Error(`Invalid name format: "${metadata.name}". Must be kebab-case with max 3 words (e.g., "my-notebook" or "my-notebook-name")`);
|
|
130
|
+
}
|
|
131
|
+
// Auto-truncate description if too long (NotebookLM doesn't always respect the limit)
|
|
132
|
+
if (metadata.description.length > 150) {
|
|
133
|
+
log.warning(`⚠️ Description too long (${metadata.description.length} chars), truncating to 150...`);
|
|
134
|
+
// Truncate at last complete sentence before 147 chars (leave room for "...")
|
|
135
|
+
let truncated = metadata.description.substring(0, 147);
|
|
136
|
+
const lastPeriod = truncated.lastIndexOf('.');
|
|
137
|
+
if (lastPeriod > 50) {
|
|
138
|
+
// Keep complete sentence if it's not too short
|
|
139
|
+
truncated = truncated.substring(0, lastPeriod + 1);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Otherwise just truncate and add ...
|
|
143
|
+
truncated = truncated.trim() + '...';
|
|
144
|
+
}
|
|
145
|
+
metadata.description = truncated;
|
|
146
|
+
log.dim(` Truncated to: "${truncated}"`);
|
|
147
|
+
}
|
|
148
|
+
// Validate tags: 8-10 elements
|
|
149
|
+
if (metadata.tags.length < 8 || metadata.tags.length > 10) {
|
|
150
|
+
throw new Error(`Invalid tags count: ${metadata.tags.length} (must be 8-10). Tags: ${metadata.tags.join(', ')}`);
|
|
151
|
+
}
|
|
152
|
+
// Validate tags are non-empty strings
|
|
153
|
+
for (const tag of metadata.tags) {
|
|
154
|
+
if (typeof tag !== 'string' || tag.trim().length === 0) {
|
|
155
|
+
throw new Error(`Invalid tag: "${tag}". Tags must be non-empty strings`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Simple delay helper for retry logic
|
|
161
|
+
*/
|
|
162
|
+
delay(ms) {
|
|
163
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=auto-discovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-discovery.js","sourceRoot":"","sources":["../../src/auto-discovery/auto-discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/http-wrapper.js
CHANGED
|
@@ -9,6 +9,7 @@ import { AuthManager } from './auth/auth-manager.js';
|
|
|
9
9
|
import { SessionManager } from './session/session-manager.js';
|
|
10
10
|
import { NotebookLibrary } from './library/notebook-library.js';
|
|
11
11
|
import { ToolHandlers } from './tools/index.js';
|
|
12
|
+
import { AutoDiscovery } from './auto-discovery/auto-discovery.js';
|
|
12
13
|
import { log } from './utils/logger.js';
|
|
13
14
|
const app = express();
|
|
14
15
|
app.use(express.json());
|
|
@@ -139,6 +140,73 @@ app.delete('/notebooks/:id', async (req, res) => {
|
|
|
139
140
|
});
|
|
140
141
|
}
|
|
141
142
|
});
|
|
143
|
+
// Auto-discover notebook metadata
|
|
144
|
+
app.post('/notebooks/auto-discover', async (req, res) => {
|
|
145
|
+
try {
|
|
146
|
+
const { url } = req.body;
|
|
147
|
+
// Validate URL is provided
|
|
148
|
+
if (!url) {
|
|
149
|
+
return res.status(400).json({
|
|
150
|
+
success: false,
|
|
151
|
+
error: 'Missing required field: url'
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
// Validate it's a NotebookLM URL
|
|
155
|
+
if (!url.includes('notebooklm.google.com')) {
|
|
156
|
+
return res.status(400).json({
|
|
157
|
+
success: false,
|
|
158
|
+
error: 'Invalid URL: must be a NotebookLM URL (notebooklm.google.com)'
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
// Create AutoDiscovery instance and discover metadata
|
|
162
|
+
const autoDiscovery = new AutoDiscovery(sessionManager);
|
|
163
|
+
let metadata;
|
|
164
|
+
try {
|
|
165
|
+
metadata = await autoDiscovery.discoverMetadata(url);
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
return res.status(500).json({
|
|
169
|
+
success: false,
|
|
170
|
+
error: `Failed to discover metadata: ${error instanceof Error ? error.message : String(error)}`
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// Transform metadata to NotebookLibrary format
|
|
174
|
+
// - tags → topics (rename field)
|
|
175
|
+
// - Add default content_types
|
|
176
|
+
// - Add default use_cases based on first few tags
|
|
177
|
+
const notebookInput = {
|
|
178
|
+
url,
|
|
179
|
+
name: metadata.name,
|
|
180
|
+
description: metadata.description,
|
|
181
|
+
topics: metadata.tags, // tags → topics
|
|
182
|
+
content_types: ['documentation'],
|
|
183
|
+
use_cases: metadata.tags.slice(0, 3), // Use first 3 tags as use cases
|
|
184
|
+
auto_generated: true
|
|
185
|
+
};
|
|
186
|
+
// Add notebook to library
|
|
187
|
+
let notebook;
|
|
188
|
+
try {
|
|
189
|
+
notebook = await library.addNotebook(notebookInput);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
return res.status(500).json({
|
|
193
|
+
success: false,
|
|
194
|
+
error: `Failed to add notebook to library: ${error instanceof Error ? error.message : String(error)}`
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
// Return success with created notebook
|
|
198
|
+
res.json({
|
|
199
|
+
success: true,
|
|
200
|
+
notebook
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
res.status(500).json({
|
|
205
|
+
success: false,
|
|
206
|
+
error: error instanceof Error ? error.message : String(error)
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
});
|
|
142
210
|
// Activate notebook (set as active)
|
|
143
211
|
app.put('/notebooks/:id/activate', async (req, res) => {
|
|
144
212
|
try {
|
|
@@ -182,7 +250,7 @@ app.delete('/sessions/:id', async (req, res) => {
|
|
|
182
250
|
const PORT = Number(process.env.HTTP_PORT) || 3000;
|
|
183
251
|
const HOST = process.env.HTTP_HOST || '0.0.0.0';
|
|
184
252
|
app.listen(PORT, HOST, () => {
|
|
185
|
-
log.success(`🌐 NotebookLM MCP HTTP Server v1.
|
|
253
|
+
log.success(`🌐 NotebookLM MCP HTTP Server v1.3.0`);
|
|
186
254
|
log.success(` Listening on ${HOST}:${PORT}`);
|
|
187
255
|
log.info('');
|
|
188
256
|
log.info('📊 Quick Links:');
|
package/dist/http-wrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-wrapper.js","sourceRoot":"","sources":["../src/http-wrapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-wrapper.js","sourceRoot":"","sources":["../src/http-wrapper.ts"],"names":[],"mappings":"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"}
|