Skip to main content
Glama

KitchenSink4PPT

Tests PyPI License: AGPL-3.0

Build and revise PowerPoint decks with your AI assistant, with diagrams made of shapes you can still edit.

Your AI gets 193 actions in PowerPoint, a backup before every change, and a question instead of a guess when your request could mean more than one shape.

KitchenSink4PPT is an MCP server that lets Claude Code, the Codex CLI, Copilot CLI, Claude Desktop and other local MCP clients create and edit .pptx files. Its diagrams are built from native PowerPoint shapes and glued connectors, so the slide is still yours to adjust after the AI is done. This is the free Community edition, licensed under the AGPL-3.0.

Product page · llms.txt · Changelog

Platform: the file tools run on Windows and Linux (macOS is untested in this release). Editing a deck that is open in PowerPoint needs Windows with PowerPoint. PDF and image export need PowerPoint on Windows or a supported LibreOffice.

Install

The package needs Python 3.12 or newer. Run the commands below in PowerShell or a terminal, not in an AI chat.

Claude Code or Codex CLI. Install uv, run the line for your app, and start a new session:

claude mcp add ppt -s user -- uvx kitchensink4ppt
codex mcp add ppt -- uvx kitchensink4ppt

Claude Desktop. Install uv and restart Claude Desktop. Download the .mcpb file from the latest release, then open Settings > Extensions > Advanced settings > Install extension and choose the file. The first launch downloads the Python package, so it needs a network connection.

Any other local MCP client. Use uvx as the command and kitchensink4ppt as its argument, or install the package and run kitchensink4ppt as the server command:

pip install kitchensink4ppt

Optional: pip install "kitchensink4ppt[metrics]" adds measurement with your installed fonts for text fitting and overflow checks. The results are still estimates, so render the slide to confirm.

Related MCP server: PowerPoint Editor MCP Server

What it can do

  • Build a deck from a template and revise its text and speaker notes.

  • Draw diagrams from editable shapes and glued connectors, or generate timelines, org charts, matrices, cycles and comparisons in one call.

  • Turn SVG graphics into native PowerPoint shapes.

  • Align objects and apply consistent fonts, colors, themes and layouts.

  • Build tables and charts that colleagues can keep editing.

  • Merge, split and compare decks, and work through review comments.

  • Check slides for accessibility issues and apply the supported repairs.

  • Export PDF or slide images when a rendering application is installed.

In total the server offers 145 operations in 9 tools, 193 counting each action an operation can take (for example each kind of transition or alignment). The whole tool list costs about 7.3k tokens of your AI's working memory at startup. Figures come from scripts/measure_surface.py and scripts/count_operations.py.

KitchenSink4Word (Word), KitchenSink4XL (Excel) and KitchenSink4Web (web pages) are built the same way.

Real graphics, not pictures of graphics

svg_to_shapes compiles an SVG into a grouped tree of native PowerPoint shapes: custom geometry, gradients, strokes, text and nested groups. Nothing is rasterized, no external service is called, and building does not need PowerPoint installed. Every shape keeps its own id, so you can recolor one node, resize a box or rewrite a label afterward.

Connectors are glued. Move a node and its arrows follow, exactly as if someone had drawn the diagram by hand, so the person you hand the deck to can adjust any piece without regenerating it.

insert_shape (presets and freeform geometry), insert_connector (straight, elbow, curved, with arrowheads), group_shapes, align_shapes, distribute_shapes and set_z_order cover diagrams built from scratch, and export_slide_image renders a PNG so your AI can look at what it made and fix it.

Tool packs and context cost

The server lists nine tools, all from the first message. Every tool except ppt_help takes an op (the operation to run) and args (its arguments, including the path to the .pptx). Everything is available from the start; nothing needs switching on. Token figures count the full tools/list entry the client receives and come from scripts/measure_surface.py. ppt_help returns the arguments and a working example for any operation, and unknown arguments are refused rather than ignored. Name a slide with slide_number, which counts from 1 the way people do, or with slide, which counts from 0; every answer about one slide gives its number and title.

Tool

Operations

Approx. tokens

What it covers

ppt_read

18

~1.0k

Read a deck as text with a stable address on every slide, find text, list elements, read tables, charts, notes, comments, equations and hyperlinks, get_server_info and get_workflows

