{
  "markdown": "<!-- Banner designed & rendered by this very MCP server (create_poster → export_poster). -->\n![Ridvay MCP — design tools for AI agents](https://storage.googleapis.com/ridvay.appspot.com/public/system/0de9ade1-056d-447a-80b9-d89edcaad700.png)\n\n# ridvay-mcp\n\nMCP (Model Context Protocol) server that lets AI assistants — Claude Code, Claude Desktop,\nGitHub Copilot (VS Code agent mode), Cursor, and any other MCP client — create and edit\n**[Ridvay Studio](https://ridvay.com/studio)** posters, flyers, and social designs straight\nfrom a chat conversation.\n\nEvery design comes back as a working share link (`ridvay.com/d/…`) plus links to open and\nedit it in the Studio editor.\n\n\n## Hosted endpoint (no install)\n\nThe same server runs at **https://mcp.ridvay.com** (streamable HTTP). Two ways to authenticate:\n\n- **URL with your key** — for clients that add connectors by URL and cannot set headers (claude.ai custom connectors, ChatGPT connectors): `https://mcp.ridvay.com/mcp/sk-ridvay-…`. Treat that URL like the key itself; revoke it any time at ridvay.com/user/api-keys.\n- **Bearer header** — for clients that support headers: `https://mcp.ridvay.com/mcp` with `Authorization: Bearer sk-ridvay-…`. Claude Code: `claude mcp add --transport http ridvay https://mcp.ridvay.com/mcp --header \"Authorization: Bearer sk-ridvay-…\"`.\n- **Try it without an account** — `https://mcp.ridvay.com/mcp/demo` is a sandbox: no key, no sign-up, the free tools only (design guide, compose a design, render, export PNG, share). Designs made there are public and may be removed; it is rate-limited per network. Claude Code: `claude mcp add --transport http ridvay-demo https://mcp.ridvay.com/mcp/demo`.\n- **Sign in (OAuth 2.1)** — for clients that support MCP OAuth (claude.ai custom connectors, ChatGPT connectors/plugins, Claude Code, Cursor, MCP Inspector): add `https://mcp.ridvay.com/mcp` with no key, and the client discovers `api.ridvay.com` as the authorization server, registers itself (Dynamic Client Registration) or presents a Client ID Metadata Document, and sends you to `ridvay.com/oauth/consent` to approve. The token it receives is a normal Ridvay API key named \"<client> (OAuth)\", so you can revoke it any time from your account page (or the client can call the revocation endpoint).\n\n### Living designs tools (0.6.0)\n\n`list_designs`, `share_design` (view / edit / live-image / screen links), `get_values` and `set_values`\n(update a design's declared `{{variables}}` — a menu board or price board that refreshes itself on the\n`/screen/<id>` page and the `/img/<id>.png` live image), and `list_brands` (pass `brand_id` to `generate_poster`).\n\n## How it works\n\n![You ask in plain language; your assistant composes the design; Ridvay renders it and hands back links](assets/how-it-works.gif)\n\n*Every frame of that GIF was designed and rendered by this MCP server* — a four-page design\ncomposed as design IR, saved with `create_poster`, then exported page by page with\n`export_poster`. No screen recording, no image editor.\n\n## Tools\n\n| Tool | What it does |\n|------|--------------|\n| `get_design_guide` | **Start here** — the design-IR authoring spec (element types, backgrounds, fonts, worked example) that teaches your assistant to compose designs itself. |\n| `create_poster` | **The preferred path:** your assistant composes the design as Ridvay design IR — Ridvay only stores, renders, and shares it. Fast, free, full creative control. |\n| `generate_poster` | Fallback: Ridvay's AI designs from a text brief (slower, consumes the account's generation credits). |\n| `recreate_poster` | Turn an **existing design image** (poster photo, screenshot, export — file path or URL) into an editable design: text becomes editable, shapes become vectors, imagery is re-rendered fresh. Slow (1–4 min), uses generation credits. |\n| `refine_poster` | Natural-language edit of an existing design (`design_id`, `instruction`). |\n| `check_poster` | Report whether a design's AI images finished rendering and return its links + view count (`Views: N`). |\n| `export_poster` | Render a design to a downloadable **PNG/JPEG** at its native pixel size (`scale` 1–4, default 2). |\n| `animate_poster` | Add motion (entrance/exit, page transitions, morph) — blank for a tasteful default, or describe it. |\n| `export_video` | Render an animated design to a downloadable **H.264 MP4** (optional looped soundtrack). |\n| `check_export` | Poll an async `export_poster` / `export_video` job for its download URL. |\n\nYour AI client is the designer; Ridvay is the save/render/share backend. Client-authored\ndesigns may still include `prompt` image slots — Ridvay renders those server-side after\ncreation. `generate_poster` remains for when the assistant can't compose the design itself.\n\n**Export & motion:** `export_poster` gives you the actual poster image at its real dimensions\n(e.g. a 1080×1350 PNG), not the share page. For animation, either include motion fields when\nyou compose the design (see the guide) or call `animate_poster`, then `export_video` for an MP4.\n\n`size` accepts `1080x1080` (default), `1080x1920` / `story`, `1080x1350`, `1920x1080`,\n`a4`, `slide`, or any `WxH`.\n\n### Live images\n\nEvery **shared** design also gets an always-current image URL — each fetch re-resolves the\ndesign's live data bindings (`{{time.now}}`, countdowns, JSON feeds, declared `{{vars}}`),\nso an embedded image never goes stale (re-rendered at most every 60 s):\n\n```\nhttps://ridvay.com/img/{designId}.png\n```\n\nDeclared vars are filled from query params, which makes personalized email images a one-URL\njob with your ESP's merge tags:\n\n```\nhttps://ridvay.com/img/abc123.png?name=*|FNAME|*\n```\n\nA `.jpg` variant plus `page`, `scale`, `w`, and `quality` params are supported — see\n`get_design_guide` (\"Live data bindings + live image URL\") for the bindings format (including\nthe reserved param names that can't double as binding/var keys).\n\nEvery live-image load and every `/d/` share-page view counts toward the design's view\ncount — `check_poster` reports it as `Views: N`.\n\n## Get an API key\n\nSign in and create a key at **[ridvay.com/user/api-keys](https://ridvay.com/user/api-keys)**.\nDesigns generated through MCP appear in your own *My designs*.\n\n## Quickstart\n\n**Claude Code**\n\n```bash\nclaude mcp add --scope user ridvay --env RIDVAY_API_KEY=sk-ridvay-… -- npx -y ridvay-mcp\n```\n\n**Claude Desktop** — add to `claude_desktop_config.json`\n(macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"ridvay\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ridvay-mcp\"],\n      \"env\": { \"RIDVAY_API_KEY\": \"sk-ridvay-…\" }\n    }\n  }\n}\n```\n\n**VS Code / GitHub Copilot agent mode** — add to your user `mcp.json`\n(Command Palette → \"MCP: Open User Configuration\"), then enable **ridvay** in the\nCopilot Chat tools picker:\n\n```json\n{\n  \"servers\": {\n    \"ridvay\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"ridvay-mcp\"],\n      \"env\": { \"RIDVAY_API_KEY\": \"sk-ridvay-…\" }\n    }\n  }\n}\n```\n\nThen ask your assistant things like:\n\n> Generate a story-size poster for our weekend flash sale — 30% off everything, Saturday only.\n\n## Examples\n\n**A poster, straight from a brief**\n\n> Generate a story-size poster for our weekend flash sale — 30% off everything, Saturday only.\n\n**A promo video, end to end** — design, animation, and MP4 in one turn:\n\n> Using the ridvay MCP, create a 3-page 1080x1920 promo video design about [topic]. Page 1: a\n> bold hook. Page 2: three or four key points with accent bars. Page 3: a worked example plus a\n> call to action. Dark navy background, blue accents, Poppins headlines. Then animate it with\n> snappy staggered entrances and morph transitions, and render it to MP4.\n\n**An existing design, made editable again**\n\n> Recreate ~/Desktop/last-years-flyer.png as an editable design, then change the date to\n> October 3rd and set the headline in our brand blue.\n\n**An image that never goes stale** — live bindings resolve on every fetch:\n\n> Build a 1080x1080 status card with today's date and a countdown to our September 1 launch,\n> then give me the live image URL.\n\nA longer walkthrough of the video example, with the agent's actual tool sequence, is on the\nblog: **[Ridvay MCP: free AI design generation from Claude Code](https://ridvay.com/blog/ridvay-mcp)**.\n\n## Environment\n\n| Var | Required | Meaning |\n|-----|----------|---------|\n| `RIDVAY_API_KEY` | yes | Your Ridvay API key (`sk-ridvay-…`). |\n| `RIDVAY_API_URL` | no | Default `https://api.ridvay.com`. |\n| `RIDVAY_WEB_URL` | no | Base for returned links, default `https://ridvay.com`. |\n| `RIDVAY_SUB_USER_ID` | no | Admin/platform keys only: act on behalf of a specific user. |\n\n## Behavior notes\n\n- **Sharing:** `generate_poster` / `create_poster` create an unlisted public share link by\n  default so the chat reply contains a working `/d/{id}` URL. Pass `share: false` to keep\n  a design private to your account (only the Studio edit link is returned).\n- **Deferred images:** generation returns as soon as the layout is ready; AI/stock images\n  render server-side in the background (~1 min). `check_poster` reports on and, if\n  needed, re-triggers that pass.\n\n## Telemetry\n\nContent and usage data from the MCP (such as prompts and generated designs) may be used to\nimprove Ridvay's products, services, and AI features. Requests include basic attribution:\nthe connecting MCP client's name/version and, when the assistant provides the optional\n`agent_model` argument, the model id that authored the design.\n\n## Development\n\n```bash\nnpm install\nnpm run build     # emits dist/\nnpm test          # vitest unit suite\nnode dist/index.js  # run the stdio server directly (needs RIDVAY_API_KEY)\n```\n\nMIT © Ridvay\n",
  "bytes": 9732,
  "sha": "9693688d3ddfb4ef20c47b068c525a28a82223061412daaf57529334c9ff0a6e",
  "repo_slug": "tom-tgr/ridvay-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ridvay_ai_ridvay_mcp_85e47df1/readme"
}