gogcli-mcp-slides 4.2.2 → 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.2"
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.2",
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.2",
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
@@ -35480,6 +35480,7 @@ function registerSlidesTools(server) {
35480
35480
  });
35481
35481
  server.registerTool("gog_slides_create", {
35482
35482
  description: "Create a new Google Slides presentation, optionally in a folder or copying from a template.",
35483
+ annotations: { destructiveHint: true },
35483
35484
  inputSchema: external_exports.object({
35484
35485
  title: external_exports.string().describe("Presentation title"),
35485
35486
  parent: external_exports.string().optional().describe("Destination folder ID"),
@@ -35494,6 +35495,7 @@ function registerSlidesTools(server) {
35494
35495
  });
35495
35496
  server.registerTool("gog_slides_copy", {
35496
35497
  description: "Copy a Google Slides presentation to a new presentation with the given title.",
35498
+ annotations: { destructiveHint: true },
35497
35499
  inputSchema: external_exports.object({
35498
35500
  presentationId: external_exports.string().describe("Presentation ID to copy"),
35499
35501
  title: external_exports.string().describe("Title for the new copy"),
@@ -35533,7 +35535,7 @@ function registerSlidesTools(server) {
35533
35535
  }
35534
35536
 
35535
35537
  // ../gogcli-mcp/src/server.ts
35536
- var VERSION = true ? "4.2.2" : "0.0.0";
35538
+ var VERSION = true ? "4.2.4" : "0.0.0";
35537
35539
 
35538
35540
  // ../gogcli-mcp/src/bootstrap-auth.ts
35539
35541
  import { join as join2 } from "node:path";
@@ -35611,6 +35613,7 @@ var MAX_BLOB_UPLOAD_BYTES = 100 * 1024 * 1024;
35611
35613
  function registerExtraSlidesTools(server) {
35612
35614
  server.registerTool("gog_slides_create_from_markdown", {
35613
35615
  description: "Create a new Google Slides presentation from markdown content (inline or from a file).",
35616
+ annotations: { destructiveHint: true },
35614
35617
  inputSchema: external_exports.object({
35615
35618
  title: external_exports.string().describe("Presentation title"),
35616
35619
  content: external_exports.string().optional().describe("Inline markdown content"),
@@ -35629,6 +35632,7 @@ function registerExtraSlidesTools(server) {
35629
35632
  });
35630
35633
  server.registerTool("gog_slides_create_from_template", {
35631
35634
  description: "Create a new Google Slides presentation from a template, with optional placeholder replacements.",
35635
+ annotations: { destructiveHint: true },
35632
35636
  inputSchema: external_exports.object({
35633
35637
  templateId: external_exports.string().describe("Template presentation ID"),
35634
35638
  title: external_exports.string().describe("New presentation title"),
@@ -35652,6 +35656,7 @@ function registerExtraSlidesTools(server) {
35652
35656
  });
35653
35657
  server.registerTool("gog_slides_add_slide", {
35654
35658
  description: "Add a new slide to a presentation from a local image, with optional speaker notes.",
35659
+ annotations: { destructiveHint: true },
35655
35660
  inputSchema: external_exports.object({
35656
35661
  presentationId: external_exports.string().describe("Presentation ID"),
35657
35662
  image: external_exports.string().describe("Path to the local image file"),
@@ -35669,6 +35674,7 @@ function registerExtraSlidesTools(server) {
35669
35674
  });
35670
35675
  server.registerTool("gog_slides_insert_image", {
35671
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 },
35672
35678
  inputSchema: external_exports.object({
35673
35679
  presentationId: external_exports.string().describe("Presentation ID"),
35674
35680
  slideId: external_exports.string().describe("Slide ID (object ID of the target slide)"),
@@ -35705,6 +35711,7 @@ function registerExtraSlidesTools(server) {
35705
35711
  });
35706
35712
  server.registerTool("gog_slides_skip_slide", {
35707
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 },
35708
35715
  inputSchema: external_exports.object({
35709
35716
  presentationId: external_exports.string().describe("Presentation ID"),
35710
35717
  slideId: external_exports.string().describe("Slide ID to skip (from gog_slides_list_slides)"),
@@ -35715,6 +35722,7 @@ function registerExtraSlidesTools(server) {
35715
35722
  });
35716
35723
  server.registerTool("gog_slides_unskip_slide", {
35717
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 },
35718
35726
  inputSchema: external_exports.object({
35719
35727
  presentationId: external_exports.string().describe("Presentation ID"),
35720
35728
  slideId: external_exports.string().describe("Slide ID to unskip (from gog_slides_list_slides)"),
@@ -35816,6 +35824,7 @@ function registerExtraSlidesTools(server) {
35816
35824
  });
35817
35825
  server.registerTool("gog_slides_new_slide", {
35818
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 },
35819
35828
  inputSchema: external_exports.object({
35820
35829
  presentationId: external_exports.string().describe("Presentation ID"),
35821
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."),
@@ -35832,6 +35841,7 @@ function registerExtraSlidesTools(server) {
35832
35841
  });
35833
35842
  server.registerTool("gog_slides_duplicate_slide", {
35834
35843
  description: "Duplicate a slide by object ID, optionally placing the copy at a zero-based insertion index.",
35844
+ annotations: { destructiveHint: false },
35835
35845
  inputSchema: external_exports.object({
35836
35846
  presentationId: external_exports.string().describe("Presentation ID"),
35837
35847
  slideId: external_exports.string().describe("Slide object ID to duplicate"),
@@ -35845,6 +35855,7 @@ function registerExtraSlidesTools(server) {
35845
35855
  });
35846
35856
  server.registerTool("gog_slides_move_slide", {
35847
35857
  description: "Move a slide to a zero-based insertion index within the presentation.",
35858
+ annotations: { destructiveHint: false },
35848
35859
  inputSchema: external_exports.object({
35849
35860
  presentationId: external_exports.string().describe("Presentation ID"),
35850
35861
  slideId: external_exports.string().describe("Slide object ID to move"),
@@ -35877,6 +35888,7 @@ function registerExtraSlidesTools(server) {
35877
35888
  });
35878
35889
  server.registerTool("gog_slides_style_text", {
35879
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 },
35880
35892
  inputSchema: external_exports.object({
35881
35893
  presentationId: external_exports.string().describe("Presentation ID"),
35882
35894
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the text"),
@@ -35907,6 +35919,7 @@ function registerExtraSlidesTools(server) {
35907
35919
  });
35908
35920
  server.registerTool("gog_slides_link", {
35909
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 },
35910
35923
  inputSchema: external_exports.object({
35911
35924
  presentationId: external_exports.string().describe("Presentation ID"),
35912
35925
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the text"),
@@ -35923,6 +35936,7 @@ function registerExtraSlidesTools(server) {
35923
35936
  });
35924
35937
  server.registerTool("gog_slides_bullets", {
35925
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 },
35926
35940
  inputSchema: external_exports.object({
35927
35941
  presentationId: external_exports.string().describe("Presentation ID"),
35928
35942
  objectId: external_exports.string().describe("Object ID of the shape or table cell containing the paragraphs"),
@@ -35962,6 +35976,7 @@ function registerExtraSlidesTools(server) {
35962
35976
  });
35963
35977
  server.registerTool("gog_slides_element_create_shape", {
35964
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 },
35965
35980
  inputSchema: external_exports.object({
35966
35981
  presentationId: external_exports.string().describe("Presentation ID"),
35967
35982
  slideId: external_exports.string().describe("Slide object ID to create the shape on"),
@@ -35987,6 +36002,7 @@ function registerExtraSlidesTools(server) {
35987
36002
  });
35988
36003
  server.registerTool("gog_slides_element_create_line", {
35989
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 },
35990
36006
  inputSchema: external_exports.object({
35991
36007
  presentationId: external_exports.string().describe("Presentation ID"),
35992
36008
  slideId: external_exports.string().describe("Slide object ID to create the line on"),
@@ -36012,6 +36028,7 @@ function registerExtraSlidesTools(server) {
36012
36028
  });
36013
36029
  server.registerTool("gog_slides_element_style", {
36014
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 },
36015
36032
  inputSchema: external_exports.object({
36016
36033
  presentationId: external_exports.string().describe("Presentation ID"),
36017
36034
  objectId: external_exports.string().describe("Object ID of the shape or line"),
@@ -36037,6 +36054,7 @@ function registerExtraSlidesTools(server) {
36037
36054
  });
36038
36055
  server.registerTool("gog_slides_element_transform", {
36039
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 },
36040
36058
  inputSchema: external_exports.object({
36041
36059
  presentationId: external_exports.string().describe("Presentation ID"),
36042
36060
  objectId: external_exports.string().describe("Object ID of the element to transform"),
@@ -36066,6 +36084,7 @@ function registerExtraSlidesTools(server) {
36066
36084
  });
36067
36085
  server.registerTool("gog_slides_element_z_order", {
36068
36086
  description: "Change a page element's stacking order.",
36087
+ annotations: { destructiveHint: false },
36069
36088
  inputSchema: external_exports.object({
36070
36089
  presentationId: external_exports.string().describe("Presentation ID"),
36071
36090
  objectId: external_exports.string().describe("Object ID of the element to restack"),
@@ -36077,6 +36096,7 @@ function registerExtraSlidesTools(server) {
36077
36096
  });
36078
36097
  server.registerTool("gog_slides_element_group", {
36079
36098
  description: "Group two or more page elements into a single group.",
36099
+ annotations: { destructiveHint: false },
36080
36100
  inputSchema: external_exports.object({
36081
36101
  presentationId: external_exports.string().describe("Presentation ID"),
36082
36102
  objectIds: external_exports.array(external_exports.string()).min(2).describe("Two or more element object IDs to group"),
@@ -36090,6 +36110,7 @@ function registerExtraSlidesTools(server) {
36090
36110
  });
36091
36111
  server.registerTool("gog_slides_element_ungroup", {
36092
36112
  description: "Ungroup one or more element groups back into their constituent elements.",
36113
+ annotations: { destructiveHint: false },
36093
36114
  inputSchema: external_exports.object({
36094
36115
  presentationId: external_exports.string().describe("Presentation ID"),
36095
36116
  groupIds: external_exports.array(external_exports.string()).min(1).describe("One or more group object IDs to ungroup"),
@@ -36100,6 +36121,7 @@ function registerExtraSlidesTools(server) {
36100
36121
  });
36101
36122
  server.registerTool("gog_slides_element_alt_text", {
36102
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 },
36103
36125
  inputSchema: external_exports.object({
36104
36126
  presentationId: external_exports.string().describe("Presentation ID"),
36105
36127
  objectId: external_exports.string().describe("Object ID of the element"),
@@ -36126,6 +36148,7 @@ function registerExtraSlidesTools(server) {
36126
36148
  });
36127
36149
  server.registerTool("gog_slides_table_create", {
36128
36150
  description: "Create an auto-sized native table on a slide with the given row and column counts.",
36151
+ annotations: { destructiveHint: false },
36129
36152
  inputSchema: external_exports.object({
36130
36153
  presentationId: external_exports.string().describe("Presentation ID"),
36131
36154
  slideId: external_exports.string().describe("Slide object ID to create the table on"),
@@ -36141,6 +36164,7 @@ function registerExtraSlidesTools(server) {
36141
36164
  });
36142
36165
  server.registerTool("gog_slides_table_cell_style", {
36143
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 },
36144
36168
  inputSchema: external_exports.object({
36145
36169
  presentationId: external_exports.string().describe("Presentation ID"),
36146
36170
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36180,6 +36204,7 @@ function registerExtraSlidesTools(server) {
36180
36204
  });
36181
36205
  server.registerTool("gog_slides_table_border_style", {
36182
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 },
36183
36208
  inputSchema: external_exports.object({
36184
36209
  presentationId: external_exports.string().describe("Presentation ID"),
36185
36210
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36207,6 +36232,7 @@ function registerExtraSlidesTools(server) {
36207
36232
  });
36208
36233
  server.registerTool("gog_slides_table_column_insert", {
36209
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 },
36210
36236
  inputSchema: external_exports.object({
36211
36237
  presentationId: external_exports.string().describe("Presentation ID"),
36212
36238
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36235,6 +36261,7 @@ function registerExtraSlidesTools(server) {
36235
36261
  });
36236
36262
  server.registerTool("gog_slides_table_column_size", {
36237
36263
  description: "Set the width of a zero-based table column.",
36264
+ annotations: { destructiveHint: false },
36238
36265
  inputSchema: external_exports.object({
36239
36266
  presentationId: external_exports.string().describe("Presentation ID"),
36240
36267
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36247,6 +36274,7 @@ function registerExtraSlidesTools(server) {
36247
36274
  });
36248
36275
  server.registerTool("gog_slides_table_row_insert", {
36249
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 },
36250
36278
  inputSchema: external_exports.object({
36251
36279
  presentationId: external_exports.string().describe("Presentation ID"),
36252
36280
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36275,6 +36303,7 @@ function registerExtraSlidesTools(server) {
36275
36303
  });
36276
36304
  server.registerTool("gog_slides_table_row_size", {
36277
36305
  description: "Set the minimum height of a zero-based table row.",
36306
+ annotations: { destructiveHint: false },
36278
36307
  inputSchema: external_exports.object({
36279
36308
  presentationId: external_exports.string().describe("Presentation ID"),
36280
36309
  tableObjectId: external_exports.string().describe("Table object ID"),
@@ -36305,6 +36334,7 @@ function registerExtraSlidesTools(server) {
36305
36334
  });
36306
36335
  server.registerTool("gog_slides_table_unmerge", {
36307
36336
  description: "Unmerge (split) a rectangular range of previously merged cells, starting at a zero-based cell.",
36337
+ annotations: { destructiveHint: false },
36308
36338
  inputSchema: external_exports.object({
36309
36339
  presentationId: external_exports.string().describe("Presentation ID"),
36310
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.2",
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.2",
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.2",
10
+ "version": "4.2.4",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "identifier": "gogcli-mcp-slides",
15
- "version": "4.2.2",
15
+ "version": "4.2.4",
16
16
  "transport": {
17
17
  "type": "stdio"
18
18
  },
@@ -27,6 +27,7 @@ import type { GogArg } from '../../../gogcli-mcp/src/lib.js';
27
27
  export function registerExtraSlidesTools(server: McpServer): void {
28
28
  server.registerTool('gog_slides_create_from_markdown', {
29
29
  description: 'Create a new Google Slides presentation from markdown content (inline or from a file).',
30
+ annotations: { destructiveHint: true },
30
31
  inputSchema: z.object({
31
32
  title: z.string().describe('Presentation title'),
32
33
  content: z.string().optional().describe('Inline markdown content'),
@@ -46,6 +47,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
46
47
 
47
48
  server.registerTool('gog_slides_create_from_template', {
48
49
  description: 'Create a new Google Slides presentation from a template, with optional placeholder replacements.',
50
+ annotations: { destructiveHint: true },
49
51
  inputSchema: z.object({
50
52
  templateId: z.string().describe('Template presentation ID'),
51
53
  title: z.string().describe('New presentation title'),
@@ -70,6 +72,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
70
72
 
71
73
  server.registerTool('gog_slides_add_slide', {
72
74
  description: 'Add a new slide to a presentation from a local image, with optional speaker notes.',
75
+ annotations: { destructiveHint: true },
73
76
  inputSchema: z.object({
74
77
  presentationId: z.string().describe('Presentation ID'),
75
78
  image: z.string().describe('Path to the local image file'),
@@ -88,6 +91,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
88
91
 
89
92
  server.registerTool('gog_slides_insert_image', {
90
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 },
91
95
  inputSchema: z.object({
92
96
  presentationId: z.string().describe('Presentation ID'),
93
97
  slideId: z.string().describe('Slide ID (object ID of the target slide)'),
@@ -138,6 +142,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
138
142
  'Skip a slide during presentation — it stays in the deck at its current position but is not shown when presenting '
139
143
  + '(and is left out of a PDF export). Use this instead of gog_slides_delete_slide when a slide should be omitted from '
140
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 },
141
146
  inputSchema: z.object({
142
147
  presentationId: z.string().describe('Presentation ID'),
143
148
  slideId: z.string().describe('Slide ID to skip (from gog_slides_list_slides)'),
@@ -150,6 +155,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
150
155
  server.registerTool('gog_slides_unskip_slide', {
151
156
  description:
152
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 },
153
159
  inputSchema: z.object({
154
160
  presentationId: z.string().describe('Presentation ID'),
155
161
  slideId: z.string().describe('Slide ID to unskip (from gog_slides_list_slides)'),
@@ -262,6 +268,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
262
268
 
263
269
  server.registerTool('gog_slides_new_slide', {
264
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 },
265
272
  inputSchema: z.object({
266
273
  presentationId: z.string().describe('Presentation ID'),
267
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.'),
@@ -279,6 +286,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
279
286
 
280
287
  server.registerTool('gog_slides_duplicate_slide', {
281
288
  description: 'Duplicate a slide by object ID, optionally placing the copy at a zero-based insertion index.',
289
+ annotations: { destructiveHint: false },
282
290
  inputSchema: z.object({
283
291
  presentationId: z.string().describe('Presentation ID'),
284
292
  slideId: z.string().describe('Slide object ID to duplicate'),
@@ -293,6 +301,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
293
301
 
294
302
  server.registerTool('gog_slides_move_slide', {
295
303
  description: 'Move a slide to a zero-based insertion index within the presentation.',
304
+ annotations: { destructiveHint: false },
296
305
  inputSchema: z.object({
297
306
  presentationId: z.string().describe('Presentation ID'),
298
307
  slideId: z.string().describe('Slide object ID to move'),
@@ -329,6 +338,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
329
338
 
330
339
  server.registerTool('gog_slides_style_text', {
331
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 },
332
342
  inputSchema: z.object({
333
343
  presentationId: z.string().describe('Presentation ID'),
334
344
  objectId: z.string().describe('Object ID of the shape or table cell containing the text'),
@@ -360,6 +370,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
360
370
 
361
371
  server.registerTool('gog_slides_link', {
362
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 },
363
374
  inputSchema: z.object({
364
375
  presentationId: z.string().describe('Presentation ID'),
365
376
  objectId: z.string().describe('Object ID of the shape or table cell containing the text'),
@@ -377,6 +388,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
377
388
 
378
389
  server.registerTool('gog_slides_bullets', {
379
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 },
380
392
  inputSchema: z.object({
381
393
  presentationId: z.string().describe('Presentation ID'),
382
394
  objectId: z.string().describe('Object ID of the shape or table cell containing the paragraphs'),
@@ -420,6 +432,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
420
432
 
421
433
  server.registerTool('gog_slides_element_create_shape', {
422
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 },
423
436
  inputSchema: z.object({
424
437
  presentationId: z.string().describe('Presentation ID'),
425
438
  slideId: z.string().describe('Slide object ID to create the shape on'),
@@ -446,6 +459,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
446
459
 
447
460
  server.registerTool('gog_slides_element_create_line', {
448
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 },
449
463
  inputSchema: z.object({
450
464
  presentationId: z.string().describe('Presentation ID'),
451
465
  slideId: z.string().describe('Slide object ID to create the line on'),
@@ -472,6 +486,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
472
486
 
473
487
  server.registerTool('gog_slides_element_style', {
474
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 },
475
490
  inputSchema: z.object({
476
491
  presentationId: z.string().describe('Presentation ID'),
477
492
  objectId: z.string().describe('Object ID of the shape or line'),
@@ -498,6 +513,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
498
513
 
499
514
  server.registerTool('gog_slides_element_transform', {
500
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 },
501
517
  inputSchema: z.object({
502
518
  presentationId: z.string().describe('Presentation ID'),
503
519
  objectId: z.string().describe('Object ID of the element to transform'),
@@ -528,6 +544,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
528
544
 
529
545
  server.registerTool('gog_slides_element_z_order', {
530
546
  description: 'Change a page element\'s stacking order.',
547
+ annotations: { destructiveHint: false },
531
548
  inputSchema: z.object({
532
549
  presentationId: z.string().describe('Presentation ID'),
533
550
  objectId: z.string().describe('Object ID of the element to restack'),
@@ -540,6 +557,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
540
557
 
541
558
  server.registerTool('gog_slides_element_group', {
542
559
  description: 'Group two or more page elements into a single group.',
560
+ annotations: { destructiveHint: false },
543
561
  inputSchema: z.object({
544
562
  presentationId: z.string().describe('Presentation ID'),
545
563
  objectIds: z.array(z.string()).min(2).describe('Two or more element object IDs to group'),
@@ -554,6 +572,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
554
572
 
555
573
  server.registerTool('gog_slides_element_ungroup', {
556
574
  description: 'Ungroup one or more element groups back into their constituent elements.',
575
+ annotations: { destructiveHint: false },
557
576
  inputSchema: z.object({
558
577
  presentationId: z.string().describe('Presentation ID'),
559
578
  groupIds: z.array(z.string()).min(1).describe('One or more group object IDs to ungroup'),
@@ -565,6 +584,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
565
584
 
566
585
  server.registerTool('gog_slides_element_alt_text', {
567
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 },
568
588
  inputSchema: z.object({
569
589
  presentationId: z.string().describe('Presentation ID'),
570
590
  objectId: z.string().describe('Object ID of the element'),
@@ -596,6 +616,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
596
616
 
597
617
  server.registerTool('gog_slides_table_create', {
598
618
  description: 'Create an auto-sized native table on a slide with the given row and column counts.',
619
+ annotations: { destructiveHint: false },
599
620
  inputSchema: z.object({
600
621
  presentationId: z.string().describe('Presentation ID'),
601
622
  slideId: z.string().describe('Slide object ID to create the table on'),
@@ -612,6 +633,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
612
633
 
613
634
  server.registerTool('gog_slides_table_cell_style', {
614
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 },
615
637
  inputSchema: z.object({
616
638
  presentationId: z.string().describe('Presentation ID'),
617
639
  tableObjectId: z.string().describe('Table object ID'),
@@ -652,6 +674,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
652
674
 
653
675
  server.registerTool('gog_slides_table_border_style', {
654
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 },
655
678
  inputSchema: z.object({
656
679
  presentationId: z.string().describe('Presentation ID'),
657
680
  tableObjectId: z.string().describe('Table object ID'),
@@ -680,6 +703,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
680
703
 
681
704
  server.registerTool('gog_slides_table_column_insert', {
682
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 },
683
707
  inputSchema: z.object({
684
708
  presentationId: z.string().describe('Presentation ID'),
685
709
  tableObjectId: z.string().describe('Table object ID'),
@@ -710,6 +734,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
710
734
 
711
735
  server.registerTool('gog_slides_table_column_size', {
712
736
  description: 'Set the width of a zero-based table column.',
737
+ annotations: { destructiveHint: false },
713
738
  inputSchema: z.object({
714
739
  presentationId: z.string().describe('Presentation ID'),
715
740
  tableObjectId: z.string().describe('Table object ID'),
@@ -723,6 +748,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
723
748
 
724
749
  server.registerTool('gog_slides_table_row_insert', {
725
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 },
726
752
  inputSchema: z.object({
727
753
  presentationId: z.string().describe('Presentation ID'),
728
754
  tableObjectId: z.string().describe('Table object ID'),
@@ -753,6 +779,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
753
779
 
754
780
  server.registerTool('gog_slides_table_row_size', {
755
781
  description: 'Set the minimum height of a zero-based table row.',
782
+ annotations: { destructiveHint: false },
756
783
  inputSchema: z.object({
757
784
  presentationId: z.string().describe('Presentation ID'),
758
785
  tableObjectId: z.string().describe('Table object ID'),
@@ -785,6 +812,7 @@ export function registerExtraSlidesTools(server: McpServer): void {
785
812
 
786
813
  server.registerTool('gog_slides_table_unmerge', {
787
814
  description: 'Unmerge (split) a rectangular range of previously merged cells, starting at a zero-based cell.',
815
+ annotations: { destructiveHint: false },
788
816
  inputSchema: z.object({
789
817
  presentationId: z.string().describe('Presentation ID'),
790
818
  tableObjectId: z.string().describe('Table object ID'),