@opentabs-dev/opentabs-plugin-excel-online 0.0.74

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.
Files changed (129) hide show
  1. package/README.md +159 -0
  2. package/dist/adapter.iife.js +15273 -0
  3. package/dist/adapter.iife.js.map +7 -0
  4. package/dist/excel-api.d.ts +24 -0
  5. package/dist/excel-api.d.ts.map +1 -0
  6. package/dist/excel-api.js +130 -0
  7. package/dist/excel-api.js.map +1 -0
  8. package/dist/index.d.ts +14 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +80 -0
  11. package/dist/index.js.map +1 -0
  12. package/dist/tools/add-named-item.d.ts +14 -0
  13. package/dist/tools/add-named-item.d.ts.map +1 -0
  14. package/dist/tools/add-named-item.js +29 -0
  15. package/dist/tools/add-named-item.js.map +1 -0
  16. package/dist/tools/add-table-column.d.ts +13 -0
  17. package/dist/tools/add-table-column.d.ts.map +1 -0
  18. package/dist/tools/add-table-column.js +29 -0
  19. package/dist/tools/add-table-column.js.map +1 -0
  20. package/dist/tools/add-table-row.d.ts +12 -0
  21. package/dist/tools/add-table-row.d.ts.map +1 -0
  22. package/dist/tools/add-table-row.js +26 -0
  23. package/dist/tools/add-table-row.js.map +1 -0
  24. package/dist/tools/add-worksheet.d.ts +12 -0
  25. package/dist/tools/add-worksheet.d.ts.map +1 -0
  26. package/dist/tools/add-worksheet.js +24 -0
  27. package/dist/tools/add-worksheet.js.map +1 -0
  28. package/dist/tools/calculate-workbook.d.ts +11 -0
  29. package/dist/tools/calculate-workbook.d.ts.map +1 -0
  30. package/dist/tools/calculate-workbook.js +28 -0
  31. package/dist/tools/calculate-workbook.js.map +1 -0
  32. package/dist/tools/clear-range.d.ts +13 -0
  33. package/dist/tools/clear-range.d.ts.map +1 -0
  34. package/dist/tools/clear-range.js +24 -0
  35. package/dist/tools/clear-range.js.map +1 -0
  36. package/dist/tools/create-chart.d.ts +21 -0
  37. package/dist/tools/create-chart.d.ts.map +1 -0
  38. package/dist/tools/create-chart.js +36 -0
  39. package/dist/tools/create-chart.js.map +1 -0
  40. package/dist/tools/create-table.d.ts +14 -0
  41. package/dist/tools/create-table.d.ts.map +1 -0
  42. package/dist/tools/create-table.js +28 -0
  43. package/dist/tools/create-table.js.map +1 -0
  44. package/dist/tools/delete-chart.d.ts +8 -0
  45. package/dist/tools/delete-chart.d.ts.map +1 -0
  46. package/dist/tools/delete-chart.js +23 -0
  47. package/dist/tools/delete-chart.js.map +1 -0
  48. package/dist/tools/delete-range.d.ts +12 -0
  49. package/dist/tools/delete-range.d.ts.map +1 -0
  50. package/dist/tools/delete-range.js +24 -0
  51. package/dist/tools/delete-range.js.map +1 -0
  52. package/dist/tools/delete-table-row.d.ts +8 -0
  53. package/dist/tools/delete-table-row.d.ts.map +1 -0
  54. package/dist/tools/delete-table-row.js +25 -0
  55. package/dist/tools/delete-table-row.js.map +1 -0
  56. package/dist/tools/delete-table.d.ts +7 -0
  57. package/dist/tools/delete-table.d.ts.map +1 -0
  58. package/dist/tools/delete-table.js +22 -0
  59. package/dist/tools/delete-table.js.map +1 -0
  60. package/dist/tools/delete-worksheet.d.ts +7 -0
  61. package/dist/tools/delete-worksheet.d.ts.map +1 -0
  62. package/dist/tools/delete-worksheet.js +22 -0
  63. package/dist/tools/delete-worksheet.js.map +1 -0
  64. package/dist/tools/evaluate-formula.d.ts +9 -0
  65. package/dist/tools/evaluate-formula.d.ts.map +1 -0
  66. package/dist/tools/evaluate-formula.js +44 -0
  67. package/dist/tools/evaluate-formula.js.map +1 -0
  68. package/dist/tools/get-current-user.d.ts +9 -0
  69. package/dist/tools/get-current-user.d.ts.map +1 -0
  70. package/dist/tools/get-current-user.js +25 -0
  71. package/dist/tools/get-current-user.js.map +1 -0
  72. package/dist/tools/get-range.d.ts +16 -0
  73. package/dist/tools/get-range.d.ts.map +1 -0
  74. package/dist/tools/get-range.js +22 -0
  75. package/dist/tools/get-range.js.map +1 -0
  76. package/dist/tools/get-table-columns.d.ts +11 -0
  77. package/dist/tools/get-table-columns.d.ts.map +1 -0
  78. package/dist/tools/get-table-columns.js +21 -0
  79. package/dist/tools/get-table-columns.js.map +1 -0
  80. package/dist/tools/get-table-rows.d.ts +10 -0
  81. package/dist/tools/get-table-rows.d.ts.map +1 -0
  82. package/dist/tools/get-table-rows.js +21 -0
  83. package/dist/tools/get-table-rows.js.map +1 -0
  84. package/dist/tools/get-used-range.d.ts +15 -0
  85. package/dist/tools/get-used-range.d.ts.map +1 -0
  86. package/dist/tools/get-used-range.js +21 -0
  87. package/dist/tools/get-used-range.js.map +1 -0
  88. package/dist/tools/get-workbook-info.d.ts +9 -0
  89. package/dist/tools/get-workbook-info.d.ts.map +1 -0
  90. package/dist/tools/get-workbook-info.js +29 -0
  91. package/dist/tools/get-workbook-info.js.map +1 -0
  92. package/dist/tools/insert-range.d.ts +20 -0
  93. package/dist/tools/insert-range.d.ts.map +1 -0
  94. package/dist/tools/insert-range.js +23 -0
  95. package/dist/tools/insert-range.js.map +1 -0
  96. package/dist/tools/list-charts.d.ts +14 -0
  97. package/dist/tools/list-charts.d.ts.map +1 -0
  98. package/dist/tools/list-charts.js +21 -0
  99. package/dist/tools/list-charts.js.map +1 -0
  100. package/dist/tools/list-named-items.d.ts +10 -0
  101. package/dist/tools/list-named-items.d.ts.map +1 -0
  102. package/dist/tools/list-named-items.js +19 -0
  103. package/dist/tools/list-named-items.js.map +1 -0
  104. package/dist/tools/list-tables.d.ts +13 -0
  105. package/dist/tools/list-tables.d.ts.map +1 -0
  106. package/dist/tools/list-tables.js +25 -0
  107. package/dist/tools/list-tables.js.map +1 -0
  108. package/dist/tools/list-worksheets.d.ts +10 -0
  109. package/dist/tools/list-worksheets.d.ts.map +1 -0
  110. package/dist/tools/list-worksheets.js +19 -0
  111. package/dist/tools/list-worksheets.js.map +1 -0
  112. package/dist/tools/schemas.d.ts +150 -0
  113. package/dist/tools/schemas.d.ts.map +1 -0
  114. package/dist/tools/schemas.js +111 -0
  115. package/dist/tools/schemas.js.map +1 -0
  116. package/dist/tools/sort-range.d.ts +13 -0
  117. package/dist/tools/sort-range.d.ts.map +1 -0
  118. package/dist/tools/sort-range.js +43 -0
  119. package/dist/tools/sort-range.js.map +1 -0
  120. package/dist/tools/update-range.d.ts +19 -0
  121. package/dist/tools/update-range.d.ts.map +1 -0
  122. package/dist/tools/update-range.js +41 -0
  123. package/dist/tools/update-range.js.map +1 -0
  124. package/dist/tools/update-worksheet.d.ts +19 -0
  125. package/dist/tools/update-worksheet.d.ts.map +1 -0
  126. package/dist/tools/update-worksheet.js +32 -0
  127. package/dist/tools/update-worksheet.js.map +1 -0
  128. package/dist/tools.json +1781 -0
  129. package/package.json +55 -0
