About Deckwright
Deckwright is a Rust toolkit for creating editable PowerPoint slides and examining animation data in .pptx packages. It serves presentation authors and agents with CLI and MCP access to structural checks, timelines, slide state, and explicit Morph links.
Key features
- 01Build editable PowerPoint slides
- 02Inspect and preserve package parts
- 03Check package and slide structure
- 04Query slide state and timelines
- 05Find explicit Morph pairs
- 06CLI and MCP interfaces
Use cases
- 01Build an editable presentation
- 02Check a .pptx package
- 03Query slide state after clicks
- 04Inspect Morph links between slides
MCP support
The dw-mcp server gives agents the same structural checks and slide queries available through the CLI over stdio.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEDeckwright
Deckwright is a Rust toolkit for building editable PowerPoint slides and inspecting the animation data inside .pptx files. It can create a deck from a blank template, replace slides in an existing package, run structural checks, and answer questions such as “what is visible on slide 2 after the first click?” through a CLI or an MCP server.
The public Morph demo builds three editable slides with an explicit Morph match, a click reveal, and a motion path. Watch the 26-second PowerPoint demo to see the transition, a selected native shape, and a real timing query. The presentation authoring skill gives agents a workflow for using these APIs.
Get started
Install a Rust toolchain, then install the CLI and MCP server:
cargo install dw-cli --version 0.1.1 --locked
cargo install dw-mcp --version 0.1.1 --locked
Release archives provide prebuilt dw and dw-mcp binaries for Windows, Linux, and macOS.
To build and inspect the example deck, run these commands from a Deckwright checkout:
cargo run --locked -p deckwright --example morph_demo -- demo.pptx
dw check demo.pptx --json
dw query morph demo.pptx --from 1 --to 2 --json
dw query state demo.pptx --slide 2 --at-ms 400 --clicks-ms 0 --json
Choose a new output filename for each build; Deckwright refuses to overwrite an existing .pptx. Slide numbers are one based. Query times and click times are milliseconds since slide entry; --clicks-ms is the complete click history up to --at-ms.
What works today
| Task | Entry point |
|---|---|
| Build editable slides with shapes, text, pictures, tables, charts, and timing in the supported model | deckwright Rust crate; see the Morph demo source |
Open a .pptx, inspect its parts, preserve unchanged parts, and write a new package | Package; dw inspect and dw roundtrip |
| Check supported package, slide, timing, and bounds rules | dw check |
| Inspect slide state, timeline, and explicit Morph pairs | dw query state, dw query timeline, dw query morph |
| Give an agent the same checks and queries over stdio | dw-mcp; see agent integration |
The CLI contract defines query input and output. Reports represent the timing and geometry Deckwright understands; unsupported or ambiguous behavior is reported as unknown. Morph pairing currently covers unique explicit !!name matches. A passing check, successful query, or static render does not establish PowerPoint animation playback, font fit, or visual fidelity. Verify those in PowerPoint for any delivered deck.
Choose a workflow
- Create a presentation with an agent
- Connect an agent to the MCP server
- Compare Deckwright and python-pptx
- Run the neutral Morph demo
- Read the benchmark method and results
Project scope
Deckwright began as a reconstruction of a 25-slide thesis presentation. The implementation plan records its fidelity and performance targets. The thesis source and extracted media are private and excluded from Git; the public demo uses generated neutral content. Preserve source wording, screenshots, photos, and app UI when editing a supplied deck.
The reference inspection benchmark measured 205.32 ms p95 and 78.75 MiB peak RSS on its documented WSL host; see the measurement PR for the revision and workload. Build, edit, and query budgets in the plan are targets, not measured results. The full thesis reconstruction and PowerPoint playback acceptance remain separate gates.
Development
cargo test --workspace --locked
See AGENTS.md for repository guidance and the oracle notes for PowerPoint verification limits.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.