edit-pptx
Edit existing PowerPoint files: preview slide outline, append slides from markdown, or replace a specific slide by index. Rebuilds text and notes, not charts or images.
Instructions
Edit an existing PowerPoint (.pptx). Actions: 'preview' (show the current slide outline), 'append-slides' (add new slides from markdown — one '## ' heading per slide), 'replace-slide' (replace one content slide by 1-based index with new markdown). IMPORTANT: edit-pptx REBUILDS the deck from the existing slides' extracted TEXT + speaker notes, normalized to a style preset — charts, images, and exact original formatting on pre-existing slides are NOT preserved (best for the text/bullet decks create-pptx makes). To author a brand-new deck use create-pptx; to read a deck use read-doc.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| style | No | Advanced style overrides merged on top of stylePreset. | |
| title | No | Optional heading to use when replace-slide content has no leading '## '. | |
| action | Yes | Edit action. | |
| content | No | New slide markdown ('## ' per slide). Required for append-slides and replace-slide. | |
| filePath | Yes | Path to the existing .pptx file. | |
| uploadUrl | No | OPTIONAL. HTTPS URL of a receiver that will accept a JSON envelope `{data:base64, filename, mimeType, size}` POSTed with this Bearer auth. If you have NOT been given an uploadUrl in your context, OMIT this field and the tool just writes the file locally. Single-use semantics — do not retry on 4xx. Works with any compliant receiver (CogniRunner attachment-upload web trigger is the reference implementation, but the contract is generic). | |
| clientHint | No | How the response should be shaped. 'interactive' = polished one-line message for end-users (no chatty registry/lineage notes). 'agent' = verbose response with all metadata for AI consumption. 'auto' (default) = detect from input shape or MCP_CLIENT_TYPE env var, falling back to 'agent'. | |
| outputPath | No | Optional. Write the result here instead of overwriting the input file. | |
| slideIndex | No | 1-based index among CONTENT slides (the title slide is excluded). Required for replace-slide. | |
| stylePreset | No | Style preset. 'claude-like' (modern blue-accented professional) is the default for general-purpose docs. 'professional' is the executive serif look. Auto-selected from category if omitted. | |
| uploadFilename | No | OPTIONAL. Filename to put in the upload envelope. Defaults to the local file's basename. Useful when the local file got auto-suffixed (e.g. duplicate prevention) and you want a clean name on the receiver side. | |
| uploadAuthHeader | No | OPTIONAL. Authorization header value for uploadUrl (e.g. 'Bearer abc123'). REQUIRED when uploadUrl is set; ignored otherwise. Never logged. |