@@ -0,0 +1,1781 @@
1
+ {
2
+ "sdkVersion": "0.0.74",
3
+ "iconSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <rect x=\"1\" y=\"3\" width=\"22\" height=\"18\" rx=\"2\" fill=\"#217346\"/> <path d=\"M7.5 8L12 16M12 8L7.5 16\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"/> <rect x=\"15\" y=\"8\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> <rect x=\"15\" y=\"11\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> <rect x=\"15\" y=\"14\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> </svg>",
4
+ "iconInactiveSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <rect x=\"1\" y=\"3\" width=\"22\" height=\"18\" rx=\"2\" fill=\"#999999\"/> <path d=\"M7.5 8L12 16M12 8L7.5 16\" stroke=\"#ffffff\" stroke-width=\"2\" stroke-linecap=\"round\"/> <rect x=\"15\" y=\"8\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> <rect x=\"15\" y=\"11\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> <rect x=\"15\" y=\"14\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> </svg>",
5
+ "iconDarkSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <rect x=\"1\" y=\"3\" width=\"22\" height=\"18\" rx=\"2\" fill=\"#8cdeb1\"/> <path d=\"M7.5 8L12 16M12 8L7.5 16\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"/> <rect x=\"15\" y=\"8\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> <rect x=\"15\" y=\"11\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> <rect x=\"15\" y=\"14\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"white\" opacity=\"0.7\"/> </svg>",
6
+ "iconDarkInactiveSvg": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"> <rect x=\"1\" y=\"3\" width=\"22\" height=\"18\" rx=\"2\" fill=\"#c9c9c9\"/> <path d=\"M7.5 8L12 16M12 8L7.5 16\" stroke=\"#ffffff\" stroke-width=\"2\" stroke-linecap=\"round\"/> <rect x=\"15\" y=\"8\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> <rect x=\"15\" y=\"11\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> <rect x=\"15\" y=\"14\" width=\"4\" height=\"2\" rx=\"0.5\" fill=\"#ffffff\" opacity=\"0.7\"/> </svg>",
7
+ "tools": [
8
+ {
9
+ "name": "get_current_user",
10
+ "displayName": "Get Current User",
11
+ "description": "Get the profile of the currently authenticated Microsoft 365 user including display name, email, and user ID.",
12
+ "summary": "Get the authenticated user profile",
13
+ "icon": "user",
14
+ "group": "Account",
15
+ "input_schema": {
16
+ "type": "object",
17
+ "properties": {},
18
+ "additionalProperties": false
19
+ },
20
+ "output_schema": {
21
+ "type": "object",
22
+ "properties": {
23
+ "user": {
24
+ "type": "object",
25
+ "properties": {
26
+ "id": {
27
+ "type": "string",
28
+ "description": "User ID"
29
+ },
30
+ "display_name": {
31
+ "type": "string",
32
+ "description": "User display name"
33
+ },
34
+ "email": {
35
+ "type": "string",
36
+ "description": "User email address"
37
+ }
38
+ },
39
+ "required": [
40
+ "id",
41
+ "display_name",
42
+ "email"
43
+ ],
44
+ "additionalProperties": false
45
+ }
46
+ },
47
+ "required": [
48
+ "user"
49
+ ],
50
+ "additionalProperties": false
51
+ }
52
+ },
53
+ {
54
+ "name": "get_workbook_info",
55
+ "displayName": "Get Workbook Info",
56
+ "description": "Get information about the currently open Excel workbook including drive ID, item ID, and file name. Returns context needed by other tools. The workbook must be open in the browser.",
57
+ "summary": "Get current workbook metadata",
58
+ "icon": "file-spreadsheet",
59
+ "group": "Workbook",
60
+ "input_schema": {
61
+ "type": "object",
62
+ "properties": {},
63
+ "additionalProperties": false
64
+ },
65
+ "output_schema": {
66
+ "type": "object",
67
+ "properties": {
68
+ "workbook": {
69
+ "type": "object",
70
+ "properties": {
71
+ "drive_id": {
72
+ "type": "string",
73
+ "description": "OneDrive drive ID"
74
+ },
75
+ "item_id": {
76
+ "type": "string",
77
+ "description": "Workbook item ID"
78
+ },
79
+ "name": {
80
+ "type": "string",
81
+ "description": "Workbook file name"
82
+ }
83
+ },
84
+ "required": [
85
+ "drive_id",
86
+ "item_id",
87
+ "name"
88
+ ],
89
+ "additionalProperties": false
90
+ }
91
+ },
92
+ "required": [
93
+ "workbook"
94
+ ],
95
+ "additionalProperties": false
96
+ }
97
+ },
98
+ {
99
+ "name": "calculate_workbook",
100
+ "displayName": "Calculate Workbook",
101
+ "description": "Recalculate all formulas in the workbook. Use calculation_type \"Recalculate\" for normal recalculation, \"Full\" to force recalculation of all formulas, or \"FullRebuild\" to rebuild the dependency chain and recalculate.",
102
+ "summary": "Recalculate all formulas",
103
+ "icon": "calculator",
104
+ "group": "Workbook",
105
+ "input_schema": {
106
+ "type": "object",
107
+ "properties": {
108
+ "calculation_type": {
109
+ "description": "Calculation type (default \"Recalculate\")",
110
+ "type": "string",
111
+ "enum": [
112
+ "Recalculate",
113
+ "Full",
114
+ "FullRebuild"
115
+ ]
116
+ }
117
+ },
118
+ "additionalProperties": false
119
+ },
120
+ "output_schema": {
121
+ "type": "object",
122
+ "properties": {
123
+ "success": {
124
+ "type": "boolean",
125
+ "description": "Whether the operation succeeded"
126
+ }
127
+ },
128
+ "required": [
129
+ "success"
130
+ ],
131
+ "additionalProperties": false
132
+ }
133
+ },
134
+ {
135
+ "name": "evaluate_formula",
136
+ "displayName": "Evaluate Formula",
137
+ "description": "Evaluate a formula expression without writing it to a cell. The formula is evaluated in the context of a specific worksheet. Returns the computed result. Useful for calculations, lookups, and data analysis without modifying the workbook.",
138
+ "summary": "Evaluate a formula and return the result",
139
+ "icon": "calculator",
140
+ "group": "Workbook",
141
+ "input_schema": {
142
+ "type": "object",
143
+ "properties": {
144
+ "worksheet": {
145
+ "type": "string",
146
+ "description": "Worksheet name for formula context (e.g., \"Sheet1\")"
147
+ },
148
+ "formula": {
149
+ "type": "string",
150
+ "description": "Formula to evaluate (e.g., \"=SUM(A1:A10)\", \"=AVERAGE(B2:B100)\")"
151
+ }
152
+ },
153
+ "required": [
154
+ "worksheet",
155
+ "formula"
156
+ ],
157
+ "additionalProperties": false
158
+ },
159
+ "output_schema": {
160
+ "type": "object",
161
+ "properties": {
162
+ "result": {
163
+ "description": "The computed result of the formula (number, string, boolean, or error)"
164
+ },
165
+ "error": {
166
+ "type": "string",
167
+ "description": "Error message if the formula failed, empty string on success"
168
+ }
169
+ },
170
+ "required": [
171
+ "result",
172
+ "error"
173
+ ],
174
+ "additionalProperties": false
175
+ }
176
+ },
177
+ {
178
+ "name": "list_named_items",
179
+ "displayName": "List Named Items",
180
+ "description": "List all named items (named ranges, constants) in the workbook. Named items are user-defined names that refer to ranges, values, or formulas.",
181
+ "summary": "List named ranges and constants",
182
+ "icon": "tag",
183
+ "group": "Workbook",
184
+ "input_schema": {
185
+ "type": "object",
186
+ "properties": {},
187
+ "additionalProperties": false
188
+ },
189
+ "output_schema": {
190
+ "type": "object",
191
+ "properties": {
192
+ "items": {
193
+ "type": "array",
194
+ "items": {
195
+ "type": "object",
196
+ "properties": {
197
+ "name": {
198
+ "type": "string",
199
+ "description": "Named item name"
200
+ },
201
+ "type": {
202
+ "type": "string",
203
+ "description": "Named item type (e.g., \"Range\", \"String\", \"Integer\")"
204
+ },
205
+ "value": {
206
+ "type": "string",
207
+ "description": "Named item value or formula"
208
+ },
209
+ "visible": {
210
+ "type": "boolean",
211
+ "description": "Whether the named item is visible"
212
+ }
213
+ },
214
+ "required": [
215
+ "name",
216
+ "type",
217
+ "value",
218
+ "visible"
219
+ ],
220
+ "additionalProperties": false
221
+ }
222
+ }
223
+ },
224
+ "required": [
225
+ "items"
226
+ ],
227
+ "additionalProperties": false
228
+ }
229
+ },
230
+ {
231
+ "name": "add_named_item",
232
+ "displayName": "Add Named Item",
233
+ "description": "Add a named range or named value to the workbook. For a range, provide a reference like \"Sheet1!A1:C10\". For a value or formula, provide the value directly.",
234
+ "summary": "Create a named range or constant",
235
+ "icon": "tag",
236
+ "group": "Workbook",
237
+ "input_schema": {
238
+ "type": "object",
239
+ "properties": {
240
+ "name": {
241
+ "type": "string",
242
+ "description": "Name for the named item (must be unique in the workbook)"
243
+ },
244
+ "reference": {
245
+ "type": "string",
246
+ "description": "Range reference (e.g., \"Sheet1!A1:C10\") or value/formula"
247
+ },
248
+ "comment": {
249
+ "description": "Optional comment for the named item",
250
+ "type": "string"
251
+ }
252
+ },
253
+ "required": [
254
+ "name",
255
+ "reference"
256
+ ],
257
+ "additionalProperties": false
258
+ },
259
+ "output_schema": {
260
+ "type": "object",
261
+ "properties": {
262
+ "item": {
263
+ "type": "object",
264
+ "properties": {
265
+ "name": {
266
+ "type": "string",
267
+ "description": "Named item name"
268
+ },
269
+ "type": {
270
+ "type": "string",
271
+ "description": "Named item type (e.g., \"Range\", \"String\", \"Integer\")"
272
+ },
273
+ "value": {
274
+ "type": "string",
275
+ "description": "Named item value or formula"
276
+ },
277
+ "visible": {
278
+ "type": "boolean",
279
+ "description": "Whether the named item is visible"
280
+ }
281
+ },
282
+ "required": [
283
+ "name",
284
+ "type",
285
+ "value",
286
+ "visible"
287
+ ],
288
+ "additionalProperties": false
289
+ }
290
+ },
291
+ "required": [
292
+ "item"
293
+ ],
294
+ "additionalProperties": false
295
+ }
296
+ },
297
+ {
298
+ "name": "list_worksheets",
299
+ "displayName": "List Worksheets",
300
+ "description": "List all worksheets in the currently open Excel workbook. Returns worksheet names, IDs, positions, and visibility status.",
301
+ "summary": "List all worksheets in the workbook",
302
+ "icon": "layers",
303
+ "group": "Worksheets",
304
+ "input_schema": {
305
+ "type": "object",
306
+ "properties": {},
307
+ "additionalProperties": false
308
+ },
309
+ "output_schema": {
310
+ "type": "object",
311
+ "properties": {
312
+ "worksheets": {
313
+ "type": "array",
314
+ "items": {
315
+ "type": "object",
316
+ "properties": {
317
+ "id": {
318
+ "type": "string",
319
+ "description": "Worksheet ID"
320
+ },
321
+ "name": {
322
+ "type": "string",
323
+ "description": "Worksheet name"
324
+ },
325
+ "position": {
326
+ "type": "integer",
327
+ "minimum": -9007199254740991,
328
+ "maximum": 9007199254740991,
329
+ "description": "Zero-based position of the worksheet within the workbook"
330
+ },
331
+ "visibility": {
332
+ "type": "string",
333
+ "description": "Worksheet visibility: Visible, Hidden, or VeryHidden"
334
+ }
335
+ },
336
+ "required": [
337
+ "id",
338
+ "name",
339
+ "position",
340
+ "visibility"
341
+ ],
342
+ "additionalProperties": false
343
+ }
344
+ }
345
+ },
346
+ "required": [
347
+ "worksheets"
348
+ ],
349
+ "additionalProperties": false
350
+ }
351
+ },
352
+ {
353
+ "name": "add_worksheet",
354
+ "displayName": "Add Worksheet",
355
+ "description": "Add a new worksheet to the currently open Excel workbook. Optionally specify a name for the new worksheet.",
356
+ "summary": "Add a new worksheet",
357
+ "icon": "plus",
358
+ "group": "Worksheets",
359
+ "input_schema": {
360
+ "type": "object",
361
+ "properties": {
362
+ "name": {
363
+ "description": "Name for the new worksheet. Auto-generated if omitted.",
364
+ "type": "string"
365
+ }
366
+ },
367
+ "additionalProperties": false
368
+ },
369
+ "output_schema": {
370
+ "type": "object",
371
+ "properties": {
372
+ "worksheet": {
373
+ "type": "object",
374
+ "properties": {
375
+ "id": {
376
+ "type": "string",
377
+ "description": "Worksheet ID"
378
+ },
379
+ "name": {
380
+ "type": "string",
381
+ "description": "Worksheet name"
382
+ },
383
+ "position": {
384
+ "type": "integer",
385
+ "minimum": -9007199254740991,
386
+ "maximum": 9007199254740991,
387
+ "description": "Zero-based position of the worksheet within the workbook"
388
+ },
389
+ "visibility": {
390
+ "type": "string",
391
+ "description": "Worksheet visibility: Visible, Hidden, or VeryHidden"
392
+ }
393
+ },
394
+ "required": [
395
+ "id",
396
+ "name",
397
+ "position",
398
+ "visibility"
399
+ ],
400
+ "additionalProperties": false
401
+ }
402
+ },
403
+ "required": [
404
+ "worksheet"
405
+ ],
406
+ "additionalProperties": false
407
+ }
408
+ },
409
+ {
410
+ "name": "update_worksheet",
411
+ "displayName": "Update Worksheet",
412
+ "description": "Update worksheet properties such as name, position, or visibility. Only specified fields are changed; omitted fields remain unchanged.",
413
+ "summary": "Update worksheet name, position, or visibility",
414
+ "icon": "pencil",
415
+ "group": "Worksheets",
416
+ "input_schema": {
417
+ "type": "object",
418
+ "properties": {
419
+ "name": {
420
+ "type": "string",
421
+ "description": "Current name of the worksheet to update"
422
+ },
423
+ "new_name": {
424
+ "description": "New name for the worksheet",
425
+ "type": "string"
426
+ },
427
+ "position": {
428
+ "description": "New zero-based position",
429
+ "type": "integer",
430
+ "minimum": 0,
431
+ "maximum": 9007199254740991
432
+ },
433
+ "visibility": {
434
+ "description": "New visibility state",
435
+ "type": "string",
436
+ "enum": [
437
+ "Visible",
438
+ "Hidden",
439
+ "VeryHidden"
440
+ ]
441
+ }
442
+ },
443
+ "required": [
444
+ "name"
445
+ ],
446
+ "additionalProperties": false
447
+ },
448
+ "output_schema": {
449
+ "type": "object",
450
+ "properties": {
451
+ "worksheet": {
452
+ "type": "object",
453
+ "properties": {
454
+ "id": {
455
+ "type": "string",
456
+ "description": "Worksheet ID"
457
+ },
458
+ "name": {
459
+ "type": "string",
460
+ "description": "Worksheet name"
461
+ },
462
+ "position": {
463
+ "type": "integer",
464
+ "minimum": -9007199254740991,
465
+ "maximum": 9007199254740991,
466
+ "description": "Zero-based position of the worksheet within the workbook"
467
+ },
468
+ "visibility": {
469
+ "type": "string",
470
+ "description": "Worksheet visibility: Visible, Hidden, or VeryHidden"
471
+ }
472
+ },
473
+ "required": [
474
+ "id",
475
+ "name",
476
+ "position",
477
+ "visibility"
478
+ ],
479
+ "additionalProperties": false
480
+ }
481
+ },
482
+ "required": [
483
+ "worksheet"
484
+ ],
485
+ "additionalProperties": false
486
+ }
487
+ },
488
+ {
489
+ "name": "delete_worksheet",
490
+ "displayName": "Delete Worksheet",
491
+ "description": "Delete a worksheet from the currently open Excel workbook by name. The workbook must have at least two worksheets — you cannot delete the last one.",
492
+ "summary": "Delete a worksheet by name",
493
+ "icon": "trash-2",
494
+ "group": "Worksheets",
495
+ "input_schema": {
496
+ "type": "object",
497
+ "properties": {
498
+ "name": {
499
+ "type": "string",
500
+ "description": "Name of the worksheet to delete"
501
+ }
502
+ },
503
+ "required": [
504
+ "name"
505
+ ],
506
+ "additionalProperties": false
507
+ },
508
+ "output_schema": {
509
+ "type": "object",
510
+ "properties": {
511
+ "success": {
512
+ "type": "boolean",
513
+ "description": "Whether the operation succeeded"
514
+ }
515
+ },
516
+ "required": [
517
+ "success"
518
+ ],
519
+ "additionalProperties": false
520
+ }
521
+ },
522
+ {
523
+ "name": "get_range",
524
+ "displayName": "Get Range",
525
+ "description": "Get cell values, formulas, and formatting for a specific range in a worksheet. The range address uses A1 notation (e.g., \"A1:C10\"). Returns values, formulas, text, and number formats.",
526
+ "summary": "Read cell values from a range",
527
+ "icon": "grid-3x3",
528
+ "group": "Ranges",
529
+ "input_schema": {
530
+ "type": "object",
531
+ "properties": {
532
+ "worksheet": {
533
+ "type": "string",
534
+ "description": "Worksheet name (e.g., \"Sheet1\")"
535
+ },
536
+ "address": {
537
+ "type": "string",
538
+ "description": "Range address in A1 notation (e.g., \"A1:C10\", \"B2\", \"A:D\")"
539
+ }
540
+ },
541
+ "required": [
542
+ "worksheet",
543
+ "address"
544
+ ],
545
+ "additionalProperties": false
546
+ },
547
+ "output_schema": {
548
+ "type": "object",
549
+ "properties": {
550
+ "range": {
551
+ "type": "object",
552
+ "properties": {
553
+ "address": {
554
+ "type": "string",
555
+ "description": "Range address in A1 notation (e.g., \"Sheet1!A1:C3\")"
556
+ },
557
+ "row_count": {
558
+ "type": "integer",
559
+ "minimum": -9007199254740991,
560
+ "maximum": 9007199254740991,
561
+ "description": "Number of rows in the range"
562
+ },
563
+ "column_count": {
564
+ "type": "integer",
565
+ "minimum": -9007199254740991,
566
+ "maximum": 9007199254740991,
567
+ "description": "Number of columns in the range"
568
+ },
569
+ "values": {
570
+ "type": "array",
571
+ "items": {
572
+ "type": "array",
573
+ "items": {}
574
+ },
575
+ "description": "2D array of cell values (strings, numbers, booleans)"
576
+ },
577
+ "formulas": {
578
+ "type": "array",
579
+ "items": {
580
+ "type": "array",
581
+ "items": {}
582
+ },
583
+ "description": "2D array of cell formulas"
584
+ },
585
+ "text": {
586
+ "type": "array",
587
+ "items": {
588
+ "type": "array",
589
+ "items": {
590
+ "type": "string"
591
+ }
592
+ },
593
+ "description": "2D array of formatted text representations of cell values"
594
+ },
595
+ "number_format": {
596
+ "type": "array",
597
+ "items": {
598
+ "type": "array",
599
+ "items": {
600
+ "type": "string"
601
+ }
602
+ },
603
+ "description": "2D array of number format codes"
604
+ }
605
+ },
606
+ "required": [
607
+ "address",
608
+ "row_count",
609
+ "column_count",
610
+ "values",
611
+ "formulas",
612
+ "text",
613
+ "number_format"
614
+ ],
615
+ "additionalProperties": false
616
+ }
617
+ },
618
+ "required": [
619
+ "range"
620
+ ],
621
+ "additionalProperties": false
622
+ }
623
+ },
624
+ {
625
+ "name": "get_used_range",
626
+ "displayName": "Get Used Range",
627
+ "description": "Get the smallest range that encompasses all cells with data or formatting in a worksheet. Useful for discovering the extent of data in a sheet without knowing the exact range.",
628
+ "summary": "Get the used range of a worksheet",
629
+ "icon": "scan",
630
+ "group": "Ranges",
631
+ "input_schema": {
632
+ "type": "object",
633
+ "properties": {
634
+ "worksheet": {
635
+ "type": "string",
636
+ "description": "Worksheet name (e.g., \"Sheet1\")"
637
+ }
638
+ },
639
+ "required": [
640
+ "worksheet"
641
+ ],
642
+ "additionalProperties": false
643
+ },
644
+ "output_schema": {
645
+ "type": "object",
646
+ "properties": {
647
+ "range": {
648
+ "type": "object",
649
+ "properties": {
650
+ "address": {
651
+ "type": "string",
652
+ "description": "Range address in A1 notation (e.g., \"Sheet1!A1:C3\")"
653
+ },
654
+ "row_count": {
655
+ "type": "integer",
656
+ "minimum": -9007199254740991,
657
+ "maximum": 9007199254740991,
658
+ "description": "Number of rows in the range"
659
+ },
660
+ "column_count": {
661
+ "type": "integer",
662
+ "minimum": -9007199254740991,
663
+ "maximum": 9007199254740991,
664
+ "description": "Number of columns in the range"
665
+ },
666
+ "values": {
667
+ "type": "array",
668
+ "items": {
669
+ "type": "array",
670
+ "items": {}
671
+ },
672
+ "description": "2D array of cell values (strings, numbers, booleans)"
673
+ },
674
+ "formulas": {
675
+ "type": "array",
676
+ "items": {
677
+ "type": "array",
678
+ "items": {}
679
+ },
680
+ "description": "2D array of cell formulas"
681
+ },
682
+ "text": {
683
+ "type": "array",
684
+ "items": {
685
+ "type": "array",
686
+ "items": {
687
+ "type": "string"
688
+ }
689
+ },
690
+ "description": "2D array of formatted text representations of cell values"
691
+ },
692
+ "number_format": {
693
+ "type": "array",
694
+ "items": {
695
+ "type": "array",
696
+ "items": {
697
+ "type": "string"
698
+ }
699
+ },
700
+ "description": "2D array of number format codes"
701
+ }
702
+ },
703
+ "required": [
704
+ "address",
705
+ "row_count",
706
+ "column_count",
707
+ "values",
708
+ "formulas",
709
+ "text",
710
+ "number_format"
711
+ ],
712
+ "additionalProperties": false
713
+ }
714
+ },
715
+ "required": [
716
+ "range"
717
+ ],
718
+ "additionalProperties": false
719
+ }
720
+ },
721
+ {
722
+ "name": "update_range",
723
+ "displayName": "Update Range",
724
+ "description": "Write values, formulas, or number formats to a specific range in a worksheet. The values must be a 2D array matching the range dimensions. Use null within the array to skip a cell. Pass formulas starting with \"=\" (e.g., \"=SUM(A1:A10)\"). Use \"\" (empty string) to clear a cell.",
725
+ "summary": "Write values or formulas to a range",
726
+ "icon": "pencil",
727
+ "group": "Ranges",
728
+ "input_schema": {
729
+ "type": "object",
730
+ "properties": {
731
+ "worksheet": {
732
+ "type": "string",
733
+ "description": "Worksheet name (e.g., \"Sheet1\")"
734
+ },
735
+ "address": {
736
+ "type": "string",
737
+ "description": "Range address in A1 notation (e.g., \"A1:C3\")"
738
+ },
739
+ "values": {
740
+ "description": "2D array of values to write. Dimensions must match the range.",
741
+ "type": "array",
742
+ "items": {
743
+ "type": "array",
744
+ "items": {}
745
+ }
746
+ },
747
+ "formulas": {
748
+ "description": "2D array of formulas to write. Each formula starts with \"=\".",
749
+ "type": "array",
750
+ "items": {
751
+ "type": "array",
752
+ "items": {}
753
+ }
754
+ },
755
+ "number_format": {
756
+ "description": "2D array of number format codes (e.g., \"0.00\", \"m/d/yyyy\")",
757
+ "type": "array",
758
+ "items": {
759
+ "type": "array",
760
+ "items": {
761
+ "type": "string"
762
+ }
763
+ }
764
+ }
765
+ },
766
+ "required": [
767
+ "worksheet",
768
+ "address"
769
+ ],
770
+ "additionalProperties": false
771
+ },
772
+ "output_schema": {
773
+ "type": "object",
774
+ "properties": {
775
+ "range": {
776
+ "type": "object",
777
+ "properties": {
778
+ "address": {
779
+ "type": "string",
780
+ "description": "Range address in A1 notation (e.g., \"Sheet1!A1:C3\")"
781
+ },
782
+ "row_count": {
783
+ "type": "integer",
784
+ "minimum": -9007199254740991,
785
+ "maximum": 9007199254740991,
786
+ "description": "Number of rows in the range"
787
+ },
788
+ "column_count": {
789
+ "type": "integer",
790
+ "minimum": -9007199254740991,
791
+ "maximum": 9007199254740991,
792
+ "description": "Number of columns in the range"
793
+ },
794
+ "values": {
795
+ "type": "array",
796
+ "items": {
797
+ "type": "array",
798
+ "items": {}
799
+ },
800
+ "description": "2D array of cell values (strings, numbers, booleans)"
801
+ },
802
+ "formulas": {
803
+ "type": "array",
804
+ "items": {
805
+ "type": "array",
806
+ "items": {}
807
+ },
808
+ "description": "2D array of cell formulas"
809
+ },
810
+ "text": {
811
+ "type": "array",
812
+ "items": {
813
+ "type": "array",
814
+ "items": {
815
+ "type": "string"
816
+ }
817
+ },
818
+ "description": "2D array of formatted text representations of cell values"
819
+ },
820
+ "number_format": {
821
+ "type": "array",
822
+ "items": {
823
+ "type": "array",
824
+ "items": {
825
+ "type": "string"
826
+ }
827
+ },
828
+ "description": "2D array of number format codes"
829
+ }
830
+ },
831
+ "required": [
832
+ "address",
833
+ "row_count",
834
+ "column_count",
835
+ "values",
836
+ "formulas",
837
+ "text",
838
+ "number_format"
839
+ ],
840
+ "additionalProperties": false
841
+ }
842
+ },
843
+ "required": [
844
+ "range"
845
+ ],
846
+ "additionalProperties": false
847
+ }
848
+ },
849
+ {
850
+ "name": "clear_range",
851
+ "displayName": "Clear Range",
852
+ "description": "Clear the contents, formatting, or both from a range of cells. Use apply_to to control what is cleared: \"All\" clears everything, \"Contents\" clears values and formulas only, \"Formats\" clears formatting only.",
853
+ "summary": "Clear cell contents or formatting",
854
+ "icon": "eraser",
855
+ "group": "Ranges",
856
+ "input_schema": {
857
+ "type": "object",
858
+ "properties": {
859
+ "worksheet": {
860
+ "type": "string",
861
+ "description": "Worksheet name (e.g., \"Sheet1\")"
862
+ },
863
+ "address": {
864
+ "type": "string",
865
+ "description": "Range address in A1 notation (e.g., \"A1:C10\")"
866
+ },
867
+ "apply_to": {
868
+ "description": "What to clear (default \"All\")",
869
+ "type": "string",
870
+ "enum": [
871
+ "All",
872
+ "Contents",
873
+ "Formats"
874
+ ]
875
+ }
876
+ },
877
+ "required": [
878
+ "worksheet",
879
+ "address"
880
+ ],
881
+ "additionalProperties": false
882
+ },
883
+ "output_schema": {
884
+ "type": "object",
885
+ "properties": {
886
+ "success": {
887
+ "type": "boolean",
888
+ "description": "Whether the operation succeeded"
889
+ }
890
+ },
891
+ "required": [
892
+ "success"
893
+ ],
894
+ "additionalProperties": false
895
+ }
896
+ },
897
+ {
898
+ "name": "insert_range",
899
+ "displayName": "Insert Range",
900
+ "description": "Insert new blank cells at a range address, shifting existing cells down or to the right. Use shift=\"Down\" to push cells down or shift=\"Right\" to push cells right.",
901
+ "summary": "Insert cells and shift existing data",
902
+ "icon": "between-vertical-start",
903
+ "group": "Ranges",
904
+ "input_schema": {
905
+ "type": "object",
906
+ "properties": {
907
+ "worksheet": {
908
+ "type": "string",
909
+ "description": "Worksheet name (e.g., \"Sheet1\")"
910
+ },
911
+ "address": {
912
+ "type": "string",
913
+ "description": "Range address where new cells are inserted (e.g., \"A2:A5\")"
914
+ },
915
+ "shift": {
916
+ "type": "string",
917
+ "enum": [
918
+ "Down",
919
+ "Right"
920
+ ],
921
+ "description": "Direction to shift existing cells: \"Down\" or \"Right\""
922
+ }
923
+ },
924
+ "required": [
925
+ "worksheet",
926
+ "address",
927
+ "shift"
928
+ ],
929
+ "additionalProperties": false
930
+ },
931
+ "output_schema": {
932
+ "type": "object",
933
+ "properties": {
934
+ "range": {
935
+ "type": "object",
936
+ "properties": {
937
+ "address": {
938
+ "type": "string",
939
+ "description": "Range address in A1 notation (e.g., \"Sheet1!A1:C3\")"
940
+ },
941
+ "row_count": {
942
+ "type": "integer",
943
+ "minimum": -9007199254740991,
944
+ "maximum": 9007199254740991,
945
+ "description": "Number of rows in the range"
946
+ },
947
+ "column_count": {
948
+ "type": "integer",
949
+ "minimum": -9007199254740991,
950
+ "maximum": 9007199254740991,
951
+ "description": "Number of columns in the range"
952
+ },
953
+ "values": {
954
+ "type": "array",
955
+ "items": {
956
+ "type": "array",
957
+ "items": {}
958
+ },
959
+ "description": "2D array of cell values (strings, numbers, booleans)"
960
+ },
961
+ "formulas": {
962
+ "type": "array",
963
+ "items": {
964
+ "type": "array",
965
+ "items": {}
966
+ },
967
+ "description": "2D array of cell formulas"
968
+ },
969
+ "text": {
970
+ "type": "array",
971
+ "items": {
972
+ "type": "array",
973
+ "items": {
974
+ "type": "string"
975
+ }
976
+ },
977
+ "description": "2D array of formatted text representations of cell values"
978
+ },
979
+ "number_format": {
980
+ "type": "array",
981
+ "items": {
982
+ "type": "array",
983
+ "items": {
984
+ "type": "string"
985
+ }
986
+ },
987
+ "description": "2D array of number format codes"
988
+ }
989
+ },
990
+ "required": [
991
+ "address",
992
+ "row_count",
993
+ "column_count",
994
+ "values",
995
+ "formulas",
996
+ "text",
997
+ "number_format"
998
+ ],
999
+ "additionalProperties": false
1000
+ }
1001
+ },
1002
+ "required": [
1003
+ "range"
1004
+ ],
1005
+ "additionalProperties": false
1006
+ }
1007
+ },
1008
+ {
1009
+ "name": "delete_range",
1010
+ "displayName": "Delete Range",
1011
+ "description": "Delete cells at a range address, shifting remaining cells up or to the left. Use shift=\"Up\" to pull cells up or shift=\"Left\" to pull cells left.",
1012
+ "summary": "Delete cells and shift remaining data",
1013
+ "icon": "between-vertical-end",
1014
+ "group": "Ranges",
1015
+ "input_schema": {
1016
+ "type": "object",
1017
+ "properties": {
1018
+ "worksheet": {
1019
+ "type": "string",
1020
+ "description": "Worksheet name (e.g., \"Sheet1\")"
1021
+ },
1022
+ "address": {
1023
+ "type": "string",
1024
+ "description": "Range address of cells to delete (e.g., \"A2:A5\")"
1025
+ },
1026
+ "shift": {
1027
+ "type": "string",
1028
+ "enum": [
1029
+ "Up",
1030
+ "Left"
1031
+ ],
1032
+ "description": "Direction to shift remaining cells: \"Up\" or \"Left\""
1033
+ }
1034
+ },
1035
+ "required": [
1036
+ "worksheet",
1037
+ "address",
1038
+ "shift"
1039
+ ],
1040
+ "additionalProperties": false
1041
+ },
1042
+ "output_schema": {
1043
+ "type": "object",
1044
+ "properties": {
1045
+ "success": {
1046
+ "type": "boolean",
1047
+ "description": "Whether the operation succeeded"
1048
+ }
1049
+ },
1050
+ "required": [
1051
+ "success"
1052
+ ],
1053
+ "additionalProperties": false
1054
+ }
1055
+ },
1056
+ {
1057
+ "name": "sort_range",
1058
+ "displayName": "Sort Range",
1059
+ "description": "Sort data in a range by one or more columns. Each sort field specifies a zero-based column index and sort direction. Multiple fields create multi-level sorts (primary, secondary, etc.).",
1060
+ "summary": "Sort data in a range by columns",
1061
+ "icon": "arrow-up-down",
1062
+ "group": "Ranges",
1063
+ "input_schema": {
1064
+ "type": "object",
1065
+ "properties": {
1066
+ "worksheet": {
1067
+ "type": "string",
1068
+ "description": "Worksheet name (e.g., \"Sheet1\")"
1069
+ },
1070
+ "address": {
1071
+ "type": "string",
1072
+ "description": "Range address to sort (e.g., \"A1:C10\")"
1073
+ },
1074
+ "fields": {
1075
+ "minItems": 1,
1076
+ "type": "array",
1077
+ "items": {
1078
+ "type": "object",
1079
+ "properties": {
1080
+ "key": {
1081
+ "type": "integer",
1082
+ "minimum": 0,
1083
+ "maximum": 9007199254740991,
1084
+ "description": "Zero-based column index to sort by"
1085
+ },
1086
+ "ascending": {
1087
+ "description": "Sort ascending (default true)",
1088
+ "type": "boolean"
1089
+ }
1090
+ },
1091
+ "required": [
1092
+ "key"
1093
+ ],
1094
+ "additionalProperties": false
1095
+ },
1096
+ "description": "Sort fields in priority order"
1097
+ },
1098
+ "has_headers": {
1099
+ "description": "Whether the first row is a header row (default false)",
1100
+ "type": "boolean"
1101
+ }
1102
+ },
1103
+ "required": [
1104
+ "worksheet",
1105
+ "address",
1106
+ "fields"
1107
+ ],
1108
+ "additionalProperties": false
1109
+ },
1110
+ "output_schema": {
1111
+ "type": "object",
1112
+ "properties": {
1113
+ "success": {
1114
+ "type": "boolean",
1115
+ "description": "Whether the operation succeeded"
1116
+ }
1117
+ },
1118
+ "required": [
1119
+ "success"
1120
+ ],
1121
+ "additionalProperties": false
1122
+ }
1123
+ },
1124
+ {
1125
+ "name": "list_tables",
1126
+ "displayName": "List Tables",
1127
+ "description": "List all tables in the currently open Excel workbook. Returns table names, IDs, and display settings. Optionally filter by worksheet name to list only tables in a specific sheet.",
1128
+ "summary": "List all tables in the workbook",
1129
+ "icon": "table",
1130
+ "group": "Tables",
1131
+ "input_schema": {
1132
+ "type": "object",
1133
+ "properties": {
1134
+ "worksheet": {
1135
+ "description": "Worksheet name to filter tables by. Omit to list tables from all sheets.",
1136
+ "type": "string"
1137
+ }
1138
+ },
1139
+ "additionalProperties": false
1140
+ },
1141
+ "output_schema": {
1142
+ "type": "object",
1143
+ "properties": {
1144
+ "tables": {
1145
+ "type": "array",
1146
+ "items": {
1147
+ "type": "object",
1148
+ "properties": {
1149
+ "id": {
1150
+ "type": "string",
1151
+ "description": "Table ID"
1152
+ },
1153
+ "name": {
1154
+ "type": "string",
1155
+ "description": "Table name"
1156
+ },
1157
+ "show_headers": {
1158
+ "type": "boolean",
1159
+ "description": "Whether the header row is visible"
1160
+ },
1161
+ "show_totals": {
1162
+ "type": "boolean",
1163
+ "description": "Whether the total row is visible"
1164
+ },
1165
+ "style": {
1166
+ "type": "string",
1167
+ "description": "Table style name (e.g., \"TableStyleMedium2\")"
1168
+ }
1169
+ },
1170
+ "required": [
1171
+ "id",
1172
+ "name",
1173
+ "show_headers",
1174
+ "show_totals",
1175
+ "style"
1176
+ ],
1177
+ "additionalProperties": false
1178
+ }
1179
+ }
1180
+ },
1181
+ "required": [
1182
+ "tables"
1183
+ ],
1184
+ "additionalProperties": false
1185
+ }
1186
+ },
1187
+ {
1188
+ "name": "create_table",
1189
+ "displayName": "Create Table",
1190
+ "description": "Create a new table from a data range. The range should contain the data (and optionally a header row). Set has_headers=true if the first row contains column headers.",
1191
+ "summary": "Create a table from a data range",
1192
+ "icon": "table",
1193
+ "group": "Tables",
1194
+ "input_schema": {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "address": {
1198
+ "type": "string",
1199
+ "description": "Range address containing the data (e.g., \"Sheet1!A1:D10\")"
1200
+ },
1201
+ "has_headers": {
1202
+ "description": "Whether the first row contains headers (default true)",
1203
+ "type": "boolean"
1204
+ }
1205
+ },
1206
+ "required": [
1207
+ "address"
1208
+ ],
1209
+ "additionalProperties": false
1210
+ },
1211
+ "output_schema": {
1212
+ "type": "object",
1213
+ "properties": {
1214
+ "table": {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "id": {
1218
+ "type": "string",
1219
+ "description": "Table ID"
1220
+ },
1221
+ "name": {
1222
+ "type": "string",
1223
+ "description": "Table name"
1224
+ },
1225
+ "show_headers": {
1226
+ "type": "boolean",
1227
+ "description": "Whether the header row is visible"
1228
+ },
1229
+ "show_totals": {
1230
+ "type": "boolean",
1231
+ "description": "Whether the total row is visible"
1232
+ },
1233
+ "style": {
1234
+ "type": "string",
1235
+ "description": "Table style name (e.g., \"TableStyleMedium2\")"
1236
+ }
1237
+ },
1238
+ "required": [
1239
+ "id",
1240
+ "name",
1241
+ "show_headers",
1242
+ "show_totals",
1243
+ "style"
1244
+ ],
1245
+ "additionalProperties": false
1246
+ }
1247
+ },
1248
+ "required": [
1249
+ "table"
1250
+ ],
1251
+ "additionalProperties": false
1252
+ }
1253
+ },
1254
+ {
1255
+ "name": "delete_table",
1256
+ "displayName": "Delete Table",
1257
+ "description": "Delete a table by name or ID. This removes the table object but keeps the data in the cells. Use convert_table_to_range instead if you want to explicitly convert first.",
1258
+ "summary": "Delete a table",
1259
+ "icon": "trash-2",
1260
+ "group": "Tables",
1261
+ "input_schema": {
1262
+ "type": "object",
1263
+ "properties": {
1264
+ "table": {
1265
+ "type": "string",
1266
+ "description": "Table name or ID"
1267
+ }
1268
+ },
1269
+ "required": [
1270
+ "table"
1271
+ ],
1272
+ "additionalProperties": false
1273
+ },
1274
+ "output_schema": {
1275
+ "type": "object",
1276
+ "properties": {
1277
+ "success": {
1278
+ "type": "boolean",
1279
+ "description": "Whether the operation succeeded"
1280
+ }
1281
+ },
1282
+ "required": [
1283
+ "success"
1284
+ ],
1285
+ "additionalProperties": false
1286
+ }
1287
+ },
1288
+ {
1289
+ "name": "get_table_rows",
1290
+ "displayName": "Get Table Rows",
1291
+ "description": "Get all data rows from a table. Returns row values as 2D arrays. Each row is an array of cell values. Does not include the header row.",
1292
+ "summary": "Get all rows from a table",
1293
+ "icon": "rows-3",
1294
+ "group": "Tables",
1295
+ "input_schema": {
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "table": {
1299
+ "type": "string",
1300
+ "description": "Table name or ID"
1301
+ }
1302
+ },
1303
+ "required": [
1304
+ "table"
1305
+ ],
1306
+ "additionalProperties": false
1307
+ },
1308
+ "output_schema": {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "rows": {
1312
+ "type": "array",
1313
+ "items": {
1314
+ "type": "object",
1315
+ "properties": {
1316
+ "index": {
1317
+ "type": "integer",
1318
+ "minimum": -9007199254740991,
1319
+ "maximum": 9007199254740991,
1320
+ "description": "Zero-based row index within the table"
1321
+ },
1322
+ "values": {
1323
+ "type": "array",
1324
+ "items": {
1325
+ "type": "array",
1326
+ "items": {}
1327
+ },
1328
+ "description": "2D array with a single row of cell values"
1329
+ }
1330
+ },
1331
+ "required": [
1332
+ "index",
1333
+ "values"
1334
+ ],
1335
+ "additionalProperties": false
1336
+ }
1337
+ }
1338
+ },
1339
+ "required": [
1340
+ "rows"
1341
+ ],
1342
+ "additionalProperties": false
1343
+ }
1344
+ },
1345
+ {
1346
+ "name": "get_table_columns",
1347
+ "displayName": "Get Table Columns",
1348
+ "description": "Get the column definitions of a table. Returns column names, IDs, and indices. Useful for understanding the table structure before reading or writing data.",
1349
+ "summary": "Get column definitions of a table",
1350
+ "icon": "columns-3",
1351
+ "group": "Tables",
1352
+ "input_schema": {
1353
+ "type": "object",
1354
+ "properties": {
1355
+ "table": {
1356
+ "type": "string",
1357
+ "description": "Table name or ID"
1358
+ }
1359
+ },
1360
+ "required": [
1361
+ "table"
1362
+ ],
1363
+ "additionalProperties": false
1364
+ },
1365
+ "output_schema": {
1366
+ "type": "object",
1367
+ "properties": {
1368
+ "columns": {
1369
+ "type": "array",
1370
+ "items": {
1371
+ "type": "object",
1372
+ "properties": {
1373
+ "id": {
1374
+ "type": "string",
1375
+ "description": "Column ID"
1376
+ },
1377
+ "name": {
1378
+ "type": "string",
1379
+ "description": "Column name"
1380
+ },
1381
+ "index": {
1382
+ "type": "integer",
1383
+ "minimum": -9007199254740991,
1384
+ "maximum": 9007199254740991,
1385
+ "description": "Zero-based column index within the table"
1386
+ }
1387
+ },
1388
+ "required": [
1389
+ "id",
1390
+ "name",
1391
+ "index"
1392
+ ],
1393
+ "additionalProperties": false
1394
+ }
1395
+ }
1396
+ },
1397
+ "required": [
1398
+ "columns"
1399
+ ],
1400
+ "additionalProperties": false
1401
+ }
1402
+ },
1403
+ {
1404
+ "name": "add_table_row",
1405
+ "displayName": "Add Table Row",
1406
+ "description": "Add one or more rows to a table. Values is a 2D array where each inner array is a row. The number of values in each row must match the number of table columns. Optionally specify an insertion index (0-based); rows are appended at the end if omitted.",
1407
+ "summary": "Add rows to a table",
1408
+ "icon": "plus",
1409
+ "group": "Tables",
1410
+ "input_schema": {
1411
+ "type": "object",
1412
+ "properties": {
1413
+ "table": {
1414
+ "type": "string",
1415
+ "description": "Table name or ID"
1416
+ },
1417
+ "values": {
1418
+ "type": "array",
1419
+ "items": {
1420
+ "type": "array",
1421
+ "items": {}
1422
+ },
1423
+ "description": "2D array of row values. Each inner array is one row."
1424
+ },
1425
+ "index": {
1426
+ "description": "Zero-based insertion index. Appends at end if omitted.",
1427
+ "type": "integer",
1428
+ "minimum": 0,
1429
+ "maximum": 9007199254740991
1430
+ }
1431
+ },
1432
+ "required": [
1433
+ "table",
1434
+ "values"
1435
+ ],
1436
+ "additionalProperties": false
1437
+ },
1438
+ "output_schema": {
1439
+ "type": "object",
1440
+ "properties": {
1441
+ "row": {
1442
+ "type": "object",
1443
+ "properties": {
1444
+ "index": {
1445
+ "type": "integer",
1446
+ "minimum": -9007199254740991,
1447
+ "maximum": 9007199254740991,
1448
+ "description": "Zero-based row index within the table"
1449
+ },
1450
+ "values": {
1451
+ "type": "array",
1452
+ "items": {
1453
+ "type": "array",
1454
+ "items": {}
1455
+ },
1456
+ "description": "2D array with a single row of cell values"
1457
+ }
1458
+ },
1459
+ "required": [
1460
+ "index",
1461
+ "values"
1462
+ ],
1463
+ "additionalProperties": false
1464
+ }
1465
+ },
1466
+ "required": [
1467
+ "row"
1468
+ ],
1469
+ "additionalProperties": false
1470
+ }
1471
+ },
1472
+ {
1473
+ "name": "delete_table_row",
1474
+ "displayName": "Delete Table Row",
1475
+ "description": "Delete a specific row from a table by its zero-based index. The row is permanently removed and subsequent rows shift up.",
1476
+ "summary": "Delete a row from a table by index",
1477
+ "icon": "trash-2",
1478
+ "group": "Tables",
1479
+ "input_schema": {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "table": {
1483
+ "type": "string",
1484
+ "description": "Table name or ID"
1485
+ },
1486
+ "index": {
1487
+ "type": "integer",
1488
+ "minimum": 0,
1489
+ "maximum": 9007199254740991,
1490
+ "description": "Zero-based row index to delete"
1491
+ }
1492
+ },
1493
+ "required": [
1494
+ "table",
1495
+ "index"
1496
+ ],
1497
+ "additionalProperties": false
1498
+ },
1499
+ "output_schema": {
1500
+ "type": "object",
1501
+ "properties": {
1502
+ "success": {
1503
+ "type": "boolean",
1504
+ "description": "Whether the operation succeeded"
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "success"
1509
+ ],
1510
+ "additionalProperties": false
1511
+ }
1512
+ },
1513
+ {
1514
+ "name": "add_table_column",
1515
+ "displayName": "Add Table Column",
1516
+ "description": "Add a new column to a table. Provide values as a 2D array where the first value is the header name and subsequent values are the data for each existing row. Optionally specify an insertion index.",
1517
+ "summary": "Add a column to a table",
1518
+ "icon": "plus",
1519
+ "group": "Tables",
1520
+ "input_schema": {
1521
+ "type": "object",
1522
+ "properties": {
1523
+ "table": {
1524
+ "type": "string",
1525
+ "description": "Table name or ID"
1526
+ },
1527
+ "values": {
1528
+ "type": "array",
1529
+ "items": {
1530
+ "type": "array",
1531
+ "items": {}
1532
+ },
1533
+ "description": "2D column values — first entry is the header, rest are data rows"
1534
+ },
1535
+ "index": {
1536
+ "description": "Zero-based column insertion index. Appends at end if omitted.",
1537
+ "type": "integer",
1538
+ "minimum": 0,
1539
+ "maximum": 9007199254740991
1540
+ }
1541
+ },
1542
+ "required": [
1543
+ "table",
1544
+ "values"
1545
+ ],
1546
+ "additionalProperties": false
1547
+ },
1548
+ "output_schema": {
1549
+ "type": "object",
1550
+ "properties": {
1551
+ "column": {
1552
+ "type": "object",
1553
+ "properties": {
1554
+ "id": {
1555
+ "type": "string",
1556
+ "description": "Column ID"
1557
+ },
1558
+ "name": {
1559
+ "type": "string",
1560
+ "description": "Column name"
1561
+ },
1562
+ "index": {
1563
+ "type": "integer",
1564
+ "minimum": -9007199254740991,
1565
+ "maximum": 9007199254740991,
1566
+ "description": "Zero-based column index within the table"
1567
+ }
1568
+ },
1569
+ "required": [
1570
+ "id",
1571
+ "name",
1572
+ "index"
1573
+ ],
1574
+ "additionalProperties": false
1575
+ }
1576
+ },
1577
+ "required": [
1578
+ "column"
1579
+ ],
1580
+ "additionalProperties": false
1581
+ }
1582
+ },
1583
+ {
1584
+ "name": "list_charts",
1585
+ "displayName": "List Charts",
1586
+ "description": "List all charts in a worksheet. Returns chart names, IDs, dimensions, and positions.",
1587
+ "summary": "List all charts in a worksheet",
1588
+ "icon": "chart-bar",
1589
+ "group": "Charts",
1590
+ "input_schema": {
1591
+ "type": "object",
1592
+ "properties": {
1593
+ "worksheet": {
1594
+ "type": "string",
1595
+ "description": "Worksheet name (e.g., \"Sheet1\")"
1596
+ }
1597
+ },
1598
+ "required": [
1599
+ "worksheet"
1600
+ ],
1601
+ "additionalProperties": false
1602
+ },
1603
+ "output_schema": {
1604
+ "type": "object",
1605
+ "properties": {
1606
+ "charts": {
1607
+ "type": "array",
1608
+ "items": {
1609
+ "type": "object",
1610
+ "properties": {
1611
+ "id": {
1612
+ "type": "string",
1613
+ "description": "Chart ID"
1614
+ },
1615
+ "name": {
1616
+ "type": "string",
1617
+ "description": "Chart name"
1618
+ },
1619
+ "height": {
1620
+ "type": "number",
1621
+ "description": "Chart height in points"
1622
+ },
1623
+ "width": {
1624
+ "type": "number",
1625
+ "description": "Chart width in points"
1626
+ },
1627
+ "top": {
1628
+ "type": "number",
1629
+ "description": "Distance from top of worksheet in points"
1630
+ },
1631
+ "left": {
1632
+ "type": "number",
1633
+ "description": "Distance from left of worksheet in points"
1634
+ }
1635
+ },
1636
+ "required": [
1637
+ "id",
1638
+ "name",
1639
+ "height",
1640
+ "width",
1641
+ "top",
1642
+ "left"
1643
+ ],
1644
+ "additionalProperties": false
1645
+ }
1646
+ }
1647
+ },
1648
+ "required": [
1649
+ "charts"
1650
+ ],
1651
+ "additionalProperties": false
1652
+ }
1653
+ },
1654
+ {
1655
+ "name": "create_chart",
1656
+ "displayName": "Create Chart",
1657
+ "description": "Create a new chart in a worksheet from a data range. Supports chart types like ColumnClustered, Line, Pie, Bar, Area, and more. The source_data range should include headers.",
1658
+ "summary": "Create a chart from data",
1659
+ "icon": "chart-bar",
1660
+ "group": "Charts",
1661
+ "input_schema": {
1662
+ "type": "object",
1663
+ "properties": {
1664
+ "worksheet": {
1665
+ "type": "string",
1666
+ "description": "Worksheet name to create the chart in"
1667
+ },
1668
+ "type": {
1669
+ "type": "string",
1670
+ "description": "Chart type (e.g., \"ColumnClustered\", \"Line\", \"Pie\", \"Bar\", \"Area\", \"XYScatter\", \"Doughnut\")"
1671
+ },
1672
+ "source_data": {
1673
+ "type": "string",
1674
+ "description": "Source data range in A1 notation (e.g., \"A1:C10\")"
1675
+ },
1676
+ "series_by": {
1677
+ "description": "How data series are organized (default \"Auto\")",
1678
+ "type": "string",
1679
+ "enum": [
1680
+ "Auto",
1681
+ "Columns",
1682
+ "Rows"
1683
+ ]
1684
+ }
1685
+ },
1686
+ "required": [
1687
+ "worksheet",
1688
+ "type",
1689
+ "source_data"
1690
+ ],
1691
+ "additionalProperties": false
1692
+ },
1693
+ "output_schema": {
1694
+ "type": "object",
1695
+ "properties": {
1696
+ "chart": {
1697
+ "type": "object",
1698
+ "properties": {
1699
+ "id": {
1700
+ "type": "string",
1701
+ "description": "Chart ID"
1702
+ },
1703
+ "name": {
1704
+ "type": "string",
1705
+ "description": "Chart name"
1706
+ },
1707
+ "height": {
1708
+ "type": "number",
1709
+ "description": "Chart height in points"
1710
+ },
1711
+ "width": {
1712
+ "type": "number",
1713
+ "description": "Chart width in points"
1714
+ },
1715
+ "top": {
1716
+ "type": "number",
1717
+ "description": "Distance from top of worksheet in points"
1718
+ },
1719
+ "left": {
1720
+ "type": "number",
1721
+ "description": "Distance from left of worksheet in points"
1722
+ }
1723
+ },
1724
+ "required": [
1725
+ "id",
1726
+ "name",
1727
+ "height",
1728
+ "width",
1729
+ "top",
1730
+ "left"
1731
+ ],
1732
+ "additionalProperties": false
1733
+ }
1734
+ },
1735
+ "required": [
1736
+ "chart"
1737
+ ],
1738
+ "additionalProperties": false
1739
+ }
1740
+ },
1741
+ {
1742
+ "name": "delete_chart",
1743
+ "displayName": "Delete Chart",
1744
+ "description": "Delete a chart from a worksheet by its name.",
1745
+ "summary": "Delete a chart",
1746
+ "icon": "trash-2",
1747
+ "group": "Charts",
1748
+ "input_schema": {
1749
+ "type": "object",
1750
+ "properties": {
1751
+ "worksheet": {
1752
+ "type": "string",
1753
+ "description": "Worksheet name"
1754
+ },
1755
+ "chart": {
1756
+ "type": "string",
1757
+ "description": "Chart name"
1758
+ }
1759
+ },
1760
+ "required": [
1761
+ "worksheet",
1762
+ "chart"
1763
+ ],
1764
+ "additionalProperties": false
1765
+ },
1766
+ "output_schema": {
1767
+ "type": "object",
1768
+ "properties": {
1769
+ "success": {
1770
+ "type": "boolean",
1771
+ "description": "Whether the operation succeeded"
1772
+ }
1773
+ },
1774
+ "required": [
1775
+ "success"
1776
+ ],
1777
+ "additionalProperties": false
1778
+ }
1779
+ }
1780
+ ]
1781
+ }