RPScripts FiveM Developer
FiveM dev tools: find resources, check compatibility, validate Lua and server.cfg, generate jobs
使うべきか
品質と安全性
検出事項(5)
- HIGH
- MEDIUMvalidate_server_cfg 内
- LOWlist_categories 内
- LOWget_download_url 内
- INFOvalidate_server_cfg 内
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"fivem": {
"url": "https://rpscripts.net/mcp"
}
}
}リモートエンドポイント
https://rpscripts.net/mcpstreamable-httpできること
ツール一覧
ツール(13)
🟢search_products(query, frameworks, category, min_price_usd, max_price_usd, ...)
Search the RPScripts catalogue of FiveM scripts, MLOs, server packs, vehicles and assets. Filter by framework, category and USD price; results are ranked by relevance when a query is given, otherwise by popularity. Only published, listed products. 24 results per page.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"description": "Search terms, e.g. \"qbcore police job\" or \"mechanic mlo\"",
"type": "string",
"maxLength": 200
},
"frameworks": {
"description": "Only products listed for any of these frameworks",
"maxItems": 5,
"type": "array",
"items": {
"type": "string",
"enum": [
"esx",
"qbcore",
"qbox",
"standalone",
"vrp"
]
}
},
"category": {
"description": "Category path from list_categories, e.g. \"fivem-job-scripts/police-scripts\"",
"type": "string",
"maxLength": 200
},
"min_price_usd": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"max_price_usd": {
"type": "number",
"minimum": 0,
"maximum": 100000
},
"buyable_only": {
"default": false,
"description": "Only products that can be bought right now",
"type": "boolean"
},
"sort": {
"description": "Default: relevance with a query, popular without",
"type": "string",
"enum": [
"relevance",
"popular",
"new",
"price-asc",
"price-desc"
]
},
"page": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 500
},
"limit": {
"default": 10,
"description": "Results to return from the page (max 24)",
"type": "integer",
"minimum": 1,
"maximum": 24
},
"locale": {
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)",
"type": "string",
"enum": [
"en",
"de",
"fr",
"pt",
"es"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_product(slug, locale)
Details of one RPScripts product by slug (from search_products): description, frameworks, version, categories, price, whether it can be bought, and install requirements from RPScripts Lab's static check of the download (dependencies, start order).
入力スキーマ
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"locale": {
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)",
"type": "string",
"enum": [
"en",
"de",
"fr",
"pt",
"es"
]
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_categories(locale)
All RPScripts shop categories (scripts by framework and job, MLOs, vehicles, clothing, server packs …) with their paths and URLs.
入力スキーマ
{
"type": "object",
"properties": {
"locale": {
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)",
"type": "string",
"enum": [
"en",
"de",
"fr",
"pt",
"es"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢check_compatibility(product, files, framework, server_resources, server_build, ...)
Checks whether an RPScripts product (by slug) or your own resource files fit a server: framework (QBCore, Qbox, ESX, vRP, standalone), required resources such as ox_lib, ox_inventory, ox_target or oxmysql, FXServer artifact and game build minimums, OneSync, and conflicts in your resource list. Each check is supported, unsupported or unknown with its evidence; nothing is assumed without a source.
入力スキーマ
{
"type": "object",
"properties": {
"product": {
"description": "Product slug from search_products",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"files": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"content": {
"type": "string",
"maxLength": 512000
}
},
"required": [
"path",
"content"
]
},
"description": "The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed."
},
"framework": {
"description": "Your server's framework",
"type": "string",
"enum": [
"esx",
"qbcore",
"qbox",
"vrp",
"standalone"
]
},
"server_resources": {
"description": "Resources your server starts (names from server.cfg ensure lines)",
"maxItems": 500,
"type": "array",
"items": {
"type": "string",
"pattern": "^[\\w.-]{1,64}$"
}
},
"server_build": {
"description": "FXServer artifact number, e.g. 17000",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"game_build": {
"description": "Enforced GTA V game build, e.g. 3258",
"type": "integer",
"minimum": 1,
"maximum": 100000
},
"onesync": {
"type": "boolean"
},
"check": {
"description": "Resources to check support for, e.g. [\"ox_inventory\", \"ox_target\"]",
"maxItems": 20,
"type": "array",
"items": {
"type": "string",
"pattern": "^[\\w.-]{1,64}$"
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢validate_resource(files, resource_name, framework)
Statically checks a FiveM resource: Lua syntax, fxmanifest.lua directives and referenced files, resource structure, undeclared dependencies, framework API calls against pinned QBCore/Qbox/ESX versions, unknown natives, net-event security and backdoor patterns. Returns diagnostics with severity, rule code, file and line and a fix. Code is parsed, never run.
入力スキーマ
{
"type": "object",
"properties": {
"files": {
"minItems": 1,
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"content": {
"type": "string",
"maxLength": 512000
}
},
"required": [
"path",
"content"
]
},
"description": "The resource's text files (fxmanifest.lua, Lua, JS, HTML, JSON …) with paths relative to the resource folder. Nothing is executed."
},
"resource_name": {
"description": "Folder name of the resource (used for self-references)",
"type": "string",
"pattern": "^[\\w.-]{1,64}$"
},
"framework": {
"description": "Framework to check API calls against; detected from the code when omitted",
"type": "string",
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
]
}
},
"required": [
"files"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢search_docs(query, page, scope, framework, limit)
Searches RPScripts documentation (installation, downloads, server packs, updates, QBCore/Qbox/ESX guides, compatibility, troubleshooting, AI workflow) and the framework API reference RPScripts reads from pinned QBCore, Qbox, ESX, ox_lib, ox_inventory, ox_target and oxmysql sources. Returns matching sections with source URLs. Pass page to read one docs page in full.
入力スキーマ
{
"type": "object",
"properties": {
"query": {
"description": "e.g. \"install a server pack\", \"GetPlayer\", \"AddItem\"",
"type": "string",
"minLength": 2,
"maxLength": 200
},
"page": {
"description": "Docs page path from a result, e.g. \"getting-started/downloads\"",
"type": "string",
"maxLength": 200
},
"scope": {
"default": "all",
"type": "string",
"enum": [
"all",
"docs",
"api"
]
},
"framework": {
"default": "qbcore",
"description": "Framework whose API reference to search",
"type": "string",
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
]
},
"limit": {
"default": 5,
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢validate_server_cfg(config)
Parses and checks an FXServer server.cfg: syntax, argument counts and values, duplicate or conflicting settings, repeated resource starts, framework and ox resource start order, missing dependencies, OneSync/slot conflicts, secrets exposed with set/sets, and placeholder values. Returns issues with line numbers and a suggested fix. The config is processed in memory and never stored; secret values are never echoed.
入力スキーマ
{
"type": "object",
"properties": {
"config": {
"type": "string",
"minLength": 1,
"maxLength": 262144,
"description": "server.cfg text (max 256 KiB)"
}
},
"required": [
"config"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢generate_fxmanifest(preset, author, description, version, shared_scripts, ...)
Generates a valid fxmanifest.lua (fx_version 'cerulean', game 'gta5') for client/server/shared Lua or JS scripts, NUI pages, maps, vehicle data files and dependencies, then validates it with the RPScripts manifest rules. Lua 5.4 is the default runtime, so no lua54 line is written.
入力スキーマ
{
"type": "object",
"properties": {
"preset": {
"default": "basic",
"type": "string",
"enum": [
"basic",
"nui",
"map",
"vehicle"
]
},
"author": {
"type": "string",
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 300
},
"version": {
"type": "string",
"maxLength": 30
},
"shared_scripts": {
"description": "e.g. [\"@ox_lib/init.lua\", \"config.lua\"]",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"client_scripts": {
"description": "e.g. [\"client/*.lua\"] or [\"client.js\"]",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"server_scripts": {
"description": "e.g. [\"@oxmysql/lib/MySQL.lua\", \"server/*.lua\"]",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"files": {
"description": "Files sent to clients (NUI assets, data files)",
"maxItems": 100,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"dependencies": {
"description": "Resources or constraints, e.g. [\"ox_lib\", \"/onesync\"]",
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"ui_page": {
"description": "NUI page (preset nui), default html/index.html",
"type": "string",
"maxLength": 200
},
"data_files": {
"description": "e.g. [{\"type\": \"HANDLING_FILE\", \"path\": \"data/handling.meta\"}]",
"maxItems": 50,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"pattern": "^[A-Z0-9_]{1,64}$"
},
"path": {
"type": "string",
"minLength": 1,
"maxLength": 200
}
},
"required": [
"type",
"path"
]
}
},
"node_version": {
"description": "Set for server-side JavaScript using Node 22 features",
"type": "string",
"enum": [
"22"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢create_job(framework, preset, name, label, spec)
Generates a complete job resource with the RPScripts Jobs Creator for QBCore, Qbox or ESX: job definition and grades with salaries and boss flags, duty, stash, garage, armory, shop, crafting, harvest/process/sell, boss office, wardrobe, teleports, billing, dispatch, player and vehicle actions, plus the framework install entries (shared jobs entry or ESX SQL) and a README. Start from a template (preset) and/or pass a full spec. The output is checked statically with RPScripts Lab before it is returned. Templates: police (Mission Row police department with command, evidence, armory and motor pool.); sheriff (Sandy Shores sheriff's office for a county force next to the city police.); ambulance (Pillbox Hill EMS with supplies, locker room uniforms and an ambulance bay.); fire (Fire station with turnout gear, an equipment rack and the apparatus bay.); security (Private security firm with uniforms, a gear cage and non-lethal tools.); mechanic (Repair shop with a tool counter, upgrade bench, tow trucks and vehicle actions.); taxi (Downtown Cab Co. with a dispatcher, a vehicle pool and metered fares.); delivery (Parcel depot with a storage room and a van and box truck pool.); trucking (Elysian Island freight depot with semis, box trucks and a dispatch office.); cardealer (Showroom with an accessories counter, test drive lot and large invoices.); business (A neutral starter for shops, clubs and any other legal business.); restaurant (Restaurant with a kitchen that cooks burgers, fries and drinks from ordered supplies.); fishing (Alamo Sea pier with two fishing spots, a filleting table and a fish market.); mining (Davis Quartz quarry: dig stone and ore, smelt iron and gold bars, sell the output.); gang (Grove Street crew with a stash house, a safe and a weapons cache.)
入力スキーマ
{
"type": "object",
"properties": {
"framework": {
"type": "string",
"enum": [
"qbcore",
"qbox",
"esx"
]
},
"preset": {
"description": "Template to start from",
"type": "string",
"enum": [
"police",
"sheriff",
"ambulance",
"fire",
"security",
"mechanic",
"cardealer",
"taxi",
"delivery",
"trucking",
"business",
"restaurant",
"fishing",
"mining",
"gang"
]
},
"name": {
"description": "Job id (overrides the template's), e.g. police",
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,31}$"
},
"label": {
"description": "Display name (overrides the template's)",
"type": "string",
"minLength": 1,
"maxLength": 50
},
"spec": {
"description": "A full Jobs Creator spec; replaces the template. Its shape is rpcrate.job.json from any create_job result: generate a preset, edit that file, pass it here.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": true
}
},
"required": [
"framework"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢lookup_server(server)
Looks up a public FiveM server by cfx.re join code/link (e.g. cfx.re/join/abc123) or public host:port. Returns what the server or the Cfx server list publishes: hostname, player count, slots, artifact/build, OneSync, tags, public variables and resources. Private and local addresses are refused; offline servers are reported as unreachable. Player names and identifiers are not returned.
入力スキーマ
{
"type": "object",
"properties": {
"server": {
"type": "string",
"minLength": 5,
"maxLength": 300,
"description": "Join code, cfx.re/join link or \"host:port\""
}
},
"required": [
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_purchases(page, limit, locale)
Lists the RPScripts products the signed-in customer owns (active purchases, including bundle items): product id, name, product page, files with their index for get_download_url, download availability and install requirements. Requires signing in to RPScripts.
入力スキーマ
{
"type": "object",
"properties": {
"page": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100
},
"limit": {
"default": 25,
"type": "integer",
"minimum": 1,
"maximum": 50
},
"locale": {
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)",
"type": "string",
"enum": [
"en",
"de",
"fr",
"pt",
"es"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_download_url(product_id, file_index)
Creates a signed download link for one file of a product the signed-in customer owns (from list_purchases). The link is personal, works for 5 minutes and counts toward the limit of 20 downloads per product per day. Requires signing in.
入力スキーマ
{
"type": "object",
"properties": {
"product_id": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"file_index": {
"default": 0,
"type": "integer",
"minimum": 0,
"maximum": 999
}
},
"required": [
"product_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴generate_script(prompt, framework, project_id, name, confirm_credit_use, ...)
Builds or changes a FiveM resource with the RPScripts AI generator (QBCore, Qbox, ESX or standalone): the agent writes Lua/NUI files, checks them (syntax, manifest, framework API) and repairs problems. Uses the signed-in customer's AI credits (typically about 3 per script). Spending requires confirm_credit_use: true, which you may only set after the user explicitly agreed to spend credits. Without a prompt, returns the status and files of an existing project. Long runs continue in the background: call again with the project_id and no prompt to collect the result.
入力スキーマ
{
"type": "object",
"properties": {
"prompt": {
"description": "What to build or change",
"type": "string",
"minLength": 1,
"maxLength": 20000
},
"framework": {
"description": "For a new project (default qbcore)",
"type": "string",
"enum": [
"qbcore",
"qbox",
"esx",
"standalone"
]
},
"project_id": {
"description": "Continue an existing project instead of creating one",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"name": {
"description": "Name for a new project",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"confirm_credit_use": {
"default": false,
"description": "true only after the user explicitly approved spending AI credits",
"type": "boolean"
},
"max_credits": {
"description": "Upper limit of credits this run may use (default 9)",
"type": "number",
"minimum": 0.5,
"maximum": 500
},
"locale": {
"default": "en",
"description": "Language of names, descriptions and URLs (en, de, fr, pt, es)",
"type": "string",
"enum": [
"en",
"de",
"fr",
"pt",
"es"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス