@pan-sec/notebooklm-mcp 2026.1.5 → 2026.1.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.
@@ -0,0 +1,480 @@
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
+ /**
9
+ * Tool metadata mapped to tool names
10
+ */
11
+ export const toolMetadata = {
12
+ // ==========================================================================
13
+ // Core Research Tool
14
+ // ==========================================================================
15
+ ask_question: {
16
+ title: "Ask NotebookLM",
17
+ annotations: {
18
+ title: "Research Question",
19
+ readOnlyHint: true, // Doesn't modify data, just queries
20
+ destructiveHint: false,
21
+ idempotentHint: false, // Same question may get different answers
22
+ openWorldHint: true, // Interacts with external NotebookLM
23
+ },
24
+ },
25
+ // ==========================================================================
26
+ // Notebook Management
27
+ // ==========================================================================
28
+ add_notebook: {
29
+ title: "Add Notebook",
30
+ annotations: {
31
+ title: "Add Notebook to Library",
32
+ readOnlyHint: false,
33
+ destructiveHint: false,
34
+ idempotentHint: true, // Adding same notebook twice is safe
35
+ openWorldHint: false, // Local library operation
36
+ },
37
+ },
38
+ list_notebooks: {
39
+ title: "List Notebooks",
40
+ annotations: {
41
+ title: "List Library Notebooks",
42
+ readOnlyHint: true,
43
+ destructiveHint: false,
44
+ idempotentHint: true,
45
+ openWorldHint: false,
46
+ },
47
+ },
48
+ get_notebook: {
49
+ title: "Get Notebook",
50
+ annotations: {
51
+ title: "Get Notebook Details",
52
+ readOnlyHint: true,
53
+ destructiveHint: false,
54
+ idempotentHint: true,
55
+ openWorldHint: false,
56
+ },
57
+ },
58
+ select_notebook: {
59
+ title: "Select Notebook",
60
+ annotations: {
61
+ title: "Set Active Notebook",
62
+ readOnlyHint: false,
63
+ destructiveHint: false,
64
+ idempotentHint: true,
65
+ openWorldHint: false,
66
+ },
67
+ },
68
+ update_notebook: {
69
+ title: "Update Notebook",
70
+ annotations: {
71
+ title: "Update Notebook Metadata",
72
+ readOnlyHint: false,
73
+ destructiveHint: false,
74
+ idempotentHint: true,
75
+ openWorldHint: false,
76
+ },
77
+ },
78
+ remove_notebook: {
79
+ title: "Remove Notebook",
80
+ annotations: {
81
+ title: "Remove from Library",
82
+ readOnlyHint: false,
83
+ destructiveHint: true, // Removes from library
84
+ idempotentHint: true,
85
+ openWorldHint: false,
86
+ },
87
+ },
88
+ search_notebooks: {
89
+ title: "Search Notebooks",
90
+ annotations: {
91
+ title: "Search Library",
92
+ readOnlyHint: true,
93
+ destructiveHint: false,
94
+ idempotentHint: true,
95
+ openWorldHint: false,
96
+ },
97
+ },
98
+ get_library_stats: {
99
+ title: "Library Stats",
100
+ annotations: {
101
+ title: "Get Library Statistics",
102
+ readOnlyHint: true,
103
+ destructiveHint: false,
104
+ idempotentHint: true,
105
+ openWorldHint: false,
106
+ },
107
+ },
108
+ export_library: {
109
+ title: "Export Library",
110
+ annotations: {
111
+ title: "Export Library Backup",
112
+ readOnlyHint: true, // Just exports, doesn't modify
113
+ destructiveHint: false,
114
+ idempotentHint: true,
115
+ openWorldHint: false,
116
+ },
117
+ },
118
+ create_notebook: {
119
+ title: "Create Notebook",
120
+ annotations: {
121
+ title: "Create NotebookLM Notebook",
122
+ readOnlyHint: false,
123
+ destructiveHint: false,
124
+ idempotentHint: false, // Creates new notebook each time
125
+ openWorldHint: true, // Creates in NotebookLM
126
+ },
127
+ },
128
+ sync_library: {
129
+ title: "Sync Library",
130
+ annotations: {
131
+ title: "Sync with NotebookLM",
132
+ readOnlyHint: false, // Can modify library
133
+ destructiveHint: false,
134
+ idempotentHint: true,
135
+ openWorldHint: true, // Accesses NotebookLM
136
+ },
137
+ },
138
+ batch_create_notebooks: {
139
+ title: "Batch Create",
140
+ annotations: {
141
+ title: "Batch Create Notebooks",
142
+ readOnlyHint: false,
143
+ destructiveHint: false,
144
+ idempotentHint: false,
145
+ openWorldHint: true,
146
+ },
147
+ },
148
+ // ==========================================================================
149
+ // Source Management
150
+ // ==========================================================================
151
+ list_sources: {
152
+ title: "List Sources",
153
+ annotations: {
154
+ title: "List Notebook Sources",
155
+ readOnlyHint: true,
156
+ destructiveHint: false,
157
+ idempotentHint: true,
158
+ openWorldHint: true, // Reads from NotebookLM
159
+ },
160
+ },
161
+ add_source: {
162
+ title: "Add Source",
163
+ annotations: {
164
+ title: "Add Source to Notebook",
165
+ readOnlyHint: false,
166
+ destructiveHint: false,
167
+ idempotentHint: true,
168
+ openWorldHint: true,
169
+ },
170
+ },
171
+ remove_source: {
172
+ title: "Remove Source",
173
+ annotations: {
174
+ title: "Remove Source from Notebook",
175
+ readOnlyHint: false,
176
+ destructiveHint: true,
177
+ idempotentHint: true,
178
+ openWorldHint: true,
179
+ },
180
+ },
181
+ // ==========================================================================
182
+ // Audio
183
+ // ==========================================================================
184
+ generate_audio_overview: {
185
+ title: "Generate Audio",
186
+ annotations: {
187
+ title: "Generate Audio Overview",
188
+ readOnlyHint: false, // Creates audio
189
+ destructiveHint: false,
190
+ idempotentHint: false, // Regenerates each time
191
+ openWorldHint: true,
192
+ },
193
+ },
194
+ get_audio_status: {
195
+ title: "Audio Status",
196
+ annotations: {
197
+ title: "Check Audio Generation Status",
198
+ readOnlyHint: true,
199
+ destructiveHint: false,
200
+ idempotentHint: true,
201
+ openWorldHint: true,
202
+ },
203
+ },
204
+ download_audio: {
205
+ title: "Download Audio",
206
+ annotations: {
207
+ title: "Download Audio File",
208
+ readOnlyHint: true, // Just downloads, doesn't modify source
209
+ destructiveHint: false,
210
+ idempotentHint: true,
211
+ openWorldHint: true,
212
+ },
213
+ },
214
+ // ==========================================================================
215
+ // Session Management
216
+ // ==========================================================================
217
+ list_sessions: {
218
+ title: "List Sessions",
219
+ annotations: {
220
+ title: "List Active Sessions",
221
+ readOnlyHint: true,
222
+ destructiveHint: false,
223
+ idempotentHint: true,
224
+ openWorldHint: false,
225
+ },
226
+ },
227
+ close_session: {
228
+ title: "Close Session",
229
+ annotations: {
230
+ title: "Close Browser Session",
231
+ readOnlyHint: false,
232
+ destructiveHint: true, // Closes session
233
+ idempotentHint: true,
234
+ openWorldHint: false,
235
+ },
236
+ },
237
+ reset_session: {
238
+ title: "Reset Session",
239
+ annotations: {
240
+ title: "Reset Session History",
241
+ readOnlyHint: false,
242
+ destructiveHint: true, // Clears history
243
+ idempotentHint: true,
244
+ openWorldHint: false,
245
+ },
246
+ },
247
+ // ==========================================================================
248
+ // System Tools
249
+ // ==========================================================================
250
+ get_health: {
251
+ title: "Health Check",
252
+ annotations: {
253
+ title: "Server Health Status",
254
+ readOnlyHint: true,
255
+ destructiveHint: false,
256
+ idempotentHint: true,
257
+ openWorldHint: false,
258
+ },
259
+ },
260
+ setup_auth: {
261
+ title: "Setup Auth",
262
+ annotations: {
263
+ title: "Setup Google Authentication",
264
+ readOnlyHint: false,
265
+ destructiveHint: false,
266
+ idempotentHint: false, // Opens browser each time
267
+ openWorldHint: true, // Interacts with Google
268
+ },
269
+ },
270
+ re_auth: {
271
+ title: "Re-authenticate",
272
+ annotations: {
273
+ title: "Re-authenticate with Google",
274
+ readOnlyHint: false,
275
+ destructiveHint: true, // Deletes existing auth
276
+ idempotentHint: false,
277
+ openWorldHint: true,
278
+ },
279
+ },
280
+ cleanup_data: {
281
+ title: "Cleanup Data",
282
+ annotations: {
283
+ title: "Clean MCP Data Files",
284
+ readOnlyHint: false,
285
+ destructiveHint: true, // Deletes files
286
+ idempotentHint: true,
287
+ openWorldHint: false,
288
+ },
289
+ },
290
+ get_quota: {
291
+ title: "Get Quota",
292
+ annotations: {
293
+ title: "Check Quota Status",
294
+ readOnlyHint: true,
295
+ destructiveHint: false,
296
+ idempotentHint: true,
297
+ openWorldHint: false, // Local unless sync=true
298
+ },
299
+ },
300
+ set_quota_tier: {
301
+ title: "Set Tier",
302
+ annotations: {
303
+ title: "Set License Tier",
304
+ readOnlyHint: false,
305
+ destructiveHint: false,
306
+ idempotentHint: true,
307
+ openWorldHint: false,
308
+ },
309
+ },
310
+ get_project_info: {
311
+ title: "Project Info",
312
+ annotations: {
313
+ title: "Get Project Context",
314
+ readOnlyHint: true,
315
+ destructiveHint: false,
316
+ idempotentHint: true,
317
+ openWorldHint: false,
318
+ },
319
+ },
320
+ // ==========================================================================
321
+ // Webhooks
322
+ // ==========================================================================
323
+ configure_webhook: {
324
+ title: "Configure Webhook",
325
+ annotations: {
326
+ title: "Configure Webhook Endpoint",
327
+ readOnlyHint: false,
328
+ destructiveHint: false,
329
+ idempotentHint: true,
330
+ openWorldHint: false,
331
+ },
332
+ },
333
+ list_webhooks: {
334
+ title: "List Webhooks",
335
+ annotations: {
336
+ title: "List Configured Webhooks",
337
+ readOnlyHint: true,
338
+ destructiveHint: false,
339
+ idempotentHint: true,
340
+ openWorldHint: false,
341
+ },
342
+ },
343
+ test_webhook: {
344
+ title: "Test Webhook",
345
+ annotations: {
346
+ title: "Send Test Event",
347
+ readOnlyHint: true, // Doesn't modify webhook config
348
+ destructiveHint: false,
349
+ idempotentHint: true,
350
+ openWorldHint: true, // Sends HTTP request
351
+ },
352
+ },
353
+ remove_webhook: {
354
+ title: "Remove Webhook",
355
+ annotations: {
356
+ title: "Remove Webhook Configuration",
357
+ readOnlyHint: false,
358
+ destructiveHint: true,
359
+ idempotentHint: true,
360
+ openWorldHint: false,
361
+ },
362
+ },
363
+ // ==========================================================================
364
+ // Gemini Tools
365
+ // ==========================================================================
366
+ deep_research: {
367
+ title: "Deep Research",
368
+ annotations: {
369
+ title: "Gemini Deep Research",
370
+ readOnlyHint: true,
371
+ destructiveHint: false,
372
+ idempotentHint: false, // Results may vary
373
+ openWorldHint: true, // Uses Gemini API
374
+ },
375
+ execution: {
376
+ // Deep research can take 1-5 minutes, ideal for task-based execution
377
+ taskSupport: "optional",
378
+ },
379
+ },
380
+ gemini_query: {
381
+ title: "Gemini Query",
382
+ annotations: {
383
+ title: "Quick Gemini Query",
384
+ readOnlyHint: true,
385
+ destructiveHint: false,
386
+ idempotentHint: false,
387
+ openWorldHint: true,
388
+ },
389
+ },
390
+ get_research_status: {
391
+ title: "Research Status",
392
+ annotations: {
393
+ title: "Check Research Progress",
394
+ readOnlyHint: true,
395
+ destructiveHint: false,
396
+ idempotentHint: true,
397
+ openWorldHint: true,
398
+ },
399
+ },
400
+ upload_document: {
401
+ title: "Upload Document",
402
+ annotations: {
403
+ title: "Upload to Gemini",
404
+ readOnlyHint: false, // Uploads file
405
+ destructiveHint: false,
406
+ idempotentHint: true, // Same file = same result
407
+ openWorldHint: true,
408
+ },
409
+ },
410
+ query_document: {
411
+ title: "Query Document",
412
+ annotations: {
413
+ title: "Ask About Document",
414
+ readOnlyHint: true,
415
+ destructiveHint: false,
416
+ idempotentHint: false,
417
+ openWorldHint: true,
418
+ },
419
+ },
420
+ list_documents: {
421
+ title: "List Documents",
422
+ annotations: {
423
+ title: "List Uploaded Documents",
424
+ readOnlyHint: true,
425
+ destructiveHint: false,
426
+ idempotentHint: true,
427
+ openWorldHint: true,
428
+ },
429
+ },
430
+ delete_document: {
431
+ title: "Delete Document",
432
+ annotations: {
433
+ title: "Delete from Gemini",
434
+ readOnlyHint: false,
435
+ destructiveHint: true,
436
+ idempotentHint: true,
437
+ openWorldHint: true,
438
+ },
439
+ },
440
+ query_chunked_document: {
441
+ title: "Query Chunked Doc",
442
+ annotations: {
443
+ title: "Query Large Document",
444
+ readOnlyHint: true,
445
+ destructiveHint: false,
446
+ idempotentHint: false,
447
+ openWorldHint: true,
448
+ },
449
+ },
450
+ // ==========================================================================
451
+ // History
452
+ // ==========================================================================
453
+ get_query_history: {
454
+ title: "Query History",
455
+ annotations: {
456
+ title: "Get Query History",
457
+ readOnlyHint: true,
458
+ destructiveHint: false,
459
+ idempotentHint: true,
460
+ openWorldHint: false,
461
+ },
462
+ },
463
+ get_notebook_chat_history: {
464
+ title: "Chat History",
465
+ annotations: {
466
+ title: "Get Notebook Chat History",
467
+ readOnlyHint: true,
468
+ destructiveHint: false,
469
+ idempotentHint: true,
470
+ openWorldHint: true, // Reads from NotebookLM
471
+ },
472
+ },
473
+ };
474
+ /**
475
+ * Get metadata for a tool by name
476
+ */
477
+ export function getToolMetadata(toolName) {
478
+ return toolMetadata[toolName];
479
+ }
480
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../../src/tools/annotations.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  /**
2
2
  * MCP Tool Definitions
3
3
  *
4
- * Aggregates tool definitions from sub-modules.
4
+ * Aggregates tool definitions from sub-modules and applies
5
+ * enhanced metadata (icons, annotations, titles) for better UX.
6
+ *
7
+ * @see https://modelcontextprotocol.io/specification/draft/2025-03-26/server/tools
5
8
  */
6
9
  import { Tool } from "@modelcontextprotocol/sdk/types.js";
7
10
  import { NotebookLibrary } from "../library/notebook-library.js";
8
11
  /**
9
12
  * Build Tool Definitions with NotebookLibrary context
13
+ * Includes enhanced metadata (icons, annotations, titles) for better UX
10
14
  */
11
15
  export declare function buildToolDefinitions(library: NotebookLibrary): Tool[];
12
16
  //# sourceMappingURL=definitions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAYjE;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CAgBrE"}
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAkCjE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,EAAE,CAoBrE"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * MCP Tool Definitions
3
3
  *
4
- * Aggregates tool definitions from sub-modules.
4
+ * Aggregates tool definitions from sub-modules and applies
5
+ * enhanced metadata (icons, annotations, titles) for better UX.
6
+ *
7
+ * @see https://modelcontextprotocol.io/specification/draft/2025-03-26/server/tools
5
8
  */
6
9
  import { askQuestionTool, buildAskQuestionDescription, } from "./definitions/ask-question.js";
7
10
  import { notebookManagementTools } from "./definitions/notebook-management.js";
@@ -10,8 +13,29 @@ import { systemTools } from "./definitions/system.js";
10
13
  import { geminiTools } from "./definitions/gemini.js";
11
14
  import { queryHistoryTools } from "./definitions/query-history.js";
