# FiveM MCP (npm · fivem-mcp-server)

Build, run and live-test FiveM servers with AI agents: RCON, DevCon, window control, mcpb bridge.

- Trust score: 80/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- npm · `fivem-mcp-server`: 80/100 (this document), [markdown](https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server.md), [page](https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server)

## Channel facts

- Registry: `npm`
- Package: `fivem-mcp-server`
- Version: `0.6.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Supply Chain Security**: 99/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 116 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 15 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 87/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 2002 tokens (~87/item across 23 items; 23 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 60/100
  - Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 89/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 63% of tool parameters carry a description.
  - Structured output schemas are declared (35% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the FiveM MCP server?

FiveM MCP runs locally as an npm package, launched with npx -y fivem-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add ziyacivan-fivem-mcp -- npx -y fivem-mcp-server
```

### Cursor

```json
{
  "mcpServers": {
    "ziyacivan-fivem-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "fivem-mcp-server"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "ziyacivan-fivem-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "fivem-mcp-server"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add ziyacivan-fivem-mcp -- npx -y fivem-mcp-server
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ziyacivan-fivem-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "fivem-mcp-server"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add ziyacivan-fivem-mcp --command npx --arg -y --arg fivem-mcp-server
```

### Hermes

```yaml
mcp_servers:
  ziyacivan-fivem-mcp:
    command: "npx"
    args: ["-y", "fivem-mcp-server"]
```

### Netclaw

```json
{
  "McpServers": {
    "ziyacivan-fivem-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "fivem-mcp-server"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add ziyacivan-fivem-mcp -t stdio -c npx -a -y fivem-mcp-server
```

### Other

