Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": false
}
logging
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
apps_listB

List Apps and retained drafts on the invited host.

apps_stateA

Read the active App draft, desired/saved revisions and actual target application states. Read this after interruption; do not infer application from file transfer success.

apps_createA

Create a new App workspace. Returns its actual cwd; does not change the shared shell directory.

apps_openA

Open an existing App or retained draft. Returns cwd; never overwrites a draft or sends cd to the shared PTY.

apps_publishB

After all files and build steps in a complete editing round finish, publish its exact draftRevision. A failed target load preserves the old applied revision.

apps_saveC

Publish the completed draft and atomically save its .vrchapp package. Separate saved package success from preview/device application results.

apps_preview_inputA

Send a normalized control or pointer event to the connected preview only. Requires current AI editing control; cannot launch or control the device App.

apps_operation_statusB

Query the durable result of an interrupted App action. Do not automatically replay a mutation.

apps_export_beginC

Fix a read-only snapshot of an already saved App for file_download. Does not Save or require editing control.

apps_import_inspectB

Validate a completed .vrchapp app-package upload. Returns its inspected reference and update conflict/confirmation state; file_done alone never imports an App.

apps_import_commitB

Commit an inspected App package using its previous package digest and the approved update decision.

apps_launchA

Launch or focus a saved App on the device within this invitation’s enabled Launch/Exit scope. Read apps_state first. Supply replaceInstanceId only after deciding to replace that known target; new real I/O permissions still require the person. Does not save a draft.

apps_exitA

Exit the specified current device App within this invitation’s enabled Launch/Exit scope. Preserves the shell, access, App files and saved data. Read apps_state after interruption; never replay blindly.

apps_input_targetsA

Read the actual active preview and device App bindings before input. Coordinates are normalized within the App viewport, independent of the device’s 150% browser zoom. Does not launch, link or switch the person’s preview.

apps_controlA

Simulate known E1-E4 rotation/press and K1-K4 keys on an explicit active preview or device App. down/up/cancel send exact phases; click/long form a paired press using holdMs (default 50/800 ms). K1 always invokes the host Menu. Requires AI control; loss of control cancels only AI-held inputs.

apps_interface_inputA

Click, drag, scroll, type English/ASCII text or send a key/chord in the active device App interface. Use event type guide_start to press the current App Guide Start on an explicit preview/device target; it does not approve access or I/O. Other host menus and permission dialogs remain human-operated. Read apps_input_targets first; pointer coordinates are normalized App coordinates, scroll deltas are CSS pixels. Delivery confirms sent/dispatched events; use screenshots/App state to verify the intended result.

apps_file_exportA

Create a fixed download snapshot of a relative file in the current App workspace. Returns its reference and sha256; use file_download with app-workspace. Does not change preview or save the App.

apps_file_commitA

Atomically deliver a completed app-workspace upload to a relative workspace path. Omit expectedSha256 only for a new file; supply the existing file sha256 to replace it. Does not publish, save or execute the file.

file_uploadB

Upload a local regular file through the shared resumable file transport. App packages must use .vrchapp and remain private until inspect/commit.

file_downloadC

Download an authorized fixed App package reference to a new local path, verifying all bytes before an atomic no-overwrite commit.

file_pauseB

Pause the current shared file transfer.

file_resumeB

Resume the current shared file transfer.

file_cancelB

Cancel the current shared file transfer.

ai_reportA

Report the current action, result or next step to the person in one or two brief sentences in their language. Works while waiting for Allow AI and after approval; never include raw commands, secrets or internal reasoning.

ai_capabilitiesA

Read actual enabled capabilities, targets, control owner and pause state for this approved connection. Unavailable capabilities do not prevent connection.

terminal_connectB

Join an invited device Terminal. Wait for the human to approve once. Approval grants terminal observation and on-demand screenshots; Apps invitations grant AI editing on approval; ordinary Terminal invitations require the human to grant input control.

terminal_eventsA

Read terminal events and actual images shared by the human automatically. Call terminal_events({}) while waiting for ai_pending/approval and between actions. Omit waitSeconds for the normal 20-second wait; returns early on events. Does not take a screenshot. One complete queued capture batch is returned per call, with separate images for every captured screen.

terminal_inputA

Send shell input only while the human has granted AI input control. Shared screenshots are included automatically in the response.

take_screenshotA

Capture the device screens once and return the complete batch as separate images. Default follows the human Multi-screen setting: on captures all screens, off captures primary only. While on, screen may select primary or a display connector from prior image metadata. Does not change input control.

terminal_disconnectA

Disconnect this client. Retain the admitted session credential for resuming within its authorization.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 30 tools

Disambiguation3/5

Descriptions work hard to distinguish tools (device App vs preview vs shell), but three input tools—apps_control, apps_interface_input, apps_preview_input—overlap heavily in purpose, and apps_save/apps_publish both describe publishing a draft. An agent could realistically misselect among these.

Naming Consistency4/5

Nearly all tools use snake_case with clear domain prefixes (terminal_, apps_, file_, ai_), giving a predictable namespace. take_screenshot breaks the prefix convention slightly, but overall it's consistent and readable.

Tool Count2/5

30 tools exceeds the 25+ threshold that signals an over-stuffed surface for a single server. While the domain (terminal + Apps + file transfer) is broad, several tools could plausibly be merged, making this heavy relative to scope.

Completeness4/5

Coverage is strong: Apps lifecycle (create/open/save/publish/launch/exit), file transfer with pause/resume/cancel, input, import/export, and status/recovery tools are all present. Minor gaps around some session lifecycle edges, but no dead ends for core workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues