MCP SteamOS Devkit
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ADB_PATH | No | Path to adb executable for Steam Frame Lepton/Android work (e.g., %LOCALAPPDATA%\Android\Sdk\platform-tools\adb.exe). | |
| AAPT_PATH | No | Path to aapt executable for APK metadata inspection (e.g., %LOCALAPPDATA%\Android\Sdk\build-tools\<version>\aapt.exe). | |
| STEAMOS_DEVKIT_CLIENT_ROOT | No | Path to the installed SteamOS Devkit Client (e.g., E:\SteamLibrary\steamapps\common\SteamOSDevkitClient\windows-client). Set if server cannot find it automatically. | |
| STEAMOS_DEVKIT_SOURCE_ROOT | No | Path to a source checkout of steamos-devkit (optional). | |
| STEAMOS_DEVKIT_SSH_PASSWORD | No | SSH password fallback if the device has not accepted the devkit SSH key. |
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 |
|---|---|
| doctorA | Inspect local SteamOS Devkit Client, tools, dependencies, and state paths. |
| adb_doctorA | Inspect local ADB availability and print Steam Frame Lepton connection notes. |
| adb_environment_conflict_doctorC | Find local ADB version/path conflicts, current devices, and Steam Frame hostname resolution. |
| discover_devicesB | Discover SteamOS Devkit devices by mDNS and optionally include cached devices. |
| resolve_deviceC | Resolve a SteamOS Devkit target by service name, hostname, or IP address. |
| ensure_ssh_keyB | Create or repair the local SteamOS Devkit SSH key. |
| register_deviceC | Register/pair this machine's Devkit SSH key with a SteamOS device. |
| sync_devkit_utilsB | Sync Valve's devkit-utils helper scripts to ~/devkit-utils on the device. |
| get_steamos_statusC | Run steamos-get-status --json on the device. |
| list_titlesC | List devkit titles installed under ~/devkit-game. |
| validate_upload_planB | Validate a title upload plan without touching the device. |
| inspect_android_apkB | Read Android package/version metadata from an APK using aapt dump badging. |
| validate_android_split_packageC | Validate a Steam Frame Unity APK+OBB folder and expected OBB filename/layout. |
| stage_android_obb_layoutC | Copy an Android main OBB into obb/main...obb. |
| steampipe_android_release_preflightC | Check a local Android depot folder against Steam Frame SteamPipe release requirements. |
| upload_titleC | Upload a title folder, update runtime settings, and register/update the Steam shortcut. |
| run_titleC | Launch a devkit title through Steam's devkit RPC. |
| delete_titleC | Delete one or all devkit titles, optionally resetting Steam client state. |
| set_steam_clientC | Switch the Steam client mode used by the main session. |
| set_sessionC | Change the SteamOS graphical session. |
| restart_sessionC | Restart the active SteamOS session or Steam user service. |
| reboot_deviceC | Reboot the SteamOS device. |
| enable_cef_debuggingC | Enable Steam CEF remote debugging for the device's Steam client. |
| open_cef_consoleC | Return the Steam CEF debugging URL for a device. |
| steam_rpcC | Execute a Steam devkit RPC command. Uncurated commands require confirmation. |
| run_remote_commandB | Run an arbitrary SSH command on the device. Always requires confirmation. |
| dump_controller_configC | Dump controller configuration VDF files from Steam. |
| sync_logsC | Sync Steam logs, SteamVR logs, and /tmp/dumps to a local folder. |
| lepton_cli_helpC | Read Steam Frame's installed Lepton CLI help from the native SteamOS shell. |
| lepton_containersC | List Lepton podman containers with ADB/GDB/LLDB ports and debug labels. |
| lepton_logcatC | Collect bounded native Lepton logcat output for a Lepton context. |
| lepton_context_inspectC | Inspect one Lepton container context, including labels and optional mounts. |
| lepton_debug_targetsC | Report existing ADB/GDB/LLDB targets and listener state for a Lepton context. |
| lepton_mountsC | Read Lepton podman mounts for a context, optionally filtered by a known category. |
| lepton_apk_infoC | Run Lepton's own apk-info-extractor on a remote APK path. |
| lepton_rootfs_overlay_manifestC | Inventory Lepton rootfs overlay files, hashes, and selected small snippets. |
| lepton_debug_planC | Return a non-executing Lepton debug/capture launch plan for gdb/lldb/strace/perfetto/renderdoc/vulkan layers. |
| lepton_artifacts_manifestB | List Lepton perfetto/strace/debug artifacts that already exist on the device. |
| steam_logs_manifestC | List recent Steam, SteamVR, OpenXR, Lepton, trace, and dump files on the device. |
| steam_frame_perfcriteriaC | Find and parse Steam Frame perfcriteria.txt compatibility/performance reports. |
| steam_frame_cef_pagesC | Enumerate Steam/SteamVR CEF DevTools pages exposed on Steam Frame debug ports. |
| steam_frame_web_portsC | Inspect known Steam Frame web/debug/listener ports and devkit HTTP properties. |
| steam_frame_dbus_managerC | Introspect SteamOS Manager DBus interfaces/properties without invoking control methods. |
| steam_frame_manager_propertiesC | Read SteamOS Manager properties from the user bus, system bus, or both. |
| steam_frame_manager_interfacesC | Read SteamOS Manager interface/method/property/signal inventory, including Jobs when present. |
| steam_frame_openxr_statusC | Inspect native and Lepton OpenXR active-runtime configuration files. |
| lepton_graphics_debug_statusC | Inspect Lepton graphics debug helper scripts, Vulkan layers, RenderDoc, perfetto, and Mesa version. |
| steam_frame_tracking_datasetsC | List SteamVR tracking datasets recorded from Steam Frame Developer settings. |
| sync_tracking_datasetC | Download a recorded Steam Frame tracking dataset directory into a local folder. |
| local_steamvr_automation_inventoryC | Inspect local SteamVR automation surfaces such as null driver and Frame controller profiles. |
| steam_frame_automation_inventoryC | Inspect Steam Frame automation surfaces for tracking datasets, CEF ports, Lepton, and input tools. |
| steam_frame_automation_planC | Return automation strategy notes for launch, UI, ADB, tracking-dataset, and pose-replay workflows. |
| steamvr_vrcmd_capability_inventoryC | Inspect local SteamVR binaries for capture, replay, polling, and driver simulation string evidence. |
| tracking_dataset_analyzeA | Summarize a local SteamVR tracking dataset directory or zip after download. |
| steam_frame_replay_script_templateC | Return JSON templates for launch, ADB, CEF UI, tracking capture, and future pose replay scripts. |
| deckard_power_statusC | Read Deckard/Steam Frame charger runtime files and power-supply sysfs state. |
| pidbridge_statusC | Read pidbridge unit and socket state without speaking the private socket protocol. |
| deckard_runtime_environmentC | Read Deckard runtime version and Steam/Mesa launch environment defaults. |
| native_adbd_statusC | Read native SteamOS adbd.service status and environment. |
| coredump_listC | List recent Steam Frame native coredumps without opening them in a debugger. |
| steam_servicesC | List Steam Frame systemd services, usually filtered by steam/steamvr/gamescope/lepton. |
| journalctl_tailC | Tail bounded journal lines for a specific user or system service unit. |
| steam_frame_dev_inventoryC | Collect a bounded read-only inventory of Steam Frame OS, Lepton, services, DBus, and binary strings. |
| screenshotC | Capture a SteamOS screenshot and download it locally. |
| gpu_traceC | Collect a gpu-trace zip from the device. |
| rgp_captureC | Trigger and download a Radeon GPU Profiler capture. |
| set_renderdoc_replayC | Start or stop the RenderDoc replay server on the device. |
| adb_devicesA | List ADB devices and parse adb devices -l output. |
| adb_connect_lepton_wifiB | Connect to Steam Frame's Lepton Android container over Wi-Fi. |
| adb_connect_lepton_usbC | Connect to Steam Frame's Lepton Android container through USB ADB port forwarding. |
| adb_disconnectA | Disconnect one ADB target, or all TCP ADB targets when target is omitted. |
| adb_forwardC | Forward host tcp:LOCAL_PORT to device tcp:REMOTE_PORT with adb forward. |
| adb_reverseC | Reverse device tcp:DEVICE_PORT to host tcp:HOST_PORT with adb reverse. |
| adb_install_apkC | Install or replace an APK in the connected Lepton Android container. |
| adb_shellC | Run an arbitrary non-interactive adb shell command. Always requires confirmation. |
| adb_logcatC | Collect a bounded adb logcat dump; clear_first requires confirmation. |
| adb_bugreportC | Collect adb bugreport into a local file or folder path. |
| adb_unreal_insights_setupC | Set Unreal's Android tracehost property and reverse tcp:1981 for Unreal Insights. |
| adb_lepton_app_diagnosticsC | Collect focused Steam Frame Lepton app state, OBB, Steam env, and XR/Steam log highlights. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| deploy_and_run | |
| pairing_troubleshooter | |
| collect_bug_report | |
| frame_adb_troubleshooter | |
| steam_frame_unity_split_troubleshooter |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| server_info | |
| server_doctor | |
| devices_resource | |
| profiles_resource | |
| operations_resource | |
| safety_help | |
| android_split_obb_help | |
| adb_help | |
| steam_frame_dev_help |
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/elliotttate/mcp-steamos-devkit'
If you have feedback or need assistance with the MCP directory API, please join our Discord server