pptx-viewer-mcp 2.7.2 → 2.8.2
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.
- package/CHANGELOG.md +22 -0
- package/dist/mcp/cli.js +111 -998
- package/dist/mcp/cli.mjs +91 -998
- package/dist/mcp/index.js +111 -999
- package/dist/mcp/index.mjs +91 -999
- package/dist/schemas/index.d.ts +1 -1335
- package/dist/schemas/index.js +8 -1004
- package/dist/schemas/index.mjs +1 -929
- package/package.json +2 -2
- package/dist/schemas/index.d.ts.map +0 -1
package/dist/mcp/cli.mjs
CHANGED
|
@@ -1,935 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
3
3
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
4
|
-
import
|
|
4
|
+
import * as schemas_star from 'ooxml-core/pptx/automation/schemas';
|
|
5
5
|
import { apiToolsChartFormattingTools, apiToolsChartTools, apiToolsChartUserShapeTools, apiToolsContentTools, apiToolsConversionTools, apiToolsElementTools, apiToolsExportTools, apiToolsGeometryTools, apiToolsHyperlinkTools, apiToolsJsonTools, apiToolsLayoutTools, apiToolsLockTools, apiToolsMetadataTools, apiToolsOleTools, apiToolsPresentationTools, apiToolsSectionTools, apiToolsSlideTools, apiToolsSmartartTools, apiToolsStyleTools, apiToolsTableStyleTools, apiToolsTableTools, apiToolsTemplateTools, apiToolsThemeTools, apiToolsValidationTools, apiExecution } from 'ooxml-core/pptx/automation';
|
|
6
6
|
import { writeFile, readFile } from 'fs/promises';
|
|
7
7
|
import { resolve, isAbsolute, sep } from 'path';
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var DuplicateSlideSchema = z.object({
|
|
27
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
28
|
-
slideIndex: z.number().int().min(0).describe("Slide to duplicate"),
|
|
29
|
-
targetIndex: z.number().int().min(0).optional().describe("Where to insert the duplicate")
|
|
30
|
-
});
|
|
31
|
-
var UpdateSlidePropertiesSchema = z.object({
|
|
32
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
33
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
34
|
-
backgroundColor: z.string().optional().describe("Background color (hex)"),
|
|
35
|
-
backgroundGradient: z.string().optional().describe("Background gradient CSS"),
|
|
36
|
-
backgroundImage: z.string().optional().describe("Background image data URL"),
|
|
37
|
-
notes: z.string().optional().describe("Speaker notes text"),
|
|
38
|
-
hidden: z.boolean().optional().describe("Whether slide is hidden")
|
|
39
|
-
});
|
|
40
|
-
var SetSlideTransitionSchema = z.object({
|
|
41
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
42
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
43
|
-
type: z.string().describe('Transition type (e.g. "fade", "wipe", "none")'),
|
|
44
|
-
durationMs: z.number().int().min(0).optional().describe("Duration in ms"),
|
|
45
|
-
direction: z.string().optional().describe('Direction (e.g. "left", "right")'),
|
|
46
|
-
advanceOnClick: z.boolean().optional().describe("Advance on mouse click"),
|
|
47
|
-
advanceAfterMs: z.number().int().min(0).optional().describe("Auto-advance after ms")
|
|
48
|
-
});
|
|
49
|
-
var SetCanvasSizeSchema = z.object({
|
|
50
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
51
|
-
width: z.number().positive().describe("Canvas width in points"),
|
|
52
|
-
height: z.number().positive().describe("Canvas height in points")
|
|
53
|
-
});
|
|
54
|
-
var ConvertToMarkdownSchema = z.object({
|
|
55
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
56
|
-
outputDir: z.string().optional().describe("Output directory for markdown and media"),
|
|
57
|
-
mediaFolderName: z.string().optional().describe("Name for extracted media folder"),
|
|
58
|
-
includeMetadata: z.boolean().optional().describe("Include presentation metadata"),
|
|
59
|
-
slideRange: z.object({
|
|
60
|
-
start: z.number().int().min(0).optional(),
|
|
61
|
-
end: z.number().int().min(0).optional()
|
|
62
|
-
}).optional().describe("Slide range to convert"),
|
|
63
|
-
includeSpeakerNotes: z.boolean().optional().describe("Include speaker notes"),
|
|
64
|
-
semanticMode: z.boolean().optional().describe("Use semantic (clean) markdown mode")
|
|
65
|
-
});
|
|
66
|
-
var AccessibilityCheckSchema = z.object({
|
|
67
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
68
|
-
});
|
|
69
|
-
var ThemeColorRefSchema = z.object({
|
|
70
|
-
scheme: z.enum([
|
|
71
|
-
"dk1",
|
|
72
|
-
"lt1",
|
|
73
|
-
"dk2",
|
|
74
|
-
"lt2",
|
|
75
|
-
"accent1",
|
|
76
|
-
"accent2",
|
|
77
|
-
"accent3",
|
|
78
|
-
"accent4",
|
|
79
|
-
"accent5",
|
|
80
|
-
"accent6",
|
|
81
|
-
"hlink",
|
|
82
|
-
"folHlink",
|
|
83
|
-
"bg1",
|
|
84
|
-
"tx1",
|
|
85
|
-
"bg2",
|
|
86
|
-
"tx2",
|
|
87
|
-
"phClr"
|
|
88
|
-
]),
|
|
89
|
-
lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
|
|
90
|
-
lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
|
|
91
|
-
tint: z.number().optional().describe("Blend towards white (0..1)"),
|
|
92
|
-
shade: z.number().optional().describe("Blend towards black (0..1)"),
|
|
93
|
-
alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
|
|
94
|
-
});
|
|
95
|
-
var AddElementSchema = z.object({
|
|
96
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
97
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
98
|
-
type: z.enum(["text", "shape", "image", "table", "connector"]).describe("Element type to add"),
|
|
99
|
-
x: z.number().optional().describe("X position in points"),
|
|
100
|
-
y: z.number().optional().describe("Y position in points"),
|
|
101
|
-
width: z.number().optional().describe("Width in points"),
|
|
102
|
-
height: z.number().optional().describe("Height in points"),
|
|
103
|
-
text: z.string().optional().describe("Text content"),
|
|
104
|
-
fontSize: z.number().optional().describe("Font size in points"),
|
|
105
|
-
fontFamily: z.string().optional().describe("Font family name"),
|
|
106
|
-
fontColor: z.string().optional().describe("Font color (hex)"),
|
|
107
|
-
bold: z.boolean().optional().describe("Bold text"),
|
|
108
|
-
italic: z.boolean().optional().describe("Italic text"),
|
|
109
|
-
underline: z.boolean().optional().describe("Underline text"),
|
|
110
|
-
alignment: z.enum(["left", "center", "right", "justify"]).optional().describe("Text alignment"),
|
|
111
|
-
shapeType: z.string().optional().describe('Shape type (e.g. "rect", "ellipse")'),
|
|
112
|
-
fillColor: z.string().optional().describe("Fill color (hex)"),
|
|
113
|
-
strokeColor: z.string().optional().describe("Stroke color (hex)"),
|
|
114
|
-
strokeWidth: z.number().optional().describe("Stroke width in points"),
|
|
115
|
-
imageData: z.string().optional().describe("Image as base64 data URL"),
|
|
116
|
-
altText: z.string().optional().describe("Alt text for accessibility"),
|
|
117
|
-
rows: z.number().int().min(1).optional().describe("Number of table rows"),
|
|
118
|
-
columns: z.number().int().min(1).optional().describe("Number of table columns"),
|
|
119
|
-
cellData: z.array(z.array(z.string())).optional().describe("Table cell data as 2D array"),
|
|
120
|
-
headerRow: z.boolean().optional().describe("Style first row as header"),
|
|
121
|
-
startArrow: z.string().optional().describe("Start arrow type"),
|
|
122
|
-
endArrow: z.string().optional().describe("End arrow type"),
|
|
123
|
-
startShapeId: z.string().optional().describe("Connect start to shape ID"),
|
|
124
|
-
endShapeId: z.string().optional().describe("Connect end to shape ID")
|
|
125
|
-
});
|
|
126
|
-
var UpdateElementSchema = z.object({
|
|
127
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
128
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
129
|
-
elementId: z.string().describe("Element ID to update"),
|
|
130
|
-
x: z.number().optional(),
|
|
131
|
-
y: z.number().optional(),
|
|
132
|
-
width: z.number().optional(),
|
|
133
|
-
height: z.number().optional(),
|
|
134
|
-
rotation: z.number().optional(),
|
|
135
|
-
text: z.string().optional(),
|
|
136
|
-
textSegments: z.array(
|
|
137
|
-
z.object({
|
|
138
|
-
text: z.string(),
|
|
139
|
-
style: z.record(z.string(), z.any())
|
|
140
|
-
}).passthrough()
|
|
141
|
-
).optional().describe(
|
|
142
|
-
"Rich text segments, including paragraph and bullet metadata. Takes precedence over text."
|
|
143
|
-
),
|
|
144
|
-
fontSize: z.number().optional(),
|
|
145
|
-
fontFamily: z.string().optional(),
|
|
146
|
-
fontColor: z.string().optional(),
|
|
147
|
-
/**
|
|
148
|
-
* A theme colour for the run text. Wins on save; resolves `fontColor`
|
|
149
|
-
* immediately when `fontColor` was not also given. Passing `fontColor`
|
|
150
|
-
* alone clears a previously-set text theme colour.
|
|
151
|
-
*/
|
|
152
|
-
fontThemeColor: ThemeColorRefSchema.optional(),
|
|
153
|
-
bold: z.boolean().optional(),
|
|
154
|
-
italic: z.boolean().optional(),
|
|
155
|
-
underline: z.boolean().optional(),
|
|
156
|
-
alignment: z.enum(["left", "center", "right", "justify"]).optional(),
|
|
157
|
-
fillColor: z.string().optional(),
|
|
158
|
-
strokeColor: z.string().optional(),
|
|
159
|
-
strokeWidth: z.number().optional(),
|
|
160
|
-
opacity: z.number().min(0).max(1).optional(),
|
|
161
|
-
hidden: z.boolean().optional(),
|
|
162
|
-
flipH: z.boolean().optional(),
|
|
163
|
-
flipV: z.boolean().optional(),
|
|
164
|
-
altText: z.string().optional().describe(
|
|
165
|
-
"Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
|
|
166
|
-
),
|
|
167
|
-
title: z.string().optional().describe(
|
|
168
|
-
"Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
|
|
169
|
-
)
|
|
170
|
-
});
|
|
171
|
-
var RenameElementSchema = z.object({
|
|
172
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
173
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
174
|
-
elementId: z.string().describe("Element ID to rename"),
|
|
175
|
-
name: z.string().describe("New element name (empty string clears the name)")
|
|
176
|
-
});
|
|
177
|
-
var DeleteElementsSchema = z.object({
|
|
178
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
179
|
-
slideIndex: z.number().int().min(0),
|
|
180
|
-
elementIds: z.array(z.string()).min(1).describe("Element IDs to delete")
|
|
181
|
-
});
|
|
182
|
-
var ArrangeElementsSchema = z.object({
|
|
183
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
184
|
-
slideIndex: z.number().int().min(0),
|
|
185
|
-
action: z.enum(["align", "reorderLayer"]),
|
|
186
|
-
elementIds: z.array(z.string()).optional().describe("Element IDs (for align)"),
|
|
187
|
-
alignment: z.enum(["left", "right", "top", "bottom", "centerH", "centerV"]).optional(),
|
|
188
|
-
elementId: z.string().optional().describe("Element ID (for reorderLayer)"),
|
|
189
|
-
layerAction: z.enum(["bringForward", "sendBackward", "bringToFront", "sendToBack"]).optional()
|
|
190
|
-
});
|
|
191
|
-
var CloneElementSchema = z.object({
|
|
192
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
193
|
-
slideIndex: z.number().int().min(0),
|
|
194
|
-
elementId: z.string(),
|
|
195
|
-
targetSlideIndexes: z.array(z.number().int().min(0)).optional(),
|
|
196
|
-
offsetX: z.number().optional(),
|
|
197
|
-
offsetY: z.number().optional()
|
|
198
|
-
});
|
|
199
|
-
var SetElementAnimationSchema = z.object({
|
|
200
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
201
|
-
slideIndex: z.number().int().min(0),
|
|
202
|
-
elementId: z.string(),
|
|
203
|
-
entrance: z.string().optional(),
|
|
204
|
-
exit: z.string().optional(),
|
|
205
|
-
durationMs: z.number().optional(),
|
|
206
|
-
delayMs: z.number().optional(),
|
|
207
|
-
order: z.number().optional()
|
|
208
|
-
});
|
|
209
|
-
var GroupElementsSchema = z.object({
|
|
210
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
211
|
-
slideIndex: z.number().int().min(0),
|
|
212
|
-
elementIds: z.array(z.string()).min(2).describe("At least 2 element IDs to group")
|
|
213
|
-
});
|
|
214
|
-
var UngroupElementsSchema = z.object({
|
|
215
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
216
|
-
slideIndex: z.number().int().min(0),
|
|
217
|
-
groupElementId: z.string().describe("Group element ID to ungroup")
|
|
218
|
-
});
|
|
219
|
-
var BatchUpdateElementsSchema = z.object({
|
|
220
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
221
|
-
slideIndex: z.number().int().min(0),
|
|
222
|
-
elementIds: z.array(z.string()).min(1),
|
|
223
|
-
x: z.number().optional(),
|
|
224
|
-
y: z.number().optional(),
|
|
225
|
-
width: z.number().optional(),
|
|
226
|
-
height: z.number().optional(),
|
|
227
|
-
rotation: z.number().optional(),
|
|
228
|
-
opacity: z.number().min(0).max(1).optional(),
|
|
229
|
-
hidden: z.boolean().optional()
|
|
230
|
-
});
|
|
231
|
-
var ThemeColorRefSchema2 = z.object({
|
|
232
|
-
scheme: z.enum([
|
|
233
|
-
"dk1",
|
|
234
|
-
"lt1",
|
|
235
|
-
"dk2",
|
|
236
|
-
"lt2",
|
|
237
|
-
"accent1",
|
|
238
|
-
"accent2",
|
|
239
|
-
"accent3",
|
|
240
|
-
"accent4",
|
|
241
|
-
"accent5",
|
|
242
|
-
"accent6",
|
|
243
|
-
"hlink",
|
|
244
|
-
"folHlink",
|
|
245
|
-
"bg1",
|
|
246
|
-
"tx1",
|
|
247
|
-
"bg2",
|
|
248
|
-
"tx2",
|
|
249
|
-
"phClr"
|
|
250
|
-
]),
|
|
251
|
-
lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
|
|
252
|
-
lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
|
|
253
|
-
tint: z.number().optional().describe("Blend towards white (0..1)"),
|
|
254
|
-
shade: z.number().optional().describe("Blend towards black (0..1)"),
|
|
255
|
-
alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
|
|
256
|
-
});
|
|
257
|
-
var UpdateTableCellsSchema = z.object({
|
|
258
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
259
|
-
slideIndex: z.number().int().min(0),
|
|
260
|
-
elementId: z.string().describe("Table element ID"),
|
|
261
|
-
cells: z.array(
|
|
262
|
-
z.object({
|
|
263
|
-
row: z.number().int().min(0),
|
|
264
|
-
col: z.number().int().min(0),
|
|
265
|
-
text: z.string()
|
|
266
|
-
})
|
|
267
|
-
).min(1).describe("Cells to update")
|
|
268
|
-
});
|
|
269
|
-
var ManageTableStructureSchema = z.object({
|
|
270
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
271
|
-
slideIndex: z.number().int().min(0),
|
|
272
|
-
elementId: z.string().describe("Table element ID"),
|
|
273
|
-
action: z.enum(["insertRow", "deleteRow", "insertColumn", "deleteColumn"]),
|
|
274
|
-
position: z.number().int().min(0).optional().describe("Insertion position index"),
|
|
275
|
-
referenceIndex: z.number().int().min(0).optional(),
|
|
276
|
-
cellTexts: z.array(z.string()).optional()
|
|
277
|
-
});
|
|
278
|
-
var UpdateElementStyleSchema = z.object({
|
|
279
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
280
|
-
slideIndex: z.number().int().min(0),
|
|
281
|
-
elementId: z.string(),
|
|
282
|
-
fillColor: z.string().optional(),
|
|
283
|
-
/**
|
|
284
|
-
* A theme colour for the fill (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
|
|
285
|
-
* for "Accent 1, Lighter 80%"). When set, the shape saves as
|
|
286
|
-
* `<a:schemeClr>` and keeps following the theme after a later theme
|
|
287
|
-
* change, instead of freezing today's resolved hex. Setting `fillColor`
|
|
288
|
-
* without this clears any previously-set fill theme colour.
|
|
289
|
-
*/
|
|
290
|
-
fillThemeColor: ThemeColorRefSchema2.optional(),
|
|
291
|
-
fillMode: z.string().optional(),
|
|
292
|
-
fillGradientStops: z.array(
|
|
293
|
-
z.object({
|
|
294
|
-
color: z.string(),
|
|
295
|
-
position: z.number(),
|
|
296
|
-
opacity: z.number().optional()
|
|
297
|
-
})
|
|
298
|
-
).optional(),
|
|
299
|
-
fillGradientAngle: z.number().optional(),
|
|
300
|
-
fillGradientType: z.string().optional(),
|
|
301
|
-
fillOpacity: z.number().optional(),
|
|
302
|
-
strokeColor: z.string().optional(),
|
|
303
|
-
/** A theme colour for the outline; see `fillThemeColor` above. */
|
|
304
|
-
strokeThemeColor: ThemeColorRefSchema2.optional(),
|
|
305
|
-
strokeWidth: z.number().optional(),
|
|
306
|
-
strokeDash: z.string().optional(),
|
|
307
|
-
strokeOpacity: z.number().optional(),
|
|
308
|
-
shadowColor: z.string().optional(),
|
|
309
|
-
shadowBlur: z.number().optional(),
|
|
310
|
-
shadowOffsetX: z.number().optional(),
|
|
311
|
-
shadowOffsetY: z.number().optional(),
|
|
312
|
-
shadowOpacity: z.number().optional(),
|
|
313
|
-
glowColor: z.string().optional(),
|
|
314
|
-
glowRadius: z.number().optional(),
|
|
315
|
-
glowOpacity: z.number().optional(),
|
|
316
|
-
softEdgeRadius: z.number().optional(),
|
|
317
|
-
cropLeft: z.number().optional(),
|
|
318
|
-
cropTop: z.number().optional(),
|
|
319
|
-
cropRight: z.number().optional(),
|
|
320
|
-
cropBottom: z.number().optional(),
|
|
321
|
-
brightness: z.number().optional(),
|
|
322
|
-
contrast: z.number().optional(),
|
|
323
|
-
grayscale: z.boolean().optional(),
|
|
324
|
-
altText: z.string().optional().describe(
|
|
325
|
-
"Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
|
|
326
|
-
),
|
|
327
|
-
title: z.string().optional().describe(
|
|
328
|
-
"Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
|
|
329
|
-
)
|
|
330
|
-
});
|
|
331
|
-
var FindTextSchema = z.object({
|
|
332
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
333
|
-
query: z.string().describe("Text to search for"),
|
|
334
|
-
useRegex: z.boolean().optional().describe("Treat query as regex"),
|
|
335
|
-
caseSensitive: z.boolean().optional().describe("Case-sensitive search"),
|
|
336
|
-
slideIndexes: z.array(z.number().int().min(0)).optional().describe("Limit search to specific slides")
|
|
337
|
-
});
|
|
338
|
-
var ReplaceTextSchema = z.object({
|
|
339
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
340
|
-
query: z.string().describe("Text to find"),
|
|
341
|
-
replacement: z.string().describe("Replacement text"),
|
|
342
|
-
useRegex: z.boolean().optional(),
|
|
343
|
-
caseSensitive: z.boolean().optional(),
|
|
344
|
-
slideIndexes: z.array(z.number().int().min(0)).optional()
|
|
345
|
-
});
|
|
346
|
-
var ManageCommentsSchema = z.object({
|
|
347
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
348
|
-
action: z.enum(["list", "add", "delete", "resolve"]),
|
|
349
|
-
slideIndex: z.number().int().min(0).optional(),
|
|
350
|
-
text: z.string().optional(),
|
|
351
|
-
author: z.string().optional(),
|
|
352
|
-
commentId: z.string().optional(),
|
|
353
|
-
resolved: z.boolean().optional(),
|
|
354
|
-
includeResolved: z.boolean().optional()
|
|
355
|
-
});
|
|
356
|
-
var TABLE_STYLE_SECTIONS = [
|
|
357
|
-
"wholeTbl",
|
|
358
|
-
"band1H",
|
|
359
|
-
"band2H",
|
|
360
|
-
"band1V",
|
|
361
|
-
"band2V",
|
|
362
|
-
"lastCol",
|
|
363
|
-
"firstCol",
|
|
364
|
-
"lastRow",
|
|
365
|
-
"seCell",
|
|
366
|
-
"swCell",
|
|
367
|
-
"firstRow",
|
|
368
|
-
"neCell",
|
|
369
|
-
"nwCell"
|
|
370
|
-
];
|
|
371
|
-
var TableStyleSimpleColorSchema = z.object({
|
|
372
|
-
schemeColor: z.string().describe('Theme colour key (e.g. "accent1"), or "" for a non-scheme fill'),
|
|
373
|
-
tint: z.number().optional().describe("0-100000"),
|
|
374
|
-
shade: z.number().optional().describe("0-100000"),
|
|
375
|
-
color: z.string().optional().describe('Explicit hex colour, e.g. "#FF8800"')
|
|
376
|
-
});
|
|
377
|
-
var TableStyleFillSchema = z.object({
|
|
378
|
-
schemeColor: z.string(),
|
|
379
|
-
tint: z.number().optional(),
|
|
380
|
-
shade: z.number().optional(),
|
|
381
|
-
color: z.string().optional(),
|
|
382
|
-
noFill: z.boolean().optional(),
|
|
383
|
-
gradient: z.object({
|
|
384
|
-
type: z.enum(["linear", "radial"]),
|
|
385
|
-
angle: z.number().optional(),
|
|
386
|
-
stops: z.array(z.object({ position: z.number(), fill: TableStyleSimpleColorSchema }))
|
|
387
|
-
}).optional(),
|
|
388
|
-
pattern: z.object({
|
|
389
|
-
preset: z.string(),
|
|
390
|
-
foreground: TableStyleSimpleColorSchema.optional(),
|
|
391
|
-
background: TableStyleSimpleColorSchema.optional()
|
|
392
|
-
}).optional(),
|
|
393
|
-
image: z.object({ path: z.string().optional(), data: z.string().optional() }).optional()
|
|
394
|
-
});
|
|
395
|
-
var TableStyleTextSchema = z.object({
|
|
396
|
-
bold: z.boolean().optional(),
|
|
397
|
-
italic: z.boolean().optional(),
|
|
398
|
-
underline: z.boolean().optional(),
|
|
399
|
-
fontSchemeColor: z.string().optional(),
|
|
400
|
-
fontTint: z.number().optional(),
|
|
401
|
-
fontShade: z.number().optional(),
|
|
402
|
-
fontColor: z.string().optional(),
|
|
403
|
-
fontFace: z.string().optional(),
|
|
404
|
-
fontRefIdx: z.string().optional()
|
|
405
|
-
});
|
|
406
|
-
var TableStyleBorderSideSchema = z.object({
|
|
407
|
-
width: z.number().optional(),
|
|
408
|
-
dash: z.string().optional(),
|
|
409
|
-
fill: TableStyleSimpleColorSchema.optional(),
|
|
410
|
-
color: z.string().optional(),
|
|
411
|
-
noFill: z.boolean().optional()
|
|
412
|
-
});
|
|
413
|
-
var TableStyleBordersSchema = z.object({
|
|
414
|
-
left: TableStyleBorderSideSchema.optional(),
|
|
415
|
-
right: TableStyleBorderSideSchema.optional(),
|
|
416
|
-
top: TableStyleBorderSideSchema.optional(),
|
|
417
|
-
bottom: TableStyleBorderSideSchema.optional(),
|
|
418
|
-
insideH: TableStyleBorderSideSchema.optional(),
|
|
419
|
-
insideV: TableStyleBorderSideSchema.optional(),
|
|
420
|
-
tl2br: TableStyleBorderSideSchema.optional(),
|
|
421
|
-
tr2bl: TableStyleBorderSideSchema.optional()
|
|
422
|
-
});
|
|
423
|
-
var TableStyleCell3DSchema = z.object({
|
|
424
|
-
bevelWidth: z.number().optional(),
|
|
425
|
-
bevelHeight: z.number().optional(),
|
|
426
|
-
bevelPreset: z.string().optional(),
|
|
427
|
-
material: z.string().optional(),
|
|
428
|
-
lightRig: z.string().optional(),
|
|
429
|
-
lightRigDirection: z.string().optional()
|
|
430
|
-
});
|
|
431
|
-
var SetTableStyleSectionSchema = z.object({
|
|
432
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
433
|
-
styleId: z.string().describe('Table style GUID, e.g. "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"'),
|
|
434
|
-
section: z.enum(TABLE_STYLE_SECTIONS).describe("Which of the 13 CT_TableStyle parts to patch"),
|
|
435
|
-
styleName: z.string().optional().describe("Rename the style"),
|
|
436
|
-
fill: TableStyleFillSchema.optional(),
|
|
437
|
-
text: TableStyleTextSchema.optional(),
|
|
438
|
-
borders: TableStyleBordersSchema.optional(),
|
|
439
|
-
cell3D: TableStyleCell3DSchema.optional()
|
|
440
|
-
});
|
|
441
|
-
var CreateTableStyleSchema = z.object({
|
|
442
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
443
|
-
styleName: z.string().describe("Display name for the new style"),
|
|
444
|
-
basedOnStyleId: z.string().optional().describe("Deep-clone every section from this existing style GUID as the starting point"),
|
|
445
|
-
setAsDefault: z.boolean().optional().describe("Repoint ppt/tableStyles.xml's default style at the new one")
|
|
446
|
-
});
|
|
447
|
-
var DeleteTableStyleSchema = z.object({
|
|
448
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
449
|
-
styleId: z.string().describe("Table style GUID to remove"),
|
|
450
|
-
force: z.boolean().optional().describe("Delete even though a table on this deck still references the style")
|
|
451
|
-
});
|
|
452
|
-
var AssignTableStyleSchema = z.object({
|
|
453
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
454
|
-
slideIndex: z.number().int().min(0),
|
|
455
|
-
elementId: z.string().describe("Table element ID"),
|
|
456
|
-
styleId: z.string().optional().describe(
|
|
457
|
-
"Table style GUID to assign. Defaults to the presentation's current default table style when omitted."
|
|
458
|
-
),
|
|
459
|
-
bandedRows: z.boolean().optional(),
|
|
460
|
-
bandedColumns: z.boolean().optional(),
|
|
461
|
-
firstRowHeader: z.boolean().optional(),
|
|
462
|
-
lastRow: z.boolean().optional(),
|
|
463
|
-
firstCol: z.boolean().optional(),
|
|
464
|
-
lastCol: z.boolean().optional()
|
|
465
|
-
});
|
|
466
|
-
var GetThemeInfoSchema = z.object({
|
|
467
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
468
|
-
});
|
|
469
|
-
var ApplyThemePresetSchema = z.object({
|
|
470
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
471
|
-
presetName: z.string().describe(
|
|
472
|
-
'Theme preset name (e.g. "OFFICE", "MODERN_BLUE", "EARTH", "MONOCHROME", "VIBRANT", "CORPORATE", "MINIMAL", "DARK")'
|
|
473
|
-
)
|
|
474
|
-
});
|
|
475
|
-
var UpdateThemeColorsSchema = z.object({
|
|
476
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
477
|
-
dk1: z.string().optional().describe("Dark 1 color (hex)"),
|
|
478
|
-
lt1: z.string().optional().describe("Light 1 color (hex)"),
|
|
479
|
-
dk2: z.string().optional().describe("Dark 2 color (hex)"),
|
|
480
|
-
lt2: z.string().optional().describe("Light 2 color (hex)"),
|
|
481
|
-
accent1: z.string().optional().describe("Accent 1 color (hex)"),
|
|
482
|
-
accent2: z.string().optional().describe("Accent 2 color (hex)"),
|
|
483
|
-
accent3: z.string().optional().describe("Accent 3 color (hex)"),
|
|
484
|
-
accent4: z.string().optional().describe("Accent 4 color (hex)"),
|
|
485
|
-
accent5: z.string().optional().describe("Accent 5 color (hex)"),
|
|
486
|
-
accent6: z.string().optional().describe("Accent 6 color (hex)"),
|
|
487
|
-
hlink: z.string().optional().describe("Hyperlink color (hex)"),
|
|
488
|
-
folHlink: z.string().optional().describe("Followed hyperlink color (hex)")
|
|
489
|
-
});
|
|
490
|
-
var UpdateThemeFontsSchema = z.object({
|
|
491
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
492
|
-
majorFont: z.string().optional().describe("Heading (major) font family"),
|
|
493
|
-
minorFont: z.string().optional().describe("Body (minor) font family")
|
|
494
|
-
});
|
|
495
|
-
var MarkerSymbolSchema = z.enum([
|
|
496
|
-
"circle",
|
|
497
|
-
"dash",
|
|
498
|
-
"diamond",
|
|
499
|
-
"dot",
|
|
500
|
-
"none",
|
|
501
|
-
"picture",
|
|
502
|
-
"plus",
|
|
503
|
-
"square",
|
|
504
|
-
"star",
|
|
505
|
-
"triangle",
|
|
506
|
-
"x",
|
|
507
|
-
"auto"
|
|
508
|
-
]);
|
|
509
|
-
var DataLabelPositionSchema = z.enum([
|
|
510
|
-
"bestFit",
|
|
511
|
-
"b",
|
|
512
|
-
"ctr",
|
|
513
|
-
"inBase",
|
|
514
|
-
"inEnd",
|
|
515
|
-
"l",
|
|
516
|
-
"outEnd",
|
|
517
|
-
"r",
|
|
518
|
-
"t"
|
|
519
|
-
]);
|
|
520
|
-
var FormatChartDataPointSchema = z.object({
|
|
521
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
522
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
523
|
-
elementId: z.string().describe("Chart element ID"),
|
|
524
|
-
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
525
|
-
pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
|
|
526
|
-
fillColor: z.string().optional().describe("Fill colour (hex) for this point only"),
|
|
527
|
-
strokeColor: z.string().optional().describe("Outline colour (hex) for this point only"),
|
|
528
|
-
strokeWidth: z.number().optional().describe("Outline width in points"),
|
|
529
|
-
strokeDashStyle: z.string().optional().describe("Outline dash style, e.g. solid, dash, dashDot, sysDot"),
|
|
530
|
-
clearStyle: z.boolean().optional().describe("Remove all per-point shape formatting"),
|
|
531
|
-
explosion: z.number().nullable().optional().describe("Pie/doughnut slice pull-out distance 0-100; null clears it"),
|
|
532
|
-
marker: z.object({
|
|
533
|
-
symbol: MarkerSymbolSchema.optional(),
|
|
534
|
-
size: z.number().optional(),
|
|
535
|
-
fillColor: z.string().optional()
|
|
536
|
-
}).nullable().optional().describe("Per-point marker override (line/scatter/bubble); null clears it")
|
|
537
|
-
});
|
|
538
|
-
var FormatChartDataLabelSchema = z.object({
|
|
539
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
540
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
541
|
-
elementId: z.string().describe("Chart element ID"),
|
|
542
|
-
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
543
|
-
pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
|
|
544
|
-
remove: z.boolean().optional().describe("Remove the per-point label override entirely"),
|
|
545
|
-
showValue: z.boolean().optional(),
|
|
546
|
-
showCategory: z.boolean().optional(),
|
|
547
|
-
showSeriesName: z.boolean().optional(),
|
|
548
|
-
showPercent: z.boolean().optional(),
|
|
549
|
-
showLegendKey: z.boolean().optional(),
|
|
550
|
-
position: DataLabelPositionSchema.optional(),
|
|
551
|
-
text: z.string().optional().describe("Custom label text override; '' clears it"),
|
|
552
|
-
spPr: z.object({
|
|
553
|
-
fillColor: z.string().optional(),
|
|
554
|
-
strokeColor: z.string().optional(),
|
|
555
|
-
strokeWidth: z.number().optional(),
|
|
556
|
-
strokeDashStyle: z.string().optional()
|
|
557
|
-
}).nullable().optional().describe("This label's own fill/line formatting; null removes it"),
|
|
558
|
-
txPr: z.object({
|
|
559
|
-
fontFamily: z.string().optional(),
|
|
560
|
-
fontSize: z.number().optional(),
|
|
561
|
-
bold: z.boolean().optional(),
|
|
562
|
-
italic: z.boolean().optional(),
|
|
563
|
-
color: z.string().optional()
|
|
564
|
-
}).nullable().optional().describe("This label's own font; null removes it")
|
|
565
|
-
});
|
|
566
|
-
var FormatChartSeriesSchema = z.object({
|
|
567
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
568
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
569
|
-
elementId: z.string().describe("Chart element ID"),
|
|
570
|
-
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
571
|
-
marker: z.object({
|
|
572
|
-
symbol: MarkerSymbolSchema.optional(),
|
|
573
|
-
size: z.number().optional(),
|
|
574
|
-
fillColor: z.string().optional(),
|
|
575
|
-
strokeColor: z.string().optional(),
|
|
576
|
-
strokeWidth: z.number().optional(),
|
|
577
|
-
strokeDashStyle: z.string().optional()
|
|
578
|
-
}).nullable().optional().describe("Series marker (line/scatter/bubble/radar); null removes it"),
|
|
579
|
-
trendline: z.object({
|
|
580
|
-
trendlineType: z.enum([
|
|
581
|
-
"linear",
|
|
582
|
-
"exponential",
|
|
583
|
-
"logarithmic",
|
|
584
|
-
"polynomial",
|
|
585
|
-
"power",
|
|
586
|
-
"movingAvg"
|
|
587
|
-
]),
|
|
588
|
-
color: z.string().optional(),
|
|
589
|
-
lineWidth: z.number().optional().describe("Trendline width in points"),
|
|
590
|
-
lineDashStyle: z.string().optional(),
|
|
591
|
-
order: z.number().optional().describe("Polynomial order, 2-6"),
|
|
592
|
-
period: z.number().optional().describe("Moving-average period"),
|
|
593
|
-
displayEq: z.boolean().optional(),
|
|
594
|
-
displayRSq: z.boolean().optional()
|
|
595
|
-
}).nullable().optional().describe("Series trendline; null removes it"),
|
|
596
|
-
errorBars: z.object({
|
|
597
|
-
direction: z.enum(["x", "y"]),
|
|
598
|
-
barType: z.enum(["both", "minus", "plus"]),
|
|
599
|
-
valType: z.enum(["cust", "fixedVal", "percentage", "stdDev", "stdErr"]),
|
|
600
|
-
val: z.number().optional(),
|
|
601
|
-
customPlus: z.array(z.number()).optional(),
|
|
602
|
-
customMinus: z.array(z.number()).optional(),
|
|
603
|
-
noEndCap: z.boolean().optional(),
|
|
604
|
-
color: z.string().optional(),
|
|
605
|
-
width: z.number().optional().describe("Error-bar line width in points"),
|
|
606
|
-
dashStyle: z.string().optional()
|
|
607
|
-
}).nullable().optional().describe("Series error bars; null removes them")
|
|
608
|
-
});
|
|
609
|
-
var SetChartHelperLineSchema = z.object({
|
|
610
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
611
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
612
|
-
elementId: z.string().describe("Chart element ID"),
|
|
613
|
-
line: z.enum(["dropLines", "hiLowLines"]).describe("Which helper line to set"),
|
|
614
|
-
style: z.object({
|
|
615
|
-
color: z.string().optional(),
|
|
616
|
-
width: z.number().optional(),
|
|
617
|
-
dashStyle: z.string().optional()
|
|
618
|
-
}).nullable().describe("Line colour/width/dash; {} shows the line with defaults, null removes it")
|
|
619
|
-
});
|
|
620
|
-
var SetChartColorMapOverrideSchema = z.object({
|
|
621
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
622
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
623
|
-
elementId: z.string().describe("Chart element ID"),
|
|
624
|
-
overrides: z.record(z.string(), z.string()).nullable().describe(
|
|
625
|
-
'Theme colour role remap (bg1/tx1/bg2/tx2/accent1-6/hlink/folHlink -> role), e.g. { "accent1": "accent2" }; null removes the override'
|
|
626
|
-
)
|
|
627
|
-
});
|
|
628
|
-
var UpdateChartSchema = z.object({
|
|
629
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
630
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
631
|
-
elementId: z.string().describe("Chart element ID"),
|
|
632
|
-
chartType: z.string().optional().describe(
|
|
633
|
-
'New chart type (bar, line, pie, scatter, area, doughnut, radar, histogram, waterfall, funnel, treemap, sunburst, boxWhisker, regionMap). "pareto" is also accepted: it is authored as a histogram chart with an added cumulative-percentage line series.'
|
|
634
|
-
),
|
|
635
|
-
title: z.string().optional().describe("Chart title"),
|
|
636
|
-
grouping: z.enum(["clustered", "stacked", "percentStacked"]).optional().describe("Bar/column grouping"),
|
|
637
|
-
legend: z.object({
|
|
638
|
-
show: z.boolean().optional(),
|
|
639
|
-
position: z.string().optional().describe("Legend position: b, t, l, r, tr")
|
|
640
|
-
}).optional().describe("Legend configuration"),
|
|
641
|
-
dataLabels: z.object({
|
|
642
|
-
show: z.boolean().optional(),
|
|
643
|
-
showValue: z.boolean().optional(),
|
|
644
|
-
showCategory: z.boolean().optional(),
|
|
645
|
-
showSeriesName: z.boolean().optional(),
|
|
646
|
-
showPercent: z.boolean().optional()
|
|
647
|
-
}).optional().describe("Data label configuration"),
|
|
648
|
-
axis: z.object({
|
|
649
|
-
type: z.string().describe("Axis type: valAx, catAx, dateAx, serAx"),
|
|
650
|
-
edit: z.object({
|
|
651
|
-
min: z.number().nullable().optional(),
|
|
652
|
-
max: z.number().nullable().optional(),
|
|
653
|
-
majorUnit: z.number().nullable().optional(),
|
|
654
|
-
title: z.string().nullable().optional(),
|
|
655
|
-
numberFormat: z.string().optional(),
|
|
656
|
-
majorGridlines: z.boolean().optional(),
|
|
657
|
-
minorGridlines: z.boolean().optional()
|
|
658
|
-
})
|
|
659
|
-
}).optional().describe("Axis configuration"),
|
|
660
|
-
categories: z.array(z.string()).optional().describe("Category axis labels")
|
|
661
|
-
});
|
|
662
|
-
var AddChartSeriesSchema = z.object({
|
|
663
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
664
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
665
|
-
elementId: z.string().describe("Chart element ID"),
|
|
666
|
-
name: z.string().describe("Series name"),
|
|
667
|
-
values: z.array(z.number()).describe("Data values"),
|
|
668
|
-
color: z.string().optional().describe("Series color (hex)")
|
|
669
|
-
});
|
|
670
|
-
var RemoveChartSeriesSchema = z.object({
|
|
671
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
672
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
673
|
-
elementId: z.string().describe("Chart element ID"),
|
|
674
|
-
seriesIndex: z.number().int().min(0).describe("Zero-based series index to remove")
|
|
675
|
-
});
|
|
676
|
-
var UpdateChartSeriesDataSchema = z.object({
|
|
677
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
678
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
679
|
-
elementId: z.string().describe("Chart element ID"),
|
|
680
|
-
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
681
|
-
values: z.array(z.number()).describe("New data values")
|
|
682
|
-
});
|
|
683
|
-
var CreateChartSchema = z.object({
|
|
684
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
685
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
686
|
-
chartType: z.string().describe(
|
|
687
|
-
'Chart type (bar, line, pie, scatter, area, doughnut, radar, histogram, waterfall, funnel, treemap, sunburst, boxWhisker, regionMap). "pareto" is also accepted: it is authored as a histogram chart with an added cumulative-percentage line series.'
|
|
688
|
-
),
|
|
689
|
-
x: z.number().optional().describe("X position in points"),
|
|
690
|
-
y: z.number().optional().describe("Y position in points"),
|
|
691
|
-
width: z.number().optional().describe("Width in points"),
|
|
692
|
-
height: z.number().optional().describe("Height in points"),
|
|
693
|
-
title: z.string().optional().describe("Chart title"),
|
|
694
|
-
categories: z.array(z.string()).optional().describe("Category labels"),
|
|
695
|
-
series: z.array(
|
|
696
|
-
z.object({
|
|
697
|
-
name: z.string(),
|
|
698
|
-
values: z.array(z.number()),
|
|
699
|
-
color: z.string().optional()
|
|
700
|
-
})
|
|
701
|
-
).optional().describe("Data series"),
|
|
702
|
-
legend: z.object({
|
|
703
|
-
show: z.boolean(),
|
|
704
|
-
position: z.string().optional()
|
|
705
|
-
}).optional().describe("Legend configuration")
|
|
706
|
-
});
|
|
707
|
-
var PointSchema = z.object({ x: z.number(), y: z.number() });
|
|
708
|
-
var ExtentSchema = z.object({ cx: z.number(), cy: z.number() });
|
|
709
|
-
var ChartUserShapeInputSchema = z.object({
|
|
710
|
-
kind: z.enum(["sp", "cxnSp"]).optional().describe('Overlay shape kind: "sp" (text/preset shape, default) or "cxnSp" (connector).'),
|
|
711
|
-
anchor: z.enum(["rel", "abs"]).optional().describe(
|
|
712
|
-
'Anchor kind: "rel" (default, resizes with the chart; needs `to`) or "abs" (fixed EMU size; needs `ext`).'
|
|
713
|
-
),
|
|
714
|
-
from: PointSchema.describe("Top-left corner as chart-relative fractions (0-1 each)."),
|
|
715
|
-
to: PointSchema.optional().describe(
|
|
716
|
-
"Bottom-right corner as chart-relative fractions; rel anchors only."
|
|
717
|
-
),
|
|
718
|
-
ext: ExtentSchema.optional().describe("Width/height in EMU; abs anchors only."),
|
|
719
|
-
prst: z.string().optional().describe('Preset geometry name (e.g. "rect", "roundRect"); default "rect".'),
|
|
720
|
-
fill: z.string().optional().describe('Solid fill colour, hex (e.g. "#FFFF00").'),
|
|
721
|
-
stroke: z.string().optional().describe("Line colour, hex."),
|
|
722
|
-
strokeWidth: z.number().optional().describe("Line width in points."),
|
|
723
|
-
text: z.string().optional().describe("Plain text content, centred in the shape.")
|
|
724
|
-
});
|
|
725
|
-
var ListChartUserShapesSchema = z.object({
|
|
726
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
727
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
728
|
-
elementId: z.string().describe("Chart element ID")
|
|
729
|
-
});
|
|
730
|
-
var AddChartUserShapeSchema = z.object({
|
|
731
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
732
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
733
|
-
elementId: z.string().describe("Chart element ID"),
|
|
734
|
-
shape: ChartUserShapeInputSchema.describe("The overlay shape to add.")
|
|
735
|
-
});
|
|
736
|
-
var UpdateChartUserShapeSchema = z.object({
|
|
737
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
738
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
739
|
-
elementId: z.string().describe("Chart element ID"),
|
|
740
|
-
index: z.number().int().min(0).describe("Zero-based overlay-shape index (from chart_user_shape_list)"),
|
|
741
|
-
patch: ChartUserShapeInputSchema.partial().describe(
|
|
742
|
-
"Fields to overwrite; anything omitted is left as-is."
|
|
743
|
-
)
|
|
744
|
-
});
|
|
745
|
-
var RemoveChartUserShapeSchema = z.object({
|
|
746
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
747
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
748
|
-
elementId: z.string().describe("Chart element ID"),
|
|
749
|
-
index: z.number().int().min(0).describe("Zero-based overlay-shape index to remove")
|
|
750
|
-
});
|
|
751
|
-
var ManageSmartArtSchema = z.object({
|
|
752
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
753
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
754
|
-
elementId: z.string().describe("SmartArt element ID"),
|
|
755
|
-
action: z.enum([
|
|
756
|
-
"getNodes",
|
|
757
|
-
"addNode",
|
|
758
|
-
"removeNode",
|
|
759
|
-
"updateNodeText",
|
|
760
|
-
"reorderNode",
|
|
761
|
-
"promoteNode",
|
|
762
|
-
"demoteNode",
|
|
763
|
-
"decompose"
|
|
764
|
-
]).describe("SmartArt action"),
|
|
765
|
-
nodeId: z.string().optional().describe("Node ID (required for most actions)"),
|
|
766
|
-
text: z.string().optional().describe("Text for addNode or updateNodeText"),
|
|
767
|
-
afterNodeId: z.string().optional().describe("Insert after this node ID"),
|
|
768
|
-
direction: z.number().optional().describe("Reorder direction: 1 (forward) or -1 (backward)")
|
|
769
|
-
});
|
|
770
|
-
var FindPlaceholdersSchema = z.object({
|
|
771
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
772
|
-
});
|
|
773
|
-
var ApplyTemplateSchema = z.object({
|
|
774
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
775
|
-
data: z.record(z.string(), z.unknown()).describe("Template data: keys are placeholder names, values are replacement values")
|
|
776
|
-
});
|
|
777
|
-
var GetMetadataSchema = z.object({
|
|
778
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
779
|
-
});
|
|
780
|
-
var UpdateMetadataSchema = z.object({
|
|
781
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
782
|
-
title: z.string().optional().describe("Presentation title"),
|
|
783
|
-
subject: z.string().optional().describe("Subject"),
|
|
784
|
-
creator: z.string().optional().describe("Creator/author name"),
|
|
785
|
-
keywords: z.string().optional().describe("Keywords (comma-separated)"),
|
|
786
|
-
description: z.string().optional().describe("Description/comments"),
|
|
787
|
-
lastModifiedBy: z.string().optional().describe("Last modified by"),
|
|
788
|
-
category: z.string().optional().describe("Category"),
|
|
789
|
-
company: z.string().optional().describe("Company name"),
|
|
790
|
-
manager: z.string().optional().describe("Manager name"),
|
|
791
|
-
customProperties: z.array(
|
|
792
|
-
z.object({
|
|
793
|
-
name: z.string(),
|
|
794
|
-
value: z.union([z.string(), z.number(), z.boolean()])
|
|
795
|
-
})
|
|
796
|
-
).optional().describe("Custom properties to set")
|
|
797
|
-
});
|
|
798
|
-
var ManageSectionsSchema = z.object({
|
|
799
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
800
|
-
action: z.enum(["list", "add", "remove", "reorder", "moveSlides", "getForSlide"]).describe("Section action"),
|
|
801
|
-
name: z.string().optional().describe("Section name (for add)"),
|
|
802
|
-
slideIndices: z.array(z.number().int().min(0)).optional().describe("Slide indices (for add, moveSlides)"),
|
|
803
|
-
sectionId: z.string().optional().describe("Section ID (for remove, moveSlides)"),
|
|
804
|
-
sectionIds: z.array(z.string()).optional().describe("Ordered section IDs (for reorder)"),
|
|
805
|
-
slideIndex: z.number().int().min(0).optional().describe("Slide index (for getForSlide)")
|
|
806
|
-
});
|
|
807
|
-
var ExportToSvgSchema = z.object({
|
|
808
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
809
|
-
slideIndices: z.array(z.number().int().min(0)).optional().describe("Specific slides to export (all if omitted)"),
|
|
810
|
-
includeHidden: z.boolean().optional().describe("Include hidden slides"),
|
|
811
|
-
defaultFontFamily: z.string().optional().describe("Default font family for SVG"),
|
|
812
|
-
defaultFontSize: z.number().optional().describe("Default font size")
|
|
813
|
-
});
|
|
814
|
-
var ExportSlideSvgSchema = z.object({
|
|
815
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
816
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index to export"),
|
|
817
|
-
defaultFontFamily: z.string().optional().describe("Default font family for SVG"),
|
|
818
|
-
defaultFontSize: z.number().optional().describe("Default font size")
|
|
819
|
-
});
|
|
820
|
-
var ExportToJsonSchema = z.object({
|
|
821
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
822
|
-
pretty: z.boolean().optional().describe("Pretty-print the JSON document with 2-space indentation (default true)")
|
|
823
|
-
});
|
|
824
|
-
var ImportFromJsonSchema = z.object({
|
|
825
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
826
|
-
json: z.string().describe("The pptx-viewer-json document text to import (replaces the deck content)")
|
|
827
|
-
});
|
|
828
|
-
var ManageHyperlinksSchema = z.object({
|
|
829
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
830
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
831
|
-
action: z.enum(["list", "set", "remove"]).describe("Hyperlink action"),
|
|
832
|
-
elementId: z.string().optional().describe("Element ID (for set/remove)"),
|
|
833
|
-
trigger: z.enum(["click", "hover"]).optional().describe("Action trigger (default: click)"),
|
|
834
|
-
url: z.string().optional().describe("URL for the hyperlink"),
|
|
835
|
-
tooltip: z.string().optional().describe("Tooltip text"),
|
|
836
|
-
targetSlideIndex: z.number().int().min(0).optional().describe("Target slide index for internal links"),
|
|
837
|
-
actionType: z.enum(["url", "slide", "nextSlide", "prevSlide", "firstSlide", "lastSlide", "endShow"]).optional().describe("Link action type")
|
|
838
|
-
});
|
|
839
|
-
var ReplaceGeometrySchema = z.object({
|
|
840
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
841
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
842
|
-
elementId: z.string().describe("Shape element ID"),
|
|
843
|
-
shapeType: z.string().optional().describe('Preset shape type (e.g. "roundRect", "star5", "ellipse", "diamond")'),
|
|
844
|
-
svgPath: z.string().optional().describe("Custom SVG path data (mutually exclusive with shapeType)"),
|
|
845
|
-
pathWidth: z.number().optional().describe("Width of SVG path coordinate space"),
|
|
846
|
-
pathHeight: z.number().optional().describe("Height of SVG path coordinate space"),
|
|
847
|
-
adjustments: z.record(z.string(), z.number()).optional().describe("Shape adjustment values")
|
|
848
|
-
});
|
|
849
|
-
var SetElementLockSchema = z.object({
|
|
850
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
851
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
852
|
-
elementId: z.string().describe("Element ID to lock/unlock"),
|
|
853
|
-
locked: z.boolean().describe("Whether the element should be locked"),
|
|
854
|
-
noMove: z.boolean().optional().describe("Prevent moving"),
|
|
855
|
-
noResize: z.boolean().optional().describe("Prevent resizing"),
|
|
856
|
-
noRotation: z.boolean().optional().describe("Prevent rotation"),
|
|
857
|
-
noSelect: z.boolean().optional().describe("Prevent selection"),
|
|
858
|
-
noTextEdit: z.boolean().optional().describe("Prevent text editing")
|
|
859
|
-
});
|
|
860
|
-
var ValidatePresentationSchema = z.object({
|
|
861
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
862
|
-
});
|
|
863
|
-
var RepairPresentationSchema = z.object({
|
|
864
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
865
|
-
});
|
|
866
|
-
var GetPresentationPropertiesSchema = z.object({
|
|
867
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
868
|
-
});
|
|
869
|
-
var UpdatePresentationPropertiesSchema = z.object({
|
|
870
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
871
|
-
showType: z.enum(["presented", "browsed", "kiosk"]).optional().describe("Slideshow mode"),
|
|
872
|
-
loopContinuously: z.boolean().optional().describe("Loop the slideshow"),
|
|
873
|
-
showWithNarration: z.boolean().optional().describe("Play narration"),
|
|
874
|
-
showWithAnimation: z.boolean().optional().describe("Play animations"),
|
|
875
|
-
advanceMode: z.enum(["manual", "useTimings"]).optional().describe("Slide advance mode"),
|
|
876
|
-
showSlidesMode: z.enum(["all", "customShow", "range"]).optional().describe("Which slides to show"),
|
|
877
|
-
showSlidesFrom: z.number().int().min(1).optional().describe("Range start (1-based)"),
|
|
878
|
-
showSlidesTo: z.number().int().min(1).optional().describe("Range end (1-based)"),
|
|
879
|
-
penColor: z.string().optional().describe("Annotation pen color (hex)")
|
|
880
|
-
});
|
|
881
|
-
var GetLayoutsSchema = z.object({
|
|
882
|
-
filePath: z.string().describe("Path to the PPTX file")
|
|
883
|
-
});
|
|
884
|
-
var ApplyLayoutSchema = z.object({
|
|
885
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
886
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
887
|
-
layoutName: z.string().optional().describe("Layout name to apply"),
|
|
888
|
-
layoutType: z.string().optional().describe("Layout type to apply (alternative to name)")
|
|
889
|
-
});
|
|
890
|
-
var GetOleContentSchema = z.object({
|
|
891
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
892
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
893
|
-
elementId: z.string().describe("OLE element ID")
|
|
894
|
-
});
|
|
895
|
-
var SetOleSheetCellSchema = z.object({
|
|
896
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
897
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
898
|
-
elementId: z.string().describe("OLE element ID (Excel payload: .xlsx or .xls)"),
|
|
899
|
-
row: z.number().int().min(0).describe("Zero-based row index on the first worksheet"),
|
|
900
|
-
col: z.number().int().min(0).describe("Zero-based column index on the first worksheet"),
|
|
901
|
-
value: z.string().describe("New cell value")
|
|
902
|
-
});
|
|
903
|
-
var SetOleDocumentParagraphSchema = z.object({
|
|
904
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
905
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
906
|
-
elementId: z.string().describe("OLE element ID (Word payload: .docx)"),
|
|
907
|
-
paragraphIndex: z.number().int().min(0).describe("Zero-based paragraph index"),
|
|
908
|
-
text: z.string().describe("New paragraph text")
|
|
909
|
-
});
|
|
910
|
-
var SetOleDeckSlideTitleSchema = z.object({
|
|
911
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
912
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
913
|
-
elementId: z.string().describe("OLE element ID (nested-deck payload: .pptx)"),
|
|
914
|
-
deckSlideIndex: z.number().int().min(0).describe("Zero-based slide index within the nested deck"),
|
|
915
|
-
deckElementId: z.string().describe(
|
|
916
|
-
"ID of the text-bearing shape to edit within the nested slide, from ole_get_content's deckSlides[n].elements[i].elementId"
|
|
917
|
-
),
|
|
918
|
-
title: z.string().describe("New text for the chosen shape")
|
|
919
|
-
});
|
|
920
|
-
var ReplaceOleFileSchema = z.object({
|
|
921
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
922
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
923
|
-
elementId: z.string().describe("OLE element ID"),
|
|
924
|
-
fileData: z.string().describe('New payload as a base64 data URL (e.g. "data:application/pdf;base64,...")'),
|
|
925
|
-
fileName: z.string().optional().describe("Optional new file name (also updates the resolved MIME type)")
|
|
926
|
-
});
|
|
927
|
-
var SetOleObjectNameSchema = z.object({
|
|
928
|
-
filePath: z.string().describe("Path to the PPTX file"),
|
|
929
|
-
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
930
|
-
elementId: z.string().describe("OLE element ID"),
|
|
931
|
-
name: z.string().describe("New Object Name (p:oleObj/@name); blank/whitespace clears it")
|
|
932
|
-
});
|
|
9
|
+
var __defProp = Object.defineProperty;
|
|
10
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
11
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
12
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
22
|
+
|
|
23
|
+
// src/schemas/index.ts
|
|
24
|
+
var schemas_exports = {};
|
|
25
|
+
__reExport(schemas_exports, schemas_star);
|
|
933
26
|
var formatChartDataPoint = apiToolsChartFormattingTools.formatChartDataPoint;
|
|
934
27
|
var formatChartDataLabel = apiToolsChartFormattingTools.formatChartDataLabel;
|
|
935
28
|
var formatChartSeries = apiToolsChartFormattingTools.formatChartSeries;
|
|
@@ -1077,7 +170,7 @@ function registerTools(server, options) {
|
|
|
1077
170
|
"get_slide",
|
|
1078
171
|
{
|
|
1079
172
|
description: "Inspect a single slide: returns layout, notes, elements",
|
|
1080
|
-
inputSchema: GetSlideSchema.shape
|
|
173
|
+
inputSchema: schemas_exports.GetSlideSchema.shape
|
|
1081
174
|
},
|
|
1082
175
|
async (params) => {
|
|
1083
176
|
const result = await runMcpTool2(
|
|
@@ -1098,7 +191,7 @@ function registerTools(server, options) {
|
|
|
1098
191
|
"add_slide",
|
|
1099
192
|
{
|
|
1100
193
|
description: "Add a new blank slide to the presentation",
|
|
1101
|
-
inputSchema: AddSlideSchema.shape
|
|
194
|
+
inputSchema: schemas_exports.AddSlideSchema.shape
|
|
1102
195
|
},
|
|
1103
196
|
async (params) => {
|
|
1104
197
|
const result = await runMcpTool2(params.filePath, (ctx) => addSlide(ctx, params));
|
|
@@ -1116,7 +209,7 @@ function registerTools(server, options) {
|
|
|
1116
209
|
"delete_slides",
|
|
1117
210
|
{
|
|
1118
211
|
description: "Delete one or more slides by index",
|
|
1119
|
-
inputSchema: DeleteSlidesSchema.shape
|
|
212
|
+
inputSchema: schemas_exports.DeleteSlidesSchema.shape
|
|
1120
213
|
},
|
|
1121
214
|
async (params) => {
|
|
1122
215
|
const result = await runMcpTool2(
|
|
@@ -1139,7 +232,7 @@ function registerTools(server, options) {
|
|
|
1139
232
|
"reorder_slides",
|
|
1140
233
|
{
|
|
1141
234
|
description: "Reorder slides by providing a new index array",
|
|
1142
|
-
inputSchema: ReorderSlidesSchema.shape
|
|
235
|
+
inputSchema: schemas_exports.ReorderSlidesSchema.shape
|
|
1143
236
|
},
|
|
1144
237
|
async (params) => {
|
|
1145
238
|
const result = await runMcpTool2(
|
|
@@ -1160,7 +253,7 @@ function registerTools(server, options) {
|
|
|
1160
253
|
"duplicate_slide",
|
|
1161
254
|
{
|
|
1162
255
|
description: "Duplicate a slide with new element IDs",
|
|
1163
|
-
inputSchema: DuplicateSlideSchema.shape
|
|
256
|
+
inputSchema: schemas_exports.DuplicateSlideSchema.shape
|
|
1164
257
|
},
|
|
1165
258
|
async (params) => {
|
|
1166
259
|
const result = await runMcpTool2(
|
|
@@ -1181,7 +274,7 @@ function registerTools(server, options) {
|
|
|
1181
274
|
"update_slide_properties",
|
|
1182
275
|
{
|
|
1183
276
|
description: "Update slide background, notes, or visibility",
|
|
1184
|
-
inputSchema: UpdateSlidePropertiesSchema.shape
|
|
277
|
+
inputSchema: schemas_exports.UpdateSlidePropertiesSchema.shape
|
|
1185
278
|
},
|
|
1186
279
|
async (params) => {
|
|
1187
280
|
const result = await runMcpTool2(
|
|
@@ -1202,7 +295,7 @@ function registerTools(server, options) {
|
|
|
1202
295
|
"set_slide_transition",
|
|
1203
296
|
{
|
|
1204
297
|
description: "Set or remove a slide transition effect",
|
|
1205
|
-
inputSchema: SetSlideTransitionSchema.shape
|
|
298
|
+
inputSchema: schemas_exports.SetSlideTransitionSchema.shape
|
|
1206
299
|
},
|
|
1207
300
|
async (params) => {
|
|
1208
301
|
const result = await runMcpTool2(
|
|
@@ -1223,7 +316,7 @@ function registerTools(server, options) {
|
|
|
1223
316
|
"set_canvas_size",
|
|
1224
317
|
{
|
|
1225
318
|
description: "Change the presentation canvas dimensions",
|
|
1226
|
-
inputSchema: SetCanvasSizeSchema.shape
|
|
319
|
+
inputSchema: schemas_exports.SetCanvasSizeSchema.shape
|
|
1227
320
|
},
|
|
1228
321
|
async (params) => {
|
|
1229
322
|
const result = await runMcpTool2(
|
|
@@ -1244,7 +337,7 @@ function registerTools(server, options) {
|
|
|
1244
337
|
"add_element",
|
|
1245
338
|
{
|
|
1246
339
|
description: "Add a text, shape, image, table, or connector element",
|
|
1247
|
-
inputSchema: AddElementSchema.shape
|
|
340
|
+
inputSchema: schemas_exports.AddElementSchema.shape
|
|
1248
341
|
},
|
|
1249
342
|
async (params) => {
|
|
1250
343
|
const result = await runMcpTool2(
|
|
@@ -1265,7 +358,7 @@ function registerTools(server, options) {
|
|
|
1265
358
|
"update_element",
|
|
1266
359
|
{
|
|
1267
360
|
description: "Update element position, size, text, or style",
|
|
1268
|
-
inputSchema: UpdateElementSchema.shape
|
|
361
|
+
inputSchema: schemas_exports.UpdateElementSchema.shape
|
|
1269
362
|
},
|
|
1270
363
|
async (params) => {
|
|
1271
364
|
const result = await runMcpTool2(
|
|
@@ -1286,7 +379,7 @@ function registerTools(server, options) {
|
|
|
1286
379
|
"rename_element",
|
|
1287
380
|
{
|
|
1288
381
|
description: "Rename an element (the selection pane's display name; cNvPr/@name)",
|
|
1289
|
-
inputSchema: RenameElementSchema.shape
|
|
382
|
+
inputSchema: schemas_exports.RenameElementSchema.shape
|
|
1290
383
|
},
|
|
1291
384
|
async (params) => {
|
|
1292
385
|
const result = await runMcpTool2(
|
|
@@ -1307,7 +400,7 @@ function registerTools(server, options) {
|
|
|
1307
400
|
"delete_elements",
|
|
1308
401
|
{
|
|
1309
402
|
description: "Delete one or more elements by ID",
|
|
1310
|
-
inputSchema: DeleteElementsSchema.shape
|
|
403
|
+
inputSchema: schemas_exports.DeleteElementsSchema.shape
|
|
1311
404
|
},
|
|
1312
405
|
async (params) => {
|
|
1313
406
|
const result = await runMcpTool2(
|
|
@@ -1328,7 +421,7 @@ function registerTools(server, options) {
|
|
|
1328
421
|
"arrange_elements",
|
|
1329
422
|
{
|
|
1330
423
|
description: "Align elements or change z-order (layer)",
|
|
1331
|
-
inputSchema: ArrangeElementsSchema.shape
|
|
424
|
+
inputSchema: schemas_exports.ArrangeElementsSchema.shape
|
|
1332
425
|
},
|
|
1333
426
|
async (params) => {
|
|
1334
427
|
const result = await runMcpTool2(
|
|
@@ -1349,7 +442,7 @@ function registerTools(server, options) {
|
|
|
1349
442
|
"clone_element",
|
|
1350
443
|
{
|
|
1351
444
|
description: "Clone an element within or across slides",
|
|
1352
|
-
inputSchema: CloneElementSchema.shape
|
|
445
|
+
inputSchema: schemas_exports.CloneElementSchema.shape
|
|
1353
446
|
},
|
|
1354
447
|
async (params) => {
|
|
1355
448
|
const result = await runMcpTool2(
|
|
@@ -1370,7 +463,7 @@ function registerTools(server, options) {
|
|
|
1370
463
|
"set_element_animation",
|
|
1371
464
|
{
|
|
1372
465
|
description: "Set entrance/exit animation on an element",
|
|
1373
|
-
inputSchema: SetElementAnimationSchema.shape
|
|
466
|
+
inputSchema: schemas_exports.SetElementAnimationSchema.shape
|
|
1374
467
|
},
|
|
1375
468
|
async (params) => {
|
|
1376
469
|
const result = await runMcpTool2(
|
|
@@ -1391,7 +484,7 @@ function registerTools(server, options) {
|
|
|
1391
484
|
"group_elements",
|
|
1392
485
|
{
|
|
1393
486
|
description: "Group multiple elements into a group",
|
|
1394
|
-
inputSchema: GroupElementsSchema.shape
|
|
487
|
+
inputSchema: schemas_exports.GroupElementsSchema.shape
|
|
1395
488
|
},
|
|
1396
489
|
async (params) => {
|
|
1397
490
|
const result = await runMcpTool2(
|
|
@@ -1412,7 +505,7 @@ function registerTools(server, options) {
|
|
|
1412
505
|
"ungroup_elements",
|
|
1413
506
|
{
|
|
1414
507
|
description: "Ungroup a group element back to individual elements",
|
|
1415
|
-
inputSchema: UngroupElementsSchema.shape
|
|
508
|
+
inputSchema: schemas_exports.UngroupElementsSchema.shape
|
|
1416
509
|
},
|
|
1417
510
|
async (params) => {
|
|
1418
511
|
const result = await runMcpTool2(
|
|
@@ -1433,7 +526,7 @@ function registerTools(server, options) {
|
|
|
1433
526
|
"batch_update_elements",
|
|
1434
527
|
{
|
|
1435
528
|
description: "Apply the same properties to multiple elements",
|
|
1436
|
-
inputSchema: BatchUpdateElementsSchema.shape
|
|
529
|
+
inputSchema: schemas_exports.BatchUpdateElementsSchema.shape
|
|
1437
530
|
},
|
|
1438
531
|
async (params) => {
|
|
1439
532
|
const result = await runMcpTool2(
|
|
@@ -1454,7 +547,7 @@ function registerTools(server, options) {
|
|
|
1454
547
|
"update_table_cells",
|
|
1455
548
|
{
|
|
1456
549
|
description: "Update text content of table cells",
|
|
1457
|
-
inputSchema: UpdateTableCellsSchema.shape
|
|
550
|
+
inputSchema: schemas_exports.UpdateTableCellsSchema.shape
|
|
1458
551
|
},
|
|
1459
552
|
async (params) => {
|
|
1460
553
|
const result = await runMcpTool2(
|
|
@@ -1475,7 +568,7 @@ function registerTools(server, options) {
|
|
|
1475
568
|
"manage_table_structure",
|
|
1476
569
|
{
|
|
1477
570
|
description: "Insert or delete table rows and columns",
|
|
1478
|
-
inputSchema: ManageTableStructureSchema.shape
|
|
571
|
+
inputSchema: schemas_exports.ManageTableStructureSchema.shape
|
|
1479
572
|
},
|
|
1480
573
|
async (params) => {
|
|
1481
574
|
const result = await runMcpTool2(
|
|
@@ -1496,7 +589,7 @@ function registerTools(server, options) {
|
|
|
1496
589
|
"set_table_style_section",
|
|
1497
590
|
{
|
|
1498
591
|
description: "Patch the fill, text, borders, or cell3D of one section (wholeTbl, banding, first/last row/col, or a corner cell) of an existing loaded table style",
|
|
1499
|
-
inputSchema: SetTableStyleSectionSchema.shape
|
|
592
|
+
inputSchema: schemas_exports.SetTableStyleSectionSchema.shape
|
|
1500
593
|
},
|
|
1501
594
|
async (params) => {
|
|
1502
595
|
const result = await runMcpTool2(
|
|
@@ -1512,7 +605,7 @@ function registerTools(server, options) {
|
|
|
1512
605
|
"create_table_style",
|
|
1513
606
|
{
|
|
1514
607
|
description: "Create a new table style (optionally cloned from an existing one) and optionally set it as the default",
|
|
1515
|
-
inputSchema: CreateTableStyleSchema.shape
|
|
608
|
+
inputSchema: schemas_exports.CreateTableStyleSchema.shape
|
|
1516
609
|
},
|
|
1517
610
|
async (params) => {
|
|
1518
611
|
const result = await runMcpTool2(
|
|
@@ -1528,7 +621,7 @@ function registerTools(server, options) {
|
|
|
1528
621
|
"delete_table_style",
|
|
1529
622
|
{
|
|
1530
623
|
description: "Remove a table style from the presentation",
|
|
1531
|
-
inputSchema: DeleteTableStyleSchema.shape
|
|
624
|
+
inputSchema: schemas_exports.DeleteTableStyleSchema.shape
|
|
1532
625
|
},
|
|
1533
626
|
async (params) => {
|
|
1534
627
|
const result = await runMcpTool2(
|
|
@@ -1544,7 +637,7 @@ function registerTools(server, options) {
|
|
|
1544
637
|
"assign_table_style",
|
|
1545
638
|
{
|
|
1546
639
|
description: "Assign a table style (and row/column emphasis flags) to an existing table",
|
|
1547
|
-
inputSchema: AssignTableStyleSchema.shape
|
|
640
|
+
inputSchema: schemas_exports.AssignTableStyleSchema.shape
|
|
1548
641
|
},
|
|
1549
642
|
async (params) => {
|
|
1550
643
|
const result = await runMcpTool2(
|
|
@@ -1560,7 +653,7 @@ function registerTools(server, options) {
|
|
|
1560
653
|
"update_element_style",
|
|
1561
654
|
{
|
|
1562
655
|
description: "Update fill, stroke, shadow, glow, or image effects",
|
|
1563
|
-
inputSchema: UpdateElementStyleSchema.shape
|
|
656
|
+
inputSchema: schemas_exports.UpdateElementStyleSchema.shape
|
|
1564
657
|
},
|
|
1565
658
|
async (params) => {
|
|
1566
659
|
const result = await runMcpTool2(
|
|
@@ -1581,7 +674,7 @@ function registerTools(server, options) {
|
|
|
1581
674
|
"run_accessibility_check",
|
|
1582
675
|
{
|
|
1583
676
|
description: "Audit the presentation for accessibility issues",
|
|
1584
|
-
inputSchema: AccessibilityCheckSchema.shape
|
|
677
|
+
inputSchema: schemas_exports.AccessibilityCheckSchema.shape
|
|
1585
678
|
},
|
|
1586
679
|
async (params) => {
|
|
1587
680
|
const result = await runMcpTool2(
|
|
@@ -1602,7 +695,7 @@ function registerTools(server, options) {
|
|
|
1602
695
|
"find_text",
|
|
1603
696
|
{
|
|
1604
697
|
description: "Search for text across all slides",
|
|
1605
|
-
inputSchema: FindTextSchema.shape
|
|
698
|
+
inputSchema: schemas_exports.FindTextSchema.shape
|
|
1606
699
|
},
|
|
1607
700
|
async (params) => {
|
|
1608
701
|
const result = await runMcpTool2(params.filePath, (ctx) => findText(ctx, params));
|
|
@@ -1620,7 +713,7 @@ function registerTools(server, options) {
|
|
|
1620
713
|
"replace_text",
|
|
1621
714
|
{
|
|
1622
715
|
description: "Find and replace text across slides",
|
|
1623
|
-
inputSchema: ReplaceTextSchema.shape
|
|
716
|
+
inputSchema: schemas_exports.ReplaceTextSchema.shape
|
|
1624
717
|
},
|
|
1625
718
|
async (params) => {
|
|
1626
719
|
const result = await runMcpTool2(
|
|
@@ -1641,7 +734,7 @@ function registerTools(server, options) {
|
|
|
1641
734
|
"manage_comments",
|
|
1642
735
|
{
|
|
1643
736
|
description: "List, add, delete, or resolve slide comments",
|
|
1644
|
-
inputSchema: ManageCommentsSchema.shape
|
|
737
|
+
inputSchema: schemas_exports.ManageCommentsSchema.shape
|
|
1645
738
|
},
|
|
1646
739
|
async (params) => {
|
|
1647
740
|
const result = await runMcpTool2(
|
|
@@ -1662,7 +755,7 @@ function registerTools(server, options) {
|
|
|
1662
755
|
"convert_to_markdown",
|
|
1663
756
|
{
|
|
1664
757
|
description: "Convert the presentation to Markdown format",
|
|
1665
|
-
inputSchema: ConvertToMarkdownSchema.shape
|
|
758
|
+
inputSchema: schemas_exports.ConvertToMarkdownSchema.shape
|
|
1666
759
|
},
|
|
1667
760
|
async (params) => {
|
|
1668
761
|
const result = await runMcpTool2(
|
|
@@ -1683,7 +776,7 @@ function registerTools(server, options) {
|
|
|
1683
776
|
"get_theme_info",
|
|
1684
777
|
{
|
|
1685
778
|
description: "Get current theme information (colors, fonts, available presets)",
|
|
1686
|
-
inputSchema: GetThemeInfoSchema.shape
|
|
779
|
+
inputSchema: schemas_exports.GetThemeInfoSchema.shape
|
|
1687
780
|
},
|
|
1688
781
|
async (params) => {
|
|
1689
782
|
const result = await runMcpTool2(params.filePath, (ctx) => getThemeInfo(ctx));
|
|
@@ -1694,7 +787,7 @@ function registerTools(server, options) {
|
|
|
1694
787
|
"apply_theme_preset",
|
|
1695
788
|
{
|
|
1696
789
|
description: "Apply a built-in theme preset to the presentation",
|
|
1697
|
-
inputSchema: ApplyThemePresetSchema.shape
|
|
790
|
+
inputSchema: schemas_exports.ApplyThemePresetSchema.shape
|
|
1698
791
|
},
|
|
1699
792
|
async (params) => {
|
|
1700
793
|
const result = await runMcpTool2(
|
|
@@ -1708,7 +801,7 @@ function registerTools(server, options) {
|
|
|
1708
801
|
"update_theme_colors",
|
|
1709
802
|
{
|
|
1710
803
|
description: "Update individual theme colors (accent1-6, dk1/2, lt1/2, hlink, folHlink)",
|
|
1711
|
-
inputSchema: UpdateThemeColorsSchema.shape
|
|
804
|
+
inputSchema: schemas_exports.UpdateThemeColorsSchema.shape
|
|
1712
805
|
},
|
|
1713
806
|
async (params) => {
|
|
1714
807
|
const result = await runMcpTool2(
|
|
@@ -1722,7 +815,7 @@ function registerTools(server, options) {
|
|
|
1722
815
|
"update_theme_fonts",
|
|
1723
816
|
{
|
|
1724
817
|
description: "Update theme heading (major) and body (minor) fonts",
|
|
1725
|
-
inputSchema: UpdateThemeFontsSchema.shape
|
|
818
|
+
inputSchema: schemas_exports.UpdateThemeFontsSchema.shape
|
|
1726
819
|
},
|
|
1727
820
|
async (params) => {
|
|
1728
821
|
const result = await runMcpTool2(
|
|
@@ -1736,7 +829,7 @@ function registerTools(server, options) {
|
|
|
1736
829
|
"update_chart",
|
|
1737
830
|
{
|
|
1738
831
|
description: "Update chart type, title, legend, data labels, axis, or categories",
|
|
1739
|
-
inputSchema: UpdateChartSchema.shape
|
|
832
|
+
inputSchema: schemas_exports.UpdateChartSchema.shape
|
|
1740
833
|
},
|
|
1741
834
|
async (params) => {
|
|
1742
835
|
const result = await runMcpTool2(
|
|
@@ -1750,7 +843,7 @@ function registerTools(server, options) {
|
|
|
1750
843
|
"add_chart_series",
|
|
1751
844
|
{
|
|
1752
845
|
description: "Add a data series to an existing chart",
|
|
1753
|
-
inputSchema: AddChartSeriesSchema.shape
|
|
846
|
+
inputSchema: schemas_exports.AddChartSeriesSchema.shape
|
|
1754
847
|
},
|
|
1755
848
|
async (params) => {
|
|
1756
849
|
const result = await runMcpTool2(
|
|
@@ -1764,7 +857,7 @@ function registerTools(server, options) {
|
|
|
1764
857
|
"remove_chart_series",
|
|
1765
858
|
{
|
|
1766
859
|
description: "Remove a data series from a chart by index",
|
|
1767
|
-
inputSchema: RemoveChartSeriesSchema.shape
|
|
860
|
+
inputSchema: schemas_exports.RemoveChartSeriesSchema.shape
|
|
1768
861
|
},
|
|
1769
862
|
async (params) => {
|
|
1770
863
|
const result = await runMcpTool2(
|
|
@@ -1778,7 +871,7 @@ function registerTools(server, options) {
|
|
|
1778
871
|
"update_chart_series_data",
|
|
1779
872
|
{
|
|
1780
873
|
description: "Update data values for a chart series",
|
|
1781
|
-
inputSchema: UpdateChartSeriesDataSchema.shape
|
|
874
|
+
inputSchema: schemas_exports.UpdateChartSeriesDataSchema.shape
|
|
1782
875
|
},
|
|
1783
876
|
async (params) => {
|
|
1784
877
|
const result = await runMcpTool2(
|
|
@@ -1792,7 +885,7 @@ function registerTools(server, options) {
|
|
|
1792
885
|
"create_chart",
|
|
1793
886
|
{
|
|
1794
887
|
description: "Create a new chart element on a slide",
|
|
1795
|
-
inputSchema: CreateChartSchema.shape
|
|
888
|
+
inputSchema: schemas_exports.CreateChartSchema.shape
|
|
1796
889
|
},
|
|
1797
890
|
async (params) => {
|
|
1798
891
|
const result = await runMcpTool2(
|
|
@@ -1806,7 +899,7 @@ function registerTools(server, options) {
|
|
|
1806
899
|
"format_chart_data_point",
|
|
1807
900
|
{
|
|
1808
901
|
description: "Set per-data-point chart formatting: fill/stroke colour, stroke width, dash style (c:dPt/c:spPr), explosion, and marker override",
|
|
1809
|
-
inputSchema: FormatChartDataPointSchema.shape
|
|
902
|
+
inputSchema: schemas_exports.FormatChartDataPointSchema.shape
|
|
1810
903
|
},
|
|
1811
904
|
async (params) => {
|
|
1812
905
|
const result = await runMcpTool2(
|
|
@@ -1820,7 +913,7 @@ function registerTools(server, options) {
|
|
|
1820
913
|
"format_chart_data_label",
|
|
1821
914
|
{
|
|
1822
915
|
description: "Set a per-data-point data-label override (c:dLbl): show flags, position, custom text, and the label's own fill/line formatting (c:spPr) and font (c:txPr)",
|
|
1823
|
-
inputSchema: FormatChartDataLabelSchema.shape
|
|
916
|
+
inputSchema: schemas_exports.FormatChartDataLabelSchema.shape
|
|
1824
917
|
},
|
|
1825
918
|
async (params) => {
|
|
1826
919
|
const result = await runMcpTool2(
|
|
@@ -1834,7 +927,7 @@ function registerTools(server, options) {
|
|
|
1834
927
|
"format_chart_series",
|
|
1835
928
|
{
|
|
1836
929
|
description: "Set a chart series marker (c:marker), trendline (c:trendline, incl. line width/dash), or error bars (c:errBars, incl. line width/dash)",
|
|
1837
|
-
inputSchema: FormatChartSeriesSchema.shape
|
|
930
|
+
inputSchema: schemas_exports.FormatChartSeriesSchema.shape
|
|
1838
931
|
},
|
|
1839
932
|
async (params) => {
|
|
1840
933
|
const result = await runMcpTool2(
|
|
@@ -1848,7 +941,7 @@ function registerTools(server, options) {
|
|
|
1848
941
|
"set_chart_helper_line",
|
|
1849
942
|
{
|
|
1850
943
|
description: "Set or remove a chart-level helper line on a line/stock/combo chart: c:dropLines or c:hiLowLines",
|
|
1851
|
-
inputSchema: SetChartHelperLineSchema.shape
|
|
944
|
+
inputSchema: schemas_exports.SetChartHelperLineSchema.shape
|
|
1852
945
|
},
|
|
1853
946
|
async (params) => {
|
|
1854
947
|
const result = await runMcpTool2(
|
|
@@ -1862,7 +955,7 @@ function registerTools(server, options) {
|
|
|
1862
955
|
"set_chart_color_map_override",
|
|
1863
956
|
{
|
|
1864
957
|
description: "Set or remove a chart's theme colour-map override (c:clrMapOvr), remapping theme colour roles for this chart only",
|
|
1865
|
-
inputSchema: SetChartColorMapOverrideSchema.shape
|
|
958
|
+
inputSchema: schemas_exports.SetChartColorMapOverrideSchema.shape
|
|
1866
959
|
},
|
|
1867
960
|
async (params) => {
|
|
1868
961
|
const result = await runMcpTool2(
|
|
@@ -1876,7 +969,7 @@ function registerTools(server, options) {
|
|
|
1876
969
|
"chart_user_shape_list",
|
|
1877
970
|
{
|
|
1878
971
|
description: "List a chart's drawing-overlay shapes (c:userShapes)",
|
|
1879
|
-
inputSchema: ListChartUserShapesSchema.shape
|
|
972
|
+
inputSchema: schemas_exports.ListChartUserShapesSchema.shape
|
|
1880
973
|
},
|
|
1881
974
|
async (params) => {
|
|
1882
975
|
const result = await runMcpTool2(
|
|
@@ -1890,7 +983,7 @@ function registerTools(server, options) {
|
|
|
1890
983
|
"chart_user_shape_add",
|
|
1891
984
|
{
|
|
1892
985
|
description: "Add a drawing-overlay shape (text box or connector) to a chart's c:userShapes",
|
|
1893
|
-
inputSchema: AddChartUserShapeSchema.shape
|
|
986
|
+
inputSchema: schemas_exports.AddChartUserShapeSchema.shape
|
|
1894
987
|
},
|
|
1895
988
|
async (params) => {
|
|
1896
989
|
const result = await runMcpTool2(
|
|
@@ -1904,7 +997,7 @@ function registerTools(server, options) {
|
|
|
1904
997
|
"chart_user_shape_update",
|
|
1905
998
|
{
|
|
1906
999
|
description: "Move, resize, or restyle one of a chart's drawing-overlay shapes by index",
|
|
1907
|
-
inputSchema: UpdateChartUserShapeSchema.shape
|
|
1000
|
+
inputSchema: schemas_exports.UpdateChartUserShapeSchema.shape
|
|
1908
1001
|
},
|
|
1909
1002
|
async (params) => {
|
|
1910
1003
|
const result = await runMcpTool2(
|
|
@@ -1918,7 +1011,7 @@ function registerTools(server, options) {
|
|
|
1918
1011
|
"chart_user_shape_remove",
|
|
1919
1012
|
{
|
|
1920
1013
|
description: "Remove one of a chart's drawing-overlay shapes by index",
|
|
1921
|
-
inputSchema: RemoveChartUserShapeSchema.shape
|
|
1014
|
+
inputSchema: schemas_exports.RemoveChartUserShapeSchema.shape
|
|
1922
1015
|
},
|
|
1923
1016
|
async (params) => {
|
|
1924
1017
|
const result = await runMcpTool2(
|
|
@@ -1932,7 +1025,7 @@ function registerTools(server, options) {
|
|
|
1932
1025
|
"manage_smart_art",
|
|
1933
1026
|
{
|
|
1934
1027
|
description: "Manage SmartArt: get nodes, add/remove/reorder/promote/demote nodes, or decompose to shapes",
|
|
1935
|
-
inputSchema: ManageSmartArtSchema.shape
|
|
1028
|
+
inputSchema: schemas_exports.ManageSmartArtSchema.shape
|
|
1936
1029
|
},
|
|
1937
1030
|
async (params) => {
|
|
1938
1031
|
const result = await runMcpTool2(
|
|
@@ -1946,7 +1039,7 @@ function registerTools(server, options) {
|
|
|
1946
1039
|
"find_placeholders",
|
|
1947
1040
|
{
|
|
1948
1041
|
description: "Discover all {{placeholder}} tokens in the presentation",
|
|
1949
|
-
inputSchema: FindPlaceholdersSchema.shape
|
|
1042
|
+
inputSchema: schemas_exports.FindPlaceholdersSchema.shape
|
|
1950
1043
|
},
|
|
1951
1044
|
async (params) => {
|
|
1952
1045
|
const result = await runMcpTool2(
|
|
@@ -1960,7 +1053,7 @@ function registerTools(server, options) {
|
|
|
1960
1053
|
"apply_template",
|
|
1961
1054
|
{
|
|
1962
1055
|
description: "Replace {{placeholder}} tokens with provided values (mail merge)",
|
|
1963
|
-
inputSchema: ApplyTemplateSchema.shape
|
|
1056
|
+
inputSchema: schemas_exports.ApplyTemplateSchema.shape
|
|
1964
1057
|
},
|
|
1965
1058
|
async (params) => {
|
|
1966
1059
|
const result = await runMcpTool2(
|
|
@@ -1974,7 +1067,7 @@ function registerTools(server, options) {
|
|
|
1974
1067
|
"get_metadata",
|
|
1975
1068
|
{
|
|
1976
1069
|
description: "Get presentation metadata (title, author, keywords, custom properties)",
|
|
1977
|
-
inputSchema: GetMetadataSchema.shape
|
|
1070
|
+
inputSchema: schemas_exports.GetMetadataSchema.shape
|
|
1978
1071
|
},
|
|
1979
1072
|
async (params) => {
|
|
1980
1073
|
const result = await runMcpTool2(params.filePath, (ctx) => getMetadata(ctx));
|
|
@@ -1985,7 +1078,7 @@ function registerTools(server, options) {
|
|
|
1985
1078
|
"update_metadata",
|
|
1986
1079
|
{
|
|
1987
1080
|
description: "Update presentation metadata (title, author, company, custom properties)",
|
|
1988
|
-
inputSchema: UpdateMetadataSchema.shape
|
|
1081
|
+
inputSchema: schemas_exports.UpdateMetadataSchema.shape
|
|
1989
1082
|
},
|
|
1990
1083
|
async (params) => {
|
|
1991
1084
|
const result = await runMcpTool2(
|
|
@@ -1999,7 +1092,7 @@ function registerTools(server, options) {
|
|
|
1999
1092
|
"manage_sections",
|
|
2000
1093
|
{
|
|
2001
1094
|
description: "List, add, remove, reorder sections or move slides between sections",
|
|
2002
|
-
inputSchema: ManageSectionsSchema.shape
|
|
1095
|
+
inputSchema: schemas_exports.ManageSectionsSchema.shape
|
|
2003
1096
|
},
|
|
2004
1097
|
async (params) => {
|
|
2005
1098
|
const result = await runMcpTool2(
|
|
@@ -2013,7 +1106,7 @@ function registerTools(server, options) {
|
|
|
2013
1106
|
"export_to_svg",
|
|
2014
1107
|
{
|
|
2015
1108
|
description: "Export all or specific slides to SVG strings",
|
|
2016
|
-
inputSchema: ExportToSvgSchema.shape
|
|
1109
|
+
inputSchema: schemas_exports.ExportToSvgSchema.shape
|
|
2017
1110
|
},
|
|
2018
1111
|
async (params) => {
|
|
2019
1112
|
const result = await runMcpTool2(
|
|
@@ -2027,7 +1120,7 @@ function registerTools(server, options) {
|
|
|
2027
1120
|
"export_slide_svg",
|
|
2028
1121
|
{
|
|
2029
1122
|
description: "Export a single slide to SVG",
|
|
2030
|
-
inputSchema: ExportSlideSvgSchema.shape
|
|
1123
|
+
inputSchema: schemas_exports.ExportSlideSvgSchema.shape
|
|
2031
1124
|
},
|
|
2032
1125
|
async (params) => {
|
|
2033
1126
|
const result = await runMcpTool2(
|
|
@@ -2041,7 +1134,7 @@ function registerTools(server, options) {
|
|
|
2041
1134
|
"export_to_json",
|
|
2042
1135
|
{
|
|
2043
1136
|
description: "Export the presentation to the portable pptx-viewer-json document format (self-contained, binary assets embedded as base64)",
|
|
2044
|
-
inputSchema: ExportToJsonSchema.shape
|
|
1137
|
+
inputSchema: schemas_exports.ExportToJsonSchema.shape
|
|
2045
1138
|
},
|
|
2046
1139
|
async (params) => {
|
|
2047
1140
|
const result = await runMcpTool2(
|
|
@@ -2055,7 +1148,7 @@ function registerTools(server, options) {
|
|
|
2055
1148
|
"import_from_json",
|
|
2056
1149
|
{
|
|
2057
1150
|
description: "Replace the presentation content with a deck imported from a pptx-viewer-json document",
|
|
2058
|
-
inputSchema: ImportFromJsonSchema.shape
|
|
1151
|
+
inputSchema: schemas_exports.ImportFromJsonSchema.shape
|
|
2059
1152
|
},
|
|
2060
1153
|
async (params) => {
|
|
2061
1154
|
const result = await runMcpTool2(
|
|
@@ -2069,7 +1162,7 @@ function registerTools(server, options) {
|
|
|
2069
1162
|
"manage_hyperlinks",
|
|
2070
1163
|
{
|
|
2071
1164
|
description: "List, set, or remove hyperlinks/actions on elements",
|
|
2072
|
-
inputSchema: ManageHyperlinksSchema.shape
|
|
1165
|
+
inputSchema: schemas_exports.ManageHyperlinksSchema.shape
|
|
2073
1166
|
},
|
|
2074
1167
|
async (params) => {
|
|
2075
1168
|
const result = await runMcpTool2(
|
|
@@ -2083,7 +1176,7 @@ function registerTools(server, options) {
|
|
|
2083
1176
|
"replace_geometry",
|
|
2084
1177
|
{
|
|
2085
1178
|
description: "Replace a shape element geometry with a preset or custom SVG path",
|
|
2086
|
-
inputSchema: ReplaceGeometrySchema.shape
|
|
1179
|
+
inputSchema: schemas_exports.ReplaceGeometrySchema.shape
|
|
2087
1180
|
},
|
|
2088
1181
|
async (params) => {
|
|
2089
1182
|
const result = await runMcpTool2(
|
|
@@ -2100,7 +1193,7 @@ function registerTools(server, options) {
|
|
|
2100
1193
|
"set_element_lock",
|
|
2101
1194
|
{
|
|
2102
1195
|
description: "Lock or unlock an element (prevent move, resize, rotation, selection, text edit)",
|
|
2103
|
-
inputSchema: SetElementLockSchema.shape
|
|
1196
|
+
inputSchema: schemas_exports.SetElementLockSchema.shape
|
|
2104
1197
|
},
|
|
2105
1198
|
async (params) => {
|
|
2106
1199
|
const result = await runMcpTool2(
|
|
@@ -2114,7 +1207,7 @@ function registerTools(server, options) {
|
|
|
2114
1207
|
"validate_presentation",
|
|
2115
1208
|
{
|
|
2116
1209
|
description: "Validate PPTX structural integrity (content types, relationships, XML)",
|
|
2117
|
-
inputSchema: ValidatePresentationSchema.shape
|
|
1210
|
+
inputSchema: schemas_exports.ValidatePresentationSchema.shape
|
|
2118
1211
|
},
|
|
2119
1212
|
async (params) => {
|
|
2120
1213
|
const { readFile: readFile2 } = await import('fs/promises');
|
|
@@ -2128,7 +1221,7 @@ function registerTools(server, options) {
|
|
|
2128
1221
|
"repair_presentation",
|
|
2129
1222
|
{
|
|
2130
1223
|
description: "Auto-repair common PPTX structural issues",
|
|
2131
|
-
inputSchema: RepairPresentationSchema.shape
|
|
1224
|
+
inputSchema: schemas_exports.RepairPresentationSchema.shape
|
|
2132
1225
|
},
|
|
2133
1226
|
async (params) => {
|
|
2134
1227
|
const { readFile: readFile2, writeFile: writeFile2 } = await import('fs/promises');
|
|
@@ -2147,7 +1240,7 @@ function registerTools(server, options) {
|
|
|
2147
1240
|
"get_presentation_properties",
|
|
2148
1241
|
{
|
|
2149
1242
|
description: "Get slideshow properties (show type, loop, advance mode, slide range)",
|
|
2150
|
-
inputSchema: GetPresentationPropertiesSchema.shape
|
|
1243
|
+
inputSchema: schemas_exports.GetPresentationPropertiesSchema.shape
|
|
2151
1244
|
},
|
|
2152
1245
|
async (params) => {
|
|
2153
1246
|
const result = await runMcpTool2(
|
|
@@ -2161,7 +1254,7 @@ function registerTools(server, options) {
|
|
|
2161
1254
|
"update_presentation_properties",
|
|
2162
1255
|
{
|
|
2163
1256
|
description: "Update slideshow properties (show type, loop, advance mode, pen color)",
|
|
2164
|
-
inputSchema: UpdatePresentationPropertiesSchema.shape
|
|
1257
|
+
inputSchema: schemas_exports.UpdatePresentationPropertiesSchema.shape
|
|
2165
1258
|
},
|
|
2166
1259
|
async (params) => {
|
|
2167
1260
|
const result = await runMcpTool2(
|
|
@@ -2175,7 +1268,7 @@ function registerTools(server, options) {
|
|
|
2175
1268
|
"get_layouts",
|
|
2176
1269
|
{
|
|
2177
1270
|
description: "List available slide layouts from the presentation masters",
|
|
2178
|
-
inputSchema: GetLayoutsSchema.shape
|
|
1271
|
+
inputSchema: schemas_exports.GetLayoutsSchema.shape
|
|
2179
1272
|
},
|
|
2180
1273
|
async (params) => {
|
|
2181
1274
|
const result = await runMcpTool2(params.filePath, (ctx) => getLayouts(ctx));
|
|
@@ -2186,7 +1279,7 @@ function registerTools(server, options) {
|
|
|
2186
1279
|
"apply_layout",
|
|
2187
1280
|
{
|
|
2188
1281
|
description: "Apply a slide layout to a specific slide",
|
|
2189
|
-
inputSchema: ApplyLayoutSchema.shape
|
|
1282
|
+
inputSchema: schemas_exports.ApplyLayoutSchema.shape
|
|
2190
1283
|
},
|
|
2191
1284
|
async (params) => {
|
|
2192
1285
|
const result = await runMcpTool2(
|
|
@@ -2200,7 +1293,7 @@ function registerTools(server, options) {
|
|
|
2200
1293
|
"ole_get_content",
|
|
2201
1294
|
{
|
|
2202
1295
|
description: "Inspect an embedded OLE object's editable content: resolved kind, plus the sheet grid, paragraph list, or nested-deck slide summaries, whichever applies",
|
|
2203
|
-
inputSchema: GetOleContentSchema.shape
|
|
1296
|
+
inputSchema: schemas_exports.GetOleContentSchema.shape
|
|
2204
1297
|
},
|
|
2205
1298
|
async (params) => {
|
|
2206
1299
|
const result = await runMcpTool2(
|
|
@@ -2214,7 +1307,7 @@ function registerTools(server, options) {
|
|
|
2214
1307
|
"ole_set_sheet_cell",
|
|
2215
1308
|
{
|
|
2216
1309
|
description: "Edit one cell of an embedded Excel OLE object's first worksheet",
|
|
2217
|
-
inputSchema: SetOleSheetCellSchema.shape
|
|
1310
|
+
inputSchema: schemas_exports.SetOleSheetCellSchema.shape
|
|
2218
1311
|
},
|
|
2219
1312
|
async (params) => {
|
|
2220
1313
|
const result = await runMcpTool2(
|
|
@@ -2228,7 +1321,7 @@ function registerTools(server, options) {
|
|
|
2228
1321
|
"ole_set_document_paragraph",
|
|
2229
1322
|
{
|
|
2230
1323
|
description: "Replace one paragraph's text in an embedded Word (.docx or legacy .doc) OLE object",
|
|
2231
|
-
inputSchema: SetOleDocumentParagraphSchema.shape
|
|
1324
|
+
inputSchema: schemas_exports.SetOleDocumentParagraphSchema.shape
|
|
2232
1325
|
},
|
|
2233
1326
|
async (params) => {
|
|
2234
1327
|
const result = await runMcpTool2(
|
|
@@ -2242,7 +1335,7 @@ function registerTools(server, options) {
|
|
|
2242
1335
|
"ole_set_deck_slide_title",
|
|
2243
1336
|
{
|
|
2244
1337
|
description: "Edit one text-bearing shape on one slide of an embedded nested-deck (PowerPoint) OLE object, via a full load/save round-trip through the nested deck (call ole_get_content first to discover each slide's elementIds)",
|
|
2245
|
-
inputSchema: SetOleDeckSlideTitleSchema.shape
|
|
1338
|
+
inputSchema: schemas_exports.SetOleDeckSlideTitleSchema.shape
|
|
2246
1339
|
},
|
|
2247
1340
|
async (params) => {
|
|
2248
1341
|
const result = await runMcpTool2(
|
|
@@ -2256,7 +1349,7 @@ function registerTools(server, options) {
|
|
|
2256
1349
|
"ole_replace_file",
|
|
2257
1350
|
{
|
|
2258
1351
|
description: `Replace an embedded OLE object's payload wholesale with an arbitrary file; works for any OLE kind, including a generic "Package" object or an unsupported format`,
|
|
2259
|
-
inputSchema: ReplaceOleFileSchema.shape
|
|
1352
|
+
inputSchema: schemas_exports.ReplaceOleFileSchema.shape
|
|
2260
1353
|
},
|
|
2261
1354
|
async (params) => {
|
|
2262
1355
|
const result = await runMcpTool2(
|
|
@@ -2270,7 +1363,7 @@ function registerTools(server, options) {
|
|
|
2270
1363
|
"ole_set_object_name",
|
|
2271
1364
|
{
|
|
2272
1365
|
description: "Rename an OLE object's Object Name (p:oleObj/@name); regenerates the baked-in icon caption too when the object is displayed as an icon",
|
|
2273
|
-
inputSchema: SetOleObjectNameSchema.shape
|
|
1366
|
+
inputSchema: schemas_exports.SetOleObjectNameSchema.shape
|
|
2274
1367
|
},
|
|
2275
1368
|
async (params) => {
|
|
2276
1369
|
const result = await runMcpTool2(
|