ppt_inspect

17

~0.9k

Audits that change nothing: accessibility, layout and overflow checks, font inventory, deck comparison, statistics, brand extraction, theme, document properties, diagnose, and PowerPoint status

ppt_edit

19

~0.9k

Batch edits with apply_edits, search and replace, placeholder text, text fitting and formatting, bullets, hyperlinks, notes, and slide insert, delete, duplicate, reorder, move and hide

ppt_graphics

27

~1.2k

Shapes and their adjust handles, glued connectors, the SVG compiler, one-call diagram generators, grouping, alignment, z-order, images, video and audio, equations, alt text and reading order, and copying a shape or group from another deck

ppt_tables

16

~0.7k

Tables with cell edits, merge and unmerge, row and column insert and delete, borders and fills, widths and heights, built-in styles, CSV and JSON import; charts with editable data

ppt_design

19

~0.9k

Slide size, layouts, theme colors and fonts, brand application, backgrounds, master and layout editing, font and color replacement across the deck, transitions and entrance animations

ppt_review

7

~0.6k

Threaded comments (add, reply, resolve, delete) and anonymizing a deck for review. Also updates the server when you ask (update_now) and turns update notices on or off (update_notices)

ppt_deck

22

~1.0k

New presentations from templates, copies, snapshots and backups, copying slides between decks, merge and split, PDF, PNG, shape image and handout export, agenda slides, footers, compression, validation, and saving or scrolling a deck open in PowerPoint

ppt_help

n/a

~0.2k

The arguments and an example for any operation

All nine

145

~7.3k

Loaded once at the start; nothing to switch on later

For a recipe, ask your AI to call get_workflows. It includes the build-a-diagram, template and table sequences with the right tool for each step. The server's own instructions add about 500 tokens to the figures above. Administrators who want a narrower server can set KS4P_READ_ONLY=1 or list what to remove in KS4P_FORBID (see Configuration); what is removed no longer counts toward the cost.

Safety model

  • Atomic, validated saves. Every change rebuilds the package in memory, validates it, then swaps the new file in for the old one. A failed operation leaves the original exactly as it was. On Windows the deck keeps its Mark of the Web, so a downloaded deck still opens in Protected View, and its creation time; it keeps its own permissions wherever the file system and the folder allow it; where they do not, the deck takes its folder's permissions and the answer says so in a warning. Other programs may see the deck missing for a moment during a save, usually a few milliseconds; this server's reads wait it out.

  • Backups before every change. The current version rotates into prev.pptx and anchor.pptx in a hidden .ks4p-backups/ folder next to the deck. create_snapshot keeps a permanent copy in the same hidden folder, where nothing rotates or purges it; with dest_dir it writes a visible copy there instead, named after the deck so it never carries a newer leading date stamp than the deck. manage_backups lists and restores them all (a restore can itself be undone) and purges the rotating ones.

  • Untouched parts stay untouched. Parts a call does not change are written back byte for byte, so themes, media and animations survive edits to other slides.

  • Refusals instead of guesses. Ambiguous targets are refused with a list of candidates, merged-cell edits that would split a span are refused, and a batch with a stale anchor is refused before anything changes. Each refusal is structured ({ok: false, error: {code, message, hint}}) and names the next call to make.

  • Locks. Changes to one file are serialized within a server and across processes. A deck open in PowerPoint is read from its saved file, and the answer says so; the file tools refuse to change it rather than risk it.

  • PowerPoint stays yours. The server ends a PowerPoint process only if it started that process itself, and it cancels a hung call safely instead of killing the application.

  • Encrypted and read-only files. An encrypted presentation is refused before any Office call, and a read-only file is reported as read-only.

Privacy

The server runs on your computer. KitchenSink4AI never receives your files or usage data. Your AI app may send prompts, file contents and tool results to its own provider under that app's settings and terms. The update check described below contacts PyPI at most once a week and sends only the package name and the installed version. Choosing Update now downloads the new version from PyPI, or the new bundle from GitHub for Claude Desktop. The server's startup banner is switched off, so the framework it runs on makes no version check of its own. The Privacy Policy covers the product, purchases and support.

Configuration

Variable

Effect

KS4P_READ_ONLY

1 removes every tool that changes a file, leaving ppt_read, ppt_inspect and ppt_help

KS4P_FORBID

Comma-separated tool or operation names to remove, for example export_pdf,ppt_review; ppt_app is also accepted as a name, and removes everything that starts or attaches to PowerPoint

KS4P_ALLOWED_ROOTS

Optional sandbox: tools refuse to touch files outside these folders

KS4P_CALL_TIMEOUT_S

Seconds a single call may run before it is cancelled safely (default 120)

KS4P_MAX_OUTPUT_CHARS

Ceiling on the size of one reply, so a large deck is read in pages (default 52,000 characters)

KS4P_UPDATE_CHECK

off disables the update check completely (KS4P_NO_UPDATE_CHECK=1 also works)

KS4P_UPDATE_NOTICES

off turns update notices off; on turns them back on after you turned them off

KS4P_AUTHOR

Who signs a comment or reply when the call names no author: user (the default) signs with your own name, your Office user name or, without one, your Windows sign-in name; assistant signs as "AI Assistant via KS4PPT", as does a call that passes author="assistant", whatever the setting

KS4P_COMMENT_AUTHOR

A name that signs every comment and reply whose call names no author, in place of the KS4P_AUTHOR choice. An email address never signs, whether it is set here or sent as a call's author: the next choice signs and the answer says so

A value the server cannot use stops startup with a plain message instead of being guessed at: an unreadable KS4P_READ_ONLY, KS4P_CALL_TIMEOUT_S, KS4P_MAX_OUTPUT_CHARS or KS4P_AUTHOR, a name in KS4P_FORBID that is not a tool or operation, or a retired setting that locked the tools, such as KS4P_PACK_POLICY=locked. A variable name the server does not know is ignored, so a misspelled one such as KS4P_READ_ONY has no effect. Check the spelling; get_server_info reports whether the server is read-only and what it forbids.

Update check and update notices. At most once a week, after you use a tool, the server asks PyPI in the background which version of kitchensink4ppt is newest. The request names only the package and the installed version and contains no decks, file names or identifiers. When a newer version exists and the server runs through uvx or the Claude Desktop extension, your AI app shows a short notice with Update now and Not now, where the app supports one. Otherwise your AI mentions the new version once and offers to update. It never downloads or installs a new version unless you choose Update now in its notice or ask your AI to update it. To turn notices off, ask your AI to turn off KitchenSink4PPT update notices; KS4P_UPDATE_NOTICES=off turns them off everywhere, and KS4P_UPDATE_CHECK=off turns the check off completely (the older KS4P_NO_UPDATE_CHECK=1 also works). The setting is kept in the server's own state folder, so it survives updates.

Upgrading from 1.x

Version 2.0 regroups the 142 flat tools of 1.3.1 into the nine tools above. Every 1.3.1 operation still exists, but you now call it as an operation of a group tool: ppt_graphics with op: "svg_to_shapes" instead of a tool named svg_to_shapes. Some arguments changed, so check ppt_help for an operation before the first call.

  • docs/surface_map.md lists each 1.3.1 tool beside the tool and operation that replaces it.

  • The migrate-from-v1 recipe in get_workflows gives your AI the same map, so it can translate a saved prompt or script.

  • enable_tools and disable_tools are gone, because every operation is present from the start. The launch settings KS4P_MODE, KS4P_PACK_POLICY, KS4P_ALL_TOOLS and KS4P_LOCK_TOOLS are retired. Settings from earlier versions are handled for you: an old default (KS4P_MODE=lite, full or everything, KS4P_PACK_POLICY=auto, KS4P_ALL_TOOLS, KS4P_LOCK_TOOLS=false) is ignored with a one-line notice, and a setting that locked the tools (KS4P_PACK_POLICY=locked, KS4P_LOCK_TOOLS=true or a KS4P_MODE list of tool groups) stops the start with a message naming what to use instead. To limit what the server offers, use KS4P_READ_ONLY and KS4P_FORBID (see Configuration).

  • The install commands, the package name and the kitchensink4ppt command are unchanged.

The changelog lists everything else that changed.

Testing

The file layer (packages, slides, text, graphics, tables, charts, comments, animations, themes, links, media, notes, masters, equations, accessibility, assembly, sweeps and export) is covered by a suite of 3,689 tests, including checks that generated decks open cleanly in PowerPoint, and the server passes a protocol round-trip suite over stdio. Tests that need sample decks generate synthetic ones, so the suite runs on any machine. Editing a deck that is open in PowerPoint runs every call through one process-wide lock, with dialog detection and bounded timeouts.

