# redm-mcp MCP server

RedM / RDR3 docs MCP server: native lookups, semantic search, VORP, RSGCore, oxmysql.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cmoen11-redm-mcp
- Repository: https://github.com/Cmoen11/redm-mcp-public
- Website: https://redm-mcp.fivem.no/dashboard

## Install
- Endpoint: https://redm-mcp.fivem.no/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://redm-mcp.fivem.no/mcp

## Tools
- semantic_search (Hybrid search RedM docs (semantic + lexical)) - Search RedM/RDR3 docs by behavior, concept, OR exact token. Use when you don't have a specific native hash/name (use `lookup_native`) and the term isn't a known asset name in a large data table (use `grep_docs`). Hybrid mode (default) handles 'how do I X' queries ('teleport player', 'spawn vehicle', 'inventory add item') AND tokens ('addItem', 'weapon_pistol_volcanic', 'CPED_CONFIG_FLAG_') — fused via RRF over vector + BM25. Returns ranked snippets (path, breadcrumb, heading, snippet, score). Call `get_document({path, heading})` for full chunk content. `mode=semantic` for pure vector; `mode=lexical` for pure BM25. Filter via `category=vorp|rsgcore|oxmysql|natives|discoveries|jo_libs|learnings` or `namespace`. Community findings merged by default; `category=learnings` returns only findings. Endpoint: https://redm-mcp.fivem.no/mcp
- list_namespaces (List RedM doc namespaces) - Orient yourself: list available doc categories and their namespaces. Use once at session start (or when unsure) before applying a `category=` / `namespace=` filter to `browse` / `semantic_search`. NOT a content search. Categories: `natives` (PLAYER, ENTITY, VEHICLE, …), `vorp`, `rsgcore`, `oxmysql`, `discoveries` (AI, weapons, peds, animations, clothes, objects, …), `jo_libs` (menu, notification, callback, framework-bridge, …, dev_resources, redm_scripts), `guides`, `learnings`. Endpoint: https://redm-mcp.fivem.no/mcp
- browse (Browse RedM doc paths) - Enumerate doc paths in a category/namespace. Use to discover what exists before calling `get_document` or a targeted `grep_docs`. NOT a content search — use `semantic_search` for behavior/concept lookups or `grep_docs` for token lookups. Returns `{path, title, chunks}[]`. Endpoint: https://redm-mcp.fivem.no/mcp
- get_document (Get full RedM doc) - Fetch full markdown of a doc by `path` (as returned by `browse`, `semantic_search`, or `grep_docs`). Use to retrieve full content after a search snippet looks promising. Pass `heading` (full breadcrumb like `Character Management > Inventory Management`, or just the leaf — case-insensitive, fuzzy) to fetch only that section. Deep-heading matches auto-prepend the H2 parent's intro for context. For individual script natives prefer `lookup_native`. For code symbols (`addItem`) or content inside the largest rdr3_discoveries lua data tables (preview-only here) use `grep_docs`. Community findings use `learning:N` paths, not `learnings/<slug>.md`. On 404 returns available headings + cross-file hints. Endpoint: https://redm-mcp.fivem.no/mcp
- grep_docs (Literal/regex grep over raw doc files) - Find an EXACT literal token in raw doc files (markdown + lua). Use for specific weapon/ped/animation/prop/interior/zone names (`weapon_pistol_volcanic`, `a_c_bear_01`, `p_campfire01x`), known hashes (`0x020D13FF`), walkstyles/clipsets (`MP_Style_Casual`, `mech_loco_m@`), or any string you'd `grep` for. NOT for behavior/concept queries (use `semantic_search`) or script-native hash/name lookup (use `lookup_native`). REQUIRED for tokens inside the largest rdr3_discoveries data tables (audio_banks, ingameanims_list, cloth_drawable, cloth_hash_names, object_list, megadictanims, entity_extensions, imaps_with_coords, propsets_list, vehicle_bones) — only preview-indexed for embeddings, so `semantic_search` will NOT find tokens in them. Returns matched lines with path + line number. Lines >400 chars are truncated — fetch full context via `get_document({path})`. Endpoint: https://redm-mcp.fivem.no/mcp
- lookup_native (Lookup RedM native by hash or name) - Resolve a RedM/RDR3 SCRIPT native by hash or name — O(1), exact. Use whenever you see `Citizen.InvokeNative(0x...)`, `Citizen.invokeNative('0x...')`, `GetHashKey('NAME')`, or a SCREAMING_SNAKE_CASE native name (e.g. `SET_ENTITY_COORDS`, `GetPedHealth`) in Lua/JS/TS. NOT for game-data hashes (weapon/ped/animation names) — use `grep_docs`. Pass `hash` (0x… optional, case-insensitive) or `name` (exact first, ILIKE substring fallback). Returns name, hash, namespace, return type, params, description, full content, plus `findings[]` — community gotchas linked to that native. Inspect `findings[].id` and call `get_document({path: 'learning:<id>'})` for full body. Endpoint: https://redm-mcp.fivem.no/mcp
- asset_lookup (Lookup RedM game-data asset (ped/weapon/object/door/vehicle)) - Resolve a RedM game-data asset (ped model, weapon, object, door, vehicle) by exact name, 32-bit hash, or partial-name search. O(1) structured lookup against pre-parsed discoveries tables — replaces the common workflow of grepping `a_c_bear_01` in peds_list.lua, then cross-referencing RELATIONSHIP/README.md for its relationship group. Returns: type, name, normalized hash (`0x` + 8 uppercase hex), source file + line, plus type-specific metadata (peds get `variants` + `relationship`, weapons get `group`, doors get `coords` + `model_hash`, objects get `category`/`subcategory`). Latency <20ms. Catalog ~10,000 entries.

