How to generate PowerPoint slides in Cursor (MCP setup guide, 2026)
Updated 2026-08-23 · ~6 min read · Guide
One click connects Cursor to slideforge.dev and gives its agent a real PowerPoint engine: 200+ typed layouts, sub-second deterministic renders, and an editable .pptx with a per-field fidelity report on every call. Setup is an API key in one header — three minutes including signup. This guide covers the one-click install, the mcp.json config, why the key (and not OAuth) is the working path in Cursor today, and the mistakes that cause almost every failure.
Installs the server with a key placeholder — you paste your real key afterwards in Settings → Tools & MCP.
TL;DR
- One click or five lines. Remote Streamable HTTP server — nothing to install locally, nothing to keep updated.
- API key, not OAuth — for now. Cursor's browser sign-in for remote MCP servers doesn't complete in current builds; the key in a header works every time.
- Sub-second renders. Typed intents render deterministically — no model in the render path, so nothing to wait for.
- $0.05 a slide, no quota. 60 free slides on signup, no card. Defective slides are not billed.
- Verifiable output. Every response carries a fidelity report saying which of your values were bound verbatim.
What you need first
- Cursor installed (any recent build).
- A SlideForge API key: sign up (60 free slides, no card), then create a key in the console — it starts with
sf_live_. - Using VS Code, Codex, or Claude Code instead? Each has its own guide: VS Code, Codex CLI, Claude Code.
Why an API key and not OAuth — the honest version. SlideForge supports OAuth 2.1 and Cursor registers against it correctly. But in current Cursor builds the browser sign-in for remote HTTP MCP servers often never opens (we verified this on 3.16.x; the Cursor community forum carries matching reports), so the flow cannot complete unattended.
The key in an Authorization header is the path that works every time today. It goes in a header, never in the URL — so it does not end up in shell history or server logs — and you can rotate or revoke it from the console at any time. When Cursor ships the fix, the bare URL with no header will be all you need.
Method 1 — one-click install
Click Add SlideForge to Cursor. Cursor shows the server entry and adds it with a placeholder key. Then open Settings → Tools & MCP, find slideforge, and replace sf_live_YOUR_KEY in the headers with your real key. That is the whole setup.
The tools appear in the server's entry immediately — no restart needed.
Method 2 — mcp.json by hand
Add to ~/.cursor/mcp.json (global — recommended, it keeps the key out of any repo):
{
"mcpServers": {
"slideforge": {
"url": "https://api.slideforge.dev/mcp/",
"headers": {
"Authorization": "Bearer sf_live_YOUR_KEY"
}
}
}
}A project-level .cursor/mcp.json works the same way, but do not commit one that carries a real key — keep keys in the global file, or leave the placeholder in the committed copy and let each developer fill in their own via Settings.
Generate your first slide
Ask the agent in plain language, with real values:
Make a KPI dashboard slide for our Q3 board update:
ARR $4.2M, up 18% QoQ. Net revenue retention 112%.
Logo churn 1.4%. Cash runway 19 months.
Use slideforge.The agent picks the form, calls create_slide, and the response carries a download URL for a native .pptx plus the fidelity report. Ask it to show the link, or to fetch the file straight into your workspace.
Open the file and click on $4.2M — the cursor lands in an editable text box, because it is one. Nothing is rasterized.
Trust the response, not the narration
One habit worth building with any agent and any MCP server: the proof of a render is the download URL and the fidelity report in the tool response— not the agent's prose summary of it. If the agent says a slide was created but shows no URL, ask for the fidelity report; every billed render has one. A response that reports each field as bound verbatim is a deck you can ship without proofreading the numbers.
Two consequences worth knowing: a slide that comes back with a blocking defect is not billed, and rendering is deterministic — re-sending an identical input is free and produces a byte-identical deck.
What this is for in an editor
Decks from things only your workspace can see
Test results, a release diff, a migration plan, a performance comparison. The agent already has the context open; the MCP server turns it into something you can present, without leaving the chat.
The demo deck that tracks the code
“Update the feature-overview deck from the current README and changelog” is one prompt. Deterministic rendering means the only thing that changes between runs is the content — the layout never drifts.
Client-ready output from an engineering tool
Consulting-grade layouts — waterfalls, Gantt plans, org charts, KPI dashboards — as typed forms the agent fills with your numbers. Nobody on the team maintains a template file.
Common mistakes and troubleshooting
Every call returns 401
The placeholder key is still in the config. Open Settings → Tools & MCP and check the Authorization header carries your real sf_live_ key. If it does, confirm the key has not been rotated in the console.
You clicked Connect and a browser never opened
That is the Cursor OAuth issue described above, not a server outage — the tools still list because listing is unauthenticated. Add the API key header and the calls go through.
The trailing slash
The endpoint is https://api.slideforge.dev/mcp/ — with the trailing slash. Without it you may get a redirect that some clients do not follow on POST.
The agent invents a layout that doesn't exist
Have it call browse_catalog first, or plan_slide to dry-run the payload. Both are free, and both are faster than a failed render.
Pricing
- Create a slide: $0.05
- Translate a slide (32 languages): $0.02
- Check, plan, browse the catalog: free
- A slide with a blocking defect: not billed
- An identical repeat input: free
60 free slides on signup, no credit card. No subscription, no seats, and no download quota.
Frequently asked questions
Does Cursor support remote MCP servers?
Yes. Cursor speaks MCP over Streamable HTTP natively — add a url entry to mcp.json (project-level .cursor/mcp.json or global ~/.cursor/mcp.json) and the server's tools appear in Settings → Tools & MCP. SlideForge is a hosted remote server, so there is nothing to install or update locally.
Why an API key instead of OAuth?
SlideForge supports OAuth 2.1 and Cursor registers against it correctly — but in current Cursor builds (verified on 3.16.x, and matching public reports on the Cursor forum) the browser sign-in for remote HTTP MCP servers often never opens, so the flow cannot complete. The API key in an Authorization header is the path that reliably works today. When Cursor's sign-in flow is fixed, the bare URL with no header will be all you need — the server side is ready.
Is putting the key in mcp.json safe?
Put it in the global ~/.cursor/mcp.json, which lives in your user profile — not in a project-level .cursor/mcp.json that could be committed to a repo. Keys are scoped to your SlideForge account and can be rotated or revoked at any time from the console. If a key ever lands in a repo, revoke it and mint a new one.
Is the .pptx really editable, or is it images?
Real, editable PowerPoint objects. Text is text, tables are tables, charts are native chart shapes — open the file and change a number. Several slide tools export a screenshot inside a .pptx wrapper, which looks identical until someone tries to edit it. Open the file and click a value; if the cursor lands in a text box, it is native.
The agent says it rendered a slide — where is the file?
The response contains a download URL for the .pptx; ask the agent to show it, or to fetch the file into your workspace. If a link has expired, the manage_account tool mints a fresh one for any past job — ask the agent to "get the download URL for that render".
What does it cost?
$0.05 per slide created, $0.02 per slide translated; planning and browsing the catalog are free. No subscription and no download quota. Signup includes 60 free slides with no credit card, a slide that comes back with a blocking defect is not billed, and an identical repeat input is free.
How is this different from asking Cursor to write python-pptx code?
Cursor can write python-pptx, but then you own the layout code, the environment it runs in, and the review of every generated deck. SlideForge gives the agent 200+ finished layouts as typed forms: it sends fields, the engine composes and validates the slide deterministically, and the response reports per field whether your content was bound verbatim. The render path has no LLM in it, so the same input always produces the same deck.
One click, one key. Then check the fidelity report.
60 free slides. No credit card. No subscription.
Canonical: slideforge.dev/guides/cursor-powerpoint-mcp. SlideForge is published by Smart Data Brokers GmbH, Zurich. Cursor is a product of Anysphere; SlideForge is an independent MCP server and is not affiliated with Anysphere.