XR_API_LAYER_PATH and XR_ENABLE_API_LAYERS) also conflict with Unity, which sets these itself and overrides your values.meta-xr-operator-mcp-proxy binary for Windows and macOS.# Windows (PowerShell) $env:XR_API_LAYER_PATH = "C:\path\to\meta-xr-operator-standalone\windows" $env:XR_ENABLE_API_LAYERS = "XR_APILAYER_METAX_operator"
# macOS export XR_API_LAYER_PATH=/path/to/meta-xr-operator-standalone/macos export XR_ENABLE_API_LAYERS=XR_APILAYER_METAX_operator
XR_APILAYER_METAX_operator, is the name field in the .json manifest.8720.meta-xr-operator-mcp-proxy binary from the bundle. For Claude Code:# Windows claude mcp add meta-xr-operator -- C:\path\to\meta-xr-operator-standalone\windows\meta-xr-operator-mcp-proxy.exe
# macOS claude mcp add meta-xr-operator -- /path/to/meta-xr-operator-standalone/macos/meta-xr-operator-mcp-proxy
claude mcp list (the server should show as connected), then ask your agent about the running app, for example “What is the current XR session state?”libXrApiLayer_METAX_operator*.so from the bundle’s android/ folder into your APK’s lib/arm64-v8a/ directory.XrApiLayer_METAX_operator*.json from the bundle’s android/ folder into your APK’s assets/openxr/1/api_layers/implicit.d/ directory.AndroidManifest.xml (the MCP server needs it): <uses-permission android:name="android.permission.INTERNET" />.AndroidManifest.xml, declare the experimental-features manifest entry to unlock the controller automation tools: <uses-feature android:name="com.oculus.experimental.enabled" android:required="false" />.setprop, and then forward the on-device port to your computer:adb shell setprop debug.oculus.experimentalEnabled 1 adb forward tcp:8720 tcp:8720
meta-xr-operator-mcp-proxy binary with your agent exactly as in the PC quickstart above.npx @modelcontextprotocol/inspector@0.17.2
SSE, URL to http://localhost:8720/sse, and Connection Type to Direct, then click Connect. Open the Tools panel and click List Tools to see every tool Meta XR Operator exposes.http://localhost:8720/sse instead, but it loses the proxy’s offline tool list and automatic reconnect.| Symptom | Try this |
|---|---|
The agent shows the server as not connected | Confirm you launched the app from the same environment where you set XR_API_LAYER_PATH and XR_ENABLE_API_LAYERS, and that the proxy path in your claude mcp add command is correct. |
Connected, but tools return no data | Make sure your app is running with an active XR session, in Meta XR Simulator or on a connected headset. |
The layer doesn’t load | Keep the layer library and its .json manifest in the same folder, and confirm XR_ENABLE_API_LAYERS matches the manifest name (XR_APILAYER_METAX_operator). |
Port 8720 already in use | Close other running XR apps or MCP server instances, then start your app again. |
macOS blocks the proxy or layer | Allow them under System Settings > Privacy and Security. |