Skip to main content
Glama

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/mcp

The 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/mcp

On 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 instadeck

For 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 ~/InstaDeck

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

export_deck: PDF, PowerPoint, HTML

Use the local server for anything confidential.

What Claude gets

Tool

What it does

get_design_guide

Layouts, blocks, the motion language, pitch beats and the design, storytelling and motion principles

get_example

Proven example decks (seed pitch, enterprise sales deck, product launch, board update, consumer launch), from still to kinetic, and why they work

add_asset, extract_brand_colors

Logo and brand files, colors read from the logo

suggest_brand_system

A coherent, readable palette, font pair and type scale from a primary color and a mood

create_brand_kit, get_brand_kit

Saves the brand and checks it for contrast and fonts

create_deck, get_deck, apply_ops

Builds and edits the deck. Every change is validated and versioned

validate_deck

Text that does not fit, low contrast, overlong text, motion that does not fit its intensity, repetitive layouts

get_history, revert_deck, delete_deck

Revisions

render_preview, export_deck, list_*

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

INSTADECK_HOME

~/InstaDeck

Where decks, brand kits and assets live

INSTADECK_CHROME

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-public

Examples 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 Lambda

License

MIT

Available Tools

20 tools
add_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 deckA
Destructive

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 deckA
Idempotent

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 logoA
Read-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 kitC
Read-onlyIdempotent

Returns a brand kit by id.

Inputs: brand_kit_id (required).

get_deckGet deckA
Read-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 viewA
Read-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 guideA
Read-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 deckA
Read-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 historyA
Read-onlyIdempotent

Lists the revisions of a deck with author, summary and operations.

Inputs: deck_id (required).

list_assetsList assetsB
Read-onlyIdempotent

Lists stored logos, images and fonts with their ids.

Inputs: no named parameters.

list_brand_kitsList brand kitsB
Read-onlyIdempotent

Lists saved brand kits.

Inputs: no named parameters.

list_decksList decksB
Read-onlyIdempotent

Lists decks with title, company, number of slides and last change.

Inputs: no named parameters.

render_previewPreview slidesA
Read-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 systemA
Read-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 deckB
Read-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

    B3.4/5.0

    Scored across 20 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count4/5

    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.

    Completeness3/5

    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

    ActivityMaintained
    ResponsivenessMixed handling

    Related MCP Connectors

    Related MCP Servers