render_board Render a committed sheet as PNG plus revision; expectedRevision rejects stale captures. Use for visual verification. Focus viewport, screenId, assetId/assetPartIds or researchSubjectIds; maxDimension bounds pixels. modelView requires assetId and one part. Wireframe contact_sheet accepts screenIds; annotations/arrows are optional. Analytics: reportId captures one saved report (omit it for one image per report on the tab); from and to are YYYY-MM-DD; environment filters sources. No publication. Details: /docs/mcp/render_board. saveAsMedia=true also stores the PNG and returns media.id for review/card attachments (needs write access), so screenshots never need a local file. Asset Board: assetId selects a saved asset/version; assetPartIds focuses parts. modelView={} renders actual 3D at its default camera instead of its poster; requires assetId and exactly one assetPartIds entry. Supply modelView.animationName/time for a paused animation pose and orbit={theta,phi,radius?} (degrees/meters), target=[x,y,z] for camera position. compareAssetVersionId renders that model part in two versions using the same camera. Example: {assetId:grandma,assetPartIds:[model],modelView:{animationName:Idle,time:0.5,orbit:{theta:45,phi:75}}} (quote JSON strings). Ordinary board/version renders use lightweight saved posters. Read animations with read_asset_board(includeModelInfo=true). Research Analysis: researchSubjectIds selects 1–12 subjects, researchParameterIds selects typed comparison rows. Defaults to the first 4 subjects and 20 fields; notes are excluded. Render when visual verification is useful, such as layout, routing, or styling changes; it is not a mandatory step after every mutation. Render one committed sheet (supply sheetId). Wireframe: prototypeVariables resolves visual state layers and renders stateBinding values with unsaved overrides over initialState (max 100 scalar variables combined); use the variables from read_wireframe(view=prototype) and its active screenId to render a tested outcome. This captures selected screens, not browser modal compositing. screenId renders one screen without coordinate math; showInteractions=false hides arrows without deleting links. layout=contact_sheet arranges up to 40 selected screenIds in optional columns without editing the board; contact sheets default to no arrows. padding controls the border. Use maxDimension (256–2048) to bound PNG pixels, rather than an unbounded scale. viewport cannot be combined with screen selection or contact-sheet layout. Kanban uses the actual card editor with image covers at a 1400×900 viewport; an x offset shows later columns. Cover media is limited to 16 MiB per render; narrow the viewport if needed. Structured Data uses the actual grid editor in read-only mode; optional tableId selects the table, defaulting to the first. The preview shows the first page of records at a 1400×900 layout. Document tabs use the actual rich-text page renderer; the default viewport covers the first page, and a y offset selects later content. Flowchart tabs use Qraft's actual export renderer, fonts, shapes and routed edges. Wireframe showAnnotations defaults to false. Set true for callouts and expanded bounds; contact sheets reserve their space. This never changes editor preferences or saved content. Use read_wireframe(view=annotations,screenId) for note text alongside a clean PNG. Returns a PNG image and the exact captured revision. expectedRevision rejects stale requests. Optional viewport uses board coordinates; maxDimension bounds output pixels. Read permission required; private data is not published. Zoom into a region for readable text on large boards. Analytics tabs render their saved reports (the same charts the tab shows): reportId selects one, omit it for every report on the tab, from/to are YYYY-MM-DD and environment is all|production|playtest|development. Defaults match a report run on the tab (last 30 days, the tab's environment). qraft render --sheet Analytics --report-id funnel --from 2026-09-01 --to 2026-10-01 -o funnel.png