Reporting problems

Please open an issue with what you asked for, what happened and what you expected. Ask your AI to run diagnose and paste the output; it is designed to be safe to share. Please do not attach decks that contain anything private. For security issues, follow SECURITY.md.

Business edition

The Business edition pairs these tools with a Windows installer, a signed update channel and support under the Business terms. Update checks tell you when a covered release is available, and nothing installs on its own. See pricing. The Community edition stays free under the AGPL, including business use that meets its terms.

Contributing

Bug reports, fixes, tests and documentation are welcome. See CONTRIBUTING.md; first-time contributors agree to the Contributor License Agreement.

License

KitchenSink4PPT is dual-licensed.

  • AGPL-3.0. Free for anyone, including businesses, for any use that complies with the AGPL. Its terms include sharing your source code, with your modifications, when you distribute the software or make it available over a network.

  • Commercial license. For organizations that want to build KitchenSink4PPT into their own products or services without the AGPL's source-sharing obligations. Contact licensing@kitchensink4.ai.

Copyright (c) 2026 Alvut Consulting, LLC. KitchenSink4AI is a product line of Alvut Consulting, LLC. KitchenSink4AI tools are built with the help of AI coding assistants, and every release goes through the full test suite before it ships.

Not affiliated with, endorsed by, or sponsored by Microsoft Corporation. Microsoft and PowerPoint are trademarks of the Microsoft group of companies. GitHub and Copilot are trademarks of the Microsoft group of companies. Claude is a trademark of Anthropic. Codex and OpenAI are trademarks of OpenAI. All other trademarks are the property of their respective owners.

Available Tools

9 tools
ppt_deckPowerPoint Decks and ExportsA
Destructive

Whole decks and PowerPoint itself: create, copy, snapshot, backups, copy slides between decks, merge, split, export to PDF, images, handouts or tables, document properties, agenda slides, compression, show settings, custom shows, footers, the opens-clean check (validate), and saving or scrolling a deck open in PowerPoint. Edits to a deck open in PowerPoint stay unsaved for the user to review and save; call live_save only when the user asks. Operations, one per line, as name: what it does:

  • create_presentation: Create a new .pptx, blank or from a template deck; an existing file is refused.

  • copy_presentation: Copy a deck byte for byte to dest_path; an existing destination is refused unless overwrite=true.

  • create_snapshot: Save a permanent copy of the deck in its hidden backup folder, or a visible one in dest_dir; never pruned or overwritten.

  • manage_backups: List, restore or purge the automatic backups (prev and anchor slots); purge is a dry run unless dry_run=false.

  • copy_slide_between: Copy one slide from another deck into this one; the source deck is not changed.

  • merge_decks: Append whole decks onto this deck, in order.

  • split_deck: Split a deck into files by section or slide range; the source is not changed.

  • export_pdf: Export the deck to PDF through PowerPoint, or LibreOffice when PowerPoint is absent.

  • export_slide_image: Render slides to PNG files to check them: slides counts from 0 (or send slide_numbers, from 1) and width sets the pixels (default 1280); the deck is not changed.

  • export_shape_image: Render one shape or group to a PNG at a set width; needs PowerPoint.

  • export_handout: Export a handout or notes-page PDF; needs PowerPoint.

  • export_table: Export a table's content as CSV or JSON, to a file or inline.

  • set_document_properties: Set the deck's document properties; an empty string clears a field.

  • generate_agenda_slide: Insert an agenda slide listing the sections, each linked to its first slide. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_designPowerPoint Design and MastersA
Destructive

Deck design: slide size, layouts, theme colors and fonts, brand transfer, backgrounds, masters and layout placeholders, deck-wide font and color replacement, transitions and entrance animations. Theme and master reads are ppt_inspect. Every edit backs the file up first and saves atomically. Operations, one per line, as name: what it does:

  • set_slide_size: Change the slide size (16:9, 4:3, A4, Letter or inches); content is not rescaled.

  • apply_layout: Switch a slide to another layout; matching placeholders keep their content, others are reported.

  • set_theme_colors: Set any of a master's 12 theme color slots to hex colors.

  • set_theme_fonts: Set a master's theme heading and body fonts.

  • apply_brand: Apply an extract_brand result (theme colors and fonts) to every master of this deck.

  • set_slide_background: Set or clear one slide's background: a color, gradient or picture.

  • set_master_placeholder: Set a master placeholder's position, size and text defaults, which every slide inherits.

  • set_layout_placeholder: Set a layout placeholder's position, size and text defaults, for slides using that layout.

  • add_layout_placeholder: Add a placeholder to a layout; existing slides do not gain it, new slides do.

  • remove_layout_placeholder: Remove a placeholder from a layout; refuses while slides use it unless force=true.

  • insert_master_shape: Put a decoration shape (logo box, footer bar, rule line) on a master or one layout.

  • delete_master_shape: Delete a decoration shape from a master or layout by id; placeholders are refused.

  • create_layout: Create a new layout under a master, copied from an existing layout or blank.

  • set_master_background: Set the background of a master or one layout: a color or a gradient.

  • replace_fonts: Replace typefaces across the whole deck, including charts, SmartArt and unused declarations.

  • replace_colors: Replace literal colors across the deck, optionally with theme colors that follow later theme edits. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_editEdit PowerPoint Slides and TextA
Destructive

Slide text and slides: the batch editor (apply_edits), find and replace, placeholders, fit, text formatting, bullets, text boxes, notes, hyperlinks, and inserting, deleting, duplicating, ordering, hiding and sectioning slides. Shapes and pictures are ppt_graphics; tables and charts are ppt_tables. Every edit backs the file up first and saves atomically. Edits to a deck open in PowerPoint stay unsaved for the user to review and save; call live_save only when the user asks. Operations, one per line, as name: what it does:

  • apply_edits: Apply many edits (text, paragraphs, shapes, tables, speaker notes) in one call: one backup and one save; one stale anchor refuses all.

  • search_and_replace: Find and replace across the deck, SmartArt text included, keeping each run's formatting.

  • set_placeholder_text: Fill a layout placeholder (title, subtitle, body) with text that takes the layout's styling.

  • fit_text: Shrink overflowing text to fit its box; this is an estimate, so check with export_slide_image.

  • format_text: Format existing text in one shape: whole shape, one paragraph, or a character range (start/end from find_text, file-mode only).

  • set_bullets: Set character, numbered or no bullets on a text shape's paragraphs.

  • insert_textbox: Add a free text box at a position in inches, for labels and callouts.

  • set_notes: Replace one slide's speaker notes, or many in one save with notes; dropping bold, bullets or links needs flatten=true.

  • delete_notes: Remove one slide's speaker notes entirely.

  • set_hyperlink: Set a hyperlink (a URL or a jump to a slide) on a shape or text range, replacing any link there.

  • remove_hyperlink: Remove hyperlinks from a shape or text range.

  • insert_slide: Add a slide from a layout (by name or index), with the layout's placeholders ready to fill.

  • delete_slide: Delete a slide and everything only it used; links to it are disabled. set_slide_hidden keeps it instead. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_graphicsPowerPoint Shapes and MediaA
Destructive

Shapes and media: insert, edit, group, align, distribute and restack shapes; connectors; SVG to native shapes; diagrams; format and position painters; pictures, video and audio; equations; alt text and reading order. Slide text is ppt_edit. Every edit backs the file up first and saves atomically. Operations, one per line, as name: what it does:

  • insert_shape: Insert a native shape (a preset like rect or ellipse, or a freeform path) at a position in inches.

  • insert_connector: Draw a straight, elbow or curved connector; ends glued to shapes follow them when they move.

  • set_shape: Edit one shape by id or name, inside groups too: position, size, rotation, fill, line, effect, text or name; only the values given change.

  • set_shape_adjustments: Read or set a preset shape's adjust handles: an arc's start and end angles, a rounded corner, an arrow's head, an elbow's bend.

  • delete_shape: Delete one shape, group or connector by id; connectors glued to it are kept and unglued.

  • group_shapes: Group two or more shapes by id into one group, like Ctrl+G.

  • ungroup_shapes: Ungroup one group by id, keeping each member's position and size, like Ctrl+Shift+G.

  • align_shapes: Align shapes left, center, right, top, middle or bottom, to each other or to the slide.

  • distribute_shapes: Space three or more shapes evenly across or down; the outer two stay put.

  • set_z_order: Bring a shape to the front or back, or one step forward or backward.

  • svg_to_shapes: Turn SVG markup into a group of native, editable shapes (no images); unsupported features are reported.

  • set_diagram_text: Replace the text of nodes in an existing SmartArt diagram, leaving its layout and styling alone.

  • generate_diagram: Build a timeline, org chart, matrix, cycle or comparison diagram of editable shapes from one spec.

  • copy_format: Copy one shape's fill, line, effects and text style onto other shapes. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_helpPowerPoint Tool HelpA
