Install
$ agentstack add skill-smartdatabrokers-slideforge-mcp-create-slide ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Create slides & decks
SlideForge is a compiler: a slide is a typed intent (form + typed content fields) rendered deterministically into native, editable .pptx — no LLM in the render path. $0.05/slide, usable-or-free; identical input re-renders free.
The reliable path (use for real content)
- Pick the form.
browse_cataloglists 150+ patterns (kpimetrics, waterfallbridge,
ganttplan, funnel, orgstructure, datatable, comparisonmatrix, timeline_roadmap, …). Unsure? plan_slide with a one-line brief returns ranked candidates, free.
- Get the contract.
browse_catalogwithtype=schema+ the form returns the JSON Schema
and a copy-pasteable example intent. Start from the example; swap in the user's real content; keep the advertised field names exactly.
- Dry-run. Send the intent with
dry_run: true→status: validated+ a
fidelity_forecast at $0. If errors[] come back, each carries a machine code and a remedy — fix and re-dry-run. Never pay to discover a validation error.
- Render. Same payload without
dry_run. The response embeds a preview PNG inline, cost,
and the fidelity manifest. The editable file downloads separately (see below).
For a whole deck: ONE create_deck call with slides[] (a list of create_slide intents). Parallel render, one merged pptx, per-slide fidelity rollup; failed slides are isolated and free.
Quick path (throwaway / exploratory)
A plain-text brief renders in one call — the engine routes it to a form. Fine for drafts; expect fidelity: ai_completed (the model structured your prose). For business numbers, always prefer typed fields.
Reading the response honestly
fidelity: verbatim— every word/number came from the user's input. Say so.fidelity: mixed / ai_completed— the manifest names which fields a model completed.
Tell the user which parts to double-check.
fidelity: partial— some supplied content did not make it onto the slide. The manifest
names what was dropped. Never deliver a partial render without telling the user what's missing.
status: completed_with_errors— the render is flawed and was NOT billed. Read the error
remedies, fix the intent, re-render. Do not deliver the artifact as if it were fine.
warnings[]— quality advisories (density, contrast, overflow) with remedies; the slide
billed and is usable, but mention material ones.
Headless verification (Claude Code / Codex CLI — no widgets)
The preview PNG is embedded inline in the tool result — read it directly, no fetch needed. Always look at your own render before declaring done. Download the deliverable via header-auth:
curl -H "Authorization: Bearer sf_live_YOUR_KEY" \
-o slide.pptx https://api.slideforge.dev/v1/jobs//pptx # ownership-checked
If the preview shows a problem, fix the intent and re-render — refinement is a fresh $0.05 render (identical input is free, so only actual changes cost).
Escape hatch: mode=code
When no catalog form fits, create_slide with mode=code runs your python-pptx in a sandbox (same $0.05, deterministic). browse_catalog type=widgets / type=helpers lists the bundled board-grade widget + chart toolkit so you don't hand-roll primitives.
Do / don't
- DO put real content in
data.*typed fields; DON'T paste it into a brief when it matters. - DO fix errors by their
remedy; DON'T retry an identical failed payload. - DO use one
create_deckfor multi-slide; DON'T loopcreate_slide. - DO pass
theme_id(or upload a theme PPTX viaupload_asset(purpose="theme", data=))
for branding — uploaded themes render NATIVE by default, built ON the client's own template file (master, layouts, fonts).
- DO use
create_slide(form="template_layout", theme_id=..., data={"layout": ..., "fills": ...})
to fill the template's own designed cover/agenda/divider slides verbatim.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: smartdatabrokers
- Source: smartdatabrokers/slideforge-mcp
- License: MIT
- Homepage: https://slideforge.dev
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.