# JANCTION Render > JANCTION Render is a cloud GPU rendering API and MCP server for Blender: a Blender render farm that AI agents can call as a tool. Render Blender scenes (.blend or a bpy Python script) on JANCTION NVIDIA GPUs from Claude, ChatGPT, Claude Code, Codex, Cursor or any MCP client, without a local GPU. Free beta: nothing is charged. Inputs and results are deleted 24 hours after last use. ## When to use JANCTION Render Use it when: - the user asks to render a Blender .blend file or a bpy script (an image, frames or an animation/MP4) - an AI coding agent created a Blender scene and needs the final image or video - the machine has no NVIDIA GPU, or local Blender rendering is slow - many frames need GPU rendering (frames are split across GPUs and joined into an MP4) - a quick look at a scene is needed before committing to a long render (render_preview, a few GPU seconds) Do not use it for: - modeling or editing a scene without rendering (use a local Blender or a Blender editing MCP; render the result here) - non-Blender workloads (video encoding, game engines, generic GPU compute) Guides: https://render.janction.jp/blender-render-farm · https://render.janction.jp/blender-cloud-rendering · https://render.janction.jp/blender-mcp · https://render.janction.jp/claude-code-blender · https://render.janction.jp/codex-blender · https://render.janction.jp/blender-render-api ## Connect (remote MCP, no install) - MCP server URL: https://render.janction.jp/mcp (Streamable HTTP). Auth: OAuth 2.1 with dynamic client registration (a consent page creates a free API key), or `Authorization: Bearer `. - Claude.ai: Settings > Connectors > Add custom connector > paste the URL. ChatGPT: Settings > Connectors > Advanced > Developer mode > Create > paste the URL. - Claude Code: `claude mcp add --transport http janction-render https://render.janction.jp/mcp` (then `/mcp` to authenticate). Codex: `codex mcp add janction-render --url https://render.janction.jp/mcp`. Cursor and others: Streamable HTTP at the same URL. - Plugins (MCP + workflow skill in one package): Claude Code `/plugin marketplace add KJdayo/janction-render`; Codex `codex plugin marketplace add KJdayo/janction-render` (Agent Plugins format, plugins/janction-render) - Remote tools take scene_script (bpy code as text), scene_url (https link to a .blend/.py) or scene_id; results come back as an inline image plus links valid about 24 hours. ## Install (stdio MCP, sends local files) - Claude Code: `claude mcp add janction-render -e JANCTION_RENDER_SERVER=https://render.janction.jp -- uvx --from janction-render janction-render-mcp` - Codex and other clients: `pip install janction-render`, then run `janction-render-mcp` as a stdio MCP server with JANCTION_RENDER_SERVER=https://render.janction.jp - Package: https://pypi.org/project/janction-render/ · Source: https://github.com/KJdayo/janction-render · Registry: io.github.KJdayo/janction-render - A temporary API key is issued automatically; keep it in JANCTION_RENDER_API_KEY to reuse the same quota/credit ## Flow for an agent 1. scene_info(scene_script | scene_url | scene_path) - cameras, frame range, resolution, missing files. No render. 2. render_preview(..., frames="1-24") - up to 4 frames tiled in one image; look at it, fix the scene, repeat. 3. Ask the user "is this OK?". 4. render_estimate(scene_id, frame_start, frame_end, width, height, samples) - "about 3 minutes", and whether it fits today's free quota. Tell the user. 5. render_final(scene_id, ...) - returns job_id and the estimate (estimate.human). 6. render_status(job_id) until done (eta.human = remaining time incl. queue), then render_download(job_id). 7. billing() shows today's quota (free beta) or the balance. 429 quota_exceeded carries resets_at; 402 payment_required (paid plans) carries checkout_url. ## Inputs - A .blend file (pack external files: File > External Data > Pack Resources), or - A Blender Python (bpy) script that builds the scene: no local Blender needed. Set scene.frame_start/frame_end and add a camera and a light. If you start from an empty scene (bpy.ops.wm.read_factory_settings(use_empty=True)) you must add a camera, a light and a world yourself; otherwise the service adds an automatic camera and a sun and says so in warnings. - Do not set Material.use_nodes (always on in Blender 5.x; it only produces a deprecation warning). - Engine: Cycles on GPU, Blender 5.0. Resolution, samples and denoising are set by the service; scripts should not rely on their own render settings. A .blend saved with a newer Blender (5.2) may not open; prefer a bpy script. ## Price Free beta: nothing is charged. Limits: 10 GPU-minutes per key per day (20 per network), final renders up to 240 frames and 1080p. When the daily quota is used up the API answers 429 quota_exceeded with resets_at. Planned pricing (0.1 JPY per GPU second, top-up from 500 JPY) will be announced here and in llms.txt before it starts. ## HTTP API - POST /v1/keys -> {api_key} (header X-API-Key afterwards) - POST /v1/files (multipart "file": .blend or .py) -> {scene_id} - POST /v1/estimate {kind, frames|frame_start/frame_end, width, height, samples, scene_id?} -> seconds, wall_seconds, human, quota (no render) - POST /v1/jobs {scene_id, kind: info|preview|final, frames|frame_start/frame_end, width, height, samples, camera, fps, output} -> job (+ estimate) - GET /v1/jobs/{id} -> status, progress, eta, artifacts[], cost, warnings, info - POST /mcp -> remote MCP (Streamable HTTP; Bearer api key or OAuth). GET /.well-known/oauth-protected-resource/mcp - GET /v1/jobs/{id}/artifacts/{name} -> PNG / MP4 (header X-API-Key) - DELETE /v1/jobs/{id} -> cancel - GET /v1/me -> quota (free beta) or balance ## Security and data - Your files and scripts run only inside a disposable container: no network, non-root, no capabilities, CPU/memory/time limits, one GPU. The container is destroyed after each job. - Inputs, intermediate data and results are deleted 24 hours after last use. Nothing is used for training. Logs keep sizes, timings and failure reasons only. - Details: https://render.janction.jp/security ## Policies - Terms: https://render.janction.jp/terms - Privacy: https://render.janction.jp/privacy - Legal notice (Japan, Act on Specified Commercial Transactions): https://render.janction.jp/legal - Operator: JasmyLab Inc. (Tokyo, Japan) - Contact: contact@jasmylab.com