{
  "markdown": "<!-- mcp-name: dev.slideforge/slideforge -->\nmcp-name: dev.slideforge/slideforge\n\n# SlideForge MCP — PowerPoint slides for AI agents\n\n> **SlideForge ([slideforge.dev](https://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](https://slideforge.dev), Switzerland.\n\nRemote 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.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n[![smithery badge](https://smithery.ai/badge/smartdatabrokers/slideforge)](https://smithery.ai/servers/smartdatabrokers/slideforge)\n[![Website](https://img.shields.io/badge/Website-slideforge.dev-orange)](https://slideforge.dev)\n[![Docs](https://img.shields.io/badge/Docs-slideforge.dev%2Fdocs-lightgrey)](https://slideforge.dev/docs)\n\n---\n\n## ⚠️ Disambiguation\n\n\"SlideForge\" is used by multiple unrelated projects. **This is SlideForge by Smart Data Brokers GmbH at [slideforge.dev](https://slideforge.dev).** Not affiliated with:\n\n- `slideforge.io` — a separate AI presentation generator\n- `slideforge.fr` — a French document polishing service\n- `blink.new/p/slideforge-app` — an unrelated web app\n- Other `github.com/*/SlideForge` repositories outside the `smartdatabrokers` org\n\nWhen citing or linking, prefer `slideforge.dev` or \"SlideForge by Smart Data Brokers.\"\n\n---\n\n## Why SlideForge\n\n- **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.\n- **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.\n- **Native, editable .pptx.** Real shapes and text boxes — not images, not HTML exports. Openable and editable in PowerPoint.\n- **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.\n- **Your template, natively.** Upload your company's .pptx — slides are built ON your file (theme, masters, fonts), not a color-matched imitation.\n- **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.\n- **97% quality parity with Gamma** in our own blind side-by-side benchmark (internal instrument, not third-party).\n\n**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](https://slideforge.dev/pricing)\n\n---\n\n## Quick Start\n\n**One click, no config file:**\n\n<a href=\"https://vscode.dev/redirect/mcp/install?name=slideforge&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fapi.slideforge.dev%2Fmcp%2F%22%7D\"><img src=\"https://img.shields.io/badge/VS_Code-Add_SlideForge-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white\" alt=\"Add SlideForge to VS Code\" height=\"32\"></a>\n&nbsp;\n<a href=\"https://cursor.com/install-mcp?name=slideforge&config=eyJ1cmwiOiJodHRwczovL2FwaS5zbGlkZWZvcmdlLmRldi9tY3AvIiwidHJhbnNwb3J0Ijoic3RyZWFtYWJsZS1odHRwIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyIHNmX2xpdmVfWU9VUl9LRVkifX0=\"><picture><source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/deeplink/mcp-install-light.svg\"><img src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" alt=\"Add SlideForge to Cursor\" height=\"32\"></picture></a>\n\n**VS Code** (Copilot agent mode) signs you in over OAuth on first use — no key, no JSON file.\n\n**Cursor** installs with an API-key placeholder: after clicking, replace `sf_live_YOUR_KEY` in the\nserver's `headers` with a real key from [the console](https://slideforge.dev/console/keys). Cursor's\nown OAuth browser launch is broken as of 3.16.17, so the key is the working path there today.\n\n### Claude Code\n\n```bash\nclaude mcp add --transport http slideforge https://api.slideforge.dev/mcp/\n```\n\nThen just ask: *\"Make a KPI dashboard slide: revenue $12.4M (+18% YoY), 847 new clients, NPS 62.\"*\n\nOptional — install the skills + bundled server config as a plugin:\n\n```\n/plugin marketplace add smartdatabrokers/slideforge-mcp\n/plugin install slideforge@slideforge-mcp\n```\n\nOr copy any folder from [`skills/`](skills/) into `~/.claude/skills/` (personal) or `.claude/skills/` (project).\n\n### Claude Desktop (OAuth — no key needed)\n\nSettings → Connectors → Add custom connector → `https://api.slideforge.dev/mcp/` — sign in with Google on first use.\n\n### ChatGPT (Developer Mode)\n\nSettings → Apps → Advanced → Developer mode → Add custom connector → `https://api.slideforge.dev/mcp/` (OAuth).\n\n### Cursor / Windsurf / Codex CLI / any MCP client (API key)\n\n```json\n{\n  \"mcpServers\": {\n    \"slideforge\": {\n      \"url\": \"https://api.slideforge.dev/mcp/\",\n      \"transport\": \"streamable-http\",\n      \"headers\": { \"Authorization\": \"Bearer sf_live_YOUR_KEY\" }\n    }\n  }\n}\n```\n\nGet a key: [slideforge.dev](https://slideforge.dev) → Console → API keys. (Codex CLI and other AGENTS.md-native tools: see [`AGENTS.md`](AGENTS.md).)\n\n### Run it locally (stdio — for container/offline clients)\n\nMost clients should use the hosted remote server above (no install). But if your client boots\nMCP servers from a **container or a local stdio process**, run the bundled local server. It's a\nthin REST client over `api.slideforge.dev` — it holds no engine logic; the tool schemas are baked\nin locally (so discovery works offline, no key) and each call forwards to the SlideForge REST API\nauthenticated with your key.\n\n```bash\npip install slideforge-mcp        # or: uv pip install slideforge-mcp\nexport SLIDEFORGE_API_KEY=sf_live_YOUR_KEY\nslideforge-mcp                    # speaks MCP over stdio\n```\n\nOr via Docker:\n\n```bash\ndocker build -t slideforge-mcp .\ndocker run -i -e SLIDEFORGE_API_KEY=sf_live_YOUR_KEY slideforge-mcp\n```\n\nClient config (stdio):\n\n```json\n{\n  \"mcpServers\": {\n    \"slideforge\": {\n      \"command\": \"slideforge-mcp\",\n      \"env\": { \"SLIDEFORGE_API_KEY\": \"sf_live_YOUR_KEY\" }\n    }\n  }\n}\n```\n\nSchema discovery (`tools/list`) needs neither a key nor network; tool *calls* need the key.\n\n### LangChain / LlamaIndex (agent frameworks)\n\nNo SlideForge SDK needed — both load the MCP tools directly:\n\n```bash\npip install langchain-mcp-adapters      # or: pip install llama-index-tools-mcp\n```\n\n```python\nfrom langchain_mcp_adapters.client import MultiServerMCPClient\nclient = MultiServerMCPClient({\"slideforge\": {\n    \"transport\": \"streamable_http\",\n    \"url\": \"https://api.slideforge.dev/mcp/\",\n    \"headers\": {\"Authorization\": f\"Bearer {API_KEY}\"}}})\ntools = await client.get_tools()        # 7 tools, drop into any LangGraph agent\n```\n\nRunnable examples + the LlamaIndex equivalent: [`examples/`](examples/README.md).\nNeed a key? [Sign up](https://slideforge.dev/sign-up) — **60 free slides, no credit card** — then grab it\nat [console/keys](https://slideforge.dev/console/keys).\n\n### REST (no MCP)\n\n```bash\ncurl -X POST https://api.slideforge.dev/v1/render/intent \\\n  -H \"Authorization: Bearer sf_live_YOUR_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"form\": \"kpi_metrics\", \"headline\": \"Q3 at a glance\",\n       \"data\": {\"metrics\": [{\"label\": \"Revenue\", \"value\": \"$12.4M\", \"delta\": \"+18% YoY\"},\n                             {\"label\": \"New clients\", \"value\": \"847\"},\n                             {\"label\": \"NPS\", \"value\": \"62\"}]}}'\n```\n\nFull REST reference: [slideforge.dev/docs/api](https://slideforge.dev/docs/api)\n\n---\n\n## The 7 MCP tools\n\n| Tool | What it does | Cost |\n|---|---|---|\n| `create_slide` | ONE 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) |\n| `create_deck` | Whole 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 |\n| `plan_slide` | Brief → top form/variant candidates with confidence. | Free |\n| `browse_catalog` | 200+ 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 |\n| `translate_deck` | Translate any PPTX preserving formatting (32 languages). | $0.02/slide |\n| `upload_asset` | Logos, 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 |\n| `manage_account` | Balance, 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 |\n\n`dry_run: true` on create tools = validation + fidelity forecast at $0.\n\nTwo 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.\n\n**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](https://slideforge.dev/docs/api/inspect)\n\n---\n\n## Brand kits\n\nA brand kit is your org's identity — colors, type, logo, and (optionally) an uploaded\n`.pptx`/`.potx`/`.thmx` template — stored under a slug and rendered against on every call.\n\n- **Use one**: pass `theme_id=<slug>` to `create_slide`/`create_deck` for the kit's default\n  version, or `<slug>@<n>` to pin a specific version.\n- **Create one**: `upload_asset(purpose=\"brand\", data=<base64 .pptx/.potx/.thmx>)` — decks then\n  render NATIVE, built on your own template file. (`purpose=\"theme\"` is the same path under its\n  old name and still works.)\n- **Discover**: `browse_catalog(type=\"brands\")` lists your kits with their versions.\n- **Check fidelity**: `manage_account(action=\"brand_report\", theme_id=<slug>)` returns the\n  per-token fidelity report for a kit.\n- **Export or import from a URL**: full kit CRUD, DTCG `tokens.json`/`.potx`/`.thmx` export, and\n  importing an identity straight from a company's domain are REST-only today —\n  [`/v1/brands`](https://slideforge.dev/docs/api) (not yet mirrored as MCP tools).\n\n---\n\n## Security\n\n- Tool result bodies are credential-free — no signed URLs in responses. Previews are embedded\n  inline (the agent looks at the PNG directly); the .pptx downloads via header-auth\n  (`Authorization: Bearer` + ownership check), not a bearer-in-URL.\n- Need a shareable link instead? `POST /v1/jobs/<job_id>/download-url` mints a short-TTL,\n  single-use, revocable link.\n- Artifacts auto-delete 30 days after creation.\n- Every download is audit-logged.\n- `manage_account(action=security_status)` discloses the full posture in-band.\n\n---\n\n## Agent skills (this repo)\n\nCopy-in skills that teach an agent to use SlideForge well — see [`skills/`](skills/):\n\n| Skill | Teaches |\n|---|---|\n| [`create-slide`](skills/create-slide/SKILL.md) | Intent-first slide/deck creation, schema discovery, dry-run, fidelity manifest, headless preview |\n| [`inspect-repair`](skills/inspect-repair/SKILL.md) | Free Deck Quality Report on any pptx + deterministic repair |\n| [`translate-pptx`](skills/translate-pptx/SKILL.md) | Format-preserving PPTX translation |\n| [`pdf-to-pptx`](skills/pdf-to-pptx/SKILL.md) | PDF → editable PPTX extraction |\n\nFor Codex CLI / Cursor / Copilot and other [AGENTS.md](https://agents.md)-native tools, [`AGENTS.md`](AGENTS.md) carries the same guidance in the portable format. `CLAUDE.md` imports it for Claude Code.\n\n## Headless usage (Claude Code / Codex CLI)\n\nNo inline widgets in a terminal, but the tool result already embeds the preview PNG inline — the\nagent reads it directly out of the response, no fetch needed. The .pptx downloads via header-auth:\n\n```bash\ncurl -H \"Authorization: Bearer sf_live_YOUR_KEY\" \\\n  -o deck.pptx https://api.slideforge.dev/v1/jobs/<job_id>/pptx   # ownership-checked\n```\n\nTo hand off a shareable link instead of the raw file, mint a single-use one:\n`POST /v1/jobs/<job_id>/download-url` — short-TTL, revocable, works once.\n\nThe self-review loop (render → view inline preview → fix → re-render) is documented in [`examples/claude-code.md`](examples/claude-code.md).\n\n---\n\n## How it compares\n\n| | SlideForge | python-pptx | Prompt-only AI decks |\n|---|---|---|---|\n| Editable native .pptx | ✅ | ✅ | often images/exports |\n| Deterministic (same input → same slide) | ✅ | ✅ (your code) | ❌ |\n| States what was AI-touched (fidelity manifest) | ✅ | n/a | ❌ |\n| Layout quality without hand-coding | ✅ 200+ patterns | ❌ DIY | varies |\n| Hosted, agent-native (MCP + REST) | ✅ | ❌ local | partial |\n| Free pre-flight validation | ✅ dry_run | n/a | ❌ |\n\n---\n\n## Links\n\n- Website: [slideforge.dev](https://slideforge.dev) · Pricing: [/pricing](https://slideforge.dev/pricing) · Trust & honesty layer: [/trust](https://slideforge.dev/trust)\n- Docs: [REST](https://slideforge.dev/docs/api) · [MCP](https://slideforge.dev/docs/mcp) · [Quickstart](https://slideforge.dev/docs/quickstart) · [Deck Doctor](https://slideforge.dev/docs/api/inspect)\n- Smithery: [smartdatabrokers/slideforge](https://smithery.ai/servers/smartdatabrokers/slideforge)\n- X / Twitter: [@slideforgedev](https://x.com/slideforgedev)\n\n## License\n\nMIT (this repo: skills, examples, docs). The SlideForge service itself is a commercial API.\n",
  "bytes": 16269,
  "sha": "819cede2eec30ec5cdba57bc65a50c57c8552eaf305724ceb0a6066131550218",
  "repo_slug": "smartdatabrokers/slideforge-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_dev_slideforge_slideforge_bfdaa605/readme"
}