12
15
  import { chatHistoryTools } from "./definitions/chat-history.js";
16
+ import { getToolIcons } from "./icons.js";
17
+ import { getToolMetadata } from "./annotations.js";
18
+ /**
19
+ * Apply enhanced metadata (icons, annotations, title, execution) to a tool
20
+ */
21
+ function enhanceTool(tool) {
22
+ const icons = getToolIcons(tool.name);
23
+ const metadata = getToolMetadata(tool.name);
24
+ return {
25
+ ...tool,
26
+ // Add icons if available
27
+ ...(icons && { icons }),
28
+ // Add title if available (human-friendly name)
29
+ ...(metadata?.title && { title: metadata.title }),
30
+ // Add annotations if available (behavior hints)
31
+ ...(metadata?.annotations && { annotations: metadata.annotations }),
32
+ // Add execution hints if available (e.g., task support)
33
+ ...(metadata?.execution && { execution: metadata.execution }),
34
+ };
35
+ }
13
36
  /**
14
37
  * Build Tool Definitions with NotebookLibrary context
38
+ * Includes enhanced metadata (icons, annotations, titles) for better UX
15
39
  */
16
40
  export function buildToolDefinitions(library) {
17
41
  // Update the description for ask_question based on the library state
@@ -19,7 +43,8 @@ export function buildToolDefinitions(library) {
19
43
  ...askQuestionTool,
20
44
  description: buildAskQuestionDescription(library),
21
45
  };
22
- return [
46
+ // Aggregate all tools
47
+ const allTools = [
23
48
  dynamicAskQuestionTool,
24
49
  ...notebookManagementTools,
25
50
  ...sessionManagementTools,
@@ -28,5 +53,7 @@ export function buildToolDefinitions(library) {
28
53
  ...queryHistoryTools,
29
54
  ...chatHistoryTools,
30
55
  ];
56
+ // Apply enhanced metadata to all tools
57
+ return allTools.map(enhanceTool);
31
58
  }
32
59
  //# sourceMappingURL=definitions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EACL,eAAe,EACf,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,qEAAqE;IACrE,MAAM,sBAAsB,GAAG;QAC7B,GAAG,eAAe;QAClB,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC;KAClD,CAAC;IAEF,OAAO;QACL,sBAAsB;QACtB,GAAG,uBAAuB;QAC1B,GAAG,sBAAsB;QACzB,GAAG,WAAW;QACd,GAAG,WAAW;QACd,GAAG,iBAAiB;QACpB,GAAG,gBAAgB;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/tools/definitions.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EACL,eAAe,EACf,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD;;GAEG;AACH,SAAS,WAAW,CAAC,IAAU;IAC7B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5C,OAAO;QACL,GAAG,IAAI;QACP,yBAAyB;QACzB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,+CAA+C;QAC/C,GAAG,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjD,gDAAgD;QAChD,GAAG,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC;QACnE,wDAAwD;QACxD,GAAG,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC;KAC9D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAC3D,qEAAqE;IACrE,MAAM,sBAAsB,GAAG;QAC7B,GAAG,eAAe;QAClB,WAAW,EAAE,2BAA2B,CAAC,OAAO,CAAC;KAClD,CAAC;IAEF,sBAAsB;IACtB,MAAM,QAAQ,GAAW;QACvB,sBAAsB;QACtB,GAAG,uBAAuB;QAC1B,GAAG,sBAAsB;QACzB,GAAG,WAAW;QACd,GAAG,WAAW;QACd,GAAG,iBAAiB;QACpB,GAAG,gBAAgB;KACpB,CAAC;IAEF,uCAAuC;IACvC,OAAO,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Tool Icons for MCP UX Enhancement
3
+ *
4
+ * Icons are defined as SVG data URIs for cross-platform compatibility.
5
+ * Uses simple, recognizable icons that work in both light and dark themes.
6
+ *
7
+ * @see https://modelcontextprotocol.io/specification/draft/2025-03-26/server/tools#icons
8
+ */
9
+ import type { Icon } from "@modelcontextprotocol/sdk/types.js";
10
+ /**
11
+ * Tool icons mapped to tool names
12
+ */
13
+ export declare const toolIcons: Record<string, Icon[]>;
14
+ /**
15
+ * Get icons for a tool by name
16
+ */
17
+ export declare function getToolIcons(toolName: string): Icon[] | undefined;
18
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/tools/icons.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AA6F/D;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CA6D5C,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,SAAS,CAEjE"}