Skip to content

studio.dodraft/getdeck

by dodraft.studio · remote · no sign-in to list tools · v0.1.1 · published by studio.dodraft

160+ finished slide layouts and 41 themes your agent can search, fetch and build a deck from

Changes · 5

11 tools: 5 change things and 6 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http getdeck https://getdeck.co/api/mcp --header 'Authorization: <your-authorization>'

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Changes things 5Claude Code: ask
  • export_pptxTurn a deck into a downloadable .pptx file.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Turn a deck into a downloadable .pptx file. Requests like "make it a PowerPoint", "PPT로 뽑아줘", or "export this deck" mean this tool. Takes the layout ids and the text for each slot, and returns a signed download link. Coordinates come from our measurements, so the file matches what the gallery shows, but the boxes are fixed, so text longer than slots[].max_chars will be clipped.
  • get_starter_kitCall this when joining several fetched layouts into one deck file.No findings

    Why it is in this group

    • The name "get_starter_kit" says "get": a word for reading.
    • The description's first verb is "call": a word for a change.
    Description, as the server wrote it
    Call this when joining several fetched layouts into one deck file. Requests like "merge these into one file", "bundle it as a deck", or "make it one HTML" mean this tool. Returns the base CSS, assembly rules, spacing tokens, and a viewport snippet for standalone viewing.
  • save_templateSave a deck as a named template in the user's My Templates so it can be reused later.No findings

    Why it is in this group

    • The name "save_template" says "save": a word for a change.
    Description, as the server wrote it
    Save a deck as a named template in the user's My Templates so it can be reused later. Requires a Pro account; without one the call fails and nothing is saved. Use it after you have built a deck the user wants to keep, for example from suggest_deck. Input: name, optional theme_id (a catalog theme id or custom:<uuid>), and slides as [{layout, slots}], the same shape export_pptx takes. A template holds 1 to 25 slides. Returns template_id, url (the template's page), slide_count, version (use it as expected_version in update_template), overflow[] (slots whose text is longer than max_chars) and unknown_layouts[]. Deleting is not available here, only on the web. Errors: pro_required, slide_limit, template_limit (the account already has the most templates it can hold), unknown_theme, invalid_input.
  • suggest_deckCompose a deck and return a preview link the user can open in the browser right away.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Compose a deck and return a preview link the user can open in the browser right away. The user sees what the finished deck looks like without a single file being generated. Use this for requests like "make me a pitch deck", "I need a sales deck", "10 slides for an investor update", "put together a product overview", or "show me a deck outline" - anything where the user has a topic but has not picked layouts yet. ALSO use it when the user already has layouts in hand - "이 레이아웃들 모아서 프리뷰 만들어줘", "combine these layouts into a preview", "추천 프리뷰 만들어줘", "show these together as a deck" - pass them as layout_ids and it returns ONE deck preview link for the whole set. Never answer that kind of request with a list of individual layout links: one deck preview is the deliverable. Returns one theme + a slide order + the preview link, plus a `clarify` question to put to the user so the composition and theme are their call, not a guess. Always pass the preview link through to the user verbatim, ask clarify.question with its options, and wait for the answer - then call this tool again with deck_id / theme_id as clarify.answer_with says. Do not start generating files while a clarify question is unanswered. Once it is settled, fetch each layout id with get_layout, then call get_starter_kit to join them into one deck.
  • update_templateChange a template the user already saved.No findings

    Why it is in this group

    • The name "update_template" says "update": a word for a change.
    Description, as the server wrote it
    Change a template the user already saved. Requires a Pro account; without one the call fails and nothing is changed. Pass the template id and any of: name, theme_id, slides (replaces all slides), or append_slides (adds slides to the end). A template holds at most 25 slides. If the result would be more than 25, nothing is changed and the response is a slide_limit error that includes how many slides still fit. Call list_templates first to read slide_count when you plan to append. The response has the same fields as save_template. Deleting is not available here, only on the web. Errors: pro_required, not_found, slide_limit, conflict (the template changed since expected_version, or kept changing during an append; nothing was saved), unknown_theme, invalid_input.
Only reads 6Claude Code: allow
  • get_layoutReturn one layout as a ready-to-use, self-contained document: HTML, theme CSS, and its slot definitions.No findings

    Why it is in this group

    • The name "get_layout" says "get": a word for reading.
    Description, as the server wrote it
    Return one layout as a ready-to-use, self-contained document: HTML, theme CSS, and its slot definitions. Call this once the user knows which layout they want, or with ids returned by suggest_deck.
  • get_templateReturn one saved template: name, theme_id and slides as [{layout, slots}], plus each slide's slot definitions with max_chars.No findings

    Why it is in this group

    • The name "get_template" says "get": a word for reading.
    Description, as the server wrote it
    Return one saved template: name, theme_id and slides as [{layout, slots}], plus each slide's slot definitions with max_chars. Use it to fill the same structure with new text, then save with update_template or export with export_pptx(template_id), both of which need Pro. Needs an API key; reading works on any plan.
  • get_themeReturn one theme in full: its complete CSS and design tokens.No findings

    Why it is in this group

    • The name "get_theme" says "get": a word for reading.
    Description, as the server wrote it
    Return one theme in full: its complete CSS and design tokens.
  • list_layoutsSearch or filter the layout catalog to find a specific layout.No findings

    Why it is in this group

    • The name "list_layouts" says "list": a word for reading.
    Description, as the server wrote it
    Search or filter the layout catalog to find a specific layout. Returns metadata only, no HTML. Also the tool for "what is new", "any new layouts?", "what got added since last month" - pass `since` and it returns only what landed after that date. If the user asked for a whole deck rather than one slide, call suggest_deck first instead of this.
  • list_templatesList the templates the user saved in My Templates: id, name, slide_count, theme_id, source, updated_at and version.No findings

    Why it is in this group

    • The name "list_templates" says "list": a word for reading.
    Description, as the server wrote it
    List the templates the user saved in My Templates: id, name, slide_count, theme_id, source, updated_at and version. Use it to find a template the user refers to, and to read slide_count before appending with update_template. Needs an API key; works on any plan.
  • list_themesSearch or filter the theme catalog.No findings

    Why it is in this group

    • The name "list_themes" says "list": a word for reading.
    Description, as the server wrote it
    Search or filter the theme catalog. Returns metadata and key colors only, not the full CSS. With an API key, the user's own saved themes (My Themes, id "custom:...") come last with custom: true; their ids work anywhere a theme id does.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http getdeck https://getdeck.co/api/mcp --header 'Authorization: <your-authorization>'

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__getdeck__list_layouts",
      "mcp__getdeck__list_themes",
      "mcp__getdeck__get_layout",
      "mcp__getdeck__get_theme",
      "mcp__getdeck__list_templates",
      "mcp__getdeck__get_template"
    ],
    "ask": [
      "mcp__getdeck__get_starter_kit",
      "mcp__getdeck__suggest_deck",
      "mcp__getdeck__export_pptx",
      "mcp__getdeck__save_template",
      "mcp__getdeck__update_template"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as getdeck. Review it before you use it.