@pan-sec/notebooklm-mcp 1.8.0 → 1.10.0

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.
@@ -124,12 +124,240 @@ Use this when you started deep_research with wait_for_completion=false.
124
124
  required: ["interaction_id"],
125
125
  },
126
126
  };
127
+ // =============================================================================
128
+ // Document Tools (Files API) - v1.9.0
129
+ // =============================================================================
130
+ /**
131
+ * Upload Document tool - upload a document to Gemini for querying
132
+ */
133
+ const uploadDocumentTool = {
134
+ name: "upload_document",
135
+ description: `Upload a document (PDF, text, etc.) to Gemini for querying.
136
+
137
+ ## What This Does
138
+ - Uploads a local file to Gemini's Files API
139
+ - File is retained for 48 hours
140
+ - Returns a file ID for use with query_document
141
+
142
+ ## Auto-Chunking for Large PDFs (v1.10.0)
143
+ - PDFs over 50MB or 1000 pages are automatically split into chunks
144
+ - Each chunk is uploaded separately and tracked
145
+ - Use query_chunked_document or pass all chunk IDs to query_document
146
+ - Returns wasChunked=true and allFileNames array when chunked
147
+
148
+ ## Supported File Types
149
+ - PDF (any size - auto-chunked if needed)
150
+ - TXT, MD, HTML, CSV, JSON, XML
151
+ - DOCX, DOC
152
+ - Images (PNG, JPG, GIF, WebP)
153
+ - Audio (MP3, WAV)
154
+ - Video (MP4)
155
+
156
+ ## When to Use
157
+ - You have a local document to analyze
158
+ - You want fast, API-based document queries (no browser needed)
159
+ - For temporary analysis (48h retention)
160
+
161
+ ## For Permanent Storage
162
+ Use create_notebook instead for permanent document storage with NotebookLM.
163
+
164
+ ## Requirements
165
+ - GEMINI_API_KEY environment variable must be set`,
166
+ inputSchema: {
167
+ type: "object",
168
+ properties: {
169
+ file_path: {
170
+ type: "string",
171
+ description: "Absolute path to the file to upload",
172
+ },
173
+ display_name: {
174
+ type: "string",
175
+ description: "Optional friendly name for the file",
176
+ },
177
+ },
178
+ required: ["file_path"],
179
+ },
180
+ };
181
+ /**
182
+ * Query Document tool - ask questions about an uploaded document
183
+ */
184
+ const queryDocumentTool = {
185
+ name: "query_document",
186
+ description: `Ask questions about an uploaded document.
187
+
188
+ ## What This Does
189
+ - Queries a document previously uploaded with upload_document
190
+ - Uses Gemini's document understanding (text, images, charts, tables)
191
+ - Returns answers grounded in the document content
192
+
193
+ ## Features
194
+ - Full document understanding (not just text extraction)
195
+ - Can analyze charts, diagrams, and tables in PDFs
196
+ - Multi-document queries (pass additional file IDs)
197
+ - Fast API-based (no browser automation)
198
+
199
+ ## When to Use
200
+ - Quick document analysis without browser
201
+ - Comparing multiple documents
202
+ - Extracting specific information
203
+
204
+ ## Requirements
205
+ - GEMINI_API_KEY environment variable must be set
206
+ - Document must be uploaded first with upload_document`,
207
+ inputSchema: {
208
+ type: "object",
209
+ properties: {
210
+ file_name: {
211
+ type: "string",
212
+ description: "File name/ID returned from upload_document",
213
+ },
214
+ query: {
215
+ type: "string",
216
+ description: "Question to ask about the document",
217
+ },
218
+ model: {
219
+ type: "string",
220
+ enum: ["gemini-2.5-flash", "gemini-2.5-pro", "gemini-3-flash-preview"],
221
+ default: "gemini-2.5-flash",
222
+ description: "Model to use (flash is faster, pro is more capable)",
223
+ },
224
+ additional_files: {
225
+ type: "array",
226
+ items: { type: "string" },
227
+ description: "Additional file IDs to include in the query (for multi-document analysis)",
228
+ },
229
+ },
230
+ required: ["file_name", "query"],
231
+ },
232
+ };
233
+ /**
234
+ * List Documents tool - list all uploaded documents
235
+ */
236
+ const listDocumentsTool = {
237
+ name: "list_documents",
238
+ description: `List all documents uploaded to Gemini.
239
+
240
+ ## What This Does
241
+ - Shows all files currently stored in Gemini Files API
242
+ - Files expire 48 hours after upload
243
+ - Returns file names, sizes, and expiration times
244
+
245
+ ## Use Cases
246
+ - Check what documents are available for querying
247
+ - Find file IDs for query_document
248
+ - Monitor storage usage
249
+
250
+ ## Requirements
251
+ - GEMINI_API_KEY environment variable must be set`,
252
+ inputSchema: {
253
+ type: "object",
254
+ properties: {
255
+ page_size: {
256
+ type: "number",
257
+ default: 100,
258
+ description: "Maximum number of files to return",
259
+ },
260
+ },
261
+ },
262
+ };
263
+ /**
264
+ * Delete Document tool - delete an uploaded document
265
+ */
266
+ const deleteDocumentTool = {
267
+ name: "delete_document",
268
+ description: `Delete an uploaded document from Gemini.
269
+
270
+ ## What This Does
271
+ - Removes a file from Gemini Files API
272
+ - File will no longer be available for queries
273
+ - Frees up storage space
274
+
275
+ ## Notes
276
+ - Files auto-delete after 48 hours anyway
277
+ - Use this to immediately remove sensitive documents
278
+
279
+ ## Requirements
280
+ - GEMINI_API_KEY environment variable must be set`,
281
+ inputSchema: {
282
+ type: "object",
283
+ properties: {
284
+ file_name: {
285
+ type: "string",
286
+ description: "File name/ID to delete (from upload_document or list_documents)",
287
+ },
288
+ },
289
+ required: ["file_name"],
290
+ },
291
+ };
292
+ /**
293
+ * Query Chunked Document tool - query a large document that was split into chunks
294
+ */
295
+ const queryChunkedDocumentTool = {
296
+ name: "query_chunked_document",
297
+ description: `Query a large document that was automatically chunked during upload.
298
+
299
+ ## What This Does
300
+ - Queries each chunk of a large document
301
+ - Aggregates results into a single coherent answer
302
+ - Handles documents of any size (1000+ pages)
303
+
304
+ ## When to Use
305
+ - After upload_document returns wasChunked=true
306
+ - When you have multiple chunk file IDs to query together
307
+ - For comprehensive analysis of large PDFs
308
+
309
+ ## How It Works
310
+ 1. Queries each chunk with your question
311
+ 2. Collects answers from all chunks
312
+ 3. Uses Gemini to synthesize a unified response
313
+ 4. Returns aggregated answer with all sources
314
+
315
+ ## Example
316
+ If upload_document returned:
317
+ { wasChunked: true, allFileNames: ["files/a", "files/b", "files/c"] }
318
+
319
+ Call this tool with:
320
+ { file_names: ["files/a", "files/b", "files/c"], query: "What are the main findings?" }
321
+
322
+ ## Requirements
323
+ - GEMINI_API_KEY environment variable must be set
324
+ - Document chunks must be uploaded first`,
325
+ inputSchema: {
326
+ type: "object",
327
+ properties: {
328
+ file_names: {
329
+ type: "array",
330
+ items: { type: "string" },
331
+ description: "Array of chunk file IDs (from upload_document's allFileNames)",
332
+ },
333
+ query: {
334
+ type: "string",
335
+ description: "Question to ask about the document",
336
+ },
337
+ model: {
338
+ type: "string",
339
+ enum: ["gemini-2.5-flash", "gemini-2.5-pro", "gemini-3-flash-preview"],
340
+ default: "gemini-2.5-flash",
341
+ description: "Model to use for querying and aggregation",
342
+ },
343
+ },
344
+ required: ["file_names", "query"],
345
+ },
346
+ };
127
347
  /**
128
348
  * All Gemini tools
129
349
  */
