wolf-ms-ppt-mcp
# wolf-ms-ppt-mcp
MCP server that lets AI agents create and manipulate Microsoft PowerPoint
presentations (`.pptx`) locally, **without requiring Microsoft Office**.
[](https://github.com/amareca/wolf-ms-ppt-mcp/actions/workflows/ci.yml)
## Status
**Phases 1, 2 and 3** are implemented.
**Phase 1 — Foundation and reading:**
- `create_presentation` — create a new deck (16:9 by default) or from a template.
- `open_presentation` — open an existing `.pptx`.
- `save_presentation` / `save_as` — persist changes.
- `list_slides` — list slides with layout, title and text preview.
- `inspect_slide` — detailed shapes/text/images/positions of one slide.
**Phase 2 — Slide management:**
- `add_slide` — add a slide using a layout, optionally at a given position.
- `duplicate_slide` — duplicate a slide (shapes, background and images).
- `delete_slide` — delete a slide.
- `move_slide` — reorder slides.
**Phase 3 — Content (text and images):**
- `set_slide_text` — set slide titles, subtitles, bodies or named shapes.
- `add_text_box` — add a text box at a position (inches).
- `replace_text` — find/replace text across all slides or one slide.
- `add_image` — insert an image from a local path or an http(s) URL.
All planned MVP phases are implemented. Future work includes verifying
PowerPoint for the Web and the post-MVP versions (COM backend, advanced
content, cloud).
## Requirements
- Python 3.11+
- No Microsoft Office installation required
## Installation
```bash
uv sync
```
Or install from source:
```bash
pip install .
```
## Usage
Run the server over stdio:
```bash
uv run wolf-ms-ppt-mcp
```
Configure your MCP client (Claude, Cursor, etc.):
```json
{
"mcpServers": {
"wolf-ms-ppt": {
"command": "uv",
"args": [
"--directory",
"/path/to/wolf-ms-ppt-mcp",
"run",
"wolf-ms-ppt-mcp"
]
}
}
}
```
Once published to PyPI, this can be simplified to `uvx wolf-ms-ppt-mcp`.
## Development
```bash
uv sync --extra dev
uv run pytest
```
## Contributing
See [`CONTRIBUTING.md`](CONTRIBUTING.md).
## Security
See [`SECURITY.md`](SECURITY.md).
## Changelog
See [`CHANGELOG.md`](CHANGELOG.md).
## License
MIT. See [`LICENSE`](LICENSE). Third-party attributions are listed in
[`THIRD_PARTY_LICENSES.md`](THIRD_PARTY_LICENSES.md).
## Disclaimer
PowerPoint and Microsoft Office are trademarks of Microsoft Corporation.
This project is not affiliated with or endorsed by Microsoft.
TDQS
Scored across 14 tools
Tools are cleanly separated by object and action: presentation lifecycle, slide CRUD/reorder, and content insertion/replacement. The only mild overlap is set_slide_text vs replace_text vs add_text_box, but the descriptions make their scopes clear.
All tools use snake_case and start with an action verb, mostly following a verb_noun pattern such as create_presentation, list_slides, and add_image. save_as is a minor deviation from strict verb_noun naming but remains predictable.
Fourteen tools is well within the appropriate range for a PowerPoint authoring server. The set covers presentation, slide, and basic content operations without excessive fragmentation.
Core presentation and slide lifecycle is covered, plus text and image insertion. However, content editing is incomplete: there is no shape/image deletion or update, no table/chart/shape drawing, and no formatting or notes operations, creating dead ends for richer edits.