pptx-viewer-mcp 2.1.7 → 2.3.0
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 +12 -0
- package/README.md +20 -19
- package/dist/index.d.ts +279 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +347 -6
- package/dist/index.mjs +336 -8
- package/dist/mcp/index.js +914 -39
- package/dist/mcp/index.mjs +915 -40
- package/dist/schemas/index.d.ts +679 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +373 -0
- package/dist/schemas/index.mjs +356 -1
- package/package.json +2 -2
package/dist/schemas/index.mjs
CHANGED
|
@@ -61,6 +61,32 @@ var ConvertToMarkdownSchema = z.object({
|
|
|
61
61
|
var AccessibilityCheckSchema = z.object({
|
|
62
62
|
filePath: z.string().describe("Path to the PPTX file")
|
|
63
63
|
});
|
|
64
|
+
var ThemeColorRefSchema = z.object({
|
|
65
|
+
scheme: z.enum([
|
|
66
|
+
"dk1",
|
|
67
|
+
"lt1",
|
|
68
|
+
"dk2",
|
|
69
|
+
"lt2",
|
|
70
|
+
"accent1",
|
|
71
|
+
"accent2",
|
|
72
|
+
"accent3",
|
|
73
|
+
"accent4",
|
|
74
|
+
"accent5",
|
|
75
|
+
"accent6",
|
|
76
|
+
"hlink",
|
|
77
|
+
"folHlink",
|
|
78
|
+
"bg1",
|
|
79
|
+
"tx1",
|
|
80
|
+
"bg2",
|
|
81
|
+
"tx2",
|
|
82
|
+
"phClr"
|
|
83
|
+
]),
|
|
84
|
+
lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
|
|
85
|
+
lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
|
|
86
|
+
tint: z.number().optional().describe("Blend towards white (0..1)"),
|
|
87
|
+
shade: z.number().optional().describe("Blend towards black (0..1)"),
|
|
88
|
+
alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
|
|
89
|
+
});
|
|
64
90
|
var AddElementSchema = z.object({
|
|
65
91
|
filePath: z.string().describe("Path to the PPTX file"),
|
|
66
92
|
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
@@ -105,6 +131,12 @@ var UpdateElementSchema = z.object({
|
|
|
105
131
|
fontSize: z.number().optional(),
|
|
106
132
|
fontFamily: z.string().optional(),
|
|
107
133
|
fontColor: z.string().optional(),
|
|
134
|
+
/**
|
|
135
|
+
* A theme colour for the run text. Wins on save; resolves `fontColor`
|
|
136
|
+
* immediately when `fontColor` was not also given. Passing `fontColor`
|
|
137
|
+
* alone clears a previously-set text theme colour.
|
|
138
|
+
*/
|
|
139
|
+
fontThemeColor: ThemeColorRefSchema.optional(),
|
|
108
140
|
bold: z.boolean().optional(),
|
|
109
141
|
italic: z.boolean().optional(),
|
|
110
142
|
underline: z.boolean().optional(),
|
|
@@ -177,6 +209,32 @@ var BatchUpdateElementsSchema = z.object({
|
|
|
177
209
|
opacity: z.number().min(0).max(1).optional(),
|
|
178
210
|
hidden: z.boolean().optional()
|
|
179
211
|
});
|
|
212
|
+
var ThemeColorRefSchema2 = z.object({
|
|
213
|
+
scheme: z.enum([
|
|
214
|
+
"dk1",
|
|
215
|
+
"lt1",
|
|
216
|
+
"dk2",
|
|
217
|
+
"lt2",
|
|
218
|
+
"accent1",
|
|
219
|
+
"accent2",
|
|
220
|
+
"accent3",
|
|
221
|
+
"accent4",
|
|
222
|
+
"accent5",
|
|
223
|
+
"accent6",
|
|
224
|
+
"hlink",
|
|
225
|
+
"folHlink",
|
|
226
|
+
"bg1",
|
|
227
|
+
"tx1",
|
|
228
|
+
"bg2",
|
|
229
|
+
"tx2",
|
|
230
|
+
"phClr"
|
|
231
|
+
]),
|
|
232
|
+
lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
|
|
233
|
+
lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
|
|
234
|
+
tint: z.number().optional().describe("Blend towards white (0..1)"),
|
|
235
|
+
shade: z.number().optional().describe("Blend towards black (0..1)"),
|
|
236
|
+
alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
|
|
237
|
+
});
|
|
180
238
|
var UpdateTableCellsSchema = z.object({
|
|
181
239
|
filePath: z.string().describe("Path to the PPTX file"),
|
|
182
240
|
slideIndex: z.number().int().min(0),
|
|
@@ -203,6 +261,14 @@ var UpdateElementStyleSchema = z.object({
|
|
|
203
261
|
slideIndex: z.number().int().min(0),
|
|
204
262
|
elementId: z.string(),
|
|
205
263
|
fillColor: z.string().optional(),
|
|
264
|
+
/**
|
|
265
|
+
* A theme colour for the fill (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
|
|
266
|
+
* for "Accent 1, Lighter 80%"). When set, the shape saves as
|
|
267
|
+
* `<a:schemeClr>` and keeps following the theme after a later theme
|
|
268
|
+
* change, instead of freezing today's resolved hex. Setting `fillColor`
|
|
269
|
+
* without this clears any previously-set fill theme colour.
|
|
270
|
+
*/
|
|
271
|
+
fillThemeColor: ThemeColorRefSchema2.optional(),
|
|
206
272
|
fillMode: z.string().optional(),
|
|
207
273
|
fillGradientStops: z.array(
|
|
208
274
|
z.object({
|
|
@@ -215,6 +281,8 @@ var UpdateElementStyleSchema = z.object({
|
|
|
215
281
|
fillGradientType: z.string().optional(),
|
|
216
282
|
fillOpacity: z.number().optional(),
|
|
217
283
|
strokeColor: z.string().optional(),
|
|
284
|
+
/** A theme colour for the outline; see `fillThemeColor` above. */
|
|
285
|
+
strokeThemeColor: ThemeColorRefSchema2.optional(),
|
|
218
286
|
strokeWidth: z.number().optional(),
|
|
219
287
|
strokeDash: z.string().optional(),
|
|
220
288
|
strokeOpacity: z.number().optional(),
|
|
@@ -261,6 +329,116 @@ var ManageCommentsSchema = z.object({
|
|
|
261
329
|
resolved: z.boolean().optional(),
|
|
262
330
|
includeResolved: z.boolean().optional()
|
|
263
331
|
});
|
|
332
|
+
var TABLE_STYLE_SECTIONS = [
|
|
333
|
+
"wholeTbl",
|
|
334
|
+
"band1H",
|
|
335
|
+
"band2H",
|
|
336
|
+
"band1V",
|
|
337
|
+
"band2V",
|
|
338
|
+
"lastCol",
|
|
339
|
+
"firstCol",
|
|
340
|
+
"lastRow",
|
|
341
|
+
"seCell",
|
|
342
|
+
"swCell",
|
|
343
|
+
"firstRow",
|
|
344
|
+
"neCell",
|
|
345
|
+
"nwCell"
|
|
346
|
+
];
|
|
347
|
+
var TableStyleSimpleColorSchema = z.object({
|
|
348
|
+
schemeColor: z.string().describe('Theme colour key (e.g. "accent1"), or "" for a non-scheme fill'),
|
|
349
|
+
tint: z.number().optional().describe("0-100000"),
|
|
350
|
+
shade: z.number().optional().describe("0-100000"),
|
|
351
|
+
color: z.string().optional().describe('Explicit hex colour, e.g. "#FF8800"')
|
|
352
|
+
});
|
|
353
|
+
var TableStyleFillSchema = z.object({
|
|
354
|
+
schemeColor: z.string(),
|
|
355
|
+
tint: z.number().optional(),
|
|
356
|
+
shade: z.number().optional(),
|
|
357
|
+
color: z.string().optional(),
|
|
358
|
+
noFill: z.boolean().optional(),
|
|
359
|
+
gradient: z.object({
|
|
360
|
+
type: z.enum(["linear", "radial"]),
|
|
361
|
+
angle: z.number().optional(),
|
|
362
|
+
stops: z.array(z.object({ position: z.number(), fill: TableStyleSimpleColorSchema }))
|
|
363
|
+
}).optional(),
|
|
364
|
+
pattern: z.object({
|
|
365
|
+
preset: z.string(),
|
|
366
|
+
foreground: TableStyleSimpleColorSchema.optional(),
|
|
367
|
+
background: TableStyleSimpleColorSchema.optional()
|
|
368
|
+
}).optional(),
|
|
369
|
+
image: z.object({ path: z.string().optional(), data: z.string().optional() }).optional()
|
|
370
|
+
});
|
|
371
|
+
var TableStyleTextSchema = z.object({
|
|
372
|
+
bold: z.boolean().optional(),
|
|
373
|
+
italic: z.boolean().optional(),
|
|
374
|
+
underline: z.boolean().optional(),
|
|
375
|
+
fontSchemeColor: z.string().optional(),
|
|
376
|
+
fontTint: z.number().optional(),
|
|
377
|
+
fontShade: z.number().optional(),
|
|
378
|
+
fontColor: z.string().optional(),
|
|
379
|
+
fontFace: z.string().optional(),
|
|
380
|
+
fontRefIdx: z.string().optional()
|
|
381
|
+
});
|
|
382
|
+
var TableStyleBorderSideSchema = z.object({
|
|
383
|
+
width: z.number().optional(),
|
|
384
|
+
dash: z.string().optional(),
|
|
385
|
+
fill: TableStyleSimpleColorSchema.optional(),
|
|
386
|
+
color: z.string().optional(),
|
|
387
|
+
noFill: z.boolean().optional()
|
|
388
|
+
});
|
|
389
|
+
var TableStyleBordersSchema = z.object({
|
|
390
|
+
left: TableStyleBorderSideSchema.optional(),
|
|
391
|
+
right: TableStyleBorderSideSchema.optional(),
|
|
392
|
+
top: TableStyleBorderSideSchema.optional(),
|
|
393
|
+
bottom: TableStyleBorderSideSchema.optional(),
|
|
394
|
+
insideH: TableStyleBorderSideSchema.optional(),
|
|
395
|
+
insideV: TableStyleBorderSideSchema.optional(),
|
|
396
|
+
tl2br: TableStyleBorderSideSchema.optional(),
|
|
397
|
+
tr2bl: TableStyleBorderSideSchema.optional()
|
|
398
|
+
});
|
|
399
|
+
var TableStyleCell3DSchema = z.object({
|
|
400
|
+
bevelWidth: z.number().optional(),
|
|
401
|
+
bevelHeight: z.number().optional(),
|
|
402
|
+
bevelPreset: z.string().optional(),
|
|
403
|
+
material: z.string().optional(),
|
|
404
|
+
lightRig: z.string().optional(),
|
|
405
|
+
lightRigDirection: z.string().optional()
|
|
406
|
+
});
|
|
407
|
+
var SetTableStyleSectionSchema = z.object({
|
|
408
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
409
|
+
styleId: z.string().describe('Table style GUID, e.g. "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"'),
|
|
410
|
+
section: z.enum(TABLE_STYLE_SECTIONS).describe("Which of the 13 CT_TableStyle parts to patch"),
|
|
411
|
+
styleName: z.string().optional().describe("Rename the style"),
|
|
412
|
+
fill: TableStyleFillSchema.optional(),
|
|
413
|
+
text: TableStyleTextSchema.optional(),
|
|
414
|
+
borders: TableStyleBordersSchema.optional(),
|
|
415
|
+
cell3D: TableStyleCell3DSchema.optional()
|
|
416
|
+
});
|
|
417
|
+
var CreateTableStyleSchema = z.object({
|
|
418
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
419
|
+
styleName: z.string().describe("Display name for the new style"),
|
|
420
|
+
basedOnStyleId: z.string().optional().describe("Deep-clone every section from this existing style GUID as the starting point"),
|
|
421
|
+
setAsDefault: z.boolean().optional().describe("Repoint ppt/tableStyles.xml's default style at the new one")
|
|
422
|
+
});
|
|
423
|
+
var DeleteTableStyleSchema = z.object({
|
|
424
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
425
|
+
styleId: z.string().describe("Table style GUID to remove"),
|
|
426
|
+
force: z.boolean().optional().describe("Delete even though a table on this deck still references the style")
|
|
427
|
+
});
|
|
428
|
+
var AssignTableStyleSchema = z.object({
|
|
429
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
430
|
+
slideIndex: z.number().int().min(0),
|
|
431
|
+
elementId: z.string().describe("Table element ID"),
|
|
432
|
+
styleId: z.string().optional().describe(
|
|
433
|
+
"Table style GUID to assign. Defaults to the presentation's current default table style when omitted."
|
|
434
|
+
),
|
|
435
|
+
bandedRows: z.boolean().optional(),
|
|
436
|
+
bandedColumns: z.boolean().optional(),
|
|
437
|
+
firstRowHeader: z.boolean().optional(),
|
|
438
|
+
lastRow: z.boolean().optional(),
|
|
439
|
+
firstCol: z.boolean().optional(),
|
|
440
|
+
lastCol: z.boolean().optional()
|
|
441
|
+
});
|
|
264
442
|
var GetThemeInfoSchema = z.object({
|
|
265
443
|
filePath: z.string().describe("Path to the PPTX file")
|
|
266
444
|
});
|
|
@@ -290,6 +468,139 @@ var UpdateThemeFontsSchema = z.object({
|
|
|
290
468
|
majorFont: z.string().optional().describe("Heading (major) font family"),
|
|
291
469
|
minorFont: z.string().optional().describe("Body (minor) font family")
|
|
292
470
|
});
|
|
471
|
+
var MarkerSymbolSchema = z.enum([
|
|
472
|
+
"circle",
|
|
473
|
+
"dash",
|
|
474
|
+
"diamond",
|
|
475
|
+
"dot",
|
|
476
|
+
"none",
|
|
477
|
+
"picture",
|
|
478
|
+
"plus",
|
|
479
|
+
"square",
|
|
480
|
+
"star",
|
|
481
|
+
"triangle",
|
|
482
|
+
"x",
|
|
483
|
+
"auto"
|
|
484
|
+
]);
|
|
485
|
+
var DataLabelPositionSchema = z.enum([
|
|
486
|
+
"bestFit",
|
|
487
|
+
"b",
|
|
488
|
+
"ctr",
|
|
489
|
+
"inBase",
|
|
490
|
+
"inEnd",
|
|
491
|
+
"l",
|
|
492
|
+
"outEnd",
|
|
493
|
+
"r",
|
|
494
|
+
"t"
|
|
495
|
+
]);
|
|
496
|
+
var FormatChartDataPointSchema = z.object({
|
|
497
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
498
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
499
|
+
elementId: z.string().describe("Chart element ID"),
|
|
500
|
+
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
501
|
+
pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
|
|
502
|
+
fillColor: z.string().optional().describe("Fill colour (hex) for this point only"),
|
|
503
|
+
strokeColor: z.string().optional().describe("Outline colour (hex) for this point only"),
|
|
504
|
+
strokeWidth: z.number().optional().describe("Outline width in points"),
|
|
505
|
+
strokeDashStyle: z.string().optional().describe("Outline dash style, e.g. solid, dash, dashDot, sysDot"),
|
|
506
|
+
clearStyle: z.boolean().optional().describe("Remove all per-point shape formatting"),
|
|
507
|
+
explosion: z.number().nullable().optional().describe("Pie/doughnut slice pull-out distance 0-100; null clears it"),
|
|
508
|
+
marker: z.object({
|
|
509
|
+
symbol: MarkerSymbolSchema.optional(),
|
|
510
|
+
size: z.number().optional(),
|
|
511
|
+
fillColor: z.string().optional()
|
|
512
|
+
}).nullable().optional().describe("Per-point marker override (line/scatter/bubble); null clears it")
|
|
513
|
+
});
|
|
514
|
+
var FormatChartDataLabelSchema = z.object({
|
|
515
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
516
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
517
|
+
elementId: z.string().describe("Chart element ID"),
|
|
518
|
+
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
519
|
+
pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
|
|
520
|
+
remove: z.boolean().optional().describe("Remove the per-point label override entirely"),
|
|
521
|
+
showValue: z.boolean().optional(),
|
|
522
|
+
showCategory: z.boolean().optional(),
|
|
523
|
+
showSeriesName: z.boolean().optional(),
|
|
524
|
+
showPercent: z.boolean().optional(),
|
|
525
|
+
showLegendKey: z.boolean().optional(),
|
|
526
|
+
position: DataLabelPositionSchema.optional(),
|
|
527
|
+
text: z.string().optional().describe("Custom label text override; '' clears it"),
|
|
528
|
+
spPr: z.object({
|
|
529
|
+
fillColor: z.string().optional(),
|
|
530
|
+
strokeColor: z.string().optional(),
|
|
531
|
+
strokeWidth: z.number().optional(),
|
|
532
|
+
strokeDashStyle: z.string().optional()
|
|
533
|
+
}).nullable().optional().describe("This label's own fill/line formatting; null removes it"),
|
|
534
|
+
txPr: z.object({
|
|
535
|
+
fontFamily: z.string().optional(),
|
|
536
|
+
fontSize: z.number().optional(),
|
|
537
|
+
bold: z.boolean().optional(),
|
|
538
|
+
italic: z.boolean().optional(),
|
|
539
|
+
color: z.string().optional()
|
|
540
|
+
}).nullable().optional().describe("This label's own font; null removes it")
|
|
541
|
+
});
|
|
542
|
+
var FormatChartSeriesSchema = z.object({
|
|
543
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
544
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
545
|
+
elementId: z.string().describe("Chart element ID"),
|
|
546
|
+
seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
|
|
547
|
+
marker: z.object({
|
|
548
|
+
symbol: MarkerSymbolSchema.optional(),
|
|
549
|
+
size: z.number().optional(),
|
|
550
|
+
fillColor: z.string().optional(),
|
|
551
|
+
strokeColor: z.string().optional(),
|
|
552
|
+
strokeWidth: z.number().optional(),
|
|
553
|
+
strokeDashStyle: z.string().optional()
|
|
554
|
+
}).nullable().optional().describe("Series marker (line/scatter/bubble/radar); null removes it"),
|
|
555
|
+
trendline: z.object({
|
|
556
|
+
trendlineType: z.enum([
|
|
557
|
+
"linear",
|
|
558
|
+
"exponential",
|
|
559
|
+
"logarithmic",
|
|
560
|
+
"polynomial",
|
|
561
|
+
"power",
|
|
562
|
+
"movingAvg"
|
|
563
|
+
]),
|
|
564
|
+
color: z.string().optional(),
|
|
565
|
+
lineWidth: z.number().optional().describe("Trendline width in points"),
|
|
566
|
+
lineDashStyle: z.string().optional(),
|
|
567
|
+
order: z.number().optional().describe("Polynomial order, 2-6"),
|
|
568
|
+
period: z.number().optional().describe("Moving-average period"),
|
|
569
|
+
displayEq: z.boolean().optional(),
|
|
570
|
+
displayRSq: z.boolean().optional()
|
|
571
|
+
}).nullable().optional().describe("Series trendline; null removes it"),
|
|
572
|
+
errorBars: z.object({
|
|
573
|
+
direction: z.enum(["x", "y"]),
|
|
574
|
+
barType: z.enum(["both", "minus", "plus"]),
|
|
575
|
+
valType: z.enum(["cust", "fixedVal", "percentage", "stdDev", "stdErr"]),
|
|
576
|
+
val: z.number().optional(),
|
|
577
|
+
customPlus: z.array(z.number()).optional(),
|
|
578
|
+
customMinus: z.array(z.number()).optional(),
|
|
579
|
+
noEndCap: z.boolean().optional(),
|
|
580
|
+
color: z.string().optional(),
|
|
581
|
+
width: z.number().optional().describe("Error-bar line width in points"),
|
|
582
|
+
dashStyle: z.string().optional()
|
|
583
|
+
}).nullable().optional().describe("Series error bars; null removes them")
|
|
584
|
+
});
|
|
585
|
+
var SetChartHelperLineSchema = z.object({
|
|
586
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
587
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
588
|
+
elementId: z.string().describe("Chart element ID"),
|
|
589
|
+
line: z.enum(["dropLines", "hiLowLines"]).describe("Which helper line to set"),
|
|
590
|
+
style: z.object({
|
|
591
|
+
color: z.string().optional(),
|
|
592
|
+
width: z.number().optional(),
|
|
593
|
+
dashStyle: z.string().optional()
|
|
594
|
+
}).nullable().describe("Line colour/width/dash; {} shows the line with defaults, null removes it")
|
|
595
|
+
});
|
|
596
|
+
var SetChartColorMapOverrideSchema = z.object({
|
|
597
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
598
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
599
|
+
elementId: z.string().describe("Chart element ID"),
|
|
600
|
+
overrides: z.record(z.string(), z.string()).nullable().describe(
|
|
601
|
+
'Theme colour role remap (bg1/tx1/bg2/tx2/accent1-6/hlink/folHlink -> role), e.g. { "accent1": "accent2" }; null removes the override'
|
|
602
|
+
)
|
|
603
|
+
});
|
|
293
604
|
var UpdateChartSchema = z.object({
|
|
294
605
|
filePath: z.string().describe("Path to the PPTX file"),
|
|
295
606
|
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
@@ -369,6 +680,50 @@ var CreateChartSchema = z.object({
|
|
|
369
680
|
position: z.string().optional()
|
|
370
681
|
}).optional().describe("Legend configuration")
|
|
371
682
|
});
|
|
683
|
+
var PointSchema = z.object({ x: z.number(), y: z.number() });
|
|
684
|
+
var ExtentSchema = z.object({ cx: z.number(), cy: z.number() });
|
|
685
|
+
var ChartUserShapeInputSchema = z.object({
|
|
686
|
+
kind: z.enum(["sp", "cxnSp"]).optional().describe('Overlay shape kind: "sp" (text/preset shape, default) or "cxnSp" (connector).'),
|
|
687
|
+
anchor: z.enum(["rel", "abs"]).optional().describe(
|
|
688
|
+
'Anchor kind: "rel" (default, resizes with the chart; needs `to`) or "abs" (fixed EMU size; needs `ext`).'
|
|
689
|
+
),
|
|
690
|
+
from: PointSchema.describe("Top-left corner as chart-relative fractions (0-1 each)."),
|
|
691
|
+
to: PointSchema.optional().describe(
|
|
692
|
+
"Bottom-right corner as chart-relative fractions; rel anchors only."
|
|
693
|
+
),
|
|
694
|
+
ext: ExtentSchema.optional().describe("Width/height in EMU; abs anchors only."),
|
|
695
|
+
prst: z.string().optional().describe('Preset geometry name (e.g. "rect", "roundRect"); default "rect".'),
|
|
696
|
+
fill: z.string().optional().describe('Solid fill colour, hex (e.g. "#FFFF00").'),
|
|
697
|
+
stroke: z.string().optional().describe("Line colour, hex."),
|
|
698
|
+
strokeWidth: z.number().optional().describe("Line width in points."),
|
|
699
|
+
text: z.string().optional().describe("Plain text content, centred in the shape.")
|
|
700
|
+
});
|
|
701
|
+
var ListChartUserShapesSchema = z.object({
|
|
702
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
703
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
704
|
+
elementId: z.string().describe("Chart element ID")
|
|
705
|
+
});
|
|
706
|
+
var AddChartUserShapeSchema = z.object({
|
|
707
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
708
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
709
|
+
elementId: z.string().describe("Chart element ID"),
|
|
710
|
+
shape: ChartUserShapeInputSchema.describe("The overlay shape to add.")
|
|
711
|
+
});
|
|
712
|
+
var UpdateChartUserShapeSchema = z.object({
|
|
713
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
714
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
715
|
+
elementId: z.string().describe("Chart element ID"),
|
|
716
|
+
index: z.number().int().min(0).describe("Zero-based overlay-shape index (from chart_user_shape_list)"),
|
|
717
|
+
patch: ChartUserShapeInputSchema.partial().describe(
|
|
718
|
+
"Fields to overwrite; anything omitted is left as-is."
|
|
719
|
+
)
|
|
720
|
+
});
|
|
721
|
+
var RemoveChartUserShapeSchema = z.object({
|
|
722
|
+
filePath: z.string().describe("Path to the PPTX file"),
|
|
723
|
+
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
724
|
+
elementId: z.string().describe("Chart element ID"),
|
|
725
|
+
index: z.number().int().min(0).describe("Zero-based overlay-shape index to remove")
|
|
726
|
+
});
|
|
372
727
|
var ManageSmartArtSchema = z.object({
|
|
373
728
|
filePath: z.string().describe("Path to the PPTX file"),
|
|
374
729
|
slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
|
|
@@ -509,4 +864,4 @@ var ApplyLayoutSchema = z.object({
|
|
|
509
864
|
layoutType: z.string().optional().describe("Layout type to apply (alternative to name)")
|
|
510
865
|
});
|
|
511
866
|
|
|
512
|
-
export { AccessibilityCheckSchema, AddChartSeriesSchema, AddElementSchema, AddSlideSchema, ApplyLayoutSchema, ApplyTemplateSchema, ApplyThemePresetSchema, ArrangeElementsSchema, BatchUpdateElementsSchema, CloneElementSchema, ConvertToMarkdownSchema, CreateChartSchema, DeleteElementsSchema, DeleteSlidesSchema, DuplicateSlideSchema, ExportSlideSvgSchema, ExportToJsonSchema, ExportToSvgSchema, FindPlaceholdersSchema, FindTextSchema, GetLayoutsSchema, GetMetadataSchema, GetPresentationPropertiesSchema, GetSlideSchema, GetThemeInfoSchema, GroupElementsSchema, ImportFromJsonSchema, ManageCommentsSchema, ManageHyperlinksSchema, ManageSectionsSchema, ManageSmartArtSchema, ManageTableStructureSchema, RemoveChartSeriesSchema, RenameElementSchema, ReorderSlidesSchema, RepairPresentationSchema, ReplaceGeometrySchema, ReplaceTextSchema, SetCanvasSizeSchema, SetElementAnimationSchema, SetElementLockSchema, SetSlideTransitionSchema, UngroupElementsSchema, UpdateChartSchema, UpdateChartSeriesDataSchema, UpdateElementSchema, UpdateElementStyleSchema, UpdateMetadataSchema, UpdatePresentationPropertiesSchema, UpdateSlidePropertiesSchema, UpdateTableCellsSchema, UpdateThemeColorsSchema, UpdateThemeFontsSchema, ValidatePresentationSchema };
|
|
867
|
+
export { AccessibilityCheckSchema, AddChartSeriesSchema, AddChartUserShapeSchema, AddElementSchema, AddSlideSchema, ApplyLayoutSchema, ApplyTemplateSchema, ApplyThemePresetSchema, ArrangeElementsSchema, AssignTableStyleSchema, BatchUpdateElementsSchema, CloneElementSchema, ConvertToMarkdownSchema, CreateChartSchema, CreateTableStyleSchema, DeleteElementsSchema, DeleteSlidesSchema, DeleteTableStyleSchema, DuplicateSlideSchema, ExportSlideSvgSchema, ExportToJsonSchema, ExportToSvgSchema, FindPlaceholdersSchema, FindTextSchema, FormatChartDataLabelSchema, FormatChartDataPointSchema, FormatChartSeriesSchema, GetLayoutsSchema, GetMetadataSchema, GetPresentationPropertiesSchema, GetSlideSchema, GetThemeInfoSchema, GroupElementsSchema, ImportFromJsonSchema, ListChartUserShapesSchema, ManageCommentsSchema, ManageHyperlinksSchema, ManageSectionsSchema, ManageSmartArtSchema, ManageTableStructureSchema, RemoveChartSeriesSchema, RemoveChartUserShapeSchema, RenameElementSchema, ReorderSlidesSchema, RepairPresentationSchema, ReplaceGeometrySchema, ReplaceTextSchema, SetCanvasSizeSchema, SetChartColorMapOverrideSchema, SetChartHelperLineSchema, SetElementAnimationSchema, SetElementLockSchema, SetSlideTransitionSchema, SetTableStyleSectionSchema, TABLE_STYLE_SECTIONS, TableStyleBordersSchema, TableStyleCell3DSchema, TableStyleFillSchema, TableStyleTextSchema, UngroupElementsSchema, UpdateChartSchema, UpdateChartSeriesDataSchema, UpdateChartUserShapeSchema, UpdateElementSchema, UpdateElementStyleSchema, UpdateMetadataSchema, UpdatePresentationPropertiesSchema, UpdateSlidePropertiesSchema, UpdateTableCellsSchema, UpdateThemeColorsSchema, UpdateThemeFontsSchema, ValidatePresentationSchema };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pptx-viewer-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "PowerPoint PPTX tools and MCP server: manipulate, convert, and collaborate on .pptx files from AI agents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
73
73
|
"fast-xml-parser": "^5.11.0",
|
|
74
74
|
"jszip": "^3.10.1",
|
|
75
|
-
"pptx-viewer-core": "^3.0
|
|
75
|
+
"pptx-viewer-core": "^3.5.0",
|
|
76
76
|
"zod": "^4.4.3"
|
|
77
77
|
},
|
|
78
78
|
"devDependencies": {
|