SlideForge

dev.slideforge由 slideforge.dev 發布官方發布者v5.9.0更新於 Oct 24, 2026

Deterministic, fully editable PowerPoint from typed slide intents. 200+ layouts, brand templates.

已驗證Streamable HTTP可網頁執行效率與工作流檔案與儲存媒體與設計

概覽

AI 產生的概覽

SlideForge 把結構化的簡報意圖編譯成原生、可編輯的 PowerPoint 投影片與簡報檔,並提供目錄瀏覽、規劃、編輯、翻譯與素材上傳。

可以做什麼
  • 瀏覽目錄與規劃投影片:檢索 200 多種版型、取得排序後的候選與範例 payload,並在算圖前檢查簡報需求
  • 建立投影片與簡報檔:用型別化欄位或簡短需求產生單張或整份 .pptx,支援 dry_run 驗證與保真清單
  • 就地編輯已算圖的投影片與簡報檔:以欄位修補方式更新,保留原工作 id 與連結
  • 翻譯既有 .pptx,保留原有格式,支援 35 種語言
  • 上傳素材:公司範本、Logo、圖片與文件,或由 AI 生成圖片
  • 管理帳戶:餘額、用量、工作歷史、意見回饋與資料控制
適用情境
適合需要產出真正可編輯的 PowerPoint 檔案(而非圖片或 HTML 匯出)的情境,也適合翻譯、套用品牌樣式或修復既有簡報檔。若代理要把數字放進投影片並需要可稽核的綁定紀錄,同樣適用。
執行需求
可使用託管的遠端端點(部分用戶端走 OAuth,或在 Authorization 標頭放入 API 金鑰),也可用 PyPI 套件 slideforge-mcp 以 stdio 在本機執行,需要 Python。工具呼叫需要 SLIDEFORGE_API_KEY,僅做 schema 探索則不需要。取得金鑰與付費算圖需要 SlideForge 帳戶。
安裝前請注意
算圖依頁計費(建立 5 美分、轉換 2 美分、生成圖片 5 美分/張、PDF 擷取 1 美分/頁),代理反覆呼叫可能產生費用,可先用 dry_run 或 mode=safe 免費驗證。API 金鑰屬機密,不應外流。上傳的範本、Logo 與文件會傳送給第三方服務,產物在建立 30 天後自動刪除。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SlideForge,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/dev.slideforge%2Fslideforge/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "slideforge": {
      "type": "http",
      "url": "https://api.slideforge.dev/mcp/"
    }
  }
}

README

mcp-name: dev.slideforge/slideforge

SlideForge MCP — PowerPoint slides for AI agents

SlideForge (slideforge.dev) — the deterministic PowerPoint compiler for AI agents. Typed slide intents → native, fully editable .pptx in under a second, with a fidelity manifest that states exactly what was bound verbatim. Built by Smart Data Brokers GmbH, Switzerland.

Remote MCP server + REST API. No local install, no Python environment, no python-pptx boilerplate. OAuth 2.1 for Claude Desktop & ChatGPT; API key for everything else.

[License: MIT] [smithery badge] [Website] [Docs]


⚠️ Disambiguation

