Game Development
fivem.no
Search and browse RedM/RDR3 documentation with semantic search, namespace listing, path enumeration, document fetching, and line reading tools.
ENDPOINT 1
https://redm-mcp.fivem.no/mcp
MCP server metadata
- Name
- redm-mcp
- Version
- 0.1.0
RedM/RDR3 docs server (natives + VORP + RSGCore + oxmysql + rdr3_discoveries + jo_libs). Decision tree — pick the tool by what you have, not by topic: 1. Script native — `Citizen.InvokeNative(0x...)`, `Citizen.invokeNative('0x...')`, `GetHashKey('NAME')`, or SCREAMING_SNAKE_CASE name (`SET_ENTITY_COORDS`, `GetPedHealth`) → `lookup_native({ hash })` or `lookup_native({ name })`. O(1), exact. Native hashes are 64-bit (`0x06843DA7060A026B`). 2. Game-data asset — ped model (`a_c_bear_01`), weapon (`weapon_pistol_volcanic`), object/prop (`p_safe01x`), door (model name or numeric/hex hash), vehicle (`ArmySupplyWagon`). 32-bit jenkins hashes (`0xBCFD0E7F`). → `asset_lookup({ name })`, `asset_lookup({ hash })`, or `asset_lookup({ search, type? })`. O(1) structured — returns hash + canonical name + per-type metadata (peds: variants + relationship group, weapons: group, doors: coords + model hash). Use this instead of grepping `peds_list.lua` + cross-referencing `RELATIONSHIP/README.md`. 3. Other exact literal token — a walkstyle/clipset (`MP_Style_Casual`, `mech_loco_m@`), a CPED config flag (`PCF_DisablePlayerAutoHolster`), a scenario key (`MAGGIE_SEAT_CHAIR_DESK_WRITING`), a jo_libs API symbol (`jo.menu.create`, `jo.callback.register`), an audio bank or animation dict name, or any string you'd grep for → `grep_docs({ pattern })`. REQUIRED for the largest rdr3_discoveries data tables (audio_banks, ingameanims_list, cloth_drawable_albedo_normal_material, cloth_hash_names, megadictanims, entity_extensions___particleEffect, imaps_with_coords, propsets_list, vehicle_bones) — those are only preview-indexed for embeddings, so `semantic_search` won't find tokens in them. Once grep returns a hit at `path:line` in one of these, read the surrounding block with `read_lines({ path, start, end })` — `get_document` can't slice arbitrary line ranges. 4. Behavior / concept / "how do I X" — you don't know any specific name, just what you want ("teleport player", "apply combat style", "spawn horse", "inventory add item", "show notification", "build a menu") → `semantic_search({ query })`. Hybrid by default (vector + lexical fused via RRF) so it ALSO handles exact-token queries like `addItem`, `weapon_pistol_volcanic`, `MP_Style_Casual`. Optionally `mode=lexical` for pure BM25 or `mode=semantic` for pure vector. Optionally `category=vorp|rsgcore|oxmysql|natives|discoveries|jo_libs` to narrow. Community findings (`share_finding`) are merged into results by default; use `category=learnings` to return only findings. 5. Enumerate what exists — `list_namespaces` (structure), `browse({ category, namespace })` (file paths). 6. Have a known doc path — `get_document({ path })` for full markdown or a section `heading`; `read_lines({ path, start, end })` for an exact 1-based line range (e.g. reading around a `grep_docs` hit in a large or preview-only lua table, where `get_document` can't slice offsets). For individual natives prefer `lookup_native` instead. 7. Solved something non-trivial that wasn't in the docs — `share_finding({ title, body })`. Helps the next agent. Skip if it's project-specific or you're guessing. 8. About to write code that calls natives in JS/TS or Lua — `get_invoke_guide({ language })` ONCE per session. Loads the calling-convention reference (result modifiers, type mapping, gotchas) into context. Native doc pages only contain Lua examples; this guide is how you translate them to JS/TS correctly. Rules: - ALWAYS resolve unknown hashes/names before suggesting changes around them — do not guess parameter order or types. - Exact tokens → grep, not semantic_search. "shotgun hash" → `grep_docs({ pattern: "shotgun", category: "discoveries" })`, not embeddings. - Concepts → semantic_search, not grep. "how to damage a ped" → semantic_search. - Framework calls (`exports.vorp_core:...`, `QBCore.Functions...`) → semantic_search with `category=vorp|rsgcore|oxmysql`. - jo_libs / Jump-On-Studios resources (`jo.*` API, framework-bridge, hooks/actions/filters, RedM scripts like housing/stable/camp-builder) → semantic_search or grep with `category=jo_libs`. - Hash and grep lookups are cheap — prefer over guessing. - lookup_native results include `warnings[]` — read them before writing code. They flag gotchas (Vector3 needs InvokeNative, entity-creation needs cleanup, `*` pointer params are buffers/out-slots, `*_THIS_FRAME`/`DRAW_*` are per-frame, etc.). - RedM string→hash: build Hash args from name strings with `GetHashFromString(name)` — the joaat-equivalent RedM global, NOT in the native list (distinct from its inverse `GET_STRING_FROM_HASH_KEY`). Needed for component categories, control actions, texture assets, blip colors, game-event names. - Vector3-returning natives MUST use Citizen.InvokeNative + Citizen.ResultAsVector() in JS/TS — the Lua wrapper doesn't exist. - Entity-spawning natives (CREATE_PED, CREATE_VEHICLE, …) — always null-check the return and register cleanup on resource stop. - When a finding is linked to a native (findings[] in lookup_native results), read it — it documents a real gotcha someone hit in production.
Known tools 10
list_namespacesOrient yourself: list available doc categories and their namespaces.
Inferred read-onlyget_documentFetch full markdown of a doc by `path` (as returned by `browse`, `semantic_search`, or `grep_docs`).
Inferred read-onlyread_linesRead an exact line range from a raw doc file by absolute line number — the windowed-read companion to `grep_docs`.
Inferred read-onlyasset_lookupResolve a RedM game-data asset (ped model, weapon, object, door, vehicle) by exact name, 32-bit hash, or partial-name search.
Inferred read-onlyshare_findingShare a verified finding back to the docs corpus so the next agent can find it.
Inferred read-onlyget_invoke_guideLoad the calling-convention reference for RedM/RDR3 natives in `js` or `lua`.
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.redm-mcp]
url = "https://redm-mcp.fivem.no/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"redm-mcp": {
"type": "http",
"url": "https://redm-mcp.fivem.no/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: redm-mcp
Remote MCP URL: https://redm-mcp.fivem.no/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"redm-mcp": {
"url": "https://redm-mcp.fivem.no/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"redm-mcp": {
"type": "http",
"url": "https://redm-mcp.fivem.no/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "redm-mcp",
"transport": "streamable-http",
"url": "https://redm-mcp.fivem.no/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for fivem.no was fetched 2026-09-04T22:51:38.639Z.
fivem.no is assessed as Trusted: Domain has an established technology history spanning over a year.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.