mcpbeat Sign in

JANCTION Render MCP Server

by jasmylab-janction Your server? Claim it
answering

JANCTION Render is answering right now. Last checked 7 min ago. 9 377 installs a week from pypi. It exposes 13 tools. Last commit 2 Nov 2026.

Blender and GLB/FBX/USD/STL rendered on cloud GPUs for AI agents: product shots, turntables, MP4

Installs per day peak 5 586 · avg 1 872 · -24% w/w
a month agotoday
Uptime history 33 days of history · worst day 92%
33 days agonow
100.0%
Uptime 24h
182 of 182 checks
13
Tools
read from the server
910 ms
Response time
average over 24h
9 377
Installs / week
npm and PyPI

What changed 339

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 7 October 2026. No other catalogue keeps this.

2 Nov a tool changed version28 times that day
30 Oct a tool changed version4 times that day
29 Oct a tool changed version8 times that day
28 Oct a tool changed version32 times that day
28 Oct a tool description was rewritten billing
27 Oct a tool changed version12 times that day
26 Oct a tool changed version12 times that day
23 Oct a tool changed version10 times that day
23 Oct a tool description was rewritten asset_search
22 Oct a tool changed version2 times that day
and 329 more, back to 7 October 2026

What the code does

We read the source, 3 d ago · tools taken from the live server · rules 995398eba69f

Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

        candidates = [raw] if os.path.isabs(raw) else [os.path.join(root, raw), os.path.join(root, "sourceimages", raw), raw]
Runs an external command integrations/jr_submit.py:383
            subprocess.Popen(["open", path])
Runs an external command npm/bin/janction-render.js:81
  const which = spawnSync(process.platform === "win32" ? "where" : "which", ["uvx"], { stdio: "ignore" });
  root.innerHTML = html;

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

This code can reach further than it looks

We found places where it runs commands, builds paths or queries from values it is given. None of that is a flaw by itself — it becomes one when the code changes, and code changes quietly between releases. We re-read it on every one.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 7 min ago.

run in your terminal
claude mcp add janction-render --transport http https://render.janction.jp/mcp
Settings → Connectors → Add custom connector, then paste this address
https://render.janction.jp/mcp
~/.codex/config.toml
[mcp_servers.janction-render]
url = "https://render.janction.jp/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "janction-render": {
      "url": "https://render.janction.jp/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "janction-render": {
      "type": "http",
      "url": "https://render.janction.jp/mcp"
    }
  }
}

This server publishes 1 more address. The block above uses the one we reach during checks; the full list is under Endpoints below, and the author may intend a particular one for your client.

Available tools 13

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

