Skip to main content
Glama

Run a FiveM client (F8) console command

client_command
Destructive

Runs a local console command in a running FiveM client's F8 console over devcon without focusing the game window, then returns the console output.

Instructions

Type a LOCAL console command into the running Legacy client's F8 console over devcon — no screen focus needed, nothing is typed into the game window. This is the process's console context (connect, quit, tooling commands), NOT the chat command layer: commands registered with RegisterCommand are chat commands and live in a different system (run them through server_command, which has console privileges, or drive the chat UI with the M2 input tools). Waits until output goes quiet and returns the lines the client console printed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
commandYesCommand text, e.g. 'connect localhost:30120'
timeoutMsNoMax ms to wait for output (default 5000)
waitForOutputNoSet false to fire without waiting (long-loading maps, blocking commands)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.6.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, non-idempotent and non-readOnly, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it runs over devcon with no screen focus and nothing typed into the game window, and it waits until output goes quiet before returning printed lines. It stops short of detailing the concrete destructive effect or auth requirements.

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 core action is front-loaded in the first sentence, and the behavioral and differentiation details follow in an ordered way. The chat-vs-console parenthetical is long but earns its place by preventing a common mis-selection; slightly verbose overall.

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

Completeness4/5

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

With no output schema, the description correctly discloses the return value (the lines the client console printed) and the waiting behavior, and it fully covers the guidance needed to invoke it correctly. The main gap is concrete detail on the destructive consequences implied by destructiveHint=true.

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

Parameters3/5

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

Schema description coverage is 100%, so command, timeoutMs and waitForOutput are already documented in the schema; baseline 3 applies. The description adds only the general note that no screen focus is needed, not parameter-level syntax or format detail.

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?

States a specific verb and resource: type a LOCAL F8 console command into the running client over devcon, explicitly scoped to the process console context, not chat. It clearly separates itself from the chat command layer and names sibling server_command as the alternative.

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?

Explicitly states when to use this (process console commands like connect, quit, tooling) and when not to (commands registered with RegisterCommand are chat commands), and routes the agent to the correct alternatives (server_command or M2 input tools). Nothing is left to inference.

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