carousel-studio
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Carousel Studio
An open-source studio for social media carousels that humans review and any MCP-capable agent edits.
You pin notes on slides ("code too small here"), and agents like Claude Code, Codex, Cursor or your own scripts pick them up through the MCP server, change the slides, render new PNGs and reply. Every change is a new version, so nothing is lost.
Review UI: gallery, slide viewer with pinned notes, text editing, versions, approve → posted.
MCP server at
/api/mcp: create, edit, render and view carousels, and work a shared request queue with claim/lease so multiple agents never collide.Server-side rendering: slides are HTML templates rendered to 1080×1350 PNGs by headless Chromium (Playwright locally,
@sparticuz/chromiumon Vercel), stored in Vercel Blob.Brand packs: colors, fonts and voice live in the database and can be imported from a design-system
tokens.json. Licensed fonts never enter the repo.
How it works
You (browser) ──▶ Studio UI ──┐ ┌── Neon Postgres: carousels, versions, requests, brand, API keys
├──▶ Next.js ────┤
Agents (MCP) ──▶ /api/mcp ────┘ renderer ───┴── Vercel Blob: rendered PNGsAsk for a carousel (prompt) or start from the template.
An agent claims the request, writes slides with
create_carousel, which renders them.You click on a slide to pin a note. It lands in the queue.
An agent claims it, calls
update_slides(new version + render) andcomplete_requestwith a reply.You approve and post.
Related MCP server: image-builder
Deploy on Vercel
Fork this repo and import it in Vercel.
Add storage from the Vercel Marketplace: Neon (Postgres) and Blob (public store). Both set their env vars automatically.
Add env vars:
Variable
Value
STUDIO_PASSWORDPassword for the web UI
STUDIO_SESSION_SECRET32+ random bytes, e.g.
openssl rand -hex 32Create the tables once:
vercel env pull .env.local && npm run db:push.Deploy, sign in, open Agents and create a key per agent.
Local development
npm install
vercel link && vercel env pull .env.local # or copy .env.example and fill it
npm run db:push
npm run devRendering locally uses an installed Chrome or Edge (CHROME_PATH to override). Smoke test: npx tsx scripts/render-check.ts out/.
Connect an agent
Create a key on the Agents page, then:
# Claude Code
claude mcp add --transport http carousel-studio https://<your-app>/api/mcp --header "Authorization: Bearer <key>"# Codex (~/.codex/config.toml)
[mcp_servers.carousel-studio]
url = "https://<your-app>/api/mcp"
http_headers = { Authorization = "Bearer <key>" }// Cursor (.cursor/mcp.json)
{ "mcpServers": { "carousel-studio": { "url": "https://<your-app>/api/mcp", "headers": { "Authorization": "Bearer <key>" } } } }Then ask the agent: "Check the carousel studio requests and handle them."
Tools
Tool | What it does |
| Workflow, slide format and the active brand's rules. Agents read this first. |
| Browse carousels, versions, images and requests. |
| Write slides; every save is a new rendered version. |
| Re-render, or get the PNGs back as images to check them. |
| draft → review → approved → posted. |
| The human's queue, with 30-minute leases. |
Slide format
[
{ "kind": "cover", "hook": "Stop installing *date picker* libraries.", "sub": "Your browser already ships one." },
{ "kind": "content", "title": "Why it beats a *library*", "points": ["Native picker on every phone", "Ships zero JavaScript"] },
{ "kind": "code", "file": "date-input.html", "diff": true, "code": "- npm install react-datepicker\n+ <input type=\"date\">", "caption": "*Zero KB* added." },
{ "kind": "cta", "hook": "Save this for your *next form*." }
]*phrase* is the highlighter (one per slide), `code` is inline code. Diff lines start with - or + .
Brand packs
The repo ships a neutral default pack (brand-pack/default, OFL fonts). To use your own brand, open Brand and import a design-system tokens.json (a color.tokens list, optional type.families and type.fonts), its README and woff2 fonts, or run:
npm run brand:import -- path/to/design-system --name "My brand" --handle "@me" --label "Tip" --roles '{"primary":"brand-green"}'Slides paint with roles (primary, paper, ink, marker, code-bg, …). If your token names differ, map them in roles. Fonts are stored in your database and only used by the renderer, which keeps commercial font licenses that forbid public redistribution intact.
Security notes
The UI is protected by a single password (signed, httpOnly session cookie). The MCP endpoint uses per-agent bearer keys stored as SHA-256 hashes.
Rendered PNGs are public Blob URLs under unguessable paths.
OAuth for web connectors (ChatGPT, Claude.ai) is not implemented yet.
Stack
Next.js 16 · React 19 · Drizzle ORM · Neon Postgres · Vercel Blob · mcp-handler + MCP SDK v2 · Playwright + @sparticuz/chromium · Zod 4
License
MIT. Default fonts: Plus Jakarta Sans and JetBrains Mono, SIL Open Font License (see brand-pack/default/fonts).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP connector for Postraid brands, saved social content and editable carousel drafts for review.
Create, schedule, and publish social posts, manage accounts, and read analytics as MCP tools.
Create, schedule, review, analyze, and manage social content across connected channels.
Create, edit, export and publish social carousels from your Slidefast account.
Related MCP Servers
AlicenseAqualityBmaintenanceEnables managing social media posts, accounts, and AI-powered content features from any MCP client, including scheduling, publishing, analysis, and AI caption generation.1423 npmMIT- AlicenseNot gradedqualityCmaintenanceEnables agents to manage templates and images, create and update image drafts, and render them to PNG, ZIP, or PDF exports via MCP.1 npmMIT
- AlicenseAqualityCmaintenanceEnables MCP clients to publish, edit, delete, comment on, and reshare posts; upload images, videos, and documents; and access optional reaction, engagement, and company-Page tools when authorized.10MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to list brands, compose prompts, generate or draw assets, check compliance, and manage review workflows through MCP tools.Apache 2.0