Does it work in the Codex IDE extension too?
Yes. codex mcp add registers the server for the CLI and the IDE extension; config.toml is shared.
Run codex mcp add janction-render --url https://render.janction.jp/mcp, then ask Codex for a Blender scene. Codex writes the bpy script and JANCTION Render previews and renders it on a JANCTION GPU. Nothing to install locally. Each new key starts with a welcome credit of up to 500 JPY (100 JPY with no card, 400 JPY more after registering a card, which is not charged) (14 days); after that, previews stay free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second.
Updated 2026-11-12
What it does From an AI app over MCP: the bpy script the AI wrote, or your own .blend or 3D file, rendered on a cloud GPU. Preview, fix, estimate, then the final. The price is shown before rendering, and a paid render starts only after you approve it. Without a connector, let the AI write the script and paste it at /start.
What it does not do Not a tool for editing 3D inside that app (a local Blender is driven by a separate MCP such as blender-mcp). Until it is connected and authenticated, the AI cannot render.
Paste your AI's script and tryTry your own file for free
Browser only; no connector or CLI needed. A 100 JPY welcome credit for a new key (14 days, no card; one per network every 30 days, further keys on the same network share what is left), and 400 JPY more for saving a card that is not charged (once per card); after that, previews stay free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second.
# remote MCP (Codex CLI and IDE extension share this); the sign-in page opens right away
codex mcp add janction-render --url https://render.janction.jp/mcp
codex mcp list
# installed through the plugin, or listed as "needs login": sign in once
codex mcp login janction-render
# or with a key you already have (no browser)
codex mcp add janction-render --url https://render.janction.jp/mcp --bearer-token-env-var JANCTION_RENDER_API_KEY
# or in ~/.codex/config.toml
[mcp_servers.janction-render]
url = "https://render.janction.jp/mcp"
# stdio alternative
[mcp_servers.janction-render]
command = "uvx"
args = ["--from", "janction-render", "janction-render-mcp"]
env = { JANCTION_RENDER_SERVER = "https://render.janction.jp" }
Codex asks before each MCP tool call. In an interactive session, allow it when asked. codex exec cannot ask: an unapproved call stops with MCP tool call requires approval, but approval policy is never and nothing reaches JANCTION Render. To let Codex read, preview, estimate and fetch without asking, put this in ~/.codex/config.toml (it replaces the server added above; render_final, which uses paid GPU time, still asks):
[mcp_servers.janction-render] url = "https://render.janction.jp/mcp" [mcp_servers.janction-render.tools.scene_info] approval_mode = "approve" [mcp_servers.janction-render.tools.render_preview] approval_mode = "approve" [mcp_servers.janction-render.tools.render_estimate] approval_mode = "approve" [mcp_servers.janction-render.tools.render_status] approval_mode = "approve" [mcp_servers.janction-render.tools.render_download] approval_mode = "approve" [mcp_servers.janction-render.tools.render_info] approval_mode = "approve" [mcp_servers.janction-render.tools.billing] approval_mode = "approve" [mcp_servers.janction-render.tools.asset_search] approval_mode = "approve"
Keep the tool lines under a server that has its url: a block with only the tool lines makes Codex refuse the whole config (invalid transport). If you installed the plugin instead, approve the tools when Codex asks. For a one-off run: codex exec -c 'mcp_servers.janction-render.tools.render_preview.approval_mode="approve"' "…".
Add to your project's AGENTS.md:
When a Blender scene needs to be rendered, use the janction-render MCP server (scene_info → render_preview → render_estimate → render_final → render_status → render_download). Prefer it when no local GPU is available or local rendering is slow. Tell the user the time estimate.
The public repository is also a plugin marketplace in the open Agent Plugins format (skill + MCP in one package):
codex plugin marketplace add JasmyLab-JANCTION/janction-render.
Using JANCTION Render, build a glossy red cube rotating on a gray floor and show me a 4-frame preview. If it looks right, render 24 frames at 1280x720 as an MP4.
To render a .blend or 3D file that is on your computer, drop it at /upload to get a 12-hour link (no sign-up) and tell the AI "Render this file: <link>". To test the connection first: "Render a preview of https://render.janction.jp/samples/cube_scene.py".
scene_info reads the scene without rendering: cameras, frame range, objects, missing files.render_preview renders 1-4 frames at 720p in a few GPU seconds and returns the image, so the agent can look, fix the script and try again.render_estimate says how long the final render takes ("about 3 minutes") and whether it fits the free GPU time left (the welcome credit while it lasts, then up to 2 preview GPU-minutes a day).render_final renders the frames on GPUs and joins them into an MP4; render_status reports the remaining time; render_download returns the files or links.
Let the CLI send it: uvx janction-render preview scene.blend (then render). It sends files over 64 MB in parts and resumes after a dropped connection, up to 1 GB on a free key and more on a key that has paid. Do not post a large file to POST /v1/files in one request: the CDN in front refuses bodies over 100 MB with an HTML 413 before they reach the API. Calling the API yourself, use POST /v1/uploads (tus 1.0, parts of 32 MiB). Do not decimate or strip the scene to make it fit; the render would no longer be what you made.
| job | GPU time | note |
|---|---|---|
| preview, 4 frames (720p split in 4 tiles, 16 samples, denoised) | about 4 s | round trip about 8 s; the image comes back inline |
| final, 24 frames at 1280x720, 64 samples → MP4 | about 60 s | measured 2026-09-30 / 10-01 (59 s and 58 s) |
| final, one 1920x1080 frame at 128 samples | about 11 s | the estimator's baseline; heavy scenes take longer |
These are individual observations of simple scenes (2026-09-30 to 10-01 UTC, NVIDIA RTX PRO 6000 Blackwell Max-Q Workstation Edition, 96 GB). The 4-GPU-second example used a rotating cube, four 640x360 tiles and 16 samples. GPU time includes Blender startup and scene loading; it is distinct from completion time including queue and transfers. See conditions, round trips and reproduction files. These are not speed guarantees.
render_estimate gives the number before rendering; once a scene has been rendered once, the estimate uses that scene's own measurement.
Pricing (since 2026-10-08): Each new key gets 100 JPY of GPU time free with no card (1,000 GPU-seconds, 14 days) for previews and finals, and 400 JPY more once a card is saved on a Stripe page that charges nothing (once per card): up to 500 JPY in all. After it is used up or expires, previews are free up to 2 GPU-minutes per key per day and final renders are paid from prepaid credit at 0.1 JPY per GPU-second. Top-ups (paid) start at 100 JPY. The first top-up during the 14-day welcome period counts 1.5x, with the bonus capped at 500 JPY (100 JPY buys 150 JPY of credit). Top-ups of 2,000 JPY or more get 10 to 20% extra (not combined with the first-top-up bonus; the larger one applies). Top-up bonuses are separate from the welcome credit and the card-saving credit. Payment is on a Stripe Checkout page. One full welcome credit per network every 30 days; further keys from the same network use what is left of that network's credit. A job without enough credit gets HTTP 402 payment_required with a checkout_url. Final renders go up to 3,000 frames per instruction (automatically split internally under one job id), 1080p (1920x1080) on free time and up to 4K (3840x2160) on prepaid credit. The free preview time resets at 00:00 UTC (09:00 JST). No sign-up: connecting creates a key. Inputs and results are deleted 24 hours after last use (normally 7 days for keys that have paid 500 JPY or more in total) and never used for training.
If you cannot add a connector to your AI (plan or administrator settings), the same result is one step away: send the prompt below to the AI and paste the code it returns into the paste-and-render page. The preview needs no payment.
Write a Blender 5.0 bpy script that builds <describe your scene here>. Add a camera and set scene.camera, and add one light. Do not call render and do not change render settings. Reply with the code only.
To fix something, give the AI the preview's notes (too dark, cut off, no light) and paste the rewritten script again.
Yes. codex mcp add registers the server for the CLI and the IDE extension; config.toml is shared.
With the stdio server, yes (scene_path). The remote server takes scene_script, scene_url or scene_id, because it cannot read your disk.
ChatGPT uses the same remote MCP server as a plugin (Plugins → Add → Create plugin → the URL). See the ChatGPT guide.
Codex asks before each MCP tool call and codex exec cannot ask. Approve the JANCTION Render tools per tool in ~/.codex/config.toml under the server that has its url (see Run without prompts above); render_final can keep asking.