Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
statusA

Check connection to the GTA V bridge and get game state.

Returns: Connection status, game version, current state (in menu, in world, etc.)

read_memoryA

Read typed value(s) from a memory address.

Args: address: Hex address (e.g., "0x1A2B3C4D") or expression (e.g., "vehicle+0x110") type: Data type - "byte", "int16", "int32", "int64", "float", "double", "ptr" count: Number of consecutive values to read (default 1)

Returns: The value(s) read, or error if address is invalid/unreadable

write_memoryA

Write a typed value to a memory address. Requires explicit consent.

CAUTION: Writing to wrong addresses can crash the game. The bridge validates addresses and snapshots before writing for revert.

Args: address: Hex address or expression value: Value to write (will be converted to specified type) type: Data type - "byte", "int16", "int32", "int64", "float", "double"

Returns: Success/failure, old value (for manual revert reference)

revert_last_writeA

Revert the last memory write. Routes to the bridge's single undo stack, which correctly reverts both raw writes and wheel-field writes.

snapshotA

Capture a memory region for later comparison.

Args: label: Name for this snapshot (e.g., "before_shift", "in_1st_gear") address: Starting address (hex or expression) size: Number of bytes to capture (default 256)

Returns: Confirmation with snapshot metadata

diffA

Compare two snapshots and report differences.

This is the core discovery tool: take snapshot A, user performs action, take snapshot B, diff shows which bytes changed.

Args: label_a: First snapshot label (e.g., "before") label_b: Second snapshot label (e.g., "after")

Returns: List of changed offsets with old/new values, interpreted as various types

watchA

Watch multiple addresses over time and report value changes.

Useful for finding which value tracks a behavior (e.g., which float ramps when you floor the throttle = RPM).

Args: addresses: List of addresses to watch (hex or expressions) duration_seconds: How long to watch (default 2s) interval_ms: Sample interval in milliseconds (default 100ms)

Returns: Per-address digest showing min/max/delta and change pattern

markA

User-triggered capture point. Call this when user says "go" or "done".

Captures current vehicle/wheel state with the given label. This is the sync signal in the action-prompted model.

Args: label: Descriptive label (e.g., "user_ready", "shift_complete")

await_user_messageA

Block until the user types a message in the in-game chat.

This is how the user communicates from inside the game to Claude. Returns when user submits text, or times out.

Returns: The user's message text

set_overlayA

Update the in-game overlay to show Claude's current status/intent.

This keeps the user informed without alt-tabbing.

Args: text: Status text to display (e.g., "Finding RPM offset...", "Found! RPM @ +0x824") state: Overlay state - "searching", "found", "waiting", "error"

chat_postA

Post a message to the in-game chat panel (Claude -> User).

Use this to ask questions, report findings, or request actions.

Args: message: Text to display in the in-game chat

ask_in_gameA

Ask a question in-game and wait for the user's response.

Use this instead of terminal confirmations when the user is playing. Shows the question via notification, opens keyboard, waits for response.

Common pattern for confirmations: result = ask_in_game("Write camber=0.1 to wheel 0? Type yes/no") if "yes" in result.lower(): # proceed with write

Args: question: The question to display in-game timeout_seconds: How long to wait for response (default 60)

Returns: The user's typed response

get_pending_messagesA

Check for any messages the user typed in-game (non-blocking).

The user can press F10 anytime to send a message. Use this to check if they've sent anything without blocking/waiting.

Returns: List of pending messages (empty if none)

has_pending_messagesA

Quick check if user has sent any messages in-game (non-blocking).

Returns: True/False and count

is_in_vehicleA

Check if the player is currently in a vehicle.

Returns: True/False and basic vehicle info if in one

get_vehicle_infoB

Get detailed info about the current vehicle.

Returns: Model hash, display name, plate text, wheel count, wheel pointers, and current offset values for known fields

get_wheel_valuesA

Read current values from a specific wheel using known Legacy offsets.

