RPScripts FiveM Developer
FiveM dev tools: find resources, check compatibility, validate Lua and server.cfg, generate jobs
我该使用它吗
质量与安全性
发现(5)
- HIGH
- MEDIUM在 validate_server_cfg 中
- LOW在 list_categories 中
- LOW在 get_download_url 中
- INFO在 validate_server_cfg 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `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"
}社区
证据