Metadata-Version: 2.5
Name: dcc-mcp-powerpoint
Version: 0.2.3
Summary: PowerPoint adapter for the DCC-MCP ecosystem — deck generation, slide composition and review decks over the dcc-mcp-office runtime
Project-URL: Homepage, https://github.com/dcc-mcp/dcc-mcp-PowerPoint
Author-email: Long Hao <hal.long@outlook.com>
License: MIT
License-File: LICENSE
Keywords: ai,dcc,llm,mcp,model-context-protocol,office,powerpoint
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Multimedia :: Graphics :: Presentation
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.9
Requires-Dist: dcc-mcp-core<1.0.0,>=0.18.2
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: hatchling; extra == 'dev'
Requires-Dist: pillow>=10.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: python-pptx>=1.0; extra == 'dev'
Requires-Dist: pywin32>=306; (sys_platform == 'win32') and extra == 'dev'
Requires-Dist: ruff>=0.8.0; extra == 'dev'
Provides-Extra: sidecar
Requires-Dist: dcc-mcp-server>=0.17.43; extra == 'sidecar'
Description-Content-Type: text/markdown

# dcc-mcp-PowerPoint

PowerPoint adapter for the DCC-MCP ecosystem — the **application layer** over
[dcc-mcp-office](https://github.com/dcc-mcp/dcc-mcp-office): deck generation
from structured content, slide composition, review decks from DCC renders,
batch PDF conversion and text replacement (via the shared core), previews and
visual validation.

**Status:** M1 + M2 authoring live. The designed pipeline runs end-to-end:
Deck IR (`office-ir/1.0`) → Open XML compile (python-pptx) → desktop COM
render (PowerPoint `DispatchEx`, dedicated instance) → PDF + per-slide PNG
previews → structural validation. On top of generation, M2 adds structured
deck modification (ppt-patch/1.0), smart semantic layers and a plugin
registry — see the skill packs below. Skill scripts are executable through
the dcc-mcp gateway (`DCC_MCP_POWERPOINT_SKILL_PATHS`). The shared C# host
in `dcc-mcp-office` remains the production COM path (M1 there).

## Design (two-layer sidecar)

```text
Agent → dcc-mcp-gateway (Rust, dcc-mcp-core)
          → dcc-mcp-server sidecar  (lifecycle: RFC #998)
              → office-host.exe --app=powerpoint  (C#, dcc-mcp-office)
                  → POWERPNT.EXE (COM, interactive user session)
```

- Gateway + sidecar lifecycle: existing `dcc-mcp-core` machinery.
- `office-host`: shared C# runtime from `dcc-mcp-office`
  (download/verify/launch via `dcc-mcp-release-artifacts`).
- This repo owns: PowerPoint IR semantics, `powerpoint.deck.generate` /
  `powerpoint.slide.compose` / `powerpoint.slide.render`, template
  registry entries, and the PowerPoint skill packs.

## Skill packs

- `powerpoint-deck` — generate an editable deck from structured content
  (template → semantic layouts → IR → Open XML → COM finalize → previews →
  validation loop; proposal §15.3/§15.4). Generated decks are tagged with
  six semantic layers (background/decoration/header/content/accent/footer).
- `powerpoint-edit` — modify existing decks with a structured patch
  document (ppt-patch/1.0): text, notes, pictures, fills/lines, visibility,
  shape deletion, slide add/delete/move (new slides compile from Deck IR
  layouts) and layer assignment. All-or-nothing saves.
- `powerpoint-layers` — smart semantic layers over shapes (native
  `::layer=<name>` name tags): list, show/hide, restack z-order
  (front/back/above/below) and recolor per layer.
- `powerpoint-plugins` — discover and invoke user-installed plugins
  (plugin.json manifest + stdin-JSON script contract, subprocess isolation,
  timeout caps).
- `powerpoint-review` — `dcc.review-deck-from-renders`: build review decks
  from Maya/Houdini/Blender/Unreal renders + shot/asset metadata
  (proposal §15.7).

## Capability-boundary showcase

`examples/capability_boundary_showcase.json` is a 17-slide deck that walks
every semantic layout and the M2 capability surfaces: generation (IR → Open
XML → COM render → validation), smart layers (list / visibility / recolor /
reorder / assign), the patch engine (7-operation ppt-patch/1.0 with
all-or-nothing saves) and the plugin registry (deck-stats demo plugin in
`examples/plugins/`). See
`examples/output/capability-boundary/README.md` for the full runbook and
artifact map.

## Agent usage (via dcc-mcp-cli / gateway)

1. Start the registered adapter (the launcher binds the bundled skill packs
   and script runtime to the official `dcc-mcp-server`):
   `dcc-mcp-powerpoint serve`
2. Run a skill script directly (gateway `execute_script` contract —
   stdin JSON or CLI flags):
   ```bash
   python src/dcc_mcp_powerpoint/skills/powerpoint-deck/scripts/generate_deck.py \
     --input examples/dcc_mcp_framework_intro.json --out out
   ```
3. Validate the packs with the official linter:
   ```bash
   dcc-mcp-cli lint src/dcc_mcp_powerpoint/skills --warnings-as-errors --non-interactive
   ```

## Development

```bash
pip install -e .[dev,sidecar]
pytest
```

## License

MIT
