FiveM MCP
NPM · FIVEM-MCP-SERVER · SCANNED SEP 20
Build, run and live-test FiveM servers with AI agents: RCON, DevCon, window control, mcpb bridge.
Available components
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. How we score → Why this is hard to score →
Supply Chain Security99
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 116 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 15 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability87
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 2002 tokens (~87/item across 23 items; 23 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management60
- Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 63% of tool parameters carry a description.Partial
- Structured output schemas are declared (35% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
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.
npm · fivem-mcp-server
claude mcp add ziyacivan-fivem-mcp -- npx -y fivem-mcp-server
{
"mcpServers": {
"ziyacivan-fivem-mcp": {
"command": "npx",
"args": [
"-y",
"fivem-mcp-server"
]
}
}
} {
"servers": {
"ziyacivan-fivem-mcp": {
"command": "npx",
"args": [
"-y",
"fivem-mcp-server"
]
}
}
} codex mcp add ziyacivan-fivem-mcp -- npx -y fivem-mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ziyacivan-fivem-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"fivem-mcp-server"
],
"enabled": true
}
}
} openclaw mcp add ziyacivan-fivem-mcp --command npx --arg -y --arg fivem-mcp-server
mcp_servers:
ziyacivan-fivem-mcp:
command: "npx"
args: ["-y", "fivem-mcp-server"] {
"McpServers": {
"ziyacivan-fivem-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"fivem-mcp-server"
]
}
}
} assistant mcp add ziyacivan-fivem-mcp -t stdio -c npx -a -y fivem-mcp-server
{
"mcpServers": {
"ziyacivan-fivem-mcp": {
"command": "npx",
"args": [
"-y",
"fivem-mcp-server"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 18 Sept 26 +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.
- 16 Sept 26 +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.
- 14 Sept 26 +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.
- 12 Sept 26 +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.
- 10 Sept 26 +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.
- 8 Sept 26 +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.
- 6 Sept 26 +1
- Security disclosure: fail → pass ▲ functional
- 5 Sept 26 +16
- Malware scan: unverified → pass ▲ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/fivem-mcp-server@0.6.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 116 packages
| Packages resolved | 116 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
bridge Invoke a bridge operation (mcpb resource) ~277
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).
| Name | Type | Req | Description |
|---|---|---|---|
| args | string | – | Operation arguments as a JSON object string, e.g. {"resource":"chat"} |
| op | string | yes | Operation name (see description for which target) |
| src | integer | – | Player server id (required for target=client) |
| target | string | yes | Where the op runs — server console or game client |
| timeoutMs | integer | – | Client-op result wait (default 8000) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | – |
| op | string | yes | – |
| target | string | yes | – |
No examples provided.
click Mouse click ~41
Click at the current cursor position (position it with mouse_move absolute first for NUI).
| Name | Type | Req | Description |
|---|---|---|---|
| button | string | – | default left |
| double | boolean | – | – |
No output schema declared.
No examples provided.
client_command Run a FiveM client (F8) console command ~172
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.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | 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) |
No output schema declared.
No examples provided.
focus_window Bring the game to the foreground ~38
Restores/minimizes-out if needed and steals foreground (remembering the previous window for restore_focus). Every input/screenshot tool calls this automatically.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
hold_key Hold a key down ~72
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.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
No output schema declared.
No examples provided.
launch Start the FiveM client ~73
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.
| Name | Type | Req | Description |
|---|---|---|---|
| connectTo | string | – | host:port to connect to (default: the configured rcon host:port) |
No output schema declared.
No examples provided.
list_commands List client console commands ~52
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| commands | array | yes | – |
| count | integer | yes | – |
No examples provided.
mouse_move Move the mouse ~62
Relative dx/dy drives the in-game camera; absolute x/y (screen pixels) positions the real cursor for NUI elements.
| Name | Type | Req | Description |
|---|---|---|---|
| dx | integer | – | – |
| dy | integer | – | – |
| x | integer | – | – |
| y | integer | – | – |
No output schema declared.
No examples provided.
press_key Tap a key ~79
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.
| Name | Type | Req | Description |
|---|---|---|---|
| holdMs | integer | – | Hold duration (default 20) |
| key | string | yes | – |
No output schema declared.
No examples provided.
quit_game Close the FiveM client ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | – |
No output schema declared.
No examples provided.
read_client_log Read the FiveM client log file ~66
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.
| Name | Type | Req | Description |
|---|---|---|---|
| contains | string | – | – |
| limit | integer | – | default 100 |
| pattern | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| file | string | yes | – |
| lines | array | yes | – |
| matched | integer | yes | – |
No examples provided.
read_console Read recent console output ~233
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | '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)… |
| Name | Type | Req | Description |
|---|---|---|---|
| clientError | string | – | Why the client console is not live (lines may be stale) |
| lines | array | yes | – |
| matched | integer | yes | – |
| nextSeq | integer | yes | Pass as afterSeq next time (client); -1 for server |
No examples provided.
release_key Release held key(s) ~29
Release one held key, or all of them with key='all'.
| Name | Type | Req | Description |
|---|---|---|---|
| key | string | yes | – |
No output schema declared.
No examples provided.
restore_focus Give focus back to the previous window ~22
Returns foreground to whatever window was focused before this tool focused the game.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
screenshot Capture the game window ~184
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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) |
No output schema declared.
No examples provided.
scroll Mouse wheel ~29
Scroll the wheel (positive = up). NUI lists respond to it.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | integer | yes | – |
No output schema declared.
No examples provided.
server_command Run an FXServer console command ~96
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).
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | Command text without a leading slash, e.g. 'restart breeze-chat' |
No output schema declared.
No examples provided.
server_info Query server identity (no credentials) ~49
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.
Input schema present but exposes no named parameters.
Structured output declared, but exposes no named fields.
No examples provided.
status Connection status ~38
Report RCON configuration for the server, the devcon connection to the FiveM client console, and the server log-file tailer. Call this first.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| client | object | yes | – |
| clientDevconPorts | array | yes | – |
| host | string | yes | – |
| server | object | yes | – |
No examples provided.
type_text Type literal text ~59
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.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | – |
No output schema declared.
No examples provided.
wait Pause ~28
Sleep between actions — loading screens, walk cycles, held-key sequences.
| Name | Type | Req | Description |
|---|---|---|---|
| ms | integer | yes | – |
No output schema declared.
No examples provided.
wait_for_console Wait for a console line to appear ~196
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.
| Name | Type | Req | Description |
|---|---|---|---|
| afterSeq | integer | – | client only: ignore lines up to this sequence number |
| pattern | string | yes | JS regex, e.g. 'Started resource breeze-chat' |
| target | string | yes | '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 |
| Name | Type | Req | Description |
|---|---|---|---|
| channel | string | yes | – |
| message | string | yes | – |
| seq | integer | yes | – |
No examples provided.
window_status Game window state ~41
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| focused | boolean | yes | – |
| found | boolean | yes | – |
| pid | integer | – | – |
| rect | – | – | – |
| title | string | – | – |
No examples provided.
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.