Odel
redm-mcp

redm-mcp

@cmoen11Data & Analytics1Updated 1mo ago

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

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

redm-mcp — RedM / RDR3 docs MCP server

Model Context Protocol (MCP) server for RedM / RDR3: native lookups (hash ↔ name), semantic search, framework docs (VORP, RSGCore, oxmysql), and the rdr3_discoveries community data (peds, weapons, animations, AI flags, props, audio banks). Gives AI coding agents (Claude Code, Cursor, Claude Desktop, VS Code Copilot, Zed, …) exact answers instead of guesses.

Runs as a hosted HTTP-transport MCP at https://redm-mcp.fivem.no/mcp — no local install, no auth, just point your client at it.

Install in VS Code Install in VS Code Insiders Add to Cursor

This repository contains only installation/usage docs and serves as the issue tracker. The server source code is proprietary and not distributed. The hosted endpoint is free to use.

Why

When an agent reads RedM code it typically encounters:

Citizen.InvokeNative(0x09C28F828EE674FA, player, 1.5, 5000)

Without a lookup, the agent guesses at parameters and semantics. With this server:

lookup_native({ hash: "0x09C28F828EE674FA" })
→ BOOST_PLAYER_HORSE_SPEED_FOR_TIME(player Player, speedBoost float, duration int)

The server advertises its own usage via MCP instructions — no skill or extra client config needed.

Tools

ToolUse
lookup_nativeExact lookup by hash or name. O(1). Use for Citizen.InvokeNative(0x...) or SCREAMING_SNAKE_CASE names.
semantic_searchSearch by behavior/concept ("teleport player", "spawn horse").
grep_docsRegex/literal grep across raw doc files. Required for the large rdr3_discoveries data tables (audio_banks, ingameanims, …) which are only preview-indexed in embeddings.
list_namespacesList categories and namespaces.
browseList document paths under a category/namespace.
get_documentFetch full markdown for a doc path.

Client setup

All clients connect to https://redm-mcp.fivem.no/mcp. No authentication required.

VS Code and Cursor users: click an install badge above for one-click setup. For everything else, copy-paste the config below — also available as ready-made files in examples/.

Claude Code

claude mcp add --transport http redm-mcp https://redm-mcp.fivem.no/mcp

Or edit ~/.claude.json manually:

{
  "mcpServers": {
    "redm-mcp": {
      "type": "http",
      "url": "https://redm-mcp.fivem.no/mcp"
    }
  }
}

Cursor

Edit ~/.cursor/mcp.json (or .cursor/mcp.json in a project root):

{
  "mcpServers": {
    "redm-mcp": {
      "url": "https://redm-mcp.fivem.no/mcp"
    }
  }
}

Restart Cursor. Check Settings → MCP for green status.

Claude Desktop

Claude Desktop doesn't support HTTP MCP directly — use mcp-remote as a proxy. Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "redm-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://redm-mcp.fivem.no/mcp"
      ]
    }
  }
}

Restart Claude Desktop.

VS Code (Copilot / Continue)

.vscode/mcp.json in a project root:

{
  "servers": {
    "redm-mcp": {
      "type": "http",
      "url": "https://redm-mcp.fivem.no/mcp"
    }
  }
}

Zed

~/.config/zed/settings.json:

{
  "context_servers": {
    "redm-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "mcp-remote",
          "https://redm-mcp.fivem.no/mcp"
        ]
      }
    }
  }
}

Other clients (generic)

  • HTTP transport clients: point to https://redm-mcp.fivem.no/mcp
  • stdio-only clients: use mcp-remote as a proxy

Verify it works

  1. curl https://redm-mcp.fivem.no/health{"ok":true}
  2. curl https://redm-mcp.fivem.no/ingest-status → shows version and last ingested timestamp
  3. In your client: ask the agent to look up 0x09C28F828EE674FA — should return BOOST_PLAYER_HORSE_SPEED_FOR_TIME

Endpoints

PathAuthPurpose
POST /mcpnoMCP protocol
GET /healthnoLiveness
GET /ingest-statusno{ current, last, ingestedAt, upToDate }
GET /statsnoUsage stats (tool counters, durations, breakdowns). Metadata only — no queries or secrets stored.
GET /dashboardnoHTML dashboard over /stats.

Example prompts

See examples/prompts.md for things to try once installed (native lookups, behavior searches, framework / inventory questions, debugging).

Issues / feedback

Bug, missing docs, incorrect native lookups, requests for new tools? Open an issue.

Doc sources

Indexed upstreams: