GTAV-CLAUDE-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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 |
|---|---|
| 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:
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:
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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
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