"SlideForge" is used by multiple unrelated projects. This is SlideForge by Smart Data Brokers GmbH at slideforge.dev. Not affiliated with:

  • slideforge.io — a separate AI presentation generator
  • slideforge.fr — a French document polishing service
  • blink.new/p/slideforge-app — an unrelated web app
  • Other github.com/*/SlideForge repositories outside the smartdatabrokers org

When citing or linking, prefer slideforge.dev or "SlideForge by Smart Data Brokers."


Why SlideForge

  • A compiler, not a generator. A slide is a typed intent: pick a form from 200+ catalog patterns (KPI dashboards, waterfalls, Gantt plans, org charts, funnels, …), put your real content in typed fields. A deterministic engine lays it out — no LLM in the render path, same input → same slide, sub-second.
  • The honesty layer. Every response carries a fidelity manifest: per field, was your content bound verbatim, mixed, or ai_completed? A partial grade means some supplied content didn't make it onto the slide — the manifest names what was dropped; never deliver a partial render without telling the user what's missing. Slides with blocking defects don't bill (usable-or-free). If your agent feeds numbers into slides, this is what makes the output auditable.
  • Native, editable .pptx. Real shapes and text boxes — not images, not HTML exports. Openable and editable in PowerPoint.
  • Escape hatch included — under the same trust contract. mode=code runs your own python-pptx in a sandbox (widget/chart toolkit, theme injected, intent fields render as chrome). Code renders are linted, measured (layout block + presentation_ready), and provenance-checked — agents may escape the layout grammar, never the trust grammar.
  • Your template, natively. Upload your company's .pptx — slides are built ON your file (theme, masters, fonts), not a color-matched imitation.
  • Check for free. dry_run validates any payload + forecasts fidelity at $0 — or use mode=safe to validate-then-render in ONE call (renders + bills only if faithful; else a $0 report with the fix). verify tiers on code renders (lint default, lint+vlm adds a visual second-look). quality_profile (executive/technical/appendix) sets the readiness bar the layout is judged against — answered on any form. Free deck inspect (POST /v1/inspect) runs a deterministic quality report on any pptx.
  • 97% quality parity with Gamma in our own blind side-by-side benchmark (internal instrument, not third-party).

Pricing in one breath: creating a slide 5¢ · transforming a slide 2¢ (translate, repair) · checking free. 60 free slides on signup, no subscription. slideforge.dev/pricing


Quick Start

One click, no config file:

[Add SlideForge to VS Code]   [Add SlideForge to Cursor]

VS Code (Copilot agent mode) signs you in over OAuth on first use — no key, no JSON file.

Cursor installs with an API-key placeholder: after clicking, replace sf_live_YOUR_KEY in the server's headers with a real key from the console. Cursor's own OAuth browser launch is broken as of 3.16.17, so the key is the working path there today.

Claude Code

bash
claude mcp add --transport http slideforge https://api.slideforge.dev/mcp/

Then just ask: "Make a KPI dashboard slide: revenue $12.4M (+18% YoY), 847 new clients, NPS 62."

Optional — install the skills + bundled server config as a plugin:

/plugin marketplace add smartdatabrokers/slideforge-mcp/plugin install slideforge@slideforge-mcp

Or copy any folder from skills/ into ~/.claude/skills/ (personal) or .claude/skills/ (project).

Claude Desktop (OAuth — no key needed)

Settings → Connectors → Add custom connector → https://api.slideforge.dev/mcp/ — sign in with Google on first use.

ChatGPT (Developer Mode)

Settings → Apps → Advanced → Developer mode → Add custom connector → https://api.slideforge.dev/mcp/ (OAuth).

Cursor / Windsurf / Codex CLI / any MCP client (API key)

json
{  "mcpServers": {    "slideforge": {      "url": "https://api.slideforge.dev/mcp/",      "transport": "streamable-http",      "headers": { "Authorization": "Bearer sf_live_YOUR_KEY" }    }  }}

Get a key: slideforge.dev → Console → API keys. (Codex CLI and other AGENTS.md-native tools: see AGENTS.md.)

Run it locally (stdio — for container/offline clients)

Most clients should use the hosted remote server above (no install). But if your client boots MCP servers from a container or a local stdio process, run the bundled local server. It's a thin REST client over api.slideforge.dev — it holds no engine logic; the tool schemas are baked in locally (so discovery works offline, no key) and each call forwards to the SlideForge REST API authenticated with your key.

bash
pip install slideforge-mcp        # or: uv pip install slideforge-mcpexport SLIDEFORGE_API_KEY=sf_live_YOUR_KEYslideforge-mcp                    # speaks MCP over stdio

Or via Docker:

bash
docker build -t slideforge-mcp .docker run -i -e SLIDEFORGE_API_KEY=sf_live_YOUR_KEY slideforge-mcp

Client config (stdio):

json
{  "mcpServers": {    "slideforge": {      "command": "slideforge-mcp",      "env": { "SLIDEFORGE_API_KEY": "sf_live_YOUR_KEY" }    }  }}

Schema discovery (tools/list) needs neither a key nor network; tool calls need the key.

LangChain / LlamaIndex (agent frameworks)

No SlideForge SDK needed — both load the MCP tools directly:

bash
pip install langchain-mcp-adapters      # or: pip install llama-index-tools-mcp
python
from langchain_mcp_adapters.client import MultiServerMCPClientclient = MultiServerMCPClient({"slideforge": {    "transport": "streamable_http",    "url": "https://api.slideforge.dev/mcp/",    "headers": {"Authorization": f"Bearer {API_KEY}"}}})tools = await client.get_tools()        # 7 tools, drop into any LangGraph agent

Runnable examples + the LlamaIndex equivalent: examples/. Need a key? Sign up — 60 free slides, no credit card — then grab it at console/keys.

REST (no MCP)

bash
curl -X POST https://api.slideforge.dev/v1/render/intent \  -H "Authorization: Bearer sf_live_YOUR_KEY" \  -H "Content-Type: application/json" \  -d '{"form": "kpi_metrics", "headline": "Q3 at a glance",       "data": {"metrics": [{"label": "Revenue", "value": "$12.4M", "delta": "+18% YoY"},                             {"label": "New clients", "value": "847"},                             {"label": "NPS", "value": "62"}]}}'

Full REST reference: slideforge.dev/docs/api


The 7 MCP tools

ToolWhat it doesCost
create_slideONE slide from a structured intent (form + typed fields) or a brief; mode=safe validates-then-renders in one call; mode=code for sandboxed python-pptx (verify tiers, chrome fields, patch-by-replacements). Routing controls: variant, variant_policy, allow_fabrication/allow_truncation/allow_low_confidence (honest defaults: reject at $0 rather than guess). min_font_pt sets a BINDING type floor — text grows to meet it where the box allows; content that cannot fit returns a $0 min_font_not_met error naming the size it needs. Response carries the fidelity manifest + a measured layout readiness block on diagram forms. Default themes ship topical design — a subject-informed palette + designed cover, named in the response's design note (styling: "clean" opts out; your pinned/uploaded brand theme always wins).$0.05 (usable-or-free)
create_deckWhole deck: slides[] of intents (code-mode slides are first-class children), parallel render, one merged .pptx, per-slide fidelity rollup + per-slide child jobs (own preview/pptx). Failed slides isolated + free; deck-level dry_run validates the whole deck at $0. Deck-level language, direction (rtl for Arabic/Hebrew — typeset right-to-left, layout unmirrored + honestly warned), imagery/imagery_tag, styling and logo_id inherit into every slide; a slide's own value wins.N × $0.05
plan_slideBrief → top form/variant candidates with confidence.Free
browse_catalog200+ patterns with per-form JSON Schemas + copy-pasteable example intents, themes, the code-mode widget toolkit. Pass an uploaded theme_id to list its branded cover/agenda/divider layouts. type=brands lists your brand kits with their versions. 9 built-in themes + your uploaded brand kits.Free
translate_deckTranslate any PPTX preserving formatting (32 languages).$0.02/slide
upload_assetLogos, brand template PPTX, images; purpose=pdf extracts a PDF into editable slide intents (PowerPoint/Keynote/Google-Slides/Beamer-exported PDFs only — other sources aren't supported yet); or AI-generate an image. Brand template upload (purpose=brand — purpose=theme is the same thing under its old name, still accepted) renders NATIVE by default — decks are built on the client's own template file. Omit data on large files for an in-card drag/drop zone.Free / $0.01/page / $0.05/image
manage_accountBalance, usage, jobs, security status, feedback, action=feedback_list to read your filed reports back, action=brand_report for a brand kit's per-token fidelity report.Free

dry_run: true on create tools = validation + fidelity forecast at $0.

Two more tools (generate_report, manage_connections — data-driven reports from connected tools like Zoho Sprints) exist behind an enterprise gate and are not served by default.

Also on REST (for now): the Deck Doctor. POST /v1/inspect — a free deterministic Deck Quality Report for any pptx (overflow via real font metrics, content hidden behind shapes, off-canvas leftovers, WCAG contrast). POST /v1/repair — deterministic fixes, never your words, $0.02/repaired slide, free dry-run quote. Docs


Brand kits

A brand kit is your org's identity — colors, type, logo, and (optionally) an uploaded .pptx/.potx/.thmx template — stored under a slug and rendered against on every call.

  • Use one: pass theme_id=<slug> to create_slide/create_deck for the kit's default version, or <slug>@<n> to pin a specific version.
  • Create one: upload_asset(purpose="brand", data=<base64 .pptx/.potx/.thmx>) — decks then render NATIVE, built on your own template file. (purpose="theme" is the same path under its old name and still works.)
  • Discover: browse_catalog(type="brands") lists your kits with their versions.
  • Check fidelity: manage_account(action="brand_report", theme_id=<slug>) returns the per-token fidelity report for a kit.
  • Export or import from a URL: full kit CRUD, DTCG tokens.json/.potx/.thmx export, and importing an identity straight from a company's domain are REST-only today — /v1/brands (not yet mirrored as MCP tools).

Security

  • Tool result bodies are credential-free — no signed URLs in responses. Previews are embedded inline (the agent looks at the PNG directly); the .pptx downloads via header-auth (Authorization: Bearer + ownership check), not a bearer-in-URL.
  • Need a shareable link instead? POST /v1/jobs/<job_id>/download-url mints a short-TTL, single-use, revocable link.
  • Artifacts auto-delete 30 days after creation.
  • Every download is audit-logged.
  • manage_account(action=security_status) discloses the full posture in-band.

Agent skills (this repo)

Copy-in skills that teach an agent to use SlideForge well — see skills/:

SkillTeaches
create-slideIntent-first slide/deck creation, schema discovery, dry-run, fidelity manifest, headless preview
inspect-repairFree Deck Quality Report on any pptx + deterministic repair
translate-pptxFormat-preserving PPTX translation
pdf-to-pptxPDF → editable PPTX extraction

For Codex CLI / Cursor / Copilot and other AGENTS.md-native tools, AGENTS.md carries the same guidance in the portable format. CLAUDE.md imports it for Claude Code.

Headless usage (Claude Code / Codex CLI)

No inline widgets in a terminal, but the tool result already embeds the preview PNG inline — the agent reads it directly out of the response, no fetch needed. The .pptx downloads via header-auth:

bash
curl -H "Authorization: Bearer sf_live_YOUR_KEY" \  -o deck.pptx https://api.slideforge.dev/v1/jobs/<job_id>/pptx   # ownership-checked

To hand off a shareable link instead of the raw file, mint a single-use one: POST /v1/jobs/<job_id>/download-url — short-TTL, revocable, works once.

The self-review loop (render → view inline preview → fix → re-render) is documented in examples/claude-code.md.


How it compares

SlideForgepython-pptxPrompt-only AI decks
Editable native .pptx✅✅often images/exports
Deterministic (same input → same slide)✅✅ (your code)❌
States what was AI-touched (fidelity manifest)✅n/a❌
Layout quality without hand-coding✅ 200+ patterns❌ DIYvaries
Hosted, agent-native (MCP + REST)✅❌ localpartial
Free pre-flight validation✅ dry_runn/a❌

Links

License

MIT (this repo: skills, examples, docs). The SlideForge service itself is a commercial API.

來源:README.md,提交 fa25be7

工具

9

browse_catalog

Browse SlideForge's Catalog (Unified Discovery)

Browse the PowerPoint slide catalog progressively. No args -> form overview (when-to-use, bound fields, variant counts). family=<form> -> variant one-liners. q=<text> -> ranked search. variant=/prior_id= -> example payload. type=schema + family -> a compact family-level variant chooser (not a sendable contract); type=schema + family + variant -> that variant's exact payload contract (JSON Schema, capacity, field mapping, examples). Free. Code path: type=widgets = the add_widget() catalog (name=<widget> for its contract + thumbnail); type=helpers = python-pptx helper signatures. type=themes + an uploaded theme_id -> that template's branded FURNITURE layouts (its own cover/agenda/divider/closing slides + fill schemas + previews) — render via create_slide(form=template_layout, theme_id, data={layout, fills}).

輸入參數qtopnametypelimitfamilyoffsetsourcevariantprior_idtheme_id

plan_slide

Plan a Slide - Form + Variant Candidates

Plan a PowerPoint slide before rendering (free): send a short brief, get ranked candidates + a separated verdict — route (which slide: selected|needs_confirmation|ambiguous), input (can it render: ready|extractable_from_brief|needs_structured_data) and next_action. Free (one embedding). Then call create_slide with the chosen form(+variant). route.confidence: calibrated = measured P(route correct) with label high/medium/low cut on it; retrieval_score/retrieval_margin = the raw family-aggregated classifier values (not probabilities; margin can be negative when families contest); source = jev (calibrated router, took the route at >=0.9) | classifier | structural_router (LLM-rescued). candidate_margin on the top candidate = literal gap between the two shown scores.

輸入參數topbrief必填escalatevariant_policy

create_slide

Create or Inspect a Slide

Create one PowerPoint slide (.pptx, native, editable) from a structured intent in ONE call: pick a `form` from the menu and put your content in the typed fields (placed on the slide as given), or pass a `brief` and let the server route it. Fields tagged (per-form) bind only where the form has that slot — ignored-with-warning elsewhere; see each form's `binds` in browse_catalog. BLOCKED (not billed)? If an error has `can_autofix:true`, merge its `patch` into the args at `patch_target`. Unchanged retries repeat the block. New form: browse_catalog(type=schema) first. FORM MENU: agenda_list: an ordered list of sections/topics or learning objectives to walk through bar_rank_chart: bars comparing magnitudes across categories calendar_grid: events on a real calendar - week planner (day x hour) or month grid with event chips (data.events) card_grid: several equal, unordered peer blocks (features, options, pillars, a concept's defined parts, rules/guidelines/common mistakes) case_story: one named story told as evidence, proven by measured results (data.results = figures) comparison_matrix: options x criteria grid: data.columns x data.rows cycle_flow: a closed loop of ordered stages where the last feeds the first (recurring process) data_table: a plain factual table of records by fields editorial_split: two side-by-side halves: contrast (before/after, problem/solution) or copy/numbered steps beside a picture (image_src) exercise_prompt: an exercise/practice/discussion prompt: instruction + hints; optional problem items with blank answer boxes funnel: a quantity narrowing through ordered stages gantt_plan: tasks as bars across named periods on a schedule grid gauge_score: one score on a dial against a scale hero_statement: a statement slide: covers (title/image-led/exec), from->to/thesis-quote transitions, statement/contact/next-steps closings; supporting points -> takeaway_stack, contacts -> data.contacts, next steps -> data.next_steps hub_spo

輸入參數codedatadateformmodenamewaitbriefnotesblocksdetailjob_id另有 31 個

create_deck

Create Multi-Slide Deck

Create a complete PowerPoint presentation (.pptx): a whole multi-slide deck, native and editable, in one call. `slides` is a list of create_slide intents (same form menu + data shapes — see create_slide). Slides fill in parallel and merge into one themed PPTX with page numbers. Include furniture: a hero_statement cover, section_divider breaks, and a closing (hero_statement variant=contact_closing via blocks-free slots). BLOCKED (not billed)? If an error has `can_autofix:true`, merge its `patch` into the args at `patch_target`. Unchanged retries repeat the block. New form: browse_catalog(type=schema) first. Also: mode=assemble merges existing slide job_ids as-rendered (free; theme_id does NOT re-theme them — render with create_deck(slides=[…], theme_id=…) for a unified theme); mode=fork clones a deck (free). Polling: deck_id == job_id — manage_account(action=job, job_id=<deck_id>).

輸入參數modenametitleslidesdeck_iddry_runimageryjob_idslogo_idstylinglanguagetheme_id另有 5 個

edit_slide

Edit a rendered slide

Change a slide you already rendered, in place and free: the job keeps its id and links. Send the job_id and a patch of the fields to change. Never runs a model: a brief or a picture request is refused (make a new slide for those). The response carries the slide's full current spec as `intent`. Up to 20 edits per slide.

輸入參數patch必填job_id必填

edit_deck

Edit slides of a rendered deck

Change one or more slides of a deck you already rendered, in place and free: only the patched slides re-render, the deck is re-merged and keeps its id and links. Never runs a model: a brief or a picture request is refused. Each edited slide's entry carries its full current spec as `intent`. Up to 20 edits per deck.

輸入參數job_id必填slides必填

translate_deck

Translate PPTX

Translate a PowerPoint (.pptx) deck preserving all formatting. Supports 35 languages (Latin, Cyrillic, Greek, Chinese, Japanese, Korean). Provide job_id (from a previous create_slide/create_deck), pptx_url, or pptx_base64.

輸入參數namejob_idpptx_urlpptx_base64concise_modeinclude_notesinclude_tablesinclude_previewsource_languagetarget_language必填

upload_asset

Upload or Generate Asset

Upload assets for PowerPoint (.pptx) generation: company template, logo, image, or document — or AI-generate an image. Purposes: • logo — company logo for chrome (PNG/JPG/SVG, max 5MB) → logo_id • image — image for the Image component (max 10MB) → asset_id • theme — company template PPTX → theme_id; slides with it render NATIVELY on the template (masters/layouts/chrome) • generate_image — AI-generate via `prompt` → asset_id • translate — PPTX to translate → deck job_id (requires `target_language`) • pdf — PDF → editable slides; pass `target_language` to also translate • recreate — image OF a slide → editable PPTX slide (honest annotate/preserve fallback). Use `image` to just place a picture Files >3MB (pdf/translate/theme) — and recreate on chat hosts — omit `data`: a drop-zone appears in the result card; bytes never pass through the agent.

輸入參數datasizemodeljob_idpromptpurpose必填qualityfilenamepositiontheme_idtheme_nametarget_language

manage_account

Account & History

SlideForge account for PowerPoint generation: balance, job history, feedback, data controls. All free. Actions: status (balance+plan), usage (spend breakdown), jobs (history), job (single job detail — slide jobs include `quality_warnings[]`; deck jobs add `slides_completed/slides_failed/failed_slides[]`), feedback (submit), feedback_list (read your reports back: status + resolution), onboarding (capabilities overview), download_url (fresh short-TTL PPTX link for an owned job — when a result carries no inline URL), security_status (retention + access-model + deletion posture), delete_job (irreversible: job + versions + files) Action delete_asset irreversibly deletes a user-owned uploaded/generated image asset.

輸入參數dayssluglimitaction必填detailjob_idstatusmessageasset_idcategoryseverityinclude_preview另有 1 個

版本歷史

1
  1. v5.9.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分