mqdh-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MQDH_DIR | No | Path to the Meta Quest Developer Hub installation directory. | %ProgramFiles%\Meta Quest Developer Hub (Windows), /Applications/Meta Quest Developer Hub.app (macOS) |
| MQDH_TOKEN | No | Meta Quest Developer Hub access token. If set, the server uses this token instead of reading it from MQDH's configuration, Windows Credential Manager, or metavr auth. | |
| METAVR_PATH | No | Path to the metavr CLI executable. | metavr inside MQDH's resources/bin |
| MQDH_MCP_STATE | No | Path to the state file used to store the selected organization. | ~/.mqdh-mcp.json |
| MQDH_USER_DATA | No | Path to Meta Quest Developer Hub user data. | %APPDATA%\odh (Windows), ~/Library/Application Support/odh (macOS) |
| OVR_PLATFORM_UTIL | No | Path to the ovr-platform-util executable. | ovr-platform-util inside MQDH_USER_DATA |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| auth_statusA | Check which Meta account is in use and where the token came from. |
| list_orgsA | List the developer organizations the logged-in account belongs to. |
| select_orgA | Select the active developer organization (by id or name). Saved across sessions. |
| list_test_usersB | List test users for an organization. |
| list_appsC | List apps in an organization. |
| list_channelsA | List an app's release channels (ALPHA/BETA/RC/LIVE/custom) and their latest builds. The store channel has is_live=true. |
| upload_buildA | Upload an APK (Quest) or build directory (PC) to an app's release channel with ovr-platform-util. Uploads as a DRAFT unless publish=true. Publishing to LIVE requires confirm_live=true. Use dry_run=true to preview the exact command. Runs in the background: poll upload_status with the returned job_id. |
| upload_statusA | Get progress and output of uploads started by upload_build. Omit job_id to list all jobs. |
| copy_buildA | Copy an existing build (binary id from list_channels) into another release channel. Copying into LIVE requires confirm_live=true. |
| graphqlC | Run a raw GraphQL query against graph.oculus.com as the logged-in developer (advanced). |
| metavrB | Run any metavr CLI command bundled with MQDH (devices, app install, logcat, perf, ...). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 11 tools
Core tools target distinct resources and actions (list_orgs vs select_org, upload_build vs upload_status vs copy_build), and the descriptions clearly separate read paths from write paths. The only soft spot is the pair of catch-all escape hatches (graphql, metavr), which can in principle do anything an agent might otherwise pick a dedicated tool for, though they are explicitly flagged as advanced/raw.
The majority of tools follow a clean verb_noun pattern (list_orgs, select_org, list_apps, list_channels, upload_build, upload_status, copy_build). Deviations are minor: auth_status is noun-first and graphql/metavr are bare product names, but all remain immediately readable.
Eleven tools is well within the sweet spot and each one maps to a distinct step in the org -> app -> channel -> build workflow. Nothing feels padded; even the two broad tools exist to cover long-tail needs without bloating the surface.
The surface covers auth, org/app/channel discovery, build upload with draft/publish semantics and async polling, and channel-to-channel copying. Gaps exist around build lifecycle management (deleting builds, editing release notes, app creation, broader user management), but graphql and metavr provide viable workarounds.