MCP.so
Sign In

ReactVision MCPVerifiedFeatured

@ReactVision, Inc

About ReactVision MCP

Most MCP servers hand your agent documentation. This one hands it a renderer. Write a single React Native codebase that ships native AR to phones and VR to headsets, then let your agent validate every prop, check each platform, and render the scene headlessly to see whether it actually works. 44 tools over ViroReact, the open-source XR framework.

Connection details

https://mcp.reactvision.xyz/viro

Setup

claude mcp add reactvision-mcp --transport http https://mcp.reactvision.xyz/viro

Tools

No tools detected

Fetch the live tool list directly from this server's endpoint using the button above.

Overview

Write one XR codebase. Ship it to phones, tablets, and headsets, natively.

The ReactVision MCP Server gives your AI coding agent first-hand knowledge of ViroReact, the open-source (MIT) AR/VR renderer for React Native, plus the ability to actually run and look at the scenes it writes.

ViroReact compiles a single React Native codebase down to native draw calls on every target: ARKit on iOS, ARCore on Android, OpenXR on Meta Quest, and Apple visionOS. This server exposes that framework (178 indexed component files, 41 real AR examples, 17 docs, the full changelog, and a curated cross-platform support matrix) as 44 MCP tools, so an agent can look things up instead of guessing.

Built by ReactVision. Works with Claude, Cursor, Windsurf, and any MCP-compatible client.


Why this exists

XR APIs are unusually easy for a model to get wrong. Prop names are long and specific (physicalWidth, shaderModifiers, dragType), platform support is uneven (depth occlusion is not custom shaders is not hand tracking), and the failure mode is silent: the scene compiles, ships to a device, and renders nothing, or renders an anchor that drifts three metres to the left when the user walks.

This server closes that loop. Instead of recalling an API, the agent reads the AST-extracted props schema. Instead of hoping a scene works, it renders it headlessly and looks at the PNG. Instead of guessing whether a feature exists on Quest, it reads the matrix. Instead of shipping a build to test an anchor, it replays the scene against a recorded AR session of a real room and measures how far the anchor slid.


Building cross-platform XR with it

A typical agent loop looks like this:

1 · Scaffold. reactviro_generate_scene assembles a complete TSX scene from a feature list (plane detection, image tracking, 3D models, particles, portals, physics, custom shaders, 360° media, spatial audio) against an AR, VR, or 3D navigator. Pass a target_platform and the response is prefixed with the compatibility warnings for that device up front.

2 · Get the API right. reactviro_get_component_props and reactviro_get_component_events return the real prop and event signatures, extracted from the TypeScript source, with JSDoc and @since tags. reactviro_list_props runs the inverse lookup: which components accept castsShadow?

3 · Lint it. reactviro_validate_scene walks every Viro* element and flags unknown components and misspelled props before anything is built. reactviro_list_assets_needed reports every model, texture, and sound the scene expects you to provide.

4 · Check it against every target. reactviro_check_platform_support walks the whole scene and reports which components and props won't work on iOS, Android, Quest, or visionOS. reactviro_check_performance_budget parses your GLB/glTF models for triangle count and texture footprint and flags what will choke a Quest.

5 · Actually see it. reactviro_render_scene runs the scene through the real WASM/WebGL2 renderer in a headless browser and returns screenshots plus console errors. reactviro_diff_images compares two renders pixel-by-pixel, so an agent can prove a refactor changed nothing visually.

6 · Test it in a real room. The environment tools replay a scene against a recorded AR session (video plus IMU and camera intrinsics) captured in StudioGo. reactviro_preview_in_environment composites the scene over the real footage using the recording's tracked camera poses and returns an MP4. reactviro_analyze_environment scores the recording itself: anchor drift in pixels at 0.5s/1s/2s/4s/8s, every tracking dropout, and plane detection rate.

7 · Move between code and no-code. reactviro_studio_to_tsx and reactviro_tsx_to_studio convert between ReactVision Studio scenes and ViroReact TSX, so a scene designed visually can be handed to an agent and back.


Tool reference

Codebase & docs (10)

ToolWhat it does
reactviro_get_overviewArchitecture report covering packages, docs, and where to drill in. Start here.
reactviro_get_docsIndexed docs: README, CHANGELOG, SHADER_REFERENCE, QUEST_SETUP, VPS_LITE, web guides, and more
reactviro_searchFull-text + regex search across the whole corpus
reactviro_find_symbolLocate any function, class, type, const, or component, with definitions separated from call sites
reactviro_get_fileFull source of any indexed file, with optional line range
reactviro_list_filesBrowse indexed files by package, path, or language
reactviro_get_treeASCII directory tree, per package or whole workspace
reactviro_statsFile counts and sizes by package and language
reactviro_changelog_sinceEvery release entry from a given version onwards, for migration prep
reactviro_find_native_bridgeGiven a JS prop or event, suggests where to look in the native C++/JNI/ObjC layer

Component API (7)