130
350
  export const geminiTools = [
351
+ // Research tools
131
352
  deepResearchTool,
132
353
  geminiQueryTool,
133
354
  getResearchStatusTool,
355
+ // Document tools (v1.9.0)
356
+ uploadDocumentTool,
357
+ queryDocumentTool,
358
+ listDocumentsTool,
359
+ deleteDocumentTool,
360
+ // Chunked document tools (v1.10.0)
361
+ queryChunkedDocumentTool,
134
362
  ];
135
363
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/tools/definitions/gemini.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,gBAAgB,GAAS;IAC7B,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE;;;;;;;;;;;;;;;0DAe2C;IACxD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,mBAAmB,EAAE;gBACnB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,qFAAqF;aACnG;YACD,gBAAgB,EAAE;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,GAAG;gBACZ,WAAW,EAAE,0DAA0D;aACxE;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,eAAe,GAAS;IAC5B,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE;;;;;;;;;;;;;;4CAc6B;IAC1C,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,wBAAwB;aACtC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,wBAAwB,CAAC;gBACtE,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,qDAAqD;aACnE;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,aAAa,CAAC;iBACzD;gBACD,WAAW,EAAE,wCAAwC;aACtD;YACD,IAAI,EAAE;gBACJ,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACzB,WAAW,EAAE,qDAAqD;aACnE;YACD,uBAAuB,EAAE;gBACvB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mDAAmD;aACjE;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC;KACpB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,qBAAqB,GAAS;IAClC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE;;;;;;;mCAOoB;IACjC,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,cAAc,EAAE;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;aAC9D;SACF;QACD,QAAQ,EAAE,CAAC,gBAAgB,CAAC;KAC7B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC,gBAAgB;IAChB,eAAe;IACf,qBAAqB;CACtB,CAAC"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../../src/tools/definitions/gemini.ts"],"names":[],"mappings":"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"}
@@ -462,6 +462,52 @@ export declare class ToolHandlers {
462
462
  handleGetResearchStatus(args: {
463
463
  interaction_id: string;
464
464
  }): Promise<ToolResult<GeminiInteraction>>;
465
+ /**
466
+ * Upload a document to Gemini Files API
467
+ */
468
+ handleUploadDocument(args: {
469
+ file_path: string;
470
+ display_name?: string;
471
+ }): Promise<ToolResult<import("../gemini/types.js").UploadDocumentResult>>;
472
+ /**
473
+ * Query an uploaded document
474
+ */
475
+ handleQueryDocument(args: {
476
+ file_name: string;
477
+ query: string;
478
+ model?: string;
479
+ additional_files?: string[];
480
+ }): Promise<ToolResult<import("../gemini/types.js").QueryDocumentResult>>;
481
+ /**
482
+ * List all uploaded documents
483
+ */
484
+ handleListDocuments(args: {
485
+ page_size?: number;
486
+ }): Promise<ToolResult<import("../gemini/types.js").ListDocumentsResult>>;
487
+ /**
488
+ * Delete an uploaded document
489
+ */
490
+ handleDeleteDocument(args: {
491
+ file_name: string;
492
+ }): Promise<ToolResult<{
493
+ deleted: boolean;
494
+ fileName: string;
495
+ }>>;
496
+ /**
497
+ * Query a chunked document (v1.10.0)
498
+ * Queries multiple chunks and aggregates results
499
+ */
500
+ handleQueryChunkedDocument(args: {
501
+ file_names: string[];
502
+ query: string;
503
+ model?: string;
504
+ }): Promise<ToolResult<{
505
+ answer: string;
506
+ model: string;
507
+ tokensUsed?: number;
508
+ chunksQueried: number;
509
+ filesUsed: string[];
510
+ }>>;
465
511
  /**
466
512
  * Cleanup all resources (called on server shutdown)
467
513
  */
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
@@ -1897,6 +1897,195 @@ export class ToolHandlers {
1897
1897
  return { success: false, error: errorMessage };
1898
1898
  }
1899
1899
  }
