gogcli-mcp-slides 4.2.3 → 4.2.4

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.
@@ -7,7 +7,7 @@
7
7
  },
8
8
  "metadata": {
9
9
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
10
- "version": "4.2.3"
10
+ "version": "4.2.4"
11
11
  },
12
12
  "plugins": [
13
13
  {
@@ -15,7 +15,7 @@
15
15
  "displayName": "gogcli (Slides)",
16
16
  "source": "./",
17
17
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
18
- "version": "4.2.3",
18
+ "version": "4.2.4",
19
19
  "author": {
20
20
  "name": "Chris Hall"
21
21
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "gogcli-mcp-slides",
3
3
  "displayName": "gogcli (Slides)",
4
- "version": "4.2.3",
4
+ "version": "4.2.4",
5
5
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
6
6
  "author": {
7
7
  "name": "Chris Hall",
package/dist/index.js CHANGED
@@ -35535,7 +35535,7 @@ function registerSlidesTools(server) {
35535
35535
  }
35536
35536
 
35537
35537
  // ../gogcli-mcp/src/server.ts
35538
- var VERSION = true ? "4.2.3" : "0.0.0";
35538
+ var VERSION = true ? "4.2.4" : "0.0.0";
35539
35539
 
35540
35540
  // ../gogcli-mcp/src/bootstrap-auth.ts
35541
35541
  import { join as join2 } from "node:path";
@@ -35674,6 +35674,7 @@ function registerExtraSlidesTools(server) {
35674
35674
  });
35675
35675
  server.registerTool("gog_slides_insert_image", {
35676
35676
  description: "Place an image on an existing slide at a given size and position, from a local file (image) or a public HTTPS URL (url \u2014 no Drive upload or sharing required). Unlike gog_slides_add_slide (which creates a new full-bleed image slide), this inserts onto a slide you already have. width is required; omit height to keep aspect ratio when using a local file (gog requires both width and height when using url).",
35677
+ annotations: { destructiveHint: false },
35677
35678
  inputSchema: external_exports.object({
35678
35679
  presentationId: external_exports.string().describe("Presentation ID"),
35679
35680
  slideId: external_exports.string().describe("Slide ID (object ID of the target slide)"),
@@ -35710,6 +35711,7 @@ function registerExtraSlidesTools(server) {
35710
35711
  });
35711
35712
  server.registerTool("gog_slides_skip_slide", {
35712
35713
  description: "Skip a slide during presentation \u2014 it stays in the deck at its current position but is not shown when presenting (and is left out of a PDF export). Use this instead of gog_slides_delete_slide when a slide should be omitted from a talk without losing it. Reverse with gog_slides_unskip_slide; gog_slides_list_slides reports which slides are skipped.",
35714
+ annotations: { destructiveHint: false },
35713
35715
  inputSchema: external_exports.object({
35714
35716
  presentationId: external_exports.string().describe("Presentation ID"),
35715
35717
  slideId: external_exports.string().describe("Slide ID to skip (from gog_slides_list_slides)"),
@@ -35720,6 +35722,7 @@ function registerExtraSlidesTools(server) {
35720
35722
  });
35721
35723
  server.registerTool("gog_slides_unskip_slide", {
35722
35724
  description: "Include a previously skipped slide again when the deck is presented. Safe to call on a slide that was never skipped.",
35725
+ annotations: { destructiveHint: false },
35723
35726
  inputSchema: external_exports.object({
35724
35727
  presentationId: external_exports.string().describe("Presentation ID"),
35725
35728
  slideId: external_exports.string().describe("Slide ID to unskip (from gog_slides_list_slides)"),
@@ -35821,6 +35824,7 @@ function registerExtraSlidesTools(server) {
35821
35824
  });
35822
35825
  server.registerTool("gog_slides_new_slide", {
35823
35826
  description: "Create a new native themed slide with a predefined layout (default BLANK) or an exact presentation layout object ID, at a zero-based insertion index.",
35827
+ annotations: { destructiveHint: false },
35824
35828
  inputSchema: external_exports.object({
35825
35829
  presentationId: external_exports.string().describe("Presentation ID"),
35826
35830
  layout: external_exports.enum(["BIG_NUMBER", "BLANK", "CAPTION_ONLY", "MAIN_POINT", "ONE_COLUMN_TEXT", "SECTION_HEADER", "SECTION_TITLE_AND_DESCRIPTION", "TITLE", "TITLE_AND_BODY", "TITLE_AND_TWO_COLUMNS", "TITLE_ONLY"]).optional().describe("Predefined slide layout (default: BLANK). Mutually exclusive with layoutId."),
@@ -35837,6 +35841,7 @@ function registerExtraSlidesTools(server) {
35837
35841
  });
35838
35842
  server.registerTool("gog_slides_duplicate_slide", {
35839
35843
  description: "Duplicate a slide by object ID, optionally placing the copy at a zero-based insertion index.",
35844
+ annotations: { destructiveHint: false },
35840
35845
  inputSchema: external_exports.object({
35841
35846
  presentationId: external_exports.string().describe("Presentation ID"),
35842
35847
  slideId: external_exports.string().describe("Slide object ID to duplicate"),
@@ -35850,6 +35855,7 @@ function registerExtraSlidesTools(server) {
35850
35855
  });
35851
35856
  server.registerTool("gog_slides_move_slide", {
35852
35857
  description: "Move a slide to a zero-based insertion index within the presentation.",
35858
+ annotations: { destructiveHint: false },
35853
35859
  inputSchema: external_exports.object({
35854
35860
  presentationId: external_exports.string().describe("Presentation ID"),
35855
35861
  slideId: external_exports.string().describe("Slide object ID to move"),
@@ -35882,6 +35888,7 @@ function registerExtraSlidesTools(server) {
35882
35888
  });
35883
35889
  server.registerTool("gog_slides_style_text", {
35884
35890
  description: "Apply range-scoped text styling to one page element. range is a UTF-16 start:end span (use gog_slides_locate to find it). Boolean flags set the attribute; the no* flags clear it.",
35891
+ annotations: { destructiveHint: false },
35885
35892
  inputSchema: external_exports.object({
35886
35893
  presentationId: external_exports.string().describe("Presentation ID"),
35887
35894
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the text"),
@@ -35912,6 +35919,7 @@ function registerExtraSlidesTools(server) {
35912
35919
  });
35913
35920
  server.registerTool("gog_slides_link", {
35914
35921
  description: "Apply or clear a hyperlink on a UTF-16 text range in one page element. Provide url to set the link, or clear=true to remove it.",
35922
+ annotations: { destructiveHint: false },
35915
35923
  inputSchema: external_exports.object({
35916
35924
  presentationId: external_exports.string().describe("Presentation ID"),
35917
35925
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the text"),
@@ -35928,6 +35936,7 @@ function registerExtraSlidesTools(server) {
35928
35936
  });
35929
35937
  server.registerTool("gog_slides_bullets", {
35930
35938
  description: "Turn paragraph bullets on or off for a UTF-16 paragraph range in one page element. Use on (optionally with a preset glyph) or off.",
35939
+ annotations: { destructiveHint: false },
35931
35940
  inputSchema: external_exports.object({
35932
35941
  presentationId: external_exports.string().describe("Presentation ID"),
35933
35942
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the paragraphs"),
@@ -35967,6 +35976,7 @@ function registerExtraSlidesTools(server) {
35967
35976
  });
35968
35977
  server.registerTool("gog_slides_element_create_shape", {
35969
35978
  description: "Create a native shape on a slide. type is a Slides shape type (e.g. RECTANGLE, TEXT_BOX, ELLIPSE, ROUND_RECTANGLE). Position/size are in unit (default PT).",
35979
+ annotations: { destructiveHint: false },
35970
35980
  inputSchema: external_exports.object({
35971
35981
  presentationId: external_exports.string().describe("Presentation ID"),
35972
35982
  slideId: external_exports.string().describe("Slide object ID to create the shape on"),
@@ -35992,6 +36002,7 @@ function registerExtraSlidesTools(server) {
35992
36002
  });
35993
36003
  server.registerTool("gog_slides_element_create_line", {
35994
36004
  description: "Create a native line on a slide. category is the connector routing (STRAIGHT, BENT, CURVED). Start position and extent are in unit (default PT).",
36005
+ annotations: { destructiveHint: false },
35995
36006
  inputSchema: external_exports.object({
35996
36007
  presentationId: external_exports.string().describe("Presentation ID"),
35997
36008
  slideId: external_exports.string().describe("Slide object ID to create the line on"),
@@ -36017,6 +36028,7 @@ function registerExtraSlidesTools(server) {
36017
36028
  });
36018
36029
  server.registerTool("gog_slides_element_style", {
36019
36030
  description: "Style a shape fill/outline or a line. Set kind to shape or line. Colors are #RGB or #RRGGBB.",
36031
+ annotations: { destructiveHint: false },
36020
36032
  inputSchema: external_exports.object({
36021
36033
  presentationId: external_exports.string().describe("Presentation ID"),
36022
36034
  objectId: external_exports.string().describe("Object ID of the shape or line"),
@@ -36042,6 +36054,7 @@ function registerExtraSlidesTools(server) {
36042
36054
  });
36043
36055
  server.registerTool("gog_slides_element_transform", {
36044
36056
  description: "Move, resize, rotate, or shear a page element. apply-mode RELATIVE (default) composes with the existing transform; ABSOLUTE replaces it. Translation is in unit (default PT).",
36057
+ annotations: { destructiveHint: false },
36045
36058
  inputSchema: external_exports.object({
36046
36059
  presentationId: external_exports.string().describe("Presentation ID"),
36047
36060
  objectId: external_exports.string().describe("Object ID of the element to transform"),
@@ -36071,6 +36084,7 @@ function registerExtraSlidesTools(server) {
36071
36084
  });
36072
36085
  server.registerTool("gog_slides_element_z_order", {
36073
36086
  description: "Change a page element's stacking order.",
36087
+ annotations: { destructiveHint: false },
36074
36088
  inputSchema: external_exports.object({
36075
36089
  presentationId: external_exports.string().describe("Presentation ID"),
36076
36090
  objectId: external_exports.string().describe("Object ID of the element to restack"),
@@ -36082,6 +36096,7 @@ function registerExtraSlidesTools(server) {
36082
36096
  });
36083
36097
  server.registerTool("gog_slides_element_group", {
36084
36098
  description: "Group two or more page elements into a single group.",
36099
+ annotations: { destructiveHint: false },
36085
36100
  inputSchema: external_exports.object({
36086
36101
  presentationId: external_exports.string().describe("Presentation ID"),
36087
36102
  objectIds: external_exports.array(external_exports.string()).min(2).describe("Two or more element object IDs to group"),
@@ -36095,6 +36110,7 @@ function registerExtraSlidesTools(server) {
36095
36110
  });
36096
36111
  server.registerTool("gog_slides_element_ungroup", {
36097
36112
  description: "Ungroup one or more element groups back into their constituent elements.",
36113
+ annotations: { destructiveHint: false },
36098
36114
  inputSchema: external_exports.object({
36099
36115
  presentationId: external_exports.string().describe("Presentation ID"),
36100
36116
  groupIds: external_exports.array(external_exports.string()).min(1).describe("One or more group object IDs to ungroup"),
@@ -36105,6 +36121,7 @@ function registerExtraSlidesTools(server) {
36105
36121
  });
36106
36122
  server.registerTool("gog_slides_element_alt_text", {
36107
36123
  description: "Set or clear a page element's accessibility title and/or description. Pass an empty string to clear a field.",
36124
+ annotations: { destructiveHint: false },
36108
36125
  inputSchema: external_exports.object({
36109
36126
  presentationId: external_exports.string().describe("Presentation ID"),
36110
36127
  objectId: external_exports.string().describe("Object ID of the element"),
@@ -36131,6 +36148,7 @@ function registerExtraSlidesTools(server) {
36131
36148
  });
36132
36149
  server.registerTool("gog_slides_table_create", {
36133
36150
  description: "Create an auto-sized native table on a slide with the given row and column counts.",
36151
+ annotations: { destructiveHint: false },
36134
36152
  inputSchema: external_exports.object({
36135
36153
  presentationId: external_exports.string().describe("Presentation ID"),
36136
36154
  slideId: external_exports.string().describe("Slide object ID to create the table on"),
@@ -36146,6 +36164,7 @@ function registerExtraSlidesTools(server) {
36146
36164
  });
36147
36165
  server.registerTool("gog_slides_table_cell_style", {
36148
36166
  description: "Style one zero-based table cell: background fill, vertical content alignment, and inline text styling (optionally scoped to a UTF-16 range within the cell). Boolean flags set the attribute; the no* flags clear it.",
36167
+ annotations: { destructiveHint: false },
36149
36168
  inputSchema: external_exports.object({
36150
36169
  presentationId: external_exports.string().describe("Presentation ID"),
36151
36170
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36185,6 +36204,7 @@ function registerExtraSlidesTools(server) {
36185
36204
  });
36186
36205
  server.registerTool("gog_slides_table_border_style", {
36187
36206
  description: "Style borders around or within a zero-based table cell range. position selects which borders are affected; dash sets the line style.",
36207
+ annotations: { destructiveHint: false },
36188
36208
  inputSchema: external_exports.object({
36189
36209
  presentationId: external_exports.string().describe("Presentation ID"),
36190
36210
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36212,6 +36232,7 @@ function registerExtraSlidesTools(server) {
36212
36232
  });
36213
36233
  server.registerTool("gog_slides_table_column_insert", {
36214
36234
  description: "Insert one or more columns relative to a zero-based table column. Inserts to the left by default, or to the right with right=true.",
36235
+ annotations: { destructiveHint: false },
36215
36236
  inputSchema: external_exports.object({
36216
36237
  presentationId: external_exports.string().describe("Presentation ID"),
36217
36238
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36240,6 +36261,7 @@ function registerExtraSlidesTools(server) {
36240
36261
  });
36241
36262
  server.registerTool("gog_slides_table_column_size", {
36242
36263
  description: "Set the width of a zero-based table column.",
36264
+ annotations: { destructiveHint: false },
36243
36265
  inputSchema: external_exports.object({
36244
36266
  presentationId: external_exports.string().describe("Presentation ID"),
36245
36267
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36252,6 +36274,7 @@ function registerExtraSlidesTools(server) {
36252
36274
  });
36253
36275
  server.registerTool("gog_slides_table_row_insert", {
36254
36276
  description: "Insert one or more rows relative to a zero-based table row. Inserts above by default, or below with below=true.",
36277
+ annotations: { destructiveHint: false },
36255
36278
  inputSchema: external_exports.object({
36256
36279
  presentationId: external_exports.string().describe("Presentation ID"),
36257
36280
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36280,6 +36303,7 @@ function registerExtraSlidesTools(server) {
36280
36303
  });
36281
36304
  server.registerTool("gog_slides_table_row_size", {
36282
36305
  description: "Set the minimum height of a zero-based table row.",
36306
+ annotations: { destructiveHint: false },
36283
36307
  inputSchema: external_exports.object({
36284
36308
  presentationId: external_exports.string().describe("Presentation ID"),
36285
36309
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36310,6 +36334,7 @@ function registerExtraSlidesTools(server) {
36310
36334
  });
36311
36335
  server.registerTool("gog_slides_table_unmerge", {
36312
36336
  description: "Unmerge (split) a rectangular range of previously merged cells, starting at a zero-based cell.",
36337
+ annotations: { destructiveHint: false },
36313
36338
  inputSchema: external_exports.object({
36314
36339
  presentationId: external_exports.string().describe("Presentation ID"),
36315
36340
  tableObjectId: external_exports.string().describe("Table object ID"),
package/manifest.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "manifest_version": "0.3",
4
4
  "name": "gogcli-mcp-slides",
5
5
  "display_name": "gogcli (Slides)",
6
- "version": "4.2.3",
6
+ "version": "4.2.4",
7
7
  "description": "Extended Google Slides for Claude via gogcli — auth + full Slides support (create, edit, export, templates, markdown)",
8
8
  "author": {
9
9
  "name": "Chris Hall",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gogcli-mcp-slides",
3
- "version": "4.2.3",
3
+ "version": "4.2.4",
4
4
  "mcpName": "io.github.chrischall/gogcli-mcp-slides",
5
5
  "description": "Extended Google Slides MCP server via gogcli — auth + full Slides support",
6
6
  "author": "Claude Code (AI) <https://www.anthropic.com/claude>",
package/server.json CHANGED
@@ -7,12 +7,12 @@
7
7
  "source": "github",
8
8
  "subfolder": "packages/gogcli-mcp-slides"
9
9
  },
10
- "version": "4.2.3",
10
+ "version": "4.2.4",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "gogcli-mcp-slides",
15
- "version": "4.2.3",
15
+ "version": "4.2.4",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -91,6 +91,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
91
91
 
92
92
  server.registerTool('gog_slides_insert_image', {
93
93
  description: 'Place an image on an existing slide at a given size and position, from a local file (image) or a public HTTPS URL (url — no Drive upload or sharing required). Unlike gog_slides_add_slide (which creates a new full-bleed image slide), this inserts onto a slide you already have. width is required; omit height to keep aspect ratio when using a local file (gog requires both width and height when using url).',
94
+ annotations: { destructiveHint: false },
94
95
  inputSchema: z.object({
95
96
  presentationId: z.string().describe('Presentation ID'),
96
97
  slideId: z.string().describe('Slide ID (object ID of the target slide)'),
@@ -141,6 +142,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
141
142
  'Skip a slide during presentation — it stays in the deck at its current position but is not shown when presenting '
142
143
  + '(and is left out of a PDF export). Use this instead of gog_slides_delete_slide when a slide should be omitted from '
143
144
  + 'a talk without losing it. Reverse with gog_slides_unskip_slide; gog_slides_list_slides reports which slides are skipped.',
145
+ annotations: { destructiveHint: false },
144
146
  inputSchema: z.object({
145
147
  presentationId: z.string().describe('Presentation ID'),
146
148
  slideId: z.string().describe('Slide ID to skip (from gog_slides_list_slides)'),
@@ -153,6 +155,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
153
155
  server.registerTool('gog_slides_unskip_slide', {
154
156
  description:
155
157
  'Include a previously skipped slide again when the deck is presented. Safe to call on a slide that was never skipped.',
158
+ annotations: { destructiveHint: false },
156
159
  inputSchema: z.object({
157
160
  presentationId: z.string().describe('Presentation ID'),
158
161
  slideId: z.string().describe('Slide ID to unskip (from gog_slides_list_slides)'),
@@ -265,6 +268,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
265
268
 
266
269
  server.registerTool('gog_slides_new_slide', {
267
270
  description: 'Create a new native themed slide with a predefined layout (default BLANK) or an exact presentation layout object ID, at a zero-based insertion index.',
271
+ annotations: { destructiveHint: false },
268
272
  inputSchema: z.object({
269
273
  presentationId: z.string().describe('Presentation ID'),
270
274
  layout: z.enum(['BIG_NUMBER', 'BLANK', 'CAPTION_ONLY', 'MAIN_POINT', 'ONE_COLUMN_TEXT', 'SECTION_HEADER', 'SECTION_TITLE_AND_DESCRIPTION', 'TITLE', 'TITLE_AND_BODY', 'TITLE_AND_TWO_COLUMNS', 'TITLE_ONLY']).optional().describe('Predefined slide layout (default: BLANK). Mutually exclusive with layoutId.'),
@@ -282,6 +286,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
282
286
 
283
287
  server.registerTool('gog_slides_duplicate_slide', {
284
288
  description: 'Duplicate a slide by object ID, optionally placing the copy at a zero-based insertion index.',
289
+ annotations: { destructiveHint: false },
285
290
  inputSchema: z.object({
286
291
  presentationId: z.string().describe('Presentation ID'),
287
292
  slideId: z.string().describe('Slide object ID to duplicate'),
@@ -296,6 +301,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
296
301
 
297
302
  server.registerTool('gog_slides_move_slide', {
298
303
  description: 'Move a slide to a zero-based insertion index within the presentation.',
304
+ annotations: { destructiveHint: false },
299
305
  inputSchema: z.object({
300
306
  presentationId: z.string().describe('Presentation ID'),
301
307
  slideId: z.string().describe('Slide object ID to move'),
@@ -332,6 +338,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
332
338
 
333
339
  server.registerTool('gog_slides_style_text', {
334
340
  description: 'Apply range-scoped text styling to one page element. range is a UTF-16 start:end span (use gog_slides_locate to find it). Boolean flags set the attribute; the no* flags clear it.',
341
+ annotations: { destructiveHint: false },
335
342
  inputSchema: z.object({
336
343
  presentationId: z.string().describe('Presentation ID'),
337
344
  objectId: z.string().describe('Object ID of the shape or table cell containing the text'),
@@ -363,6 +370,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
363
370
 
364
371
  server.registerTool('gog_slides_link', {
365
372
  description: 'Apply or clear a hyperlink on a UTF-16 text range in one page element. Provide url to set the link, or clear=true to remove it.',
373
+ annotations: { destructiveHint: false },
366
374
  inputSchema: z.object({
367
375
  presentationId: z.string().describe('Presentation ID'),
368
376
  objectId: z.string().describe('Object ID of the shape or table cell containing the text'),
@@ -380,6 +388,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
380
388
 
381
389
  server.registerTool('gog_slides_bullets', {
382
390
  description: 'Turn paragraph bullets on or off for a UTF-16 paragraph range in one page element. Use on (optionally with a preset glyph) or off.',
391
+ annotations: { destructiveHint: false },
383
392
  inputSchema: z.object({
384
393
  presentationId: z.string().describe('Presentation ID'),
385
394
  objectId: z.string().describe('Object ID of the shape or table cell containing the paragraphs'),
@@ -423,6 +432,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
423
432
 
424
433
  server.registerTool('gog_slides_element_create_shape', {
425
434
  description: 'Create a native shape on a slide. type is a Slides shape type (e.g. RECTANGLE, TEXT_BOX, ELLIPSE, ROUND_RECTANGLE). Position/size are in unit (default PT).',
435
+ annotations: { destructiveHint: false },
426
436
  inputSchema: z.object({
427
437
  presentationId: z.string().describe('Presentation ID'),
428
438
  slideId: z.string().describe('Slide object ID to create the shape on'),
@@ -449,6 +459,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
449
459
 
450
460
  server.registerTool('gog_slides_element_create_line', {
451
461
  description: 'Create a native line on a slide. category is the connector routing (STRAIGHT, BENT, CURVED). Start position and extent are in unit (default PT).',
462
+ annotations: { destructiveHint: false },
452
463
  inputSchema: z.object({
453
464
  presentationId: z.string().describe('Presentation ID'),
454
465
  slideId: z.string().describe('Slide object ID to create the line on'),
@@ -475,6 +486,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
475
486
 
476
487
  server.registerTool('gog_slides_element_style', {
477
488
  description: 'Style a shape fill/outline or a line. Set kind to shape or line. Colors are #RGB or #RRGGBB.',
489
+ annotations: { destructiveHint: false },
478
490
  inputSchema: z.object({
479
491
  presentationId: z.string().describe('Presentation ID'),
480
492
  objectId: z.string().describe('Object ID of the shape or line'),
@@ -501,6 +513,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
501
513
 
502
514
  server.registerTool('gog_slides_element_transform', {
503
515
  description: 'Move, resize, rotate, or shear a page element. apply-mode RELATIVE (default) composes with the existing transform; ABSOLUTE replaces it. Translation is in unit (default PT).',
516
+ annotations: { destructiveHint: false },
504
517
  inputSchema: z.object({
505
518
  presentationId: z.string().describe('Presentation ID'),
506
519
  objectId: z.string().describe('Object ID of the element to transform'),
@@ -531,6 +544,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
531
544
 
532
545
  server.registerTool('gog_slides_element_z_order', {
533
546
  description: 'Change a page element\'s stacking order.',
547
+ annotations: { destructiveHint: false },
534
548
  inputSchema: z.object({
535
549
  presentationId: z.string().describe('Presentation ID'),
536
550
  objectId: z.string().describe('Object ID of the element to restack'),
@@ -543,6 +557,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
543
557
 
544
558
  server.registerTool('gog_slides_element_group', {
545
559
  description: 'Group two or more page elements into a single group.',
560
+ annotations: { destructiveHint: false },
546
561
  inputSchema: z.object({
547
562
  presentationId: z.string().describe('Presentation ID'),
548
563
  objectIds: z.array(z.string()).min(2).describe('Two or more element object IDs to group'),
@@ -557,6 +572,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
557
572
 
558
573
  server.registerTool('gog_slides_element_ungroup', {
559
574
  description: 'Ungroup one or more element groups back into their constituent elements.',
575
+ annotations: { destructiveHint: false },
560
576
  inputSchema: z.object({
561
577
  presentationId: z.string().describe('Presentation ID'),
562
578
  groupIds: z.array(z.string()).min(1).describe('One or more group object IDs to ungroup'),
@@ -568,6 +584,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
568
584
 
569
585
  server.registerTool('gog_slides_element_alt_text', {
570
586
  description: 'Set or clear a page element\'s accessibility title and/or description. Pass an empty string to clear a field.',
587
+ annotations: { destructiveHint: false },
571
588
  inputSchema: z.object({
572
589
  presentationId: z.string().describe('Presentation ID'),
573
590
  objectId: z.string().describe('Object ID of the element'),
@@ -599,6 +616,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
599
616
 
600
617
  server.registerTool('gog_slides_table_create', {
601
618
  description: 'Create an auto-sized native table on a slide with the given row and column counts.',
619
+ annotations: { destructiveHint: false },
602
620
  inputSchema: z.object({
603
621
  presentationId: z.string().describe('Presentation ID'),
604
622
  slideId: z.string().describe('Slide object ID to create the table on'),
@@ -615,6 +633,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
615
633
 
616
634
  server.registerTool('gog_slides_table_cell_style', {
617
635
  description: 'Style one zero-based table cell: background fill, vertical content alignment, and inline text styling (optionally scoped to a UTF-16 range within the cell). Boolean flags set the attribute; the no* flags clear it.',
636
+ annotations: { destructiveHint: false },
618
637
  inputSchema: z.object({
619
638
  presentationId: z.string().describe('Presentation ID'),
620
639
  tableObjectId: z.string().describe('Table object ID'),
@@ -655,6 +674,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
655
674
 
656
675
  server.registerTool('gog_slides_table_border_style', {
657
676
  description: 'Style borders around or within a zero-based table cell range. position selects which borders are affected; dash sets the line style.',
677
+ annotations: { destructiveHint: false },
658
678
  inputSchema: z.object({
659
679
  presentationId: z.string().describe('Presentation ID'),
660
680
  tableObjectId: z.string().describe('Table object ID'),
@@ -683,6 +703,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
683
703
 
684
704
  server.registerTool('gog_slides_table_column_insert', {
685
705
  description: 'Insert one or more columns relative to a zero-based table column. Inserts to the left by default, or to the right with right=true.',
706
+ annotations: { destructiveHint: false },
686
707
  inputSchema: z.object({
687
708
  presentationId: z.string().describe('Presentation ID'),
688
709
  tableObjectId: z.string().describe('Table object ID'),
@@ -713,6 +734,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
713
734
 
714
735
  server.registerTool('gog_slides_table_column_size', {
715
736
  description: 'Set the width of a zero-based table column.',
737
+ annotations: { destructiveHint: false },
716
738
  inputSchema: z.object({
717
739
  presentationId: z.string().describe('Presentation ID'),
718
740
  tableObjectId: z.string().describe('Table object ID'),
@@ -726,6 +748,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
726
748
 
727
749
  server.registerTool('gog_slides_table_row_insert', {
728
750
  description: 'Insert one or more rows relative to a zero-based table row. Inserts above by default, or below with below=true.',
751
+ annotations: { destructiveHint: false },
729
752
  inputSchema: z.object({
730
753
  presentationId: z.string().describe('Presentation ID'),
731
754
  tableObjectId: z.string().describe('Table object ID'),
@@ -756,6 +779,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
756
779
 
757
780
  server.registerTool('gog_slides_table_row_size', {
758
781
  description: 'Set the minimum height of a zero-based table row.',
782
+ annotations: { destructiveHint: false },
759
783
  inputSchema: z.object({
760
784
  presentationId: z.string().describe('Presentation ID'),
761
785
  tableObjectId: z.string().describe('Table object ID'),
@@ -788,6 +812,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
788
812
 
789
813
  server.registerTool('gog_slides_table_unmerge', {
790
814
  description: 'Unmerge (split) a rectangular range of previously merged cells, starting at a zero-based cell.',
815
+ annotations: { destructiveHint: false },
791
816
  inputSchema: z.object({
792
817
  presentationId: z.string().describe('Presentation ID'),
793
818
  tableObjectId: z.string().describe('Table object ID'),