viznoir
PYPI · VIZNOIR · SCANNED SEP 20
Cinema-quality science visualization for AI agents — headless VTK via MCP.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security50
- Malware scan not yet available for this package.Unverified
- No known CVEs affecting this package version or its production dependencies.Pass
- Runs hatchling.build at install time, a recognised native-build step with no shell scripting around it. View diagnostics → Pass
- 3 of 27 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (MIT License) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 108 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability79
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 4936 tokens (~141/item across 35 items; 23 tools + 12 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 94% of tool parameters carry a description.Partial
- Structured output schemas are declared (48% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "execute_pipeline" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the viznoir MCP server?
viznoir runs locally as a PyPI package, launched with uvx viznoir. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · viznoir
claude mcp add kimimgo-viznoir -- uvx viznoir
{
"mcpServers": {
"kimimgo-viznoir": {
"command": "uvx",
"args": [
"viznoir"
]
}
}
} {
"servers": {
"kimimgo-viznoir": {
"command": "uvx",
"args": [
"viznoir"
]
}
}
} codex mcp add kimimgo-viznoir -- uvx viznoir
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"kimimgo-viznoir": {
"type": "local",
"command": [
"uvx",
"viznoir"
],
"enabled": true
}
}
} openclaw mcp add kimimgo-viznoir --command uvx --arg viznoir
mcp_servers:
kimimgo-viznoir:
command: "uvx"
args: ["viznoir"] {
"McpServers": {
"kimimgo-viznoir": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"viznoir"
]
}
}
} assistant mcp add kimimgo-viznoir -t stdio -c uvx -a viznoir
{
"mcpServers": {
"kimimgo-viznoir": {
"command": "uvx",
"args": [
"viznoir"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 −4
- Stability: pass → 0.77 functional
- 17 Sept 26 +1
- Stability: 0.97 → pass security
- 15 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- 13 Sept 26 +16
- Malware scan: unverified → pass ▲ security
- 11 Sept 26 −3
- Stability: pass → 0.80 functional
- 10 Sept 26 +1
- Stability: 0.97 → pass security
- 8 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/viznoir@0.10.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Install scripts 1 script
| Hook | Tier | Command |
|---|---|---|
| build_backend | allowlisted | hatchling.build |
Background: Why install scripts are a supply-chain risk →
Dependencies 27 packages
| Packages resolved | 27 |
|---|---|
| Stale | 3 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
analyze_data Analyze Data ~110
[DEPRECATED — use inspect_physics instead] Analyze VTK/simulation data. This tool is deprecated. Use inspect_physics for structured physics data extraction with vortex detection, critical points, and solver metadata.
| Name | Type | Req | Description |
|---|---|---|---|
| domain | – | – | Physics domain hint — "cfd", "fea", "thermal" (None for auto-detect) |
| file_path | string | yes | Path to VTK/OpenFOAM/CGNS file |
| focus | – | – | Analyze only this field (None for all fields) |
Structured output declared, but exposes no named fields.
No examples provided.
animate Animate ~401
Create an animation from time series data or camera orbit. Time mapping (timesteps mode): speed_factor=1.0: real-time (physics 1s = video 1s) speed_factor=5.0: 5x fast-forward speed_factor=0.2: 5x slow-motion (physics 1s = video 5s) For VTK file series (e.g., PartFluid_0000.vtk through PartFluid_0100.vtk), use 'files' with an explicit list or 'file_pattern' with a glob pattern.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset (used for initial view in orbit mode) |
| colormap | string | – | Color map preset |
| field_name | string | yes | Field to visualize |
| file_path | string | yes | Path to simulation file (or first file in series) |
| file_pattern | – | – | Glob pattern for file series (e.g., "/data/PartFluid_*.vtk") |
| files | – | – | Explicit list of file paths for VTK time series |
| fps | integer | – | Frames per second (15-60) |
| height | integer | – | Frame height |
| mode | string | – | "timesteps" for time series, "orbit" for camera rotation |
| orbit_duration | number | – | Orbit video length in seconds (orbit mode only) |
| output_format | string | – | Output format — "frames" (PNG only), "mp4", "webm", or "gif" |
| speed_factor | number | – | Playback speed multiplier (1.0=real-time) |
| text_overlay | – | – | Text to overlay on video frames (e.g., case name) |
| time_range | – | – | [start, end] physics time range, None for all |
| video_quality | integer | – | Video CRF quality (lower=better, 18-28 typical, default 23) |
| width | integer | – | Frame width |
Structured output declared, but exposes no named fields.
No examples provided.
auto_postprocess Auto Postprocess ~130
Autonomous post-processing: inspect → visualize → evaluate → refine. Analyzes the file, detects the simulation domain (CFD/FEA/SPH), and produces 3-5 visualizations automatically. With sampling-capable clients, evaluates results and refines parameters iteratively.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to simulation file (.foam, .vtu, .vtk, etc.) |
| goal | string | – | "explore" (overview), "publish" (publication quality), "compare" (multi-field) |
| max_iterations | integer | – | Maximum refinement iterations (1-5) |
No output schema declared.
No examples provided.
batch_render Batch Render ~188
Render multiple fields from the same dataset in one call. Returns a dict with images list, each containing field name and base64 PNG. Useful for comparing pressure, velocity, temperature, etc. side-by-side.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset |
| colormap | string | – | Color map preset |
| fields | array | yes | List of field names to render |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| quality | string | – | Rendering quality (draft/standard/cinematic) |
| timestep | – | – | Timestep selection |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
Structured output declared, but exposes no named fields.
No examples provided.
cinematic_render Cinematic Render ~507
Cinematic-quality rendering with auto-framing, 3-point lighting, SSAO, and PBR. Produces publication/presentation-quality images with: - PCA-based auto-camera: analyzes object shape and picks optimal viewing angle - 3-point cinematic lighting (key + fill + rim) - SSAO (Screen-Space Ambient Occlusion) for contact shadows - FXAA anti-aliasing - Gradient backgrounds - PBR material support (metallic/roughness) Quality presets: - draft: 960x540, no post-processing (fast preview) - standard: 1920x1080, SSAO + FXAA - cinematic: 1920x1080, all effects + ground plane - ultra: 3840x2160, all effects + ground plane - publication: 2400x1800, clean lighting, white background
| Name | Type | Req | Description |
|---|---|---|---|
| azimuth | – | – | Camera azimuth in degrees (None for auto from shape analysis) |
| background | – | – | Background preset (dark_gradient, light_gradient, blue_gradient, publication, None) |
| colormap | string | – | Color map preset (e.g., "Cool to Warm", "Viridis") |
| elevation | – | – | Camera elevation in degrees (None for auto from shape analysis) |
| field_name | – | – | Field to visualize (None for auto-detect) |
| file_path | string | yes | Path to simulation file |
| fill_ratio | number | – | How much of viewport the object fills (0.0-1.0, default 0.75) |
| fxaa | boolean | – | Enable Fast Approximate Anti-Aliasing |
| ground_plane | boolean | – | Add a semi-transparent ground plane for shadow catching |
| height | – | – | Override image height (None uses quality preset) |
| lighting | – | – | Lighting preset (cinematic, dramatic, studio, publication, outdoor, None) |
| metallic | number | – | PBR metallic factor (0.0-1.0) |
| output_filename | string | – | Output PNG filename |
| quality | string | – | Rendering quality preset |
| roughness | number | – | PBR roughness factor (0.0-1.0) |
| scalar_range | – | – | [min, max] for color scale, None for auto |
| ssao | boolean | – | Enable Screen-Space Ambient Occlusion |
| timestep | – | – | Specific timestep, "latest", or None for first |
| width | – | – | Override image width (None uses quality preset) |
No output schema declared.
No examples provided.
clip Clip ~175
Create a clipped visualization.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset |
| colormap | string | – | Color map preset |
| field_name | string | yes | Field to visualize |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| invert | boolean | – | If True, keep the other side |
| normal | – | – | Clip plane normal [nx, ny, nz] |
| origin | – | – | Clip plane origin [x, y, z] |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| timestep | – | – | Timestep selection |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
compare Compare ~331
Compare two simulation results side-by-side or as a difference map. Renders both datasets with identical camera, colormap, and scalar range for direct visual comparison. Essential for design comparison, mesh convergence studies, and solver validation. Modes: - side_by_side: Two panels with shared colorbar and consistent framing - diff: Absolute field difference map (|A - B|) rendered on dataset A's mesh
| Name | Type | Req | Description |
|---|---|---|---|
| colormap | string | – | Color map preset for both panels |
| field_name | – | – | Field to compare (None for auto-detect) |
| file_a | string | yes | Path to first simulation file |
| file_b | string | yes | Path to second simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| label_a | string | – | Label for first panel (displayed top-left) |
| label_b | string | – | Label for second panel (displayed top-left) |
| mode | string | – | Comparison mode — "side_by_side" or "diff" |
| output_filename | string | – | Output PNG filename |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| quality | string | – | Rendering quality (draft/standard/cinematic) |
| scalar_range | – | – | Shared [min, max] for consistent coloring (None for auto) |
| timestep | – | – | Specific timestep, "latest", or None for first |
| width | – | – | Override total width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
compose_assets Compose Assets ~147
Compose multiple assets into a deliverable format.
| Name | Type | Req | Description |
|---|---|---|---|
| assets | array | yes | List of asset definitions (dicts with 'type' and type-specific keys) |
| fps | integer | – | Frames per second for video export (default 30) |
| height | integer | – | Output height in pixels (default 1080) |
| layout | string | – | Layout mode — "story", "grid", "slides", or "video" |
| scenes | – | – | Scene definitions for video layout (list of dicts with asset_indices, duration, transition) |
| title | – | – | Optional title text (used in story layout) |
| width | integer | – | Output width in pixels (default 1920) |
No output schema declared.
No examples provided.
contour Contour ~157
Create an iso-surface (contour) visualization.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset |
| colormap | string | – | Color map preset |
| field_name | string | yes | Field for iso-surface extraction |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| isovalues | array | yes | List of iso-values to extract |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| timestep | – | – | Timestep selection |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
execute_pipeline Execute Pipeline ~258
Execute a custom pipeline definition (advanced). Accepts a full PipelineDefinition JSON for maximum flexibility. This is the primary interface for CFD/FEA/CAE specialist agents. The pipeline JSON structure: { "source": {"file": "/data/file.foam", "timestep": "latest"}, "pipeline": [ {"filter": "Slice", "params": {"origin": [0,0,0], "normal": [1,0,0]}}, {"filter": "Calculator", "params": {"expression": "mag(U)", "result_name": "Umag"}} ], "output": { "type": "image", "render": {"field": "Umag", "colormap": "Viridis"} } } Available filters: Slice, Clip, Contour, Threshold, StreamTracer, Calculator, Gradient, IntegrateVariables, GenerateSurfaceNormals, ExtractBlock, ExtractSurface, WarpByVector, WarpByScalar, CellDatatoPointData, PlotOverLine, Glyph, ProgrammableFilter, Decimate, Triangulate. Output types: image, data, csv, animation, export, multi.
| Name | Type | Req | Description |
|---|---|---|---|
| pipeline | object | yes | Complete PipelineDefinition as JSON dict |
No output schema declared.
No examples provided.
extract_stats Extract Stats ~64
Extract statistical summary (min/max/mean/std) for fields.
| Name | Type | Req | Description |
|---|---|---|---|
| blocks | – | – | Multiblock region names |
| fields | array | yes | List of field names to analyze |
| file_path | string | yes | Path to simulation file |
| timestep | – | – | Timestep selection |
Structured output declared, but exposes no named fields.
No examples provided.
inspect_data Inspect Data ~79
Inspect a simulation file and return metadata. Returns bounds, point/cell arrays with ranges, timestep info, and multiblock structure. Use this first to understand what data is available before rendering or extracting.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to the simulation file (e.g., /data/cavity.foam, /data/beam.vtu) |
Structured output declared, but exposes no named fields.
No examples provided.
inspect_physics Inspect Physics ~199
Extract structured physics data for AI storytelling. Analyzes simulation data to extract: - L2 FieldTopology: vortex detection (Q-criterion), critical points, centerline profiles, gradient statistics per field - L3 CaseContext: boundary conditions, transport properties, solver info, mesh quality, derived quantities (Re, Ma, etc.) Returns structured JSON for LLM to build physics narratives. Replaces analyze_data with quantitative topology data instead of hardcoded heuristics.
| Name | Type | Req | Description |
|---|---|---|---|
| case_dir | – | – | OpenFOAM case directory for full solver metadata. If None, only mesh quality is extracted. |
| fields | – | – | Specific field names to analyze (None = all fields) |
| file_path | string | yes | Path to VTK/OpenFOAM/CGNS simulation file |
| probe_lines | integer | – | Number of auto centerline probe lines (1-3) |
| vortex_threshold | number | – | Q-criterion threshold for vortex detection |
Structured output declared, but exposes no named fields.
No examples provided.
integrate_surface Integrate Surface ~88
Integrate a field over a surface to compute forces, areas, or fluxes.
| Name | Type | Req | Description |
|---|---|---|---|
| boundary | – | – | Boundary/block name to extract (e.g., "wall", "inlet") |
| field_name | string | yes | Field to integrate (e.g., "p", "wallShearStress") |
| file_path | string | yes | Path to simulation file |
| timestep | – | – | Timestep selection |
Structured output declared, but exposes no named fields.
No examples provided.
plot_over_line Plot Over Line ~102
Sample field values along a line between two points. Returns coordinate arrays and field values for plotting.
| Name | Type | Req | Description |
|---|---|---|---|
| field_name | string | yes | Field to sample |
| file_path | string | yes | Path to simulation file |
| point1 | array | yes | Start point [x, y, z] |
| point2 | array | yes | End point [x, y, z] |
| resolution | integer | – | Number of sample points |
| timestep | – | – | Timestep selection |
Structured output declared, but exposes no named fields.
No examples provided.
preview_3d Preview 3D ~80
Export dataset to glTF/glB for interactive 3D viewing in a browser. Returns the exported file path and a viewer URL hint. Requires VTK >= 9.4 with vtkGLTFExporter support.
| Name | Type | Req | Description |
|---|---|---|---|
| field_name | – | – | – |
| file_path | string | yes | – |
| output_filename | string | – | – |
| timestep | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
probe_timeseries Probe Timeseries ~82
Sample a field value at a fixed point across timesteps. Useful for monitoring pressure/velocity at a sensor location over time. Returns dict with times and values arrays.
| Name | Type | Req | Description |
|---|---|---|---|
| field_name | string | yes | – |
| file_path | string | yes | – |
| file_pattern | – | – | – |
| files | – | – | – |
| point | array | yes | – |
| time_range | – | – | – |
Structured output declared, but exposes no named fields.
No examples provided.
pv_isosurface Pv Isosurface ~147
Run DualSPHysics IsoSurface to generate VTK surface mesh files. Converts bi4 particle data into VTK surface meshes (iso-surfaces). The output files can then be used with animate() or render() via SourceDef(files=[...]) for visualization.
| Name | Type | Req | Description |
|---|---|---|---|
| bi4_dir | string | yes | Directory containing bi4 data files |
| docker_image | string | – | Docker image with IsoSurface tool |
| only_type | string | – | Particle type filter (e.g., "+fluid") |
| output_dir | string | yes | Directory for output VTK surface mesh files |
| vars | string | – | Variable selection (e.g., "+vel,+press,+rhop") |
Structured output declared, but exposes no named fields.
No examples provided.
render Render ~252
Render a field visualization and return a PNG screenshot.
| Name | Type | Req | Description |
|---|---|---|---|
| association | string | – | "POINTS" or "CELLS" |
| blocks | – | – | Multiblock region names to include |
| camera | string | – | Camera preset — isometric, top, front, right, left, back |
| colormap | string | – | Color map preset (e.g., "Cool to Warm", "Viridis", "Jet") |
| field_name | string | yes | Name of the field to visualize (e.g., "p", "U", "T") |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| output_filename | string | – | Output PNG filename (e.g., "snapshot_press.png") |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| scalar_range | – | – | [min, max] for color scale, None for auto |
| timestep | – | – | Specific timestep, "latest", or None for first |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
slice Slice ~168
Create a slice (cut plane) visualization.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset |
| colormap | string | – | Color map preset |
| field_name | string | yes | Field to visualize on the slice |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| normal | – | – | Slice plane normal [nx, ny, nz] |
| origin | – | – | Slice plane origin [x, y, z] |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| timestep | – | – | Timestep selection |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
split_animate Split Animate ~205
Create a split-pane synchronized animation with multiple views. Render 2-4 panes in a grid layout, combining 3D visualizations with time-series graphs. All panes are timestep-synchronized and output as a single GIF or PNG sequence.
| Name | Type | Req | Description |
|---|---|---|---|
| file_path | string | yes | Path to simulation file (PVD, foam, etc.) |
| fps | integer | – | Frames per second (15-60) |
| gif | boolean | – | Generate animated GIF (True) or PNG sequence only (False) |
| layout | – | – | Grid layout {"rows": 2, "cols": 2, "gap": 4} |
| panes | array | yes | List of pane definitions (render or graph) |
| resolution | – | – | Total output [width, height] in pixels |
| speed_factor | number | – | Playback speed (1.0=real-time, 5.0=5x fast-forward) |
| time_range | – | – | [start, end] physics time range |
No output schema declared.
No examples provided.
streamlines Streamlines ~202
Create a streamline visualization for vector fields.
| Name | Type | Req | Description |
|---|---|---|---|
| camera | string | – | Camera preset |
| colormap | string | – | Color map preset |
| file_path | string | yes | Path to simulation file |
| height | – | – | Override height in pixels (must set both width and height, or neither) |
| max_length | number | – | Maximum streamline length |
| purpose | string | – | Resolution preset — "analyze" (480p), "preview" (720p), "publish" (1080p) |
| seed_point1 | – | – | Start of seed line [x, y, z] |
| seed_point2 | – | – | End of seed line [x, y, z] |
| seed_resolution | integer | – | Number of seed points |
| timestep | – | – | Timestep selection |
| vector_field | string | yes | Name of the vector field (e.g., "U") |
| width | – | – | Override width in pixels (must set both width and height, or neither) |
No output schema declared.
No examples provided.
volume_render Volume Render ~225
Volume render 3D data (CT, MRI, CFD fields) with transfer function presets. Presets: generic, ct_bone, ct_tissue, mri_brain, thermal, isosurface_like
| Name | Type | Req | Description |
|---|---|---|---|
| background | – | – | Background preset |
| colormap | string | – | Color map preset |
| field_name | – | – | Scalar field to render, None for active scalars |
| file_path | string | yes | Path to volumetric data (VTI, VTK structured grid, etc.) |
| height | – | – | Image height in pixels |
| lighting | – | – | Lighting preset |
| output_filename | string | – | Output filename |
| quality | string | – | Render quality (draft/standard/cinematic/ultra/publication) |
| scalar_range | – | – | [min, max] for color scale |
| timestep | – | – | Specific timestep, "latest", or None |
| transfer_preset | string | – | Opacity preset (ct_bone, ct_tissue, mri_brain, thermal, generic, isosurface_like) |
| width | – | – | Image width in pixels |
No output schema declared.
No examples provided.
What is the viznoir MCP server?
viznoir is an MCP server listed in the public MCP registry as io.github.kimimgo/viznoir. Cinema-quality science visualization for AI agents, headless VTK via MCP. This page covers its PyPI package (viznoir).
Is the viznoir MCP server safe to use?
viznoir scores 64 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the viznoir MCP server expose?
viznoir exposes 23 tools: inspect_data, render, slice, contour, clip, and 18 more. Their descriptions and schemas cost roughly 4,297 tokens of context every time the server is loaded.
Is the viznoir MCP server still maintained?
viznoir is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.