getdeck
160+ finished slide layouts and 41 themes your agent can search, fetch and build a deck from
Should I use this
Quality & Safety
Findings (1)
- LOWin get_theme
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"getdeck": {
"url": "https://getdeck.dodraft.studio/api/mcp"
}
}
}Remote endpoints
https://getdeck.dodraft.studio/api/mcpstreamable-httphttps://getdeck.co/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (7)
π’list_layouts(category, query, limit, since)
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.
Input Schema
{
"type": "object",
"properties": {
"category": {
"type": "string"
},
"query": {
"type": "string"
},
"limit": {
"default": 30,
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 150
},
"since": {
"description": "ISO date (YYYY-MM-DD). Only layouts added after it. Use for \"what is new\" questions; if the user gave no date, a month back is a sensible default.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’list_themes(mood, scheme)
Search or filter the theme catalog. Returns metadata and key colors only, not the full CSS.
Input Schema
{
"type": "object",
"properties": {
"mood": {
"type": "string"
},
"scheme": {
"type": "string",
"enum": [
"light",
"dark"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’get_layout(id, theme_id, lang)
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.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"theme_id": {
"type": "string"
},
"lang": {
"default": "ko",
"description": "Language for slot hints and usage notes. Pass the language the user is writing in.",
"type": "string",
"enum": [
"ko",
"en"
]
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’get_theme(id)
Return one theme in full: its complete CSS and design tokens.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’get_starter_kit
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.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π‘suggest_deck(purpose, slide_count, tone, deck_id, theme_id, ...)
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.
Input Schema
{
"type": "object",
"properties": {
"purpose": {
"type": "string",
"description": "The user's topic or goal, in their own words. e.g. \"startup pitch deck\", \"quarterly business review\""
},
"slide_count": {
"default": 10,
"description": "How many slides. If the user did not say, use the default of 10 rather than asking.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 30
},
"tone": {
"description": "Desired mood. e.g. \"minimal\", \"bold\", \"warm\". Omit if the user did not mention one.",
"type": "string"
},
"deck_id": {
"description": "The composition the user picked from a previous call's clarify.options. Skips topic matching.",
"type": "string"
},
"theme_id": {
"description": "The theme the user picked from a previous call's clarify.options. Pass deck_id along with it.",
"type": "string"
},
"layout_ids": {
"description": "Layout ids the user or you already picked, in slide order. Skips topic matching and slide_count: the preview link is built from exactly these layouts.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"purpose"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}π’export_pptx(theme, slides)
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.
Input Schema
{
"type": "object",
"properties": {
"theme": {
"description": "Theme id. Only measured themes work; omit to use the default.",
"type": "string"
},
"slides": {
"minItems": 1,
"maxItems": 25,
"type": "array",
"items": {
"type": "object",
"properties": {
"layout": {
"type": "string"
},
"slots": {
"description": "Slot id to text. Ids and their max_chars come from get_layout.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"layout"
]
},
"description": "Up to 25 slides, in order."
}
},
"required": [
"slides"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence