How to generate PowerPoint slides in VS Code with GitHub Copilot (MCP setup guide, 2026)

Updated 2026-08-23 · ~6 min read · Guide

One click connects VS Code to slideforge.dev and gives Copilot agent mode a real PowerPoint engine. VS Code signs you in over OAuth on first use — no API key, no secret in a config file — and renders the result inline in the chat: slide thumbnails, a per-field fidelity line, and a Download .pptx button. This guide covers the one-click install, the mcp.json config, team setup through the repo, and the two config mistakes that cause almost every failure.

Add SlideForge to VS Code

Opens VS Code and adds the server in one step. Prefer to see what it writes? The manual config is four lines, below.

TL;DR

  • One click or four lines. Remote Streamable HTTP server — nothing to install locally, nothing to keep updated.
  • OAuth 2.1, no key on disk. VS Code opens the sign-in itself on first use. No API key in mcp.json.
  • Full result card in chat. Copilot shows thumbnails, the fidelity report, and a download button inline.
  • 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.

What you need first

  • VS Code 1.101 or later (remote MCP with OAuth is native from there; current builds are far past it).
  • GitHub Copilot with agent mode — the MCP tools are called from the Chat view with Agent selected.
  • No SlideForge account needed up front — the OAuth sign-in creates one, and it starts with 60 free slides.
  • Using Cursor, Codex, or Claude Code instead? Each has its own guide: Cursor, Codex CLI, Claude Code.

Method 1 — one-click install

Click Add SlideForge to VS Code. The link resolves into VS Code's own vscode:mcp/install handler, which shows you the exact server entry before adding it:

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

Confirm, and the server is registered. The first tool call triggers the OAuth sign-in.

Method 2 — mcp.json by hand

Open the Command Palette and run MCP: Open User Configuration, then add:

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

Two details that matter. The top-level key is "servers" — not "mcpServers" as in Cursor or Claude Desktop. A config copied across from another client is silently ignored.

And do not add an oauth block: that pins a static client id and suppresses the dynamic registration VS Code would otherwise do for you. The bare entry above is complete — VS Code handles sign-in on its own.

Method 3 — commit it for the whole team (.vscode/mcp.json)

The same JSON in .vscode/mcp.json at the workspace root means everyone who clones the repo gets the server:

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

The file carries no secret — each developer authorizes individually with OAuth on first use, after confirming VS Code's trust prompt for workspace-defined servers.

Verify the connection

Command Palette → MCP: List Servers. You should see slideforge running with its tools available. You can also type code --add-mcp users: the CLI accepts the same server JSON if you prefer scripting the setup.

In the Chat view, the tools icon lists what the agent can call — create_slide, create_deck, browse_catalog and the rest should be there.

Generate your first slide

In Copilot Chat with Agent selected, ask 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.

On the first call, VS Code opens a browser tab to sign in — that is the one-time OAuth step. Then Copilot picks the form, calls create_slide, and the chat shows the full result card: a slide thumbnail, the fidelity line (verbatim / AI-completed / truncated counts), a Download .pptx button, and your remaining balance.

Open the file and click on $4.2M — the cursor lands in an editable text box, because it is one. Nothing is rasterized.

The fidelity report — why this is safe to automate

Every response carries a machine-readable account of what happened to your content, field by field: whether each value was bound verbatim (copied exactly as supplied) or model-completed(filled in because you did not supply it), plus any warnings the renderer raised. When a generative tool writes your board slide, “ARR $4.2M” and “ARR ~$4M” are both plausible outputs and you cannot tell which you got without reading every slide. Here the number you sent is the number on the slide, and the response says so explicitly.

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, an architecture summary. Copilot already has the context open in the editor; the MCP server turns it into something you can present, without leaving the chat.

Sprint reviews and status decks on demand

“Summarize this week's merged PRs into a five-slide status deck” is one prompt. Copilot gathers, SlideForge renders — five slides in a few seconds, about $0.25, and the fidelity report says exactly what was bound.

The repo that documents itself to stakeholders

A committed .vscode/mcp.json means anyone on the team — including the non-presenting engineers — can produce a consistent, themed deck from the same layouts, with nobody maintaining a template file.

Common mistakes and troubleshooting

The config is ignored entirely

Check the top-level key: VS Code wants "servers". A "mcpServers"block copied from another client's docs is silently skipped — no error, no server.

The tools are connected but Copilot never uses them

Say “use slideforge” in the prompt once, or check the tools picker in the Chat view to confirm the server's tools are enabled for the session. After the first successful call the agent reaches for it on its own.

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.

Stuck auth or a stale token

Sign out of the server entry via the Accounts menu (bottom-left), then run MCP: List Servers and restart the server. The next tool call re-runs the browser sign-in. MCP: Reset Trust clears the workspace trust prompt but not the token — it is not the auth reset.

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 VS Code support remote MCP servers natively?

Yes. Since VS Code 1.101, Copilot agent mode speaks MCP over Streamable HTTP directly — no proxy process, no npm shim. You add the server to mcp.json (or click an install link), and VS Code handles the OAuth sign-in itself in a browser tab. SlideForge is a hosted remote server, so there is nothing to install or update locally.

Do I need an API key to use SlideForge in VS Code?

No. VS Code initiates OAuth on first use: the first time Copilot calls a SlideForge tool, a browser tab opens, you sign in with Google, and the token is stored by VS Code — nothing lands in a config file. API keys (sf_live_...) exist for cases without a browser, but in the editor you should not need one.

Does this work with GitHub Copilot specifically?

Yes — MCP servers in VS Code are used by Copilot agent mode (Chat view, Agent selected). Copilot decides when to call create_slide or create_deck based on your prompt, and renders the result card inline in the chat: slide thumbnails, the fidelity line, and a download button.

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.

Why does my mcp.json not work?

The most common cause: VS Code's mcp.json uses a top-level "servers" key, not "mcpServers". Configs copied from Cursor or Claude Desktop use "mcpServers" and VS Code silently ignores them. The second most common: a missing trailing slash on https://api.slideforge.dev/mcp/ — some clients do not follow the redirect on POST.

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.

Can my team share the setup through the repo?

Yes. Commit a .vscode/mcp.json at the workspace root with the server entry (no secret in it — OAuth is per-user). Everyone who opens the workspace gets the server after confirming the trust prompt, and each developer signs in with their own account on first use.

How is this different from asking Copilot to write python-pptx code?

Copilot 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. Then check the fidelity report.

60 free slides. No credit card. No subscription.

Canonical: slideforge.dev/guides/vscode-powerpoint-mcp. SlideForge is published by Smart Data Brokers GmbH, Zurich. Visual Studio Code and GitHub Copilot are products of Microsoft and GitHub; SlideForge is an independent MCP server and is not affiliated with either.