visor-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| quest_devicesA | List connected Quest/Android devices with connection state. Returns serial, model, connection state (device/unauthorized/offline), and whether the connection is wireless. Use this first if unsure what is connected. |
| quest_infoC | Get detailed device info: model, OS/firmware version, battery level and temperature, free storage, WiFi IP address, thermal status. |
| quest_screenshotA | Take a screenshot of what's currently displayed in the headset and return the image so it can be viewed. Auto-wakes the display if the headset is asleep. Optionally saves to save_path (PNG). |
| quest_installA | Install (sideload) an APK onto the headset. Replaces an existing install of the same package (upgrade). Set grant_permissions=True to auto-grant all runtime permissions (useful for test builds). |
| quest_uninstallB | Uninstall an app from the headset by package name. |
| quest_launchB | Launch an app on the headset by package name (e.g. com.mycompany.mygame). |
| quest_stopB | Force-stop a running app on the headset. |
| quest_app_listA | List installed apps. filter: 'sideloaded' (default — dev/third-party apps), 'system', or 'all'. |
| quest_app_infoA | Get app details: version, install/update dates, target SDK, permissions, data size on disk. |
| quest_clear_dataA | Clear an app's data — resets it to freshly-installed state. Useful for wiping test state (saves, settings, caches). |
| quest_logsA | Get recent logcat entries as structured logs (timestamp/level/tag/ message). level: V/D/I/W/E/F (minimum severity, default W). tag scopes to one log tag (e.g. 'Unity' or 'VrApi'). pattern is a case-insensitive regex applied to tag+message. |
| quest_logs_streamA | Watch logs in real time for duration_seconds (max 60) and return everything captured. Use while reproducing a bug: start this, interact with the app, and the tool returns what was logged in that window. |
| quest_crash_logsA | Get crash and ANR reports (Java crashes, native crashes, ANRs) from the system dropbox, most recent first. Filter by package_name to see crashes for one app. Each entry includes the full stack trace. |
| quest_performanceC | Get a performance snapshot: CPU usage, memory, thermal status with throttling risk, battery level/drain (mA, negative = discharging), foreground app, and top processes by CPU. |
| quest_monitorA | Monitor performance over time (max 120s) and return a timeseries of snapshots. Use while exercising an app to spot CPU spikes, memory growth, or thermal climb. |
| quest_thermalA | Check thermal state: overall throttle status, every temperature sensor with warning/critical flags, and max skin temperature. Quest throttles CPU/GPU as skin temps climb — watch for warnings during long play sessions. |
| quest_frame_timingA | Get live VR frame timing for the running app: FPS vs target, stale frames, GPU/CPU utilization and dynamic levels, app GPU time vs frame budget. Captures ~6s of the VrApi metrics stream. Falls back to gfxinfo for 2D/panel apps that don't render in VR. |
| quest_perf_sessionA | Record a full performance profiling session (max 300s) and return a summary, a bottleneck diagnosis (GPU-bound / CPU-bound / thermal throttling / memory pressure / hitching, with evidence and recommendations), and notable events. Use while the user exercises their app in the headset. The full session (per-second VrApi metrics, memory anatomy, thermal timeline) is saved to a JSON file whose path is returned — pass two such paths to quest_perf_diff to compare runs. Defaults to the current foreground app. |
| quest_perf_diffA | Compare two recorded perf sessions (JSON files from quest_perf_session), e.g. before/after an optimization. Returns metric deltas (fps, stale frames, GPU/CPU load, memory growth) and the verdict change. |
| quest_launch_benchmarkA | Benchmark an app's cold-start time: force-stop then timed launch, N times (max 5). Returns per-run timings and min/median/max — useful for measuring startup optimizations. |
| quest_traceA | Capture a perfetto system trace (max 60s): per-thread scheduling, CPU frequencies, graphics events. Use when session metrics show a problem (hitches, CPU-bound) and you need to see exactly what blocked. The .pftrace file can be opened at https://ui.perfetto.dev. |
| quest_app_memoryA | Get an app's memory anatomy (PSS in KB): java heap, native heap, code, stack, and graphics — graphics allocations (textures, buffers, surfaces) are usually what exhausts memory in VR apps. |
| quest_screen_recordA | Record the headset screen for N seconds (max 180) and save the MP4 locally. Returns the file path — useful for capturing a bug repro. |
| quest_pushA | Push a local file to the device (e.g. test assets to /sdcard/Android/data//files/). |
| quest_pullA | Pull a file from the device to the local filesystem (e.g. save files, logs written by the app). |
| quest_filesA | List a directory on the device. App data lives under /sdcard/Android/data//files/. |
| quest_connect_wirelessA | Switch the USB-connected headset to wireless ADB so the cable can be unplugged. The headset must be on WiFi. |
| quest_set_refresh_rateA | Set the display refresh rate hint (Quest 3: 72/80/90/120 Hz). Apps that request an explicit rate override this. |
| quest_trackingB | Check tracking subsystem status: head/hand/eye/body/controller tracking service availability, plus guardian boundary state if exposed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chisomobanzi/visor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server