MCP Server Tool Reference

The ViroReact MCP Server is ReactVision's official Model Context Protocol server. It plugs live, accurate ViroReact knowledge straight into any MCP-capable coding agent - Claude, Claude Code, Codex, Cursor, Windsurf, and others - so the agent writes correct cross-platform XR code from current data instead of working from stale training. Under the hood it indexes the @reactvision/react-viro framework, its companion packages (@reactvision/react-viro-onnx behind ViroObjectDetector, and @reactvision/react-viro-face-tracking), the framework docs, and the real-world showcase AR examples, then exposes that knowledge through a set of purpose-built tools: component and prop schemas, curated platform and feature catalogues, scene generation and conversion, static validation and diagnostics, and a set of cloud tools that render and validate scenes against the real engine and ReactVision Studio. It is free to use with a Studio account (authenticate and pick the Team you want usage tracked against); paid Studio plans get higher usage limits, and the cloud tools that run a recorded session draw on the platform's AI credits.

The tools below are grouped by theme. Everything is free with a Studio account except the cloud rendering and validation tools in the final section, where the tier is called out per tool. If you've not already, please follow the MCP setup before proceeding.


Getting oriented and codebase intelligence

High-level entry points and raw navigation over the indexed ViroReact codebase and docs.

ToolDescription
reactviro_get_overviewHigh-level architecture report: which packages are indexed, which docs are available, and which tools to use to drill in. The place to start when exploring the MCP for the first time.
reactviro_get_treeReturns an ASCII directory tree of one package or all packages.
reactviro_list_filesLists files in the codebase, filterable by package, language, or path, with pagination.
reactviro_get_fileReturns the full source of any file in the project.
reactviro_searchFull-text search across the whole corpus (FTS5 with a regex fallback).
reactviro_find_symbolLocates a symbol (function, class, type, interface, const, or component) across the packages.
reactviro_statsFile counts and sizes broken down by package and language, plus the indexed-at metadata.
reactviro_get_docsReturns the indexed framework documentation (README, CHANGELOG, SHADER_REFERENCE, QUEST_SETUP, and more). Pass list=true to see everything available.
reactviro_changelog_sinceParses the indexed framework CHANGELOG and returns every entry from a given version onward. Useful for "what changed since I last upgraded" and migration prep.

Component API reference

The source of truth for what components exist and what they accept. Use these before generating or validating a scene.

ToolDescription
reactviro_list_componentsLists all public ViroReact components, grouped by semantic category (AR, Geometry, Lighting, Materials, Animation, Portal, Media, Audio, UI, Navigation, and so on).
reactviro_list_categoriesReturns the catalogue of component categories with counts.
reactviro_get_componentReturns the full TypeScript source of a component.
reactviro_get_component_propsReturns the AST-extracted props schema for a component: name, type, optionality, JSDoc description, and @since tag.
reactviro_get_component_eventsReturns the event-handler props for a component (those following the onX naming pattern).
reactviro_list_propsInverse lookup: given a prop name or pattern, returns every component that declares it.
reactviro_list_event_handlersAggregates every on... event handler exposed across ViroReact components.

Reference catalogues

Curated lookups for the values that are easy to forget and hard to guess.

ToolDescription
reactviro_get_platform_matrixThe curated platform-support matrix for ViroReact features across iOS (ARKit), Android (ARCore), Meta Quest (OpenXR), and visionOS.
reactviro_get_shader_uniformsCatalogue of shaderModifiers entry points (Geometric, Vertex, Surface, LightingModel, Fragment), the pipeline stage each hooks into, and the uniforms available at each stage.
reactviro_list_lighting_modelsThe lightingModel options for ViroMaterials.createMaterials: PBR, Blinn, and the rest.
reactviro_list_animation_easingsThe easing curves accepted by ViroAnimations.registerAnimations.
reactviro_list_physics_body_typesThe physicsBody.type options: Static, Dynamic, Kinematic.

Examples

Real scenes from the showcase repo, for reference and pattern-matching.

ToolDescription
reactviro_list_examplesLists the real-world AR scene examples from the @reactvision/showcase repo (plane detection, custom shaders, AR portal, particle effects, depth-mesh collision, and more).
reactviro_get_exampleReturns the full TypeScript/TSX source of a given example scene.
reactviro_examples_usingGiven a component name, finds the example scenes that use it.

Scene generation and conversion

Produce new scenes, and move scenes between ReactViro TSX and the Studio scene format.

ToolDescription
reactviro_generate_sceneGenerates a ready-to-use ReactViro scene template based on the requested feature set.
reactviro_studio_to_tsxBest-effort conversion of a Studio scene response into a ReactViro TSX scene. Translates assets, materials, animations, and variables faithfully; anything it cannot map statically (Studio's visual-scripting layer, collision or proximity bindings) is listed in the warnings.
reactviro_tsx_to_studioBest-effort conversion the other way: a ReactViro TSX scene into a Studio scene skeleton.

Static validation and diagnostics

Lint, inspect, and troubleshoot scenes and assets locally, without spinning up the live engine. All free.

ToolDescription
reactviro_validate_sceneParses a TSX scene snippet, walks every Viro*/Studio* element, and validates each against the real component and prop schemas.
reactviro_check_platform_supportWalks a TSX scene, identifies the platform-significant components, and reports how well the scene is supported per platform.
reactviro_list_assets_neededScans a TSX scene snippet for static require('...') calls and returns the list of assets the scene depends on.
reactviro_check_performance_budgetFetches one or more GLB/glTF model URLs, extracts triangle count and texture footprint with a lightweight parse, and flags anything over rough per-platform budgets (Quest being the tightest). Rough guidance, not a hard performance guarantee.
reactviro_diagnose_errorMatches a runtime error message, exception, or crash log against curated known-issue entries and returns likely causes and fixes.
reactviro_find_native_bridgeGiven a JS-side prop, event, or method name, returns search hints for locating the matching native code in the reactvision-platform MCP (virocore C++, JNI bridge, iOS RCT bridges, SLAM). Does not call the native MCP itself.
reactviro_diff_imagesCompares two PNG images pixel-by-pixel and returns the percentage of differing pixels plus a visual diff. Typically used on two reactviro_render_scene screenshots for before-and-after regression checks. Does no rendering itself.

Account and Studio context

Tools tied to the connected Studio Team. Both free.

ToolDescription
reactviro_list_studio_contentLists the connected team's Studio projects (with their scenes and their validation-environment library) and the team's shared assets. Call this first when validating: every cloud tool below takes its ids from here.
reactviro_get_usageReports the team's ReactVision AI budget: credits used against the plan's limit, percentage consumed, and when it resets. Does not consume a credit, and works even when the team is over budget.

Cloud rendering and validation

These tools reach ReactVision's live infrastructure. Reading and listing are free, and screenshot rendering is free on every plan. The tools that run a recorded session (an "environment" - a video.mp4 plus an IMU/pose sidecar, captured in StudioGo) against the real engine require a paid Studio plan and draw down the team's AI credits. Ids for every tool here come from reactviro_list_studio_content.

ToolDescription
reactviro_render_sceneFree for screenshots; paid for playback. Runs a scene through the real WASM/WebGL2 web renderer in a headless browser and returns PNG screenshot(s) plus console output and warnings. Screenshot renders work on every plan. Passing an environment_id switches it to playback against a recorded session (MP4 output, optional GIF), which requires a paid Studio plan.
reactviro_create_scene_validationPaid plan. Queues a validation of one Studio scene, or a set of the team's shared assets, against a recorded environment. Charged to the team's AI budget when queued and refunded automatically if the run fails.
reactviro_get_scene_validationFree. Reports one validation's status, progress, what was validated, and short-lived signed URLs for the input recording and rendered output. Serves both scene and code validations.
reactviro_list_scene_validationsFree. Lists the team's validations, newest first, optionally narrowed to one project.
reactviro_create_code_validationPaid flow (no charge yet). Reserves a validation of local AR/3D source code against a recorded environment and returns a signed upload URL for the zipped bundle. Charges nothing on its own; the charge lands at start_code_validation.
reactviro_start_code_validationPaid. Queues the code validation once its bundle has uploaded, charging the team's AI budget and handing the run to a worker. Safe to retry: the charge is claimed once.
reactviro_validate_recordingPaid plan. Runs the tinyvio visual-inertial tracking engine over a recorded environment, server-side with no device, and reports whether tracking held: anchor drift over time, tracking dropouts, plane detection, scale, and reprojection error. Paid, like every tool that runs a recording.