ToolWhat it does
reactviro_list_categoriesComponent category breakdown with counts
reactviro_list_componentsAll public components grouped by category: AR, Geometry, Lighting, Materials, Animation, Effects, Portal, Media, Audio, UI, Navigation, Camera, Input, Environment, Transform, Studio, 360°, 3D Objects
reactviro_get_componentFull TypeScript source of a component, with fuzzy name matching (Box finds ViroBox)
reactviro_get_component_propsAST-extracted props schema: name, type, optionality, JSDoc, @since
reactviro_get_component_eventsEvery onX handler on a component with its full signature
reactviro_list_propsInverse lookup: which components declare a given prop
reactviro_list_event_handlersEvery event handler across the framework, grouped by event or component

Platform & rendering reference (5)

ToolWhat it does
reactviro_get_platform_matrixCurated feature support across iOS (ARKit), Android (ARCore), Quest (OpenXR), visionOS
reactviro_get_shader_uniformsshaderModifiers entry points (Geometric, Vertex, Surface, LightingModel, Fragment) and the uniforms available at each stage
reactviro_list_lighting_modelsPBR, Blinn, Lambert, Constant: when to use each and what each requires
reactviro_list_physics_body_typesStatic, Dynamic, Kinematic, with required and optional props
reactviro_list_animation_easingsEasing curves accepted by ViroAnimations.registerAnimations

Examples (3)

ToolWhat it does
reactviro_list_examplesReal AR scenes from the ReactVision showcase: plane detection, image tracking, custom shaders, particles, portals, LiDAR depth collision, hand tracking
reactviro_get_exampleFull TSX source of any example
reactviro_examples_usingEvery example that uses a given component. Show me a real scene with ViroParticleEmitter.

Authoring & validation (6)

ToolWhat it does
reactviro_generate_sceneComplete TSX scene from a feature list, with per-platform warnings
reactviro_validate_sceneLints every Viro*/Studio* element for unknown components and props
reactviro_check_platform_supportWhole-scene compatibility report across the four platforms
reactviro_check_performance_budgetTriangle count and texture footprint of GLB/glTF assets against per-platform budgets
reactviro_list_assets_neededEvery model, texture, sound, and 360° image a scene requires
reactviro_diagnose_errorMatches a crash log or runtime error against curated symptom → root cause → fix traps

Visual verification (4)

ToolWhat it does
reactviro_render_sceneRuns a scene through the real web renderer headlessly: PNG screenshots, console output, scripted click/wait/screenshot steps
reactviro_diff_imagesPixel-by-pixel diff of two renders with a highlighted diff image
reactviro_preview_in_environmentRenders a scene composited over a recorded AR session using its tracked poses, returning MP4 (and GIF)
reactviro_analyze_environmentScores a recording's tracking quality: anchor drift over time, dropouts, plane detection rate

Studio interop (2)

ToolWhat it does
reactviro_studio_to_tsxConverts a Studio scene into ViroReact TSX: assets, transforms, materials, animations, scene variables
reactviro_tsx_to_studioConverts TSX into a Studio scene skeleton for further visual editing

Studio & Platform account (7)

ToolWhat it does
reactviro_list_studio_contentYour Studio projects, scenes, environment library, and shared assets. Call this first: it supplies the ids every render tool needs
reactviro_create_environment_renderQueues a persisted render of a Studio scene or assets inside a recorded environment
reactviro_create_code_environment_renderReserves a render of your local AR source and returns a signed upload URL for the bundle
reactviro_start_code_environment_renderStarts the run once the bundle has uploaded
reactviro_get_environment_renderStatus, progress, and signed output URLs for one render
reactviro_list_environment_rendersYour team's renders, newest first
reactviro_get_usageAI credit usage against your limit and when it resets. Free, and works even when over budget

Setup & access

The knowledge, authoring, validation, and web-rendering tools work on every plan. The environment tools (preview_in_environment, analyze_environment, and the queued environment renders) replay real recorded AR sessions and require a paid ReactVision Studio plan.

Related

Frequently asked questions

What is the ReactVision MCP remote MCP server?

The ReactVision MCP remote MCP server is a hosted Model Context Protocol endpoint at https://mcp.reactvision.xyz/viro, so AI assistants can connect to it without installing or running anything locally.

How do I connect to the ReactVision MCP MCP server?

Add the endpoint https://mcp.reactvision.xyz/viro to any MCP-compatible client such as Claude Code, Cursor, or VS Code. The setup snippets on this page configure each client in one step.

Does the ReactVision MCP MCP server require authentication?

Yes. ReactVision MCP uses OAuth: the first time you connect, your MCP client opens a browser window to sign in and authorize access, then reuses the credentials for future sessions.

Which transport does the ReactVision MCP MCP server use?

ReactVision MCP exposes a Streamable HTTP endpoint, the transport used by remote MCP servers and supported by all major MCP clients.

Comments

Basic information

Transport

Streamable HTTP

Authentication

OAuth

Author

ReactVision, Inc

Submitted by

Oliver Edis