Skip to main content
Glama

client_input

Control a Garry's Mod client: movement, aiming, key presses, Derma clicks, text input, and chat. Switch between world and UI input modes.

Instructions

Drives the connected GMod client: movement, aim, keys, Derma clicks, typing, chat. Modal -- 'world' drives movement through CreateMove, 'ui' hands input to the panel system, and the two are mutually exclusive; the action switches mode for you. Durations are SECONDS (CreateMove runs at the client's cmdrate, so tick counts are not a duration), clamped to 5s, and everything resets after 30s or on gmod_mcp_release in the client console. To fill a form use set_text (targets a field by name and fires its change notification); type sends real keystrokes and needs a target or an already-focused field. click takes a NAMED target as well as x/y and is self-sufficient -- it moves the cursor, waits for hover to settle, presses and releases, so no move_cursor is needed first. Follow with read_view or read_panel_text to see the effect.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
xNoclick/move_cursor: screen X. Ignored when a named target is given.
yNoclick/move_cursor: screen Y. Ignored when a named target is given.
upNomove: vertical speed (swimming, ladders).
keyNopress/release: IN_ bit (IN_ATTACK 1, IN_JUMP 2, IN_DUCK 4, IN_FORWARD 8, IN_BACK 16, IN_USE 32, IN_MOVELEFT 512, IN_MOVERIGHT 1024, IN_ATTACK2 2048, IN_RELOAD 8192, IN_SPEED 131072). key_ui: a KEY_ enum instead.
posNolook_at: world position to aim at.
yawNolook: yaw.
modeNomode: which input mode to switch to.
nameNoclick/type/set_text: target the panel with this registered vgui name (R_UI_Button, DTextEntry). Not the class -- a kit panel's class is its VGUI base.
sideNomove: strafe speed.
textNoset_text: the value to put in the field. type: characters to send. say: chat message.
classNoclick/type/set_text: target by VGUI base class (Label, TextEntry, Panel).
deltaNoscroll: wheel delta.
enterNoset_text: also fire the field's OnEnter, for forms that only validate or submit on Enter. Off by default -- on a chat entry it sends the line.
focusNoset_text: default true, calls RequestFocus first so the field's own focus logic runs.
indexNoclick/type/set_text: which match to act on when several qualify.
pitchNolook: pitch, clamped to +-89.
actionYes
buttonNoclick: which mouse button.
weaponNoselect_weapon: weapon class the player is carrying.
forwardNomove: forward speed, negative for backward.
containsNoclick/type/set_text: narrow the target to panels whose displayed text contains this (case-insensitive).
durationNoSeconds to hold a key, a movement or a scripted aim. Clamped to 5.
onScreenNoclick/type/set_text: default true, only panels whose whole ancestry is visible. false reaches hidden ones.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses all relevant behaviors: modal exclusivity, duration in seconds (not ticks), clamping to 5s, reset after 30s or gmod_mcp_release, and detailed click mechanics (cursor movement, hover wait, press/release). No annotations present, so description carries full burden and meets it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but structured: general purpose, then modal, then duration/reset, then action-specific details. Every sentence adds value, but it could be slightly more front-loaded or broken into bullet points for quicker scanning. Still, it's efficient for the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 23 parameters, high schema coverage, no output schema, and complex interactions, the description covers all necessary aspects: action modes, parameter dependencies, safety limits, and usage patterns. It leaves no significant gap for an agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 96% with descriptions on almost all parameters. The description adds value beyond schema by explaining duration units, that tick counts are not duration, and relationships between actions (e.g., click does not need move_cursor). However, much of the parameter meaning is already in the schema, so a 3 would be baseline; the extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource statement ('Drives the connected GMod client') and lists all sub-actions (movement, aim, keys, etc.). It distinguishes itself from sibling tools by being the only input tool among read/command/entity tools, so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: modal modes ('world' vs 'ui'), when to use set_text vs type, that click is self-sufficient (no move_cursor needed), and suggests follow-up tools like read_view. Also warns about duration units and resets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

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/TheRolists/gmod-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server