InstaDeck
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@InstaDeck Make a seed pitch deck for Northwind Grid, a startup that predicts power grid congestion."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
InstaDeck
Branded, animated pitch decks from your own Claude.
You describe your company and topic and add your logo. Claude writes the story, the content and the design. InstaDeck turns it into a presentation that plays with slide transitions, click by click reveals, counting numbers and growing charts, in a motion language Claude designs for your audience, and prints to PDF.
InstaDeck is an MCP server. It has no app of its own and no model of its own: the model is the Claude you already use, InstaDeck gives it the knowledge, the tools and the checks to make a deck that looks designed.
Add it to Claude
claude.ai and Claude Desktop (every plan, nothing to install): Settings, Connectors, Add custom connector, paste
https://instadeck.app/mcpThe deck plays right in the chat. Every deck also gets a link to present full screen, share, or print to PDF.
Claude Code
claude mcp add --transport http instadeck https://instadeck.app/mcpOn your computer (decks stay in folders you own, slide previews for Claude, PDF export). Needs Node 20 or newer and Google Chrome, Microsoft Edge or Chromium.
claude mcp add instadeck -- npx -y instadeckFor Claude Desktop, download instadeck.mcpb from the latest release and open it. Optional for Claude Code: copy skills/instadeck into ~/.claude/skills/.
Related MCP server: vizcharter
Where your data lives
Hosted connector | On your computer | |
Decks and assets | Stored by InstaDeck on AWS (S3, eu-central-1) | Folders in |
Access | Anyone with the deck link. No accounts, the link is an unguessable id | Only you |
Kept for | Decks 30 days after the last change, logos and brand kits 365 days | Until you delete them |
Checks | Text fit and motion are measured in your browser | Measured and previewed in a local Chromium |
In the chat | The deck plays in claude.ai and Claude Desktop, pick a slide and say what to change | The same in Claude Desktop |
Downloads | PDF, PowerPoint and HTML from the deck link |
|
Use the local server for anything confidential.
What Claude gets
Tool | What it does |
| Layouts, blocks, the motion language, pitch beats and the design, storytelling and motion principles |
| Proven example decks (seed pitch, enterprise sales deck, product launch, board update, consumer launch), from still to kinetic, and why they work |
| Logo and brand files, colors read from the logo |
| A coherent, readable palette, font pair and type scale from a primary color and a mood |
| Saves the brand and checks it for contrast and fonts |
| Builds and edits the deck. Every change is validated and versioned |
| Text that does not fit, low contrast, overlong text, motion that does not fit its intensity, repetitive layouts |
| Revisions |
| Local server only: PNG previews, PDF, PowerPoint, listings |
Claude never writes HTML. It composes slides from layouts and blocks and designs the motion as data: how much the deck moves, its own entrances and transitions as keyframes, elements that glide between slides. InstaDeck guarantees the brand and the typography and measures every motion against principles of perception. Resources under instadeck:// carry the same knowledge for clients that read them.
Use
Ask Claude for a deck, for example:
Make a seed pitch deck for Northwind Grid, a startup that predicts power grid congestion. Use the logo from northwind.energy.
On your computer, decks are folders:
~/InstaDeck/
northwind-seed-pitch/
deck.html open in a browser to present
deck.pdf after "export it as PDF"
deck.json the deck itself, with its history in .revisions/Present: arrow keys, space or click to advance, G for all slides, P for the presenter view, F for fullscreen, N for speaker notes. The download menu on a shared link saves the deck as PDF, PowerPoint or HTML.
PowerPoint export keeps text editable and charts and tables native. The layout comes from the browser that rendered the deck (Chromium on your computer, or the viewer's browser on a shared link), so the server never runs a browser. Fonts are referenced by name: install the deck's Google Fonts for the exact look.
Configure (local server)
Variable | Default | Meaning |
|
| Where decks, brand kits and assets live |
| found automatically | Path to the browser executable |
How it works
lib/domain layouts, blocks, design tokens, brand kit, motion language, examples, design, storytelling and motion principles
lib/engine renders the presentation, validates, suggests brand systems, measures overflow and motion, exports PDF and PNG
lib/state decks with revisions, one write path (folder on disk or S3)
lib/tools MCP tools
server/ MCP server: stdio (local), HTTP and MCP App (hosted connector)The hosted connector is a small stateless service over object storage. There is no database and no browser on the server.
Add an example deck
Examples live in lib/domain/examples.json and every one must build without findings (a test checks it). When a deck turns out well, promote it:
npm run example -- <deck.json or https://instadeck.app/d/ID> my-example \
--title "Series A pitch" --purpose "..." --audience "..." --why "reason one|reason two" --content-is-publicExamples are shown to every user, so replace real names and numbers first. Decks with logos or images are refused, examples carry no assets.
Develop
npm install
npm test # domain, engine, state, tools, MCP contract
npm run typecheck
npm run lint
npm run mcp # local server from source (stdio)
npm run serve # hosted connector locally (STATE_BACKEND=local INSTADECK_HOSTED_DIR=... INSTADECK_PUBLIC_URL=http://localhost:3535)
npm run gen # regenerate the skill, the MCP App and browser script modules
npm run bundle # build the Claude Desktop extension
npm run build:lambda # build the hosted connector for AWS LambdaLicense
MIT
Available Tools
20 toolsadd_assetAdd assetA
Stores a logo, image, photo or font file so slides and brand kits can use it by asset id. Images: PNG, JPEG, WebP, GIF, SVG. Fonts: WOFF2, WOFF, TTF, OTF. Up to 15 MB.
Inputs: name (required), url, path, data_base64.
apply_opsEdit deckA
The only way to change a deck. Applies operations in order (add, update, remove or move slides, set design, motion, title, brief, apply a brand kit). All operations succeed or none is saved. Fails when expected_revision is not the current revision.
Inputs: ops (required), deck_id (required), summary (required), expected_revision (required), +1 more.
create_brand_kitCreate brand kitB
Saves a brand: primary and secondary colors, dark and light, fonts, logos and tone. Decks created with the brand kit take its colors and fonts.
Inputs: name (required), colors (required), tone, fonts, +1 more.
create_deckCreate deckB
Creates a deck with all its slides in one call and renders it as a presentation file with animations. Returns the deck id, revision, findings (validation and measured overflow) and previews. Nothing is saved when the slides have errors.
Inputs: brief (required), title (required), slides (required), design, +3 more.
delete_deckDelete deckADestructive
Deletes the deck folder with its history, presentation and PDF. Cannot be undone. Ask the user first and pass confirm: true.
Inputs: confirm (required), deck_id (required).
export_deckExport deckAIdempotent
Exports the deck as a presentation HTML file (animations, one file, opens in any browser), a PDF with selectable text, or a PowerPoint file (editable text, native charts and tables, speaker notes, no animations).
Inputs: format (required), deck_id (required), path.
extract_brand_colorsBrand colors from logoARead-onlyIdempotent
Reads the colors of a logo or brand image and returns candidates with their share and whether they are neutral (white, black, gray). You decide which one is the brand color. The hosted connector reads SVG only, for PNG or JPEG logos read the colors from the image yourself.
Inputs: asset_id (required).
get_brand_kitGet brand kitCRead-onlyIdempotent
Returns a brand kit by id.
Inputs: brand_kit_id (required).
get_deckGet deckARead-onlyIdempotent
Returns the full deck: brief, design, motion and every slide with its blocks, plus the revision to pass to apply_ops.
Inputs: deck_id (required).
get_deck_viewDeck viewARead-onlyIdempotent
Used by the InstaDeck view in the chat to render a deck. You never need to call it: create_deck, apply_ops and get_deck already show the deck.
Inputs: deck_id (required).
get_design_guideDesign guideARead-onlyIdempotent
How to build an InstaDeck: workflow, layouts with their zones, block types, motion presets, design system rules, fonts, pitch story beats and the design and storytelling principles behind them. Call it before creating or restyling a deck.
Inputs: sections.
get_exampleGet example deckARead-onlyIdempotent
Returns a proven example deck. Without id it lists the examples with purpose, audience and layouts. With id it returns the full deck in the shape create_deck takes (slides, design, motion) and why it works. Read the example closest to the brief before choosing layouts, then keep its structure, rhythm and text lengths and replace all content.
Inputs: id.
get_historyDeck historyARead-onlyIdempotent
Lists the revisions of a deck with author, summary and operations.
Inputs: deck_id (required).
list_assetsList assetsBRead-onlyIdempotent
Lists stored logos, images and fonts with their ids.
Inputs: no named parameters.
list_brand_kitsList brand kitsBRead-onlyIdempotent
Lists saved brand kits.
Inputs: no named parameters.
list_decksList decksBRead-onlyIdempotent
Lists decks with title, company, number of slides and last change.
Inputs: no named parameters.
render_previewPreview slidesARead-onlyIdempotent
PNG images of slides in their final state (all steps revealed). Use it to check the design visually.
Inputs: deck_id (required), slide_ids.
revert_deckRevert deckB
Restores an earlier revision as a new revision. History is kept.
Inputs: deck_id (required), to_revision (required), expected_revision (required), previews.
suggest_brand_systemSuggest brand systemARead-onlyIdempotent
Turns a primary color and a mood into a coherent, readable brand system: palette with verified contrast, a font pair, type scale, corner radius, tempo and a starting motion intensity. Returns brand_kit (pass to create_brand_kit with a name and logos) and design and motion (pass to create_deck). Every change to your colors is listed in adjustments.
Inputs: mood (required), primary (required), dark, light, +1 more.
validate_deckValidate deckBRead-onlyIdempotent
Checks a deck: structure, data, contrast, text length, motion budget and visual rhythm. The local server also measures text that overflows its space in a browser, on the hosted connector the deck view reports overflow when it renders.
Inputs: deck_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
Most tools map to a distinct resource plus action (list_decks, get_deck, delete_deck, add_asset, list_assets), and the descriptions draw sharp lines — e.g. apply_ops is explicitly the only mutation path and get_deck_view is flagged as never needing a call. The only friction is around inspection: render_preview, validate_deck, get_deck, get_deck_view and create_deck's returned findings all touch 'checking a deck', so an agent must read descriptions carefully to pick.
Every tool is snake_case verb_noun: create_deck, list_decks, get_deck, apply_ops, render_preview, export_deck, revert_deck, delete_deck, create_brand_kit, list_brand_kits, get_brand_kit. The noun for each resource (deck, asset, brand_kit, example) is used consistently across verbs, so an agent can predict unprefixed names.
20 tools is at the upper edge but each functional area earns its slot: deck lifecycle, brand kits, assets, validation/preview, export, history, examples. The one weak entry is get_deck_view, an internal chat-render helper that adds surface without adding capability.
The deck lifecycle is essentially complete (create, list, get, apply_ops for all mutations, history, revert, delete, plus validate/render/export). However, secondary resources are half-covered: brand kits can be created, listed and fetched but never updated or deleted, and assets can be added and listed but not fetched individually or removed.
Maintenance
Related MCP Connectors
Build decks in your own brand, from the AI agent you already use. Then edit them yourself.
Generate AI slide decks and export native PowerPoint (.pptx) and PDF presentations from chat.
Create designed slide decks from a prompt, notes, or an outline, then export them or share a link.
Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCreates AI-powered slide decks directly from Claude Desktop with live progress and QA scores.MIT
- AlicenseAqualityCmaintenanceEnables Claude Code to create and edit presentation-grade visualizations such as cloud architecture diagrams, charts, KPI dashboards, and poster infographics, with auto-layout, themes, and export to SVG, PNG, JPG, and PDF.6MIT
- AlicenseAqualityCmaintenanceEnables turning a Markdown brief into a reviewed slide plan and then consistent, on-brand slide visuals via Claude Code, with human approval gates before any paid image generation.101MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create and edit presentation decks—manipulating documents, slides, shapes, text, animations, transitions, and exports—while reading tabular data and generating 18 types of business charts.1MIT