slide
Integrates with Keycloak for OIDC/OAuth authentication, enabling member sign-in and per-user access control so each member only sees their own decks.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@slidemake the selected title text say 'Q3 Results' and validate the deck"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
> "Make the hi on slide 1 say Results, 24 pt bold"
⚡ get_deck { deck_id: "dk_a9q86y45ax" }
⚡ update_shapes { deck_id: "dk_a9q86y45ax", slide: 1, updates: [{ id: "sh_hdq4vujt", set: { text: { paragraphs: [{ runs: [{ text: "Results", size: 48, bold: true }], align: "center" }] } } }] }
✓ { status: "applied", entry: "42", changed: ["sh_hdq4vujt"] }Many people draw slides by hand: rounded rectangles, connectors glued to them, text boxes placed where they fit. To ask an AI to change one box, you first have to describe where it is. slide keeps those drawing tools in the browser. You select a shape and tell your agent what to change, and you can still export a normal .pptx.
Features
Draws like PowerPoint: rectangles, rounded rectangles, ellipses, text boxes, pictures and connectors that stay glued when shapes move, with undo, copy and paste.
Types in place: Chinese input methods work, and lines wrap where PowerPoint wraps them.
Gives your agent your selection: over MCP, the agent gets the selected shapes as JSON, the marked words and a picture of that area.
Applies agent edits at once: the history records every edit, yours and your agent's, and you can revert any one of them.
Imports and exports
.pptx: shapes stay native, connectors stay glued and text stays editable.Presents on two screens: the projector shows the slides, and your screen shows the next slide, your notes and a timer.
Publishes a deck: a read-only link that anyone can open and download.
Related MCP server: deck
Quick start
curl -fsSLO https://raw.githubusercontent.com/zyx1121/slide/main/compose.yaml
curl -fsSL -o .env https://raw.githubusercontent.com/zyx1121/slide/main/.env.example
# set POSTGRES_PASSWORD, APP_URL, OIDC_*, ALLOWED_EMAILS and SESSION_SECRET in .env
docker compose up -dThis starts Postgres, a one-shot migration job and the web app from ghcr.io/zyx1121/slide. Open 127.0.0.1:3000 and sign in. Uploaded pictures live on the assets volume, so back it up with the database.
The app listens on 127.0.0.1 and speaks plain HTTP. Put a reverse proxy with TLS in front that passes the originalHost, and register APP_URL/auth/callback as a redirect URI of your sign-in client. Let the proxy accept request bodies up to about 101 MiB, the largest .pptx import. In Caddy, that is request_body { max_size 101MiB }.
Usage
Sign in with an email in
ALLOWED_EMAILS. 新增 starts a deck on a master that you pick, and 匯入 turns a.pptxinto a deck on its own master.Edit on the slide. Double-click a shape or the title to type. The dock inserts shapes, text boxes, pictures and connectors, and a menu next to the selection styles it.
Connect your agent:
claude mcp add --transport http slide https://slide.example.org/mcp, then sign in from/mcpand allow the agent.Select shapes or words and leave comments with 評論, then ask your agent to answer them. Or select shapes and ask for a change directly. 紀錄 lists every change and reverts any one.
Download a
.pptxfrom the dock, or publish the deck with the globe button and share its/s/…link.
Your agent can also run check_deck, which reports text sizes, overflow, overlaps, contrast and colors outside the master's palette.
Configuration
Set these in .env. .env.example documents each one.
Key | Sets | Default |
| the bundled Postgres password | required |
| the public URL. The sign-in provider sends members back there | required |
| the OpenID Connect provider, such as | required |
| a confidential web client with the code flow and PKCE S256 | required |
| comma-separated verified emails that can sign in | required |
| the key for the session cookie, 32 characters or more | required |
| where traces and error logs go, over OTLP/HTTP JSON | off |
| the service name on the traces |
|
| where a run from source keeps pictures |
|
| where the migrate role reads SQL files |
|
| the image tag that compose runs |
|
| where compose publishes the web port |
|
How it works
flowchart LR
E[Browser editor] -->|server actions, API routes| A[Next.js app]
G[Your agent] -->|MCP at /mcp| A
A --> D[(Postgres)]
A -->|OIDC sign-in| O[Google or another OIDC provider]One Next.js app and one Postgres database. Only verified emails in
ALLOWED_EMAILSget in, and each member sees only their own decks.An agent signs in through the app's own OAuth server. The member allows it on a consent page, and the agent gets a one-hour access token and a rotating refresh token. The app stores only their hashes.
Every edit, from the editor or an agent, goes through the same path, with the same rules, and becomes a revision.
One renderer draws slides in the browser and, through resvg, on the server, with bundled fonts. Lines wrap the same everywhere.
Limits
A deck keeps the master that it starts on: plain, WinLab, or the master of an imported file.
Import turns a table into one rectangle per cell, and leaves out charts, SmartArt, some freeforms and EMF, SVG or TIFF pictures. It reports what it left out.
Pictures are PNG, JPEG or GIF, up to 10 MB and 50 million pixels.
Text stops at 5,000 characters per shape and 20,000 per slide.
Decks are private to their owner. Sharing with other members is not available yet.
In Safari and Firefox, drag the projection window to the projector, then double-click it for full screen.
For AI agents
Facts for coding agents and LLM tools. The rules for changing the code are in AGENTS.md.
Summary: Next.js and Postgres slide editor with a browser canvas,
.pptximport and export, and an MCP server that edits decks for the signed-in member.Type: service
Interfaces: HTTP web app. MCP at
/mcp(streamable HTTP, OAuth). Public read-only decks at/s/….Install:
docker compose up -dwithcompose.yamland.envfrom this repoRun:
docker compose up -d, orbun devfrom sourceVerify:
bun run typecheck && bun run lint && bun run format:check && bun run testConfig:
POSTGRES_PASSWORD,APP_URL,OIDC_ISSUER,OIDC_CLIENT_ID,OIDC_CLIENT_SECRET,ALLOWED_EMAILS,SESSION_SECRET,OTEL_*,ASSETS_DIR,MIGRATIONS_DIR,SLIDE_VERSION,SLIDE_BIND,SLIDE_PORTSecrets:
.env(the database password, the OIDC client secret,SESSION_SECRET). The app stores agent tokens as hashes only.Limits: decks are private to one member. Import drops charts, SmartArt and some picture formats.
Development
bun install
sh scripts/fetch-fonts.sh
cp .env.example .env # set DATABASE_URL to a Postgres that you can reach
bun run migrate
bun devCI runs the typecheck, the lint, the formatting test and the unit tests, then builds the image and smoke-tests the compose stack with scripts/smoke.sh.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Generate, edit, merge, translate and PDF-convert PowerPoint (.pptx) over MCP. 8 tools.
Build decks in your own brand, from the AI agent you already use. Then edit them yourself.
Presentations.AI MCP server — create designed slide decks from a topic, text, or document.
- StorydocOAuthcom.storydoc
Generate and manage Storydoc presentations from any MCP-compatible client.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI-powered slide deck creation using natural language, allowing users to generate, edit, and manage presentations through MCP clients like Cursor and Claude Code.147 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to create, read, and edit slide decks as plain markdown files, with support for drawing annotations, and handles deck management through MCP tools.2 npm2MIT
- FlicenseCqualityBmaintenanceEnables conversational, deterministic inspection, editing, rendering, and validation of PowerPoint (.pptx) presentations, allowing agentic creation and modification of slides with style preservation and visual verification.34-
- AlicenseNot gradedqualityBmaintenanceEnables MCP-compatible agents to generate, edit, export, and preview AI slide decks through tool calls. Supports deck generation from topics or reference material, per-slide and deck-wide edits, and HTML export.2MIT