This uses the verified offsets from FiveM/IKT:

  • 0x008: Y rotation (camber)

  • 0x010: Inverse Y rotation

  • 0x030: X offset (track width)

  • 0x110: Tyre radius

  • 0x114: Rim radius

  • 0x118: Tyre width

Args: wheel_index: Which wheel (0=FL, 1=FR, 2=RL, 3=RR typically)

Returns: Current values for all known wheel fields

set_wheel_valueA

Set a wheel field value using known offsets.

Args: wheel_index: Which wheel (0-3) field: Field name - "camber", "track_width", "tyre_radius", "rim_radius", "tyre_width" value: New value (float)

Returns: Success/failure and old value for reference

scan_patternB

Search for a byte pattern in game memory.

Pattern format: hex bytes with ?? wildcards (e.g., "48 8B 05 ?? ?? ?? ?? 45")

Args: pattern: AOB pattern to search for module: Module to search in (default "GTA5.exe")

Returns: List of matching addresses

resolve_rip_relativeA

Resolve a RIP-relative address from an instruction.

Many GTA patterns use RIP-relative addressing. This reads the displacement at offset_position and computes the absolute address.

Formula: absolute = instruction_address + instruction_size + displacement

Args: address: Address of the instruction (hex) offset_position: Byte offset where the 4-byte displacement starts instruction_size: Total instruction length

Returns: The resolved absolute address

list_snapshotsA

List all stored snapshots with their metadata.

clear_snapshotsA

Clear all stored snapshots.

get_undo_stackA

View the bridge's undo stack of recent writes (single source of truth).

get_crash_logsA

Get recent crash logs from the bridge.

If the game crashed after a write operation, this shows:

  • The last operation before crash (from write-ahead log)

  • Crash timestamp and context

  • Python traceback if available

Use this to diagnose what caused a crash.

get_chat_historyB

Get recent chat history between Claude and the user in-game.

Args: limit: Maximum number of messages to return (default 20)

Returns: List of messages with sender, text, and timestamp

probe_wheelsA

Probe vehicle memory to find wheel array offset.

Different game versions use different offsets for the wheel array. This scans a range of offsets to find where the wheel pointers are.

probe_drawhandlerA

Probe for DrawHandler -> StreamRenderGfx pointer chain.

FiveM uses this path for visual wheel size/width modifications. This scans vehicle memory looking for pointer chains that lead to float values in the wheel dimension range (0.1 - 2.0).

find_wheel_visual_offsetsA

Find visual wheel size/width offsets by matching CWheel values.

Compares values from the physics CWheel structure (tyre_radius, etc.) with values found in potential StreamRenderGfx structures to identify the correct visual wheel offsets.

set_continuousA

Set a wheel value to be applied continuously (every frame).

GTA V's physics can reset wheel values each tick, so for some modifications to persist visually, they need to be reapplied every frame.

Args: wheel_index: Which wheel (0-3) field: Field name - "camber", "track_width", etc. value: Value to continuously apply enabled: True to enable, False to disable

Returns: Confirmation of continuous write status

clear_continuousB

Clear all continuous wheel writes.

list_continuousA

List all active continuous wheel writes.

set_visual_wheel_sizeA

Set the visual wheel size using the FiveM-style StreamRenderGfx path.

This modifies the rendered wheel size, separate from the physics CWheel values. Offsets must be discovered first via find_wheel_visual_offsets.

Args: size: New wheel size (typically 0.3-1.5) dh_offset: Optional DrawHandler offset from vehicle (use cached if None) srg_offset: Optional StreamRenderGfx offset (use cached if None) size_offset: Optional size value offset (use cached if None)

set_visual_wheel_widthA

Set the visual wheel width using the FiveM-style StreamRenderGfx path.

This modifies the rendered wheel width, separate from the physics CWheel values. Offsets must be discovered first via find_wheel_visual_offsets.