NOT for:
- **Script natives** like `SET_ENTITY_COORDS`, `GetPedHealth`, or hashes from `Citizen.InvokeNative(0x...)` — use `lookup_native`. Native hashes are 64-bit (`0x06843DA7060A026B`); asset hashes are 32-bit (`0xBCFD0E7F`). Different namespaces, never collide.
- **Flag enums, settings, clipsets, scenario keys** like `CPED_CONFIG_FLAGS`, `MP_Style_Casual`, `mech_loco_m@`, `MAGGIE_SEAT_CHAIR_DESK_WRITING`. Those live as tokens in lua source but not in this catalog. Use `grep_docs`.
- **Behavior queries** ("which animal is the bear", "weapons in the lemat family") — use `semantic_search`.

Pass exactly ONE of `name` / `hash` / `search`. Optional `type` narrows to a category (useful when a fragment like "horse" hits both peds and vehicles). Endpoint: https://redm-mcp.fivem.no/mcp
- share_finding (Share a verified finding back to the docs) - Share a verified finding back to the docs corpus so the next agent can find it. Use AFTER solving a non-trivial problem to record what would have saved you time: a gotcha, a working parameter combo, an undocumented constraint, a relationship between two natives that isn't obvious. Other agents will find this via `semantic_search` (findings are merged into default results; `category: 'learnings'` returns only findings).

WHEN to use:
- You burned multiple iterations on something not in the docs.
- You discovered an undocumented quirk (param order, hash collision, framework export that isn't in `vorp`/`rsgcore`).
- You verified that a specific combination works (e.g. native A + flag B for behavior C).

WHEN NOT to use:
- The information is already in the docs (verify with `semantic_search`/`grep_docs` first).
- You're guessing — only contribute verified findings.
- It's project-specific (your repo's auth flow, your DB schema). Keep it general to RedM/RDR3.

Keep `title` short and searchable. `body` should explain WHY, not just WHAT — context, the trap, the fix. Endpoint: https://redm-mcp.fivem.no/mcp
- get_invoke_guide (Get native invocation guide for a language) - Load the calling-convention reference for RedM/RDR3 natives in `js` or `lua`. Call ONCE per session before writing native-calling code — every native doc page only shows Lua examples, so JS/TS authors need this to translate correctly. Covers result modifiers (`Citizen.resultAsInteger/Float/String/Vector`), `Citizen.invokeNative` vs `invokeNativeByHash`, type mapping, pointer-arg gotchas, worked examples. Cheap, no embedding. Endpoint: https://redm-mcp.fivem.no/mcp

## Resources
Not captured

## Prompts
Not captured

## Metadata
- Owner: io.github.Cmoen11
- Version: 0.1.0
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: May 2, 2026
- Source: https://registry.modelcontextprotocol.io
