
FiveM MCP
io.github.ziyacivan由 GitHub 账号 ziyacivan 发布v0.6.0更新于 Oct 24, 2026
Build, run and live-test FiveM servers with AI agents: RCON, DevCon, window control, mcpb bridge.
概览
让 AI 助手通过 RCON 驱动服务器控制台、通过 devcon 驱动运行中的 FiveM 客户端 F8 控制台,从而构建、运行并实时测试 FiveM 服务器。
- 可以做什么
- 该服务器提供覆盖 FiveM 测试全流程的工具:server_command 通过 UDP RCON 发送任意服务器控制台命令并返回捕获的输出,client_command 通过 devcon 向运行中的 Legacy 客户端 F8 控制台输入命令。read_console 和 wait_for_console 可读取最近的控制台行,或阻塞等待匹配正则的行,作为断言原语。此外还包含窗口控制(启动、聚焦、截图、键盘与鼠标输入)、读取最新的 CitizenFX 客户端日志,以及用于 natives、exports、NUI 回调、位置和传送的 bridge 资源。内置 test_resource 和 smoke_check 两个提示词,把上述能力组织成现成的工作流。
- 适用场景
- 适用于开发和测试 FiveM 资源的场景:希望由助手重启资源、同时观察服务器端与客户端控制台输出、驱动游戏内场景并给出通过或失败的结论,而无需自己操作键盘。它面向开发服务器,而非生产环境。
- 运行要求
- 通过 npx fivem-mcp-server 以 stdio 在本地运行,需要 Node 22+。需要一台你管理的、正在运行的 FXServer,并设置 FIVEM_RCON_PASSWORD 与 server.cfg 中的 rcon_password 一致,server_command 才能使用。客户端控制台工具需要同一台机器上运行 Legacy FiveM 客户端,因为 devcon 默认绑定 localhost。键盘、鼠标和截图工具仅支持 Windows。可选配置包括 FIVEM_SERVER_LOG、FIVEM_HOST、FIVEM_RCON_ADDRESS、FIVEM_EXECUTABLE 和 FIVEM_MCPB_TOKEN。
安装
在 SourceWeft 中
- 打开 控制台中的 FiveM MCP,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
fivem-mcp
[npm version] [license: MIT] [CI]
An MCP (Model Context Protocol) server that lets AI agents — Claude, Qwen, or anything that speaks MCP — build, run and live-test FiveM servers from the same machine.
It is the missing test layer for the "did it actually work in-game?" question: the agent can run real console commands, watch both the server log and the live F8 console of a running FiveM client, wait for specific output, and react — without you touching the keyboard.
Status
v0.5 drives the whole loop: server console (RCON), client F8 console (devcon), the game
window (launch, focus, screenshot, keyboard/mouse) and an in-game bridge (mcpb) for
natives, exports and NUI callbacks — plus ready-made test prompts. Tools answer with
structured content, carry MCP annotations, and stop as soon as the client cancels. All of it live-verified
against a real FXServer + FiveM Legacy client (see docs/plan.md and scripts/live-*.mjs).
Where it is published
The repository's GitHub Packages sidebar is deliberately empty: the artifact lives on
npmjs.com, not GitHub Packages — the latter would force a scoped @ziyacivan/ package name
and a second registry for no benefit.
Requirements
- Node 22+ (Windows, macOS or Linux for the server side; the client devcon works
wherever the FiveM client runs — this tool must run on that machine for the
client_*tools since devcon binds to localhost by default). - A running FXServer you administer (
rcon_passwordset forserver_command). - The Legacy FiveM client for the client-console tools (Enhanced removed the client devcon ports; see docs/protocol.md).
- The keyboard/mouse/screenshot tools are Windows-only and run on the machine with the game. On other platforms every tool except those is served normally.
Install
Published on npm — no clone needed. Add it to Claude Code in one line:
(-s user = available in every project; drop it for a per-project entry. Verify with claude mcp get fivem — status should read ✓ Connected. Remove with claude mcp remove fivem -s user.)
For a shared project config, put .mcp.json in the repo root and commit it —
Claude Code asks to approve it on first open, and env values can be interpolated
from your local .env-less shell via ${VAR} expansion:
For Claude Desktop (or any client with JSON config), add to
claude_desktop_config.json:
The server is also listed in the MCP Registry as
io.github.ziyacivan/fivem-mcp. Building from source (development):
Configuration (environment)
Tools
Prompts
Two workflows are shipped as MCP prompts, distilled from the live-verified loops:
test_resource(resource, expectations?)— clean restart → console error scan → client-half scan → in-game scenario (keys, screenshot, bridge state) → evidence-backed PASS/FAIL report where anything unverifiable is said so out loud.smoke_check— one fast sweep: connections, which server, error tails on both sides, window + screenshot, persisted client log. OK/WARN/DOWN per line.
The bridge resource (bridge/)
Client-side testing (natives, NUI callbacks, position) is outside what devcon and RCON can reach — the small companion resource closes that gap and ships in this repo.
and point this server at it with FIVEM_MCPB_TOKEN. Then:
Client results come back through an in-band queue polled over RCON (~100 ms granularity since v0.5 — no log file needed; pre-0.5 resources still fall back to the log tail).
Dev servers only. mcpb_enabled defaults to false, the command is accepted only from
the console/RCON (never from a player), and the token is checked when set — but
call_native is exactly as safe as the console it runs behind. Keep RCON and this bridge
off anything you care about; see SECURITY.md. The full wire contract: docs/protocol.md §4.
Typical loop (what an agent does)
server_command: "ensure my-resource"wait_for_console: target=server, pattern="Started resource my-resource|Error"client_command: "connect localhost:30120"drives the join itself, thenread_console: target=clientcatches client-side console output that never reaches the server log.
Security notes — read before exposing anything
- The client devcon socket has no authentication. Anyone who can reach it can run
local console commands in that game client (connect, quit, ...). FiveM binds it to
127.0.0.1unless the client is started with-devcon(then0.0.0.0); this tool assumes the loopback default and never needs more. Do not tunnel it. - RCON is the server's admin root. Keep
rcon_passwordstrong;FIVEM_RCON_PASSWORDlives in your MCP config — protect that file the same way. - FXServer itself has no server-side devcon socket on current builds (verified 2026-09-02), which is why the server half is RCON + log tail.
- Treat
server_commandas giving the agent root on your box the moment it canexecanything; run it only against development servers.
Development
Releasing: move the Unreleased changelog notes under the new version heading, then
pnpm version <patch|minor|major> (bumps and syncs server.json + the bridge manifest,
and tags), npm publish from your machine (prepublishOnly runs the full gate), and
git push --follow-tags. The Release workflow then re-runs the gate, creates the GitHub
Release from CHANGELOG.md, and registers the version with the MCP Registry.
See CONTRIBUTING.md.
Live verification against a real server/game: pnpm live:probe, live:e2e, live:m2, live:m3.
The wire protocol (DevCon frames, RCON/getinfo OOB datagrams, the Cfx string hash)
is documented byte-by-byte in docs/protocol.md, derived from the
open-source CitizenFX server, citizenfx/fivem@03dcc562. Live-verified: RCON reply
format, getinfo response and the >8-byte challenge drop were confirmed against a
real FXServer on 2026-09-02.
License
MIT. The FiveM/CitizenFX name is a trademark of Cfx.re; this project is not affiliated with or endorsed by Cfx.re.
来源:README.md,提交 ce65a7f
工具
0版本历史
1- v0.6.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分