Read-onlyIdempotent

Read-only help. With no arguments it lists every tool and its operations; with op it returns that operation's full arguments, an example call and its tool. Call it when arguments are unclear or after a BAD_ARGS refusal. Reads no deck.

Inputs: op.

ppt_inspectInspect and Audit DeckA
Read-onlyIdempotent

Audits and deck-level facts: accessibility, layout checks, font inventory, comment report, deck comparison, statistics, theme, brand, autofit, properties, footer support, masters, export engines, and PowerPoint status. Never changes a file. Slide content reads are ppt_read. Operations, one per line, as name: what it does:

  • audit_accessibility: Audit alt text, table headers, reading order, missing titles and contrast; each finding names the fixing call.

  • check_layout: Check slides for overlap, off-slide shapes, tiny text, contrast and more; findings name the fixing call.

  • font_inventory: List every font in use and where, plus fonts declared where no visible text uses them; run before replace_fonts.

  • comment_report: Report every comment thread by slide, with authors, dates, replies and resolved state, plus a markdown summary.

  • compare_decks: Compare two decks slide by slide (matched by id, title, then position): text, layout, shape and notes changes.

  • deck_statistics: Count slides, words in body and notes, shapes, images, tables and charts, and estimate speaking time.

  • diagnose: Check this environment and, optionally, one file; output leaves out local paths unless verbose=true.

  • extract_brand: Read a deck's theme colors, fonts and most-used literal fills, for apply_brand on another deck.

  • zombie_check: Count running PowerPoint processes to spot one left behind by automation; never ends any.

  • get_theme: Read a master's theme: its 12 color slots and its heading and body fonts.

  • get_autofit_state: Report each text shape's autofit mode and shrink level, to find crowded slides.

  • get_document_properties: Read the deck's document properties (title, author, dates, company and counters).

  • get_footer_support: Check whether a slide's design can show a footer, slide number and date; run before set_footer.

  • list_master_elements: List a master's layouts, placeholders, decoration shapes and backgrounds, with which slides use each layout. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_readRead PowerPoint DeckA
Read-onlyIdempotent

Read slide content: the anchored deck view, deck and slide facts, text, find, elements, links, tables, chart data, notes, comments, equations, media, transitions and animations. Never changes a file. Audits and checks are ppt_inspect; to change anything use ppt_edit, ppt_graphics, ppt_tables, ppt_design, ppt_review or ppt_deck. Operations, one per line, as name: what it does:

  • get_presentation_view: Read the deck as an anchored markdown view with shape and table-cell anchors; the cheap first read, and apply_edits takes its anchors.

  • get_presentation_info: Read deck-level facts: slide count and size, slide order with ids and titles, masters, layouts and sections.

  • get_slide_info: Read one slide in depth: layout, hidden flag, and every shape with its id, kind, geometry and text preview.

  • get_text: Read the deck's text in reading order, optionally with speaker notes; pages in whole slides.

  • find_text: Find text deck-wide or in scope (slides, a range, or slide_numbers from 1), exact case unless match_case=false; each match gives its slide, shape, paragraph and character offsets for edits.

  • list_elements: List one kind of element (slides, shapes, placeholders, tables, charts, images, layouts, ...) with ids and locations.

  • list_hyperlinks: List every link and click action on shapes, text, tables, notes, SmartArt, layouts and masters, broken ones flagged.

  • get_table: Read one table in full: cell text, merge regions, column widths and row heights, with 0-based addresses.

  • get_chart_data: Read what a chart holds: series names, categories, values and axis titles, from the chart's cached values.

  • get_notes: Read one slide's speaker notes with their paragraph and run structure, to edit without losing formatting.

  • extract_text: Read all slide text and every slide's speaker notes in one call; pages by slide.

  • list_comments: List every comment, modern threads with replies and legacy comments, with the ids the comment operations take. More operations follow, in the same format, in the op parameter's description.

