Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JANCTION_RENDER_SERVERYesThe URL of the JANCTION Render server. The public endpoint is https://render.janction.jp.
JANCTION_RENDER_API_KEYNoSet to pin a specific API key; otherwise a temporary API key is issued automatically on first use and cached in ~/.janction-render.json.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
render_previewA

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. 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, assets with 'polyhaven:' CC0 assets. Give the scene as scene_path (a local .blend, .py or 3D file), scene_script, scene_url or scene_id; the image is saved locally and shown.

render_finalA

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; then render_status until done, and render_download(job_id, only='mp4') for the video. Use the same environment and blender as the approved preview. 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, assets ('polyhaven:'). Pass scene_id from render_preview, or scene_path / scene_script / scene_url; files are saved locally.

render_reviewA

Check a 3D model or a generated Blender scene by looking at it from 4 sides: a turntable preview (0, 90, 180 and 270 degrees) under neutral studio light on a cloud GPU, back with pass / warning / fail, a score, the checks it ran (texture files found, objects visible and not hidden behind a floor or wall, camera not inside an object, framing, exposure, light) with fix code for each problem, and the 4 views tiled in one image. Typical requests: 'check this model', 'does the scene look right', 'QA this GLB', 'モデルを確認して', '見た目をチェックして'. Use it after writing a bpy script, generating or converting a model (.glb/.gltf/.fbx/.usd/.obj/.stl/.ply/.abc) or changing materials, before showing the result to the user or rendering a final; apply the fixes and call it again. The checks cannot judge whether the shape matches the request: look at the views for that. It costs the same as one preview. To check a shot through the scene's own camera and lights, use render_preview (its critic runs the same checks). Give the scene as scene_path, scene_script, scene_url or scene_id.

render_downloadA

Download a job's files to out_dir (default ~/janction-render/<job_id>) and return the local paths. only picks the files: 'all' (default), 'mp4' (just the video; use it when the user wants the video, to skip hundreds of frames), 'frames', 'sheet' or 'output'. wait_seconds > 0 first waits that long for the job to finish.

render_statusA

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; call render_download once status is done. 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.

scene_infoA

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.

render_estimateA

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_infoA

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 uses the API key in JANCTION_RENDER_API_KEY or ~/.janction-render.json (a free key is made on first use). 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.

asset_searchA

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(''), then render_preview(scene_script='import jr_assets; jr_assets.import_model("")', assets=['polyhaven:'], preset='product') gives 4 studio shots on a plain backdrop. Each result has a spec 'polyhaven:' to pass in assets, its size in metres and the entry file. In the scene script: import jr_assets, then jr_assets.import_model('', location=(x, y, z), scale=1.0) returns the objects, jr_assets.material('') builds a material and jr_assets.apply(obj, mat) assigns it, jr_assets.world_hdri('', strength=1.0) lights the world. 'polyhaven:@2k' fetches 2k textures (1k by default).

render_shareA

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_unshareA

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.

render_cancelA

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.

billingA

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 (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)), the balance in yen, the price per GPU-second, any pending checkout link, and card_offer / autocharge_offer when they apply. Relay tell_user to the user in their language when it is present.

Prompts

Interactive templates invoked by user choice

NameDescription
try_janction_renderCheck the connection with a sample scene: one preview image showing four lighting presets, in a few seconds. Free; no final render.
render_my_scenePreview a .blend, a bpy script or a 3D file on a cloud GPU, fix what the critic finds, then render the final after you confirm the estimate.
turntable_videoA turntable MP4 (or a transparent WebM) of a 3D model: GLB, FBX, OBJ, USD or .blend. Preview first, final after you confirm.
product_shotsFour PNGs (front, side, back, side) of a 3D model, on a transparent background or a studio light. Preview first, final after you confirm.
scene_from_descriptionThe assistant writes the Blender scene as a bpy script, previews it on a cloud GPU and iterates with the critic. No Blender or GPU needed on your side.
blend_to_mp4An animated .blend to MP4 on cloud GPUs: reads the scene, previews four frames, plans the render (up to 3,000 frames per instruction, run as parts of 240), then renders after you confirm.
render_for_freeChecks the free GPU time of this key first and keeps the render inside it; if the final would not fit, says what would and what it would cost. No sign-up or card.

Resources

Contextual data attached and managed by the client

NameDescription
JANCTION Render appInteractive view for JANCTION Render results: preview image, progress, ETA, links, preset picker.

TDQS

A4.2/5.0

Scored across 13 tools

Disambiguation4/5

Most tools map to clearly distinct stages of the cloud rendering workflow: estimate, preview, review, final render, status, download, cancel, share, info, billing, and asset search. The main ambiguity is between render_preview and render_review, which both return preview images and checks, and between render_status, render_info, and billing, which all report service or account state. Descriptions explicitly differentiate these, so an agent can tell them apart with care.

Naming Consistency4/5

Almost all tools use consistent snake_case, and most render operations share the predictable render_ prefix. The few deviations are scene_info, asset_search, and billing, which drop the verb prefix or use a different domain noun, but they remain readable and unsurprising. Overall the naming is coherent with minor inconsistencies.

Tool Count5/5

13 tools is well-scoped for a cloud Blender rendering service. The set covers the full workflow from scene inspection and estimation through preview, review, final render, download, cancel, sharing, and billing without obvious bloat. Each tool appears to earn its place.

Completeness5/5

The tool surface covers the rendering lifecycle comprehensively: scene_info, render_estimate, render_preview, render_review, render_final, render_status, render_download, render_cancel, render_share, render_unshare, render_info, billing, and asset_search. There are no obvious dead ends for the stated cloud rendering domain. Minor gaps like an explicit job-list tool are handled by render_status without job_id.

Maintenance

ActivityMaintained
ResponsivenessNo issues