Getdeck

studio.dodraft由 dodraft.studio 发布v0.1.2更新于 Nov 5, 2026

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

已验证Streamable HTTP可网页运行效率与工作流沟通与协作媒体与设计

概览

AI 生成的概览

Getdeck 让助手搜索现成的幻灯片版式与主题、填入文字槽位,并把演示文稿渲染为 HTML 或导出为 PowerPoint。

可以做什么
  • 搜索并查看版式与主题目录,包括用户自己保存的主题
  • 获取单个版式或主题的完整内容,以及把多张幻灯片合并成一个文件所需的起始套件
  • 组合一份演示文稿并取得预览链接,或在渲染前校验槽位文字
  • 把单张幻灯片渲染成完整、自包含的 HTML 文档
  • 把演示文稿导出为可下载的 .pptx 文件
  • 管理已保存的模板、幻灯片对象与媒体,并查看团队评审请求和置顶评论
适用场景
适合用户想用现成版式快速做出路演、销售、投资人等演示文稿,并以 HTML 或 PowerPoint 交付的场景。也适合在 Getdeck 中维护可复用模板和评审反馈的团队。
运行要求
通过 streamable HTTP 连接 getdeck.co 的远程端点。必须在 Authorization 请求头中提供 bearer API 密钥,登录后可在账户页面获取。部分工具(suggest_deck、save_template、update_template、add_objects、update_objects、remove_objects 以及模板导出)需要 Pro 账户。
安装前请注意
Authorization 请求头中的 API 密钥可访问用户的账户、模板、媒体库和团队数据,需妥善保管。多个工具会写入账户:保存和更新模板、添加、修改或删除幻灯片对象以及导出文件。模板与对象操作受套餐和幻灯片数量上限限制,删除幻灯片或模板需在网页端完成。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Getdeck,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/studio.dodraft%2Fgetdeck/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "getdeck": {
      "type": "http",
      "url": "https://getdeck.co/api/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

工具

19

list_layouts

List layouts

Search or filter the layout catalog to find a specific layout. Returns metadata only, no HTML. Each entry has position (opener/middle/closer: its role in a deck), when_to_use and when_not_to_use: read them to check the layout fits the content before choosing it. Filter by position to fill a slot of the story, e.g. position "closer" for the last slide. 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.

输入参数langlimitquerysincecategoryposition

list_themes

List themes

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.

输入参数moodscheme

get_layout

Get layout

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.

输入参数id必填langtheme_id

get_theme

Get theme

Return one theme in full: its complete CSS and design tokens.

输入参数id必填

get_starter_kit

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.

无需输入参数。

suggest_deck

Suggest deck

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.

输入参数tonedeck_idpurpose必填theme_idlayout_idsslide_count

render_slide

Render slide

Fill one layout with your text and get back a finished, self-contained HTML document (theme, base and contract CSS inlined) that renders correctly when opened. Use it instead of get_layout when you already know the text: you do not assemble CSS or edit the markup yourself. Input: layout_id, optional theme_id (use the same one for every slide of a deck), slots, lang. Returns { layout_id, theme_id, html, warnings[], ok }. warnings[] lists missing required slots, text over max_chars, unknown slot ids and sample copy left behind, each with a fix; read them and call again after correcting, do not hand the user a slide that has errors. To validate without rendering use check_slots.

输入参数langslots必填theme_idlayout_id必填

check_slots

Check slots

Validate slot text against a layout before rendering. Nothing is rendered and no CSS is returned, so it is cheap: run it on every slide you wrote, fix what it reports, then call render_slide. Input: layout_id and slots (slot id to text), the same as render_slide. Returns { layout_id, ok, error_count, warning_count, issues[] }. Each issue has slot, code (unknown_slot, missing_required, empty_required, too_long, not_filled, blanked), severity ("error" must be fixed, "warning" is a quality note) and a one-line fix. ok is true when there are no errors.

输入参数slots必填layout_id必填

export_pptx

Export PPTX

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.

输入参数themeslidesembed_fontstemplate_id

save_template

Save template

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[]. Pass owner "team" to save it to the user's team instead of their own templates. 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.

输入参数name必填ownerslides必填theme_id

list_templates

List templates

List the templates the user saved in My Templates, and those of the team they belong to: id, name, owner ("personal" or "team"), slide_count, theme_id, source, updated_at and version. Team templates also have created_by, review_state and unresolved_feedback (pin comments waiting). 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.

无需输入参数。

get_template

Get template

Return one saved template: name, theme_id and slides as [{id, layout, slots, objects, overrides?}], 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. To place or change only the objects of one slide, use add_objects, update_objects and remove_objects. Teammates' team templates open here too; those also return new_feedback (open pin comments). Needs an API key; reading works on any plan.

输入参数id必填

update_template

Update template

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.

输入参数id必填nameslidestheme_idappend_slidesexpected_version

list_media

List images

List the images the user uploaded to their media library on the web: id, name, width, height, aspect_ratio (width/height), bytes, mime and created_at, newest first, plus used_bytes. Pass an id to add_objects to place the picture on a slide. You cannot upload an image or fetch one from a web address; if the picture you need is missing, ask the user to upload it to their media library on the web. Pass scope "team" to list the team library instead (images every team member can use in team templates). Needs an API key; works on any plan.

输入参数scope

add_objects

Add objects

Add text boxes and images on top of one slide of a saved template, up to 50 per call and 50 per slide. Requires a Pro account. Use this instead of update_template to place objects: it never touches slots, other slides or other objects. Each item is {type:"text", text, ...} or {type:"image", asset, ...}; position and size are optional (a text box lands near the middle, an image is centered and fitted). Coordinates are pixels on a 1920x1080 slide and are kept inside it. Colors are theme tokens, not hex. Images come only from list_media ids. Set behind:true to put an object under the layout's own title and text (a background picture behind the default title); it is hidden wherever a layout card or panel has a solid fill. All items are added or none. Returns the slide's objects with their ids and the new version. Errors: pro_required, not_found, conflict (read again with get_template and retry), invalid_input.

输入参数objects必填slide_id必填template_id必填expected_version

update_objects

Update objects

Change objects already on a slide, by id: position, size, rotation, text, text style, the image's alt text or picture, stacking order, and behind (true sends it behind the layout's own elements, false brings it back in front). Requires a Pro account. Send only the fields to change; the style is merged. An image keeps its proportions (send w alone). Up to 50 changes per call, all applied or none. Read ids and the current version with get_template. Returns the slide's objects and the new version. Errors: pro_required, not_found, conflict (read again with get_template and retry), invalid_input.