Args: width: New wheel width (typically 0.1-0.5) dh_offset: Optional DrawHandler offset from vehicle (use cached if None) srg_offset: Optional StreamRenderGfx offset (use cached if None) width_offset: Optional width value offset (use cached if None)

cache_visual_offsetsA

Cache discovered visual wheel offsets for later use.

After using find_wheel_visual_offsets or probe_drawhandler to discover the correct offsets, use this to cache them so set_visual_wheel_size/width can use them without re-specifying.

Args: dh_offset: DrawHandler offset from vehicle base srg_offset: StreamRenderGfx offset from DrawHandler size_offset: Wheel size offset in StreamRenderGfx width_offset: Wheel width offset in StreamRenderGfx

scan_structureA

Scan a memory structure for float values in a specified range.

Useful for exploring discovered pointer chains to find wheel visual offsets.

Args: address: Hex address to scan from size: Number of bytes to scan (default 512) min_val: Minimum float value to include (default 0.0) max_val: Maximum float value to include (default 10.0)

Returns: List of offsets and values within the range

call_nativeA

Call a GTA V native function BY NAME - the primary way to do ANYTHING in-game.

Resolves the name to its verified canonical hash and refuses unknown/guessed hashes (a wrong hash crashes the game). ~6700 natives available; works on Legacy + Enhanced. Discover names with search_natives(); check args with native_info().

Args: name: Native name, e.g. "CREATE_VEHICLE", "SET_ENTITY_INVINCIBLE", "ADD_EXPLOSION", "SET_PED_MOVE_RATE_OVERRIDE". args: Arguments in order (see native_info for order/types). Entity/ped/vehicle args are handles (ints). Get the player ped via PLAYER_PED_ID first. return_type: Optional override ("int","float","bool","string","void"); omit to use the native's declared return type.

call_native_by_hashA

Call a native by raw hash (power-user escape hatch). ALLOWLIST-GATED: refuses any hash not in the verified DB. Prefer call_native(name) instead.

search_nativesA

Search the ~6700-native library to discover what you can do.

Args: query: substring in the native name OR its doc comment (e.g. "explosion", "wanted", "invincible", "vehicle_mod", "ptfx"). namespace: optional filter (e.g. "VEHICLE","PLAYER","PED","WEAPON","ENTITY","MISC","CAM","FIRE","GRAPHICS"). limit: max results (default 30).

native_infoA

Get a native's params (order + types), return type, namespace, flags, and doc comment.

native_db_statusA

Native DB status: edition (legacy/enhanced), how many natives are callable, known-bad list.

spawn_vehicleB

Spawn a vehicle in front of the player. model = e.g. "adder","hydra","rhino","insurgent2","buzzard". Preload big models first.

preload_modelA

Preload a model so a later spawn is instant (avoids the streaming lag). wait=False to fire-and-forget.

teleportC

Teleport the player (and current vehicle) to coordinates.

set_weatherA

Set weather instantly: CLEAR, EXTRASUNNY, CLOUDS, OVERCAST, RAIN, THUNDER, CLEARING, SMOG, FOGGY, SNOW, BLIZZARD, XMAS, HALLOWEEN.

set_timeC

Set the in-game clock (24h).

give_weaponB

Give the player a weapon: e.g. WEAPON_PISTOL, WEAPON_MINIGUN, WEAPON_RPG, WEAPON_RAILGUN, WEAPON_STICKYBOMB, WEAPON_COMBATMG. "WEAPON_" optional.

repair_vehicleB

Repair and clean the player's current vehicle.

get_player_pedA

Get the player's ped handle (PLAYER_PED_ID). Most native chains start here.

set_invincibleC

Toggle player invincibility (god mode). Fetches a fresh ped handle first.

set_healthA

Set the player's health (max ~200 by default). Fetches a fresh ped handle first.

set_wanted_levelA

Set the player's wanted level (0-5) and apply it. Use 0 to clear stars.

list_namespacesA

List the native namespaces available (for use with search_natives's namespace filter).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/TabbedScamper/GTAV-CLAUDE-MCP'

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