1900
+ // ==================== DOCUMENT TOOLS (v1.9.0) ====================
1901
+ /**
1902
+ * Upload a document to Gemini Files API
1903
+ */
1904
+ async handleUploadDocument(args) {
1905
+ const startTime = Date.now();
1906
+ log.info(`🔧 [TOOL] upload_document called`);
1907
+ log.info(` File: ${args.file_path}`);
1908
+ // Check if Gemini is available
1909
+ if (!this.geminiClient.isAvailable()) {
1910
+ log.error(`❌ [TOOL] upload_document failed: Gemini API key not configured`);
1911
+ return {
1912
+ success: false,
1913
+ error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
1914
+ };
1915
+ }
1916
+ try {
1917
+ // Validate file path
1918
+ if (!args.file_path || args.file_path.trim().length === 0) {
1919
+ throw new Error("File path cannot be empty");
1920
+ }
1921
+ const result = await this.geminiClient.uploadDocument({
1922
+ filePath: args.file_path,
1923
+ displayName: args.display_name,
1924
+ });
1925
+ const durationMs = Date.now() - startTime;
1926
+ await audit.tool("upload_document", { file: sanitizeForLogging(args.file_path) }, true, durationMs);
1927
+ log.success(`✅ [TOOL] upload_document completed in ${durationMs}ms`);
1928
+ return {
1929
+ success: true,
1930
+ data: result,
1931
+ };
1932
+ }
1933
+ catch (error) {
1934
+ const errorMessage = error instanceof Error ? error.message : String(error);
1935
+ const durationMs = Date.now() - startTime;
1936
+ await audit.tool("upload_document", { file: sanitizeForLogging(args.file_path) }, false, durationMs, errorMessage);
1937
+ log.error(`❌ [TOOL] upload_document failed: ${errorMessage}`);
1938
+ return { success: false, error: errorMessage };
1939
+ }
1940
+ }
1941
+ /**
1942
+ * Query an uploaded document
1943
+ */
1944
+ async handleQueryDocument(args) {
1945
+ const startTime = Date.now();
1946
+ log.info(`🔧 [TOOL] query_document called`);
1947
+ log.info(` File: ${args.file_name}`);
1948
+ log.info(` Query: ${args.query.substring(0, 50)}...`);
1949
+ // Check if Gemini is available
1950
+ if (!this.geminiClient.isAvailable()) {
1951
+ log.error(`❌ [TOOL] query_document failed: Gemini API key not configured`);
1952
+ return {
1953
+ success: false,
1954
+ error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
1955
+ };
1956
+ }
1957
+ try {
1958
+ // Validate inputs
1959
+ if (!args.file_name || args.file_name.trim().length === 0) {
1960
+ throw new Error("File name cannot be empty");
1961
+ }
1962
+ if (!args.query || args.query.trim().length === 0) {
1963
+ throw new Error("Query cannot be empty");
1964
+ }
1965
+ const result = await this.geminiClient.queryDocument({
1966
+ fileName: args.file_name,
1967
+ query: args.query,
1968
+ model: args.model,
1969
+ additionalFiles: args.additional_files,
1970
+ });
1971
+ const durationMs = Date.now() - startTime;
1972
+ await audit.tool("query_document", { file: args.file_name, query: sanitizeForLogging(args.query) }, true, durationMs);
1973
+ log.success(`✅ [TOOL] query_document completed in ${durationMs}ms`);
1974
+ return {
1975
+ success: true,
1976
+ data: result,
1977
+ };
1978
+ }
1979
+ catch (error) {
1980
+ const errorMessage = error instanceof Error ? error.message : String(error);
1981
+ const durationMs = Date.now() - startTime;
1982
+ await audit.tool("query_document", { file: args.file_name }, false, durationMs, errorMessage);
1983
+ log.error(`❌ [TOOL] query_document failed: ${errorMessage}`);
1984
+ return { success: false, error: errorMessage };
1985
+ }
1986
+ }
1987
+ /**
1988
+ * List all uploaded documents
1989
+ */
1990
+ async handleListDocuments(args) {
1991
+ log.info(`🔧 [TOOL] list_documents called`);
1992
+ // Check if Gemini is available
1993
+ if (!this.geminiClient.isAvailable()) {
1994
+ log.error(`❌ [TOOL] list_documents failed: Gemini API key not configured`);
1995
+ return {
1996
+ success: false,
1997
+ error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
1998
+ };
1999
+ }
2000
+ try {
2001
+ const result = await this.geminiClient.listFiles(args.page_size || 100);
2002
+ log.success(`✅ [TOOL] list_documents: ${result.totalCount} files`);
2003
+ return {
2004
+ success: true,
2005
+ data: result,
2006
+ };
2007
+ }
2008
+ catch (error) {
2009
+ const errorMessage = error instanceof Error ? error.message : String(error);
2010
+ log.error(`❌ [TOOL] list_documents failed: ${errorMessage}`);
2011
+ return { success: false, error: errorMessage };
2012
+ }
2013
+ }
2014
+ /**
2015
+ * Delete an uploaded document
2016
+ */
2017
+ async handleDeleteDocument(args) {
2018
+ log.info(`🔧 [TOOL] delete_document called`);
2019
+ log.info(` File: ${args.file_name}`);
2020
+ // Check if Gemini is available
2021
+ if (!this.geminiClient.isAvailable()) {
2022
+ log.error(`❌ [TOOL] delete_document failed: Gemini API key not configured`);
2023
+ return {
2024
+ success: false,
2025
+ error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
2026
+ };
2027
+ }
2028
+ try {
2029
+ // Validate file name
2030
+ if (!args.file_name || args.file_name.trim().length === 0) {
2031
+ throw new Error("File name cannot be empty");
2032
+ }
2033
+ await this.geminiClient.deleteFile(args.file_name);
2034
+ log.success(`✅ [TOOL] delete_document: ${args.file_name} deleted`);
2035
+ return {
2036
+ success: true,
2037
+ data: { deleted: true, fileName: args.file_name },
2038
+ };
2039
+ }
2040
+ catch (error) {
2041
+ const errorMessage = error instanceof Error ? error.message : String(error);
2042
+ log.error(`❌ [TOOL] delete_document failed: ${errorMessage}`);
2043
+ return { success: false, error: errorMessage };
2044
+ }
2045
+ }
2046
+ /**
2047
+ * Query a chunked document (v1.10.0)
2048
+ * Queries multiple chunks and aggregates results
2049
+ */
2050
+ async handleQueryChunkedDocument(args) {
2051
+ log.info(`🔧 [TOOL] query_chunked_document called`);
2052
+ log.info(` Chunks: ${args.file_names.length}`);
2053
+ log.info(` Query: ${args.query.substring(0, 50)}...`);
2054
+ // Check if Gemini is available
2055
+ if (!this.geminiClient.isAvailable()) {
2056
+ log.error(`❌ [TOOL] query_chunked_document failed: Gemini API key not configured`);
2057
+ return {
2058
+ success: false,
2059
+ error: "Gemini API key not configured. Set GEMINI_API_KEY environment variable.",
2060
+ };
2061
+ }
2062
+ try {
2063
+ // Validate inputs
2064
+ if (!args.file_names || args.file_names.length === 0) {
2065
+ throw new Error("At least one file name is required");
2066
+ }
2067
+ if (!args.query || args.query.trim().length === 0) {
2068
+ throw new Error("Query cannot be empty");
2069
+ }
2070
+ const result = await this.geminiClient.queryChunkedDocument(args.file_names, args.query, { model: args.model });
2071
+ log.success(`✅ [TOOL] query_chunked_document completed`);
2072
+ return {
2073
+ success: true,
2074
+ data: {
2075
+ answer: result.answer,
2076
+ model: result.model,
2077
+ tokensUsed: result.tokensUsed,
2078
+ chunksQueried: args.file_names.length,
2079
+ filesUsed: result.filesUsed,
2080
+ },
2081
+ };
2082
+ }
2083
+ catch (error) {
2084
+ const errorMessage = error instanceof Error ? error.message : String(error);
2085
+ log.error(`❌ [TOOL] query_chunked_document failed: ${errorMessage}`);
2086
+ return { success: false, error: errorMessage };
2087
+ }
2088
+ }
1900
2089
  // ==================== CLEANUP ====================
1901
2090
  /**
1902
2091
  * Cleanup all resources (called on server shutdown)