输入参数changes必填slide_id必填template_id必填expected_version

remove_objects

Remove objects

Remove objects from a slide by id. Requires a Pro account. The slide, its slots and the other objects stay. Only objects can be removed here; slides and templates are deleted on the web. If any id is not on the slide, nothing is removed. Returns the objects that remain and the new version. Errors: pro_required, not_found, conflict (read again with get_template and retry), invalid_input.

输入参数ids必填slide_id必填template_id必填expected_version

list_pending_reviews

List pending reviews

List the review requests ("confirm" requests) in the user's team that are waiting on them: templates whose review is requested or needs a new look because the slides changed after an approval, where the user was picked as a reviewer or has not decided yet. Their own requests are left out. Each item has template_id, name, url, state, version, message, requested_by, requested_at, assigned_to_me and unresolved_feedback. Read the notes on a template with get_template_feedback. Deciding a review (approve or send back) is only possible on the web, so ask the user to do it there. Needs an API key; works on any plan. An account without a team gets an empty list.

无需输入参数。

get_template_feedback

Get template feedback

Read the pin comments teammates left on a team template. By default only unresolved ones on slides the template still has; pass include_resolved to get every thread. Each thread has the comment id, slide_id and slide_number (null if the slide was deleted), slot (the text slot under the pin, if any), body, author, resolved and replies[]. Use slide_id to match a thread to the slide in get_template, then fix the slide with update_template (keep the slide ids). Resolving a thread is done on the web. Only for templates that belong to the user's team: a personal template answers not_team_template, a template they cannot use not_found. Needs an API key; works on any plan.

输入参数id必填include_resolved

版本历史

3
  1. v0.1.2最新Nov 5, 2026
  2. v0.1.1Sep 23, 2026
  3. v0.1.0Sep 16, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。