render
render_cancel
Stop a queued or running render job of this key (a j_... job, or a b_... job split into parts, which stops every part). Effects: queued frames are dropped; frames already rendered are charged and stay downloadable until the job expires; the rest of the GPU time held for the job is returned to the key at once. It cannot be undone or resumed: to render again, call render_final again (a new job). A job that is already done, failed or canceled is returned unchanged, and a job whose frames are all rendered and is being assembled into the video cannot be stopped (nothing more is charged). Only the key that started the job can stop it; any other job_id returns not_found. Ask the user before cancelling a render they asked for.
render_download
Get the download links of a job (no key needed, valid about 24 hours; call again for fresh links while the files are kept, 24 h after last use or 7 days, normally, for paid keys) and show them to the user; in a terminal, fetch them with curl -o. A finished preview also comes back as an inline image. wait_seconds > 0 first waits for the job (the service waits at most 50 s per call; call again while it is still running). only picks the files: 'output' (default: the MP4 or the preview sheet, plus the first frames), 'mp4', 'sheet', 'frames' or 'all'.
render_estimate
Estimate a render before starting it (no GPU time): GPU seconds, queue wait, the wall-clock time as text (estimate.human, e.g. 'about 3 minutes') and whether it fits the free GPU time left (the welcome credit, or 2 preview GPU-minutes a day after it) and the size limits. Call it before render_final when the time or quota is uncertain, the job is longer than about 24 frames or above 720p, or the user asks how long it takes; tell the user the result. With scene_id the estimate uses measured render times and returns calibration.final_path_measured. If false, treat it as preliminary: run a short contiguous final-path test and estimate again before the full animation. It also says when to split a job.
render_final
Render the final frames or video of a Blender scene on cloud GPUs, after the user approved a preview: 'render the final', 'make the video', 'export the turntable MP4'. Call render_estimate first when the time or the free GPU time left (the welcome credit, or 2 preview GPU-minutes a day after it) is uncertain, the job is longer than about 24 frames or above 720p, or the user asks how long it takes, and tell the user. For animations, keep the approved engine/look, test 10 contiguous final-path frames, then estimate again. Long jobs are rendered in chunks and joined into one video. Returns job_id and estimate.human at once (short jobs return the links directly); then call render_download(job_id, wait_seconds=45). Use the same environment and blender as the approved preview. Render only what the user approved at the shown price (max_yen caps it). Limits: up to 3,000 frames per call (over 240 runs as parts under one job id); 1920x1080 on free time, 3840x2160 with prepaid credit; each new key gets 100 JPY of GPU time free with no card (14 days) and 400 JPY more once the user saves a card on a page that charges nothing (once per card); after that, previews are free up to 2 GPU-minutes a day and finals cost 0.1 JPY per GPU-second (prepaid); ask before a render the free time does not cover; files are deleted 24 h after last use (7 days once topped up). preset='product' | 'turntable' | 'animation' fills the settings for that purpose. Options per parameter: output (png, exr, mp4, webm, prores, gif, webp), orbit, cameras, transparent, engine, notify_url, asset_urls ('polyhaven:<id>'). Pass scene_id from render_preview, or scene_script / scene_url for a new scene.
render_import_file
Use a file the user attached in this chat (.blend, glTF/GLB, FBX, USD, OBJ, STL or a bpy .py script): JANCTION fetches it and makes it a scene of this account, and returns scene_id. Then call scene_info(scene_id=...) to read the cameras and frame range, and render_preview(scene_id=...) to see it. Nothing is rendered or charged here. A large file can take a few minutes: if the reply says status 'importing', call render_import_file again with the same file after about 30 seconds (the download continues and is not started again). If the attachment cannot be fetched, ask the user to attach it again or to upload it at the /upload page.
render_info
Check the connection and the service before rendering (read-only, no GPU time, no charge): the server URL, whether GPU workers are online, the queue length and expected wait, and this key's usage. Use it before the first render or when renders seem stuck, and to decide whether to route a render here: workers_available > 0 means a preview comes back in seconds; gated means the GPU is lent out and gate says how long the wait usually is. It runs as the connected account (OAuth or the API key in the connector). Every call is rate-limited per key; a 429 response carries retry_after_s, wait that long. diagnose.tell_user says in plain words whether the connection, the key, the free credit and the GPUs are fine and what the last failed render said; relay it when the user asks why something does not work.
render_preview
Show what a Blender scene looks like: a fast, low-cost preview render on a cloud GPU, back as an image in seconds. Typical requests: 'render this .blend', 'show me the scene', 'preview the turntable', 'I have no GPU', 'Blender is too slow on my laptop', 'Blenderでレンダリングして', 'GPUがない', 'ターンテーブル', '商品の360度動画'. Also use it after writing a bpy script, to see what it builds. Each preview returns a critic verdict (ok / check / fix) with fix code: apply the fixes and preview again before any final render. It also returns final_estimate (the same scene as a 1080p final) and quota_left_today; tell the user both before asking to go on. Prices come before rendering: final_offers give each next render's time and price, and a paid one needs the user's approval. A script that raises comes back as a failure with the line (nothing is rendered). When not to use: editing a scene open in the user's Blender belongs to a local Blender MCP, and a single still on a machine with its own NVIDIA GPU usually renders faster locally. This service is for CPU-only machines, animations, and scripts with no Blender installed. Limits: up to 1280x720; 1-4 frames tiled in one labeled image for the GPU time of one 720p frame. preset='product' | 'turntable' | 'animation' sets camera, light, backdrop and frames for that purpose. Other options are explained on each parameter: environment presets and 'compare', orbit (turntable), cameras (several named cameras), engine, transparent, asset_urls with 'polyhaven:<id>' CC0 assets. Give the scene as scene_script (bpy code as text), scene_url (an https link to a .blend, .py or 3D file) or scene_id; reuse the returned scene_id in render_final.
render_share
Publish a finished render as a public web page anyone with the link can open (for X, Discord or a client): the image or video, the render settings, an optional title and note, the user's request in their words (prompt), and the bpy script only if include_script=True. The page keeps its own copy of the result after the job's files expire, until render_unshare. listed=True only asks to appear in the public gallery; the operator reviews it first. Public: ask the user before sharing and return the url to them. Only the key that rendered the job can share it.
render_status
Check a render job: status (queued / running / done / failed / canceled), frames done, the ETA (eta.human, including queue wait), files ready, Blender warnings, and the error with the log tail if it failed. Use it to report progress to the user; render_download(job_id, wait_seconds=45) waits and returns the links in one call. Without job_id it lists this key's recent jobs and the scene_ids still kept, to pick up earlier work in a new conversation.
render_unshare
Take down the public share page of a job made with render_share. Effects: the page URL stops working, its copy of the image or video, the shared script and the shown request are deleted, and the page leaves the public gallery. This cannot be undone: sharing again makes a new page with a new URL. The job's own files are not touched (they expire on their usual schedule). Only the key that shared the job can take the page down; a job without a share page returns not_found.
asset
asset_search
Find free CC0 3D models, PBR textures or HDRIs on Poly Haven by words ('wooden chair', 'forest hdri') to furnish a scene without uploading files; no GPU time. For product shots of something the user has no model for: asset_search('<item>'), then render_preview(scene_script='import jr_assets; jr_assets.import_model("<id>")', asset_urls=['polyhaven:<id>'], preset='product') gives 4 studio shots on a plain backdrop (import_model removes Blender's untouched startup cube first). Each result has a spec 'polyhaven:<id>' to pass in asset_urls, its size in metres and the entry file. In the scene script: import jr_assets, then jr_assets.import_model('<id>', location=(x, y, z), scale=1.0) returns the objects, jr_assets.material('<id>') builds a material and jr_assets.apply(obj, mat) assigns it, jr_assets.world_hdri('<id>', strength=1.0) lights the world. 'polyhaven:<id>@2k' fetches 2k textures (1k by default).
billing
billing
Check what this key can still render for free and its credit (no GPU time): the free GPU time left and when it expires or resets, the balance, the price per GPU-second, any pending checkout link, and the offers that apply. Relay tell_user to the user in their language when it is present.
scene
scene_info
Read a Blender scene without rendering (a few seconds, no GPU time): cameras and the active one, frame range and fps, resolution, objects by type, lights, materials, whether it is animated, and missing linked files that would render pink. Use it for a .blend you did not write, or to check what a bpy script built. Returns scene_id; pass it to render_preview and render_final instead of sending the scene again.

Tools removed

Tools this server used to expose. Anything built against them stopped working on the day they went.

janction_create
removed 19 Oct 2026
janction_resume
removed 19 Oct 2026
scene_edit
removed 19 Oct 2026
scene_revision_list
removed 19 Oct 2026

Endpoints

URLTransportStateLatencyChecked
https://render.janction.jp/mcp streamable-http answering 849 ms 7 min ago
https://render.janction.jp/mcp?src=registry streamable-http answering 826 ms 7 min ago

Alternatives to JANCTION Render

same job, measured the same way
Sceneplane
by sceneplane

Cloud Blender for AI agents: scenes, assets, renders, MP4, STL, GLB — over hosted remote MCP.

answering
Loopcut
by loopcut-ai

Loopcut's cloud tools for Blender: GPU render, assets, images, 3D models, motion and audio.

608 installs/wk local only
A
Agentbrush
by agentbrush

On-brand image generation (product shots, app icons, OG cards, sprites) for AI coding agents.

76 installs/wk local only
Nova3D
by raresense

Structured, part-aware 3D generation for AI agents. Named-part GLB, preview URL, Blender script.

local only
Colter
by mfbahc

Colter audits product pages for AI shopping agents and returns fixes, tests, and Evidence Packs.

156 installs/wk local only
A
Avideoai MCP
by jacklee1000

MCP server for avideoai: turn product photos into video ads from Claude and other AI agents.

local only
BuyRecord
by buyrecord

US product return policies, recalls and, as stores join, verified purchase outcomes for AI agents.

5 tools answering
Arch Tools MCP
by deesmo

63 production tools for AI agents — one API key, pay per call in USDC (x402) or Stripe credits.

63 tools answering

JANCTION Render — questions

Answers built from our own checks of this server.

What can JANCTION Render do?
It exposes 13 tools, read directly from the server on our last check. Among them: asset_search, billing, render_cancel, render_download, render_estimate, render_final and 7 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is JANCTION Render working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 182 of 182 checks got a reply (100.0%), average response time 910 ms. The bar chart above shows every period we have measured.
Did JANCTION Render ever remove tools?
Yes. janction_create, janction_resume, scene_edit, scene_revision_list are no longer exposed — we recorded the date each one disappeared. A tool vanishing usually means a breaking change for anything that depended on it.
How do I connect JANCTION Render?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does JANCTION Render need an API key?
No. JANCTION Render completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 13 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is JANCTION Render?
It answers our handshake in 910 ms on average, which is faster than 8% of all working MCP servers we measure. That is on the slow side — worth knowing if the tool sits inside an interactive loop. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use JANCTION Render?
The pypi package janction-render was installed 9 377 times in the last week. Week over week that is -24%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is JANCTION Render open source?
The code is open source: it is published under the MIT licence, written in Python and 1 stars on GitHub. The licence covers the code in the repository, not the hosted service at render.janction.jp, which runs on its operator's own terms.