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。

  • 授權條款不適用

    託管服務按其提供方的條款使用,因此這裡不要求授權條款。此檢查項不計入百分比。