
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/viroSetup
claude mcp add reactvision-mcp --transport http https://mcp.reactvision.xyz/viroTools
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)
| Tool | What it does |
|---|---|
reactviro_get_overview | Architecture report covering packages, docs, and where to drill in. Start here. |
reactviro_get_docs | Indexed docs: README, CHANGELOG, SHADER_REFERENCE, QUEST_SETUP, VPS_LITE, web guides, and more |
reactviro_search | Full-text + regex search across the whole corpus |
reactviro_find_symbol | Locate any function, class, type, const, or component, with definitions separated from call sites |
reactviro_get_file | Full source of any indexed file, with optional line range |
reactviro_list_files | Browse indexed files by package, path, or language |
reactviro_get_tree | ASCII directory tree, per package or whole workspace |
reactviro_stats | File counts and sizes by package and language |
reactviro_changelog_since | Every release entry from a given version onwards, for migration prep |
reactviro_find_native_bridge | Given a JS prop or event, suggests where to look in the native C++/JNI/ObjC layer |
Component API (7)
| Tool | What it does |
|---|---|
reactviro_list_categories | Component category breakdown with counts |
reactviro_list_components | All 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_component | Full TypeScript source of a component, with fuzzy name matching (Box finds ViroBox) |
reactviro_get_component_props | AST-extracted props schema: name, type, optionality, JSDoc, @since |
reactviro_get_component_events | Every onX handler on a component with its full signature |
reactviro_list_props | Inverse lookup: which components declare a given prop |
reactviro_list_event_handlers | Every event handler across the framework, grouped by event or component |
Platform & rendering reference (5)
| Tool | What it does |
|---|---|
reactviro_get_platform_matrix | Curated feature support across iOS (ARKit), Android (ARCore), Quest (OpenXR), visionOS |
reactviro_get_shader_uniforms | shaderModifiers entry points (Geometric, Vertex, Surface, LightingModel, Fragment) and the uniforms available at each stage |
reactviro_list_lighting_models | PBR, Blinn, Lambert, Constant: when to use each and what each requires |
reactviro_list_physics_body_types | Static, Dynamic, Kinematic, with required and optional props |
reactviro_list_animation_easings | Easing curves accepted by ViroAnimations.registerAnimations |
Examples (3)
| Tool | What it does |
|---|---|
reactviro_list_examples | Real AR scenes from the ReactVision showcase: plane detection, image tracking, custom shaders, particles, portals, LiDAR depth collision, hand tracking |
reactviro_get_example | Full TSX source of any example |
reactviro_examples_using | Every example that uses a given component. Show me a real scene with ViroParticleEmitter. |
Authoring & validation (6)
| Tool | What it does |
|---|---|
reactviro_generate_scene | Complete TSX scene from a feature list, with per-platform warnings |
reactviro_validate_scene | Lints every Viro*/Studio* element for unknown components and props |
reactviro_check_platform_support | Whole-scene compatibility report across the four platforms |
reactviro_check_performance_budget | Triangle count and texture footprint of GLB/glTF assets against per-platform budgets |
reactviro_list_assets_needed | Every model, texture, sound, and 360° image a scene requires |
reactviro_diagnose_error | Matches a crash log or runtime error against curated symptom → root cause → fix traps |
Visual verification (4)
| Tool | What it does |
|---|---|
reactviro_render_scene | Runs a scene through the real web renderer headlessly: PNG screenshots, console output, scripted click/wait/screenshot steps |
reactviro_diff_images | Pixel-by-pixel diff of two renders with a highlighted diff image |
reactviro_preview_in_environment | Renders a scene composited over a recorded AR session using its tracked poses, returning MP4 (and GIF) |
reactviro_analyze_environment | Scores a recording's tracking quality: anchor drift over time, dropouts, plane detection rate |
Studio interop (2)
| Tool | What it does |
|---|---|
reactviro_studio_to_tsx | Converts a Studio scene into ViroReact TSX: assets, transforms, materials, animations, scene variables |
reactviro_tsx_to_studio | Converts TSX into a Studio scene skeleton for further visual editing |
Studio & Platform account (7)
| Tool | What it does |
|---|---|
reactviro_list_studio_content | Your Studio projects, scenes, environment library, and shared assets. Call this first: it supplies the ids every render tool needs |
reactviro_create_environment_render | Queues a persisted render of a Studio scene or assets inside a recorded environment |
reactviro_create_code_environment_render | Reserves a render of your local AR source and returns a signed upload URL for the bundle |
reactviro_start_code_environment_render | Starts the run once the bundle has uploaded |
reactviro_get_environment_render | Status, progress, and signed output URLs for one render |
reactviro_list_environment_renders | Your team's renders, newest first |
reactviro_get_usage | AI credit usage against your limit and when it resets. Free, and works even when over budget |
Setup & access
- Endpoint:
https://mcp.reactvision.xyz/viro - Auth: OAuth. Sign in with your ReactVision account
- Setup guide: https://viro-community.readme.io/docs/viroreact-mcp-server
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
- ViroReact:
@reactvision/react-viro· Docs · GitHub - Starter kit: Get it on GitHub
- ReactVision Studio: Create Free Account
- Community: Join our server
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.
Basic information
More remote MCP servers
Adobe Journey Optimizer
Understand and troubleshoot your Journeys and Campaigns
AWS Marketplace
Discover, evaluate, and buy solutions for the cloud
Airwallex
Integrate with the Airwallex Platform using Claude
Agentic Atlas
Consult field-tested agent-system design patterns through 8 hosted, read-only tools for orientation, deep reading, relationships, provenance, glossary terms, and publication decisions.
Agimem
Persistent memory for AI agents. Hosted MCP server with capsule-scoped key/value storage, tags, TTL expiration, bulk ops, and RBAC.
Comments