Inputs: op (required), args.

ppt_reviewPowerPoint Comments and ReviewA
Destructive

Review: add, reply to, resolve and delete modern threaded comments, and anonymize authors. Reading comments is ppt_read list_comments or ppt_inspect comment_report. anonymize_deck saves a snapshot automatically before changing anything, because the change cannot be undone in the file. Operations, one per line, as name: what it does:

  • add_comment: Add a modern threaded comment to a slide; a deck with legacy comments is refused. Leave author out to sign with the user's own name, or pass author="assistant" to sign as "AI Assistant via KS4PPT".

  • reply_to_comment: Reply to a modern comment thread (reply to the thread root, not to a reply). Leave author out to sign with the user's own name, or pass author="assistant" to sign as "AI Assistant via KS4PPT".

  • resolve_comment: Mark a modern comment thread resolved, or reopen it.

  • delete_comment: Delete a comment thread, or one reply; a thread with replies needs cascade_replies=true.

  • anonymize_deck: Replace author names in properties and comments throughout the deck; a snapshot is saved first because this cannot be undone in the file.

  • update_now: Install the newer version the update notice named; call only when the user asks or agrees.

  • update_notices: Turn update notices on or off, or show their status (action).

Inputs: op (required), args.

ppt_tablesPowerPoint Tables and ChartsA
Destructive

Tables and charts: create, fill, merge, resize, style and import tables, and create, refill and format charts. Table and chart reads are ppt_read. Row and column addresses are 0-based. Every edit backs the file up first and saves atomically. Operations, one per line, as name: what it does:

  • create_table: Insert a native table at a position in inches, optionally filled from rows of data.

  • set_table_cells: Write many table cells in one save: text, and per-cell bold, size, color and fill.

  • merge_cells: Merge a rectangle of cells (0-based, inclusive); text from covered cells moves to the first cell.

  • unmerge_cells: Split one merged region back into cells; its text stays in the top-left cell.

  • insert_table_rows: Insert empty rows before a 0-based row (at = row count appends).

  • delete_table_rows: Delete rows starting at a 0-based row, with their content.

  • insert_table_cols: Insert empty columns before a 0-based column.

  • delete_table_cols: Delete columns starting at a 0-based column, with their content.

  • format_table_cells: Set borders, fill, margins and vertical alignment on a range of cells; text is left alone.

  • set_column_widths: Set table column widths in inches, for all columns or some.

  • set_row_heights: Set table row heights in inches; rows still grow to fit their text.

  • apply_table_style: Apply one of PowerPoint's built-in table styles by name, with its stripe and header options.

  • import_table: Build or refill a table from a CSV or JSON file.

  • create_chart: Insert a native, editable chart (bar, column, line, pie, scatter or combo) from categories and series.

  • update_chart_data: Replace a chart's data in place, keeping its type and styling; the series count must stay the same.

  • format_chart: Format a chart's titles, legend, number format, gridlines and data labels.

Inputs: op (required), args.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.6/5.0

    Scored across 9 tools

    Disambiguation5/5

    Each tool has a clearly distinct domain, and the descriptions explicitly cross-reference boundaries (e.g. ppt_read vs ppt_inspect, ppt_edit vs ppt_graphics vs ppt_tables). While ppt_read and ppt_inspect are both read-only, the split between slide content reads and audits/deck-level facts is well defined and reinforced.

    Naming Consistency5/5

    All tools use a consistent ppt_<category> prefix, with no mixing of camelCase, hyphens, or unrelated verb styles. The naming is predictable and readable across the entire set.

    Tool Count5/5

    Nine tools is well within a reasonable range for a PowerPoint automation server, and each tool maps to a coherent functional area rather than being redundant. The heavy operation count is internal to each tool and does not inflate the tool-level count.

    Completeness5/5

    The surface covers the full PowerPoint lifecycle: reading, auditing, editing text and slides, graphics and media, tables and charts, design and themes, review comments, deck-level operations and export, plus help. No obvious CRUD or workflow gap is apparent from the tool set.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers