Skip to content
RPScripts
RPScripts Docs

RPScripts MCP tool reference

Every tool of the RPScripts MCP server with its inputs, what it returns and an example request.

All tools return JSON as structuredContent and the same JSON as text. Errors come back as a tool result with isError: true and { "error": "<code>", "message": "…" }, so your assistant can explain them. Every tool takes its arguments as one JSON object; the examples below show that object.

Catalogue

search_products

Searches published, listed RPScripts products. With a query, results are ranked by relevance (the same ranking as the shop search, with a typo-tolerant fallback); without one, by popularity.

InputDescription
querySearch terms, optional
frameworksAny of esx, qbcore, qbox, standalone, vrp
categoryCategory path from list_categories, e.g. fivem-job-scripts/police-scripts
min_price_usd, max_price_usdPrice range in USD
buyable_onlyOnly products that can be bought now
sortrelevance, popular, new, price-asc, price-desc
page, limit24 products per page; limit returns the first 1–24 of the page
localeen, de, fr, pt or es for names and URLs
Example
{ "query": "police job", "frameworks": ["qbcore"], "max_price_usd": 30, "limit": 5 }

Each result has id, slug, name, price, price_usd_cents, frameworks, creator, purchasable, url and image, plus total, page and page_count.

get_product

Details of one product by slug: description (plain text), version, categories, images, video, price and whether it can be bought. requirements lists the resources the download depends on and a start order, from RPScripts Lab's static check of the files (null lists mean the Lab could not read everything).

list_categories

Every shop category with name, path and url. Use a path as the category filter of search_products.

Development

check_compatibility

Checks a catalogue product (product: slug) or your own resource (files) against your server.

InputDescription
frameworkesx, qbcore, qbox, vrp or standalone
server_resourcesNames your server.cfg starts, e.g. ["qb-core", "ox_lib", "ox_inventory"]
server_buildFXServer artifact number
game_buildEnforced game build
onesynctrue or false
checkResources to ask about, e.g. ["ox_inventory", "ox_target"]
Example
{ "product": "tuner-mechanic-v2", "framework": "qbox", "server_resources": ["qbx_core", "ox_lib", "oxmysql", "ox_inventory"], "server_build": 17000, "onesync": true, "check": ["ox_target"] }

The answer has a verdict and a list of checks, each supported, unsupported or unknown with evidence (catalog_listing, lab_static_analysis, resource_files, ecosystem_manifest, product_description, your_server). Requirements of known resources (qbx_core, qb-core, es_extended, ox_lib, ox_inventory, ox_target, qb-target, qb-inventory) come from their own fxmanifest.lua at a pinned commit, linked in evidence.url. A seller's description alone never makes a check supported.

validate_resource

Statically checks resource files (files: list of { "path", "content" }, up to 200 files and 1.5 MB). Reports Lua syntax errors, manifest problems (missing fx_version/game, listed files that don't exist, unmatched globs, NUI files not in files), undeclared dependencies, framework API calls that don't exist in the pinned QBCore, Qbox or ESX version or run on the wrong side, unknown natives, net events without RegisterNetEvent, unsafe event patterns and backdoor patterns.

Example
{ "files": [
  { "path": "fxmanifest.lua", "content": "fx_version 'cerulean'\ngame 'gta5'\nclient_script 'client.lua'\n" },
  { "path": "client.lua", "content": "RegisterCommand('hi', function() print('hi') end)" }
] }

Each finding has severity (error, warning, info), code, message, fix, path, line and documentation links. The code is parsed, never executed.

validate_server_cfg

Checks a server.cfg text (config, up to 256 KiB): command syntax and arguments, invalid values, duplicate or conflicting settings, repeated starts, slots vs. OneSync, framework and ox start order (oxmysql and ox_lib before the resources that need them), dependencies that are never started, secrets set with set/sets/setr, placeholder values, and the Cfx Portal metadata change. Issues carry line numbers and a suggestion; secret values are never repeated in the answer. partial: true means exec'd files or resource groups were not available, so cross-file checks were skipped.

generate_fxmanifest

Builds an fxmanifest.lua from preset (basic, nui, map, vehicle), metadata (author, description, version), shared_scripts, client_scripts, server_scripts, files, dependencies, ui_page, data_files and node_version, and validates the result.

Example
{ "preset": "nui", "shared_scripts": ["@ox_lib/init.lua", "config.lua"], "client_scripts": ["client/*.lua"], "server_scripts": ["@oxmysql/lib/MySQL.lua", "server/*.lua"], "dependencies": ["ox_lib", "oxmysql"] }

create_job

Generates a job resource with the Jobs Creator for framework qbcore, qbox or esx, from a preset (police, sheriff, ambulance, fire, security, mechanic, taxi, delivery, trucking, cardealer, business, restaurant, fishing, mining, gang) or a full spec. Override the job id and label with name and label. The answer contains every file (manifest, config, client and server Lua, framework install entries, README and rpcrate.job.json) and a static check of the result. To customise, edit rpcrate.job.json from a result and pass it back as spec.

Example
{ "framework": "qbox", "preset": "mechanic", "name": "bennys", "label": "Benny's Motorworks" }

search_docs

Searches the RPScripts docs and the framework API reference (scope: all, docs or api; framework for the API). API entries name the function, side (client/server) and the source repository and commit it was read from. Pass page (from a result) to read a docs page in full.

Example
{ "query": "AddItem", "scope": "api", "framework": "qbox" }

lookup_server

Looks up a public FiveM server by join code, cfx.re/join/… link or public host:port. Returns hostname, players online and slots, artifact and platform, OneSync, tags, public server variables (keys that may hold secrets are dropped) and the resource list. Private, local and reserved addresses are refused before any connection; offline servers come back with reachable: false. Player names and identifiers are not returned.

Your account (sign-in required)

list_purchases

Your active purchases with product_id, name, product url, acquired_at, files (with the index for downloads), download (available, on_hold, no_files) and install requirements. Refunded purchases are not listed. Scope: purchases:read.

get_download_url

A signed download link for one file of a product you own: { "product_id": "…", "file_index": 0 }. The link is personal, valid for 5 minutes and counts toward the website's limit of 20 downloads per product per day. Scope: downloads:create.

generate_script

Runs the RPScripts AI generator for a new project (prompt, framework, name) or an existing one (project_id). The agent writes the files, checks them and repairs problems; the result includes the files, the final check, the credits used and your balance. Scope: ai:generate.

The first call without confirm_credit_use: true spends nothing and returns your balance. Your assistant must ask you before it sets confirm_credit_use; max_credits caps one run (default 9). Long runs continue on the server: call again with the project_id and no prompt to collect the result. Projects appear in your AI workspace.

Example
{ "prompt": "A /repairkit item for QBCore that repairs the closest vehicle with a progress bar", "framework": "qbcore", "confirm_credit_use": true, "max_credits": 6 }