```json
{
  "mcpServers": {
    "ziyacivan-fivem-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "fivem-mcp-server"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-18 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-16 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-14 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-12 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-10 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-08 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-06 (score 74, +1)

- [functional improvement] Security disclosure: fail → pass

### 2026-09-05 (score 73, +16)

- [security improvement] Malware scan: unverified → pass

## MCP tools (23)

### `status` (~38 tokens)

Connection status

Report RCON configuration for the server, the devcon connection to the FiveM client console, and the server log-file tailer. Call this first.

Output parameters:

- `client` (object)
- `clientDevconPorts` (array)
- `host` (string)
- `server` (object)

### `server_info` (~49 tokens)

Query server identity (no credentials)

Ask the server's getinfo out-of-band endpoint: hostname, players online, max clients, protocol, game build. Works without rcon_password; use it to confirm which server you are pointed at.

### `server_command` (~96 tokens)

Run an FXServer console command

Execute a command on the server console over UDP RCON (any command the console accepts: ensure/stop/restart, convars, registered commands). The reply carries the command's captured console output. Needs `rcon_password` on the server and FIVEM_RCON_PASSWORD here; rate-limited server-side (~5 burst).

Input parameters:

- `command` (string, required): Command text without a leading slash, e.g. 'restart breeze-chat'

### `client_command` (~172 tokens)

Run a FiveM client (F8) console command

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 parameters:

- `command` (string, required): Command text, e.g. 'connect localhost:30120'
- `timeoutMs` (integer): Max ms to wait for output (default 5000)
- `waitForOutput` (boolean): Set false to fire without waiting (long-loading maps, blocking commands)

### `read_console` (~233 tokens)

Read recent console output

Return recent console lines without running anything. For 'client', reads the devcon line buffer (live from the moment this server first connected; supports afterSeq paging). For 'server', tails FIVEM_SERVER_LOG (FXServer's redirected stdout) — the last 512 KB, filtered; afterSeq is not supported there.

Input parameters:

- `afterSeq` (integer): client only: lines after this sequence number (response carries nextSeq)
- `channel` (string): Exact channel name, e.g. 'breeze-chat' or 'script:breeze-chat'
- `contains` (string): Case-insensitive substring of the message
- `limit` (integer): Max lines (default 100)
- `pattern` (string): JS regex matched against '<channel>: <message>'
- `target` (string, required): 'server' = the FXServer console (UDP RCON; needs rcon_password). 'client' = the F8 console of a running FiveM Legacy client (devcon 29200/29300) — LOCAL console commands only (connect, quit, tooling)…

Output parameters:

- `clientError` (string): Why the client console is not live (lines may be stale)
- `lines` (array)
- `matched` (integer)
- `nextSeq` (integer): Pass as afterSeq next time (client); -1 for server

### `wait_for_console` (~196 tokens)

Wait for a console line to appear

Block until a line matching a regex appears. 'client' watches the live devcon stream; 'server' polls FIVEM_SERVER_LOG for newly written lines (only lines appended after the call count). Use after a fire-and-forget command, to watch for a resource's startup banner, an error, or a scripted RESULT: line.

Input parameters:

- `afterSeq` (integer): client only: ignore lines up to this sequence number
- `pattern` (string, required): JS regex, e.g. 'Started resource breeze-chat'
- `target` (string, required): 'server' = the FXServer console (UDP RCON; needs rcon_password). 'client' = the F8 console of a running FiveM Legacy client (devcon 29200/29300) — LOCAL console commands only (connect, quit, tooling)…
- `timeoutMs` (integer): Default 10000

Output parameters:

- `channel` (string)
- `message` (string)
- `seq` (integer)

### `list_commands` (~52 tokens)

List client console commands

The devcon handshake streams every command the client console knows (CVAR frames). For server commands, run 'help' through server_command instead. Filter with a case-insensitive substring.

Input parameters:

- `contains` (string)

Output parameters:

- `commands` (array)
- `count` (integer)

### `launch` (~73 tokens)

Start the FiveM client

Launch FiveM, optionally straight into a server via the fivem://connect link. Default target is the configured game port. Returns immediately — watch window_status/client_command to see when the game is up.

Input parameters:

- `connectTo` (string): host:port to connect to (default: the configured rcon host:port)

### `quit_game` (~66 tokens)

Close the FiveM client

Graceful path: prints 'quit' to the client console over devcon and waits for the game to close (nothing is typed into the window). force: true kills the FiveM process tree instead — use it only when the game is wedged.

Input parameters:

- `force` (boolean)

### `window_status` (~41 tokens)

Game window state

Whether the FiveM game window exists, its title/pid, on-screen rect, and whether it is the foreground window. Input/screenshot tools focus it automatically.

Output parameters:

- `focused` (boolean)
- `found` (boolean)
- `pid` (integer)
- `rect`
- `title` (string)

### `focus_window` (~38 tokens)

Bring the game to the foreground

Restores/minimizes-out if needed and steals foreground (remembering the previous window for restore_focus). Every input/screenshot tool calls this automatically.

### `restore_focus` (~22 tokens)

Give focus back to the previous window

Returns foreground to whatever window was focused before this tool focused the game.

### `screenshot` (~184 tokens)

Capture the game window

PNG of the FiveM window (PrintWindow with PW_RENDERFULLCONTENT; falls back to a screen BitBlt of the window rect when the swapchain returns black, which means whatever covers the window is also captured — the game is focused first). Downscaled so vision models can read it cheaply. COST WARNING: every screenshot stays in the transcript and is re-sent on every later turn - many shots multiply session latency. Prefer text probes (read_console, wait_for_console, bridge ops); when pixels are the evidence, keep maxSide small (640 suffices for layout checks) and crop to the panel of interest.

Input parameters:

- `crop`: Window-pixel rect, as an object or JSON string, e.g. {"x":300,"y":200,"width":400,"height":300}
- `maxSide` (integer): Downscale longest side (default 900)

### `press_key` (~79 tokens)

Tap a key

Press and release a key (scan codes — what GTA's DirectInput/raw input reads). Key name: W A S D E F Q space enter esc tab shift ctrl alt arrows up down left right, f1-f12, letters/digits.

Input parameters:

- `holdMs` (integer): Hold duration (default 20)
- `key` (string, required)

### `hold_key` (~72 tokens)

Hold a key down

Key stays pressed until release_key. Use for movement (W) and camera. Key name: W A S D E F Q space enter esc tab shift ctrl alt arrows up down left right, f1-f12, letters/digits. Held keys are released if this process exits.

Input parameters:

- `key` (string, required)

### `release_key` (~29 tokens)

Release held key(s)

Release one held key, or all of them with key='all'.

Input parameters:

- `key` (string, required)

### `type_text` (~59 tokens)

Type literal text

Sends Unicode key events — the F8 console and chat/NUI inputs read these normally. Open the target input first (e.g. client_command to focus, or a chat key like T). Does not press Enter.

Input parameters:

- `text` (string, required)

### `mouse_move` (~62 tokens)

Move the mouse

Relative dx/dy drives the in-game camera; absolute x/y (screen pixels) positions the real cursor for NUI elements.

Input parameters:

- `dx` (integer)
- `dy` (integer)
- `x` (integer)
- `y` (integer)

### `click` (~41 tokens)

Mouse click

Click at the current cursor position (position it with mouse_move absolute first for NUI).

Input parameters:

- `button` (string): default left
- `double` (boolean)

### `scroll` (~29 tokens)

Mouse wheel

Scroll the wheel (positive = up). NUI lists respond to it.

Input parameters:

- `amount` (integer, required)

### `wait` (~28 tokens)

Pause

Sleep between actions — loading screens, walk cycles, held-key sequences.

Input parameters:

- `ms` (integer, required)

### `read_client_log` (~66 tokens)

Read the FiveM client log file

Tail the newest CitizenFX_log_*.log under the FiveM install — the same stream as read_console(client) but persisted across sessions, without the channel tags.

Input parameters:

- `contains` (string)
- `limit` (integer): default 100
- `pattern` (string)

Output parameters:

- `file` (string)
- `lines` (array)
- `matched` (integer)

### `bridge` (~277 tokens)

Invoke a bridge operation (mcpb resource)

Runs an operation through the mcpb bridge resource — the half neither devcon nor RCON can reach. Server ops (target=server): ping, players, poll, call_export, trigger_event, wait; call_export {resource, method, args}, trigger_event {event, args, toClient?, player?} (event names must be in mcpb_event_allowlist). Client ops (target=client, needs src): ping, position, teleport, freeze, call_native, send_nui, nui_callback; teleport {x,y,z,heading?}, freeze {freeze}, call_native {name, args}, send_nui {resource, message, event?}, nui_callback {resource, endpoint, payload}. Client results are collected in-band via the bridge's poll queue — no FIVEM_SERVER_LOG needed. The bridge must be installed, started and enabled (mcpb_enabled true).

Input parameters:

- `args` (string): Operation arguments as a JSON object string, e.g. {"resource":"chat"}
- `op` (string, required): Operation name (see description for which target)
- `src` (integer): Player server id (required for target=client)
- `target` (string, required): Where the op runs — server console or game client
- `timeoutMs` (integer): Client-op result wait (default 8000)

Output parameters:

- `data`
- `op` (string)
- `target` (string)

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server#diagnostics

## Score history

- 2026-09-20: 80
- 2026-09-19: 80
- 2026-09-18: 80
- 2026-09-17: 79
- 2026-09-16: 79
- 2026-09-15: 78
- 2026-09-14: 78
- 2026-09-13: 77
- 2026-09-12: 77
- 2026-09-11: 76
- 2026-09-10: 76
- 2026-09-09: 75
- 2026-09-08: 75
- 2026-09-07: 74
- 2026-09-06: 74
- 2026-09-05: 73
- 2026-09-04: 57
- 2026-09-03: 70
- 2026-09-02: 59

## Common questions

### What is the FiveM MCP server?

FiveM MCP is listed in the public MCP registry as io.github.ziyacivan/fivem-mcp. Build, run and live-test FiveM servers with AI agents: RCON, DevCon, window control, mcpb bridge. This page covers its npm package (fivem-mcp-server).

### Is the FiveM MCP server safe to use?

FiveM MCP scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the FiveM MCP server expose?

FiveM MCP exposes 23 tools: status, server_info, server_command, client_command, read_console, and 18 more. Their descriptions and schemas cost roughly 2,002 tokens of context every time the server is loaded.

### Is the FiveM MCP server still maintained?

FiveM MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the FiveM MCP server under?

FiveM MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/fivem-mcp-server
- Socket report: https://socket.dev/npm/package/fivem-mcp-server
- Repository: https://github.com/ziyacivan/fivem-mcp
- Changelog RSS feed: https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server.xml
- Changelog JSON feed: https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server.json
- HTML version of this page: https://verifymcp.io/servers/ziyacivan-fivem-mcp/fivem-mcp-server
