@extends('docs.layout') @section('title', 'Full Documentation - FiveM MCP Server') @section('content')
A comprehensive Model Context Protocol (MCP) server for FiveM (GTA5) development, built with Laravel MCP. This server provides AI assistants with powerful tools to help you develop FiveM resources more efficiently.
Choose how you want to connect to the FiveM MCP server:
Easy setup! Connect to a hosted MCP server. This is the easiest option and works from anywhere without any local setup.
Edit your configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd this configuration (replace with your actual server URL):
{
"mcpServers": {
"fivem": {
"url": "https://your-domain.com/fivem"
}
}
}
If using VSCode with the Cline extension, edit your settings:
settings.json{
"mcp": {
"servers": {
"fivem": {
"url": "https://your-domain.com/fivem"
}
}
}
}
💡 Tip: After configuring Claude Desktop, completely quit and restart the application for changes to take effect.
Search FiveM, QBCore, and COX MySQL documentation for specific topics.
query (required): Search query (e.g., "events",
"natives", "mysql", "database")category (optional): Filter by category (all,
scripting, natives, networking, resources, qbcore, coxdocs)Search for QBCore callbacks and exports
How do I query the database with COX MySQL?
Look up GTA5/FiveM native functions.
function_name (required): Native function name
(e.g., "GetPlayerPed", "SetEntityCoords")language (optional): Code example language (lua
or js)GetPlayerPed, SetEntityCoords, GetEntityCoordsRegisterNetEvent, TriggerServerEvent, TriggerClientEventESX.GetPlayerFromIdQBCore.Functions.GetPlayerGenerate a fxmanifest.lua file.
resource_name (required): Resource nameauthor (optional): Author namedescription (optional): Resource descriptionversion (optional): Version number (default:
"1.0.0")script_type (optional): lua or js (default: lua)
include_client (optional): Include client scripts
(default: true)include_server (optional): Include server scripts
(default: true)framework (optional): standalone, esx, or qbcore
(default: standalone)Generate a manifest for an ESX resource called "my-shop"
Get information about FiveM, ESX, and QBCore events.
event_name (optional): Specific event name to
look upevent_type (optional): Filter by type (all, core,
esx, qbcore)language (optional): Code example language (lua
or js)Show me all core FiveM events
Look up the QBCore:Client:OnPlayerLoaded event
List all ESX events
Generate complete resource boilerplate code.
resource_name (required): Resource nameframework (optional): standalone, esx, or qbcore
(default: standalone)script_type (optional): lua or js (default: lua)
include_nui (optional): Include NUI files
(default: false)Generate boilerplate for a QBCore resource with NUI called "admin-panel"
Get information about QBCore framework events.
event_name (optional): Specific event name to
look upevent_category (optional): Filter by category
(all, player, job, inventory, vehicle, money)language (optional): Code example language (lua
or js)What's the QBCore:Client:OnPlayerLoaded event?
Show me all QBCore player events
List all QBCore inventory events
Look up QBCore functions and exports.
function_name (required): QBCore function name
(e.g., "QBCore.Functions.GetPlayer", "AddMoney")language (optional): Code example language (lua
or js)QBCore.Functions.GetPlayer, QBCore.Functions.GetPlayerDataAddItem, RemoveItem, GetItemByNameAddMoney, RemoveMoney, GetMoneySetJob, GetJobAddVehicle, DeleteVehicleHow do I use the AddMoney function in QBCore?
Get information about COX MySQL events and callbacks.
event_name (optional): Specific event name to
look upevent_type (optional): Filter by type (all,
query, connection, transaction, error)language (optional): Code example language (lua
or js)What are the COX MySQL connection events?
Show me all COX transaction events
How do I handle query errors in COX?
Look up COX MySQL functions and methods.
function_name (required): COX function name
(e.g., "MySQL.query", "MySQL.insert")language (optional): Code example language (lua
or js)MySQL.query, MySQL.single, MySQL.scalarMySQL.insert, MySQL.updateMySQL.transaction.begin, MySQL.transaction.commitMySQL.ready, MySQL.getStatusMySQL.prepare (prepared statements)
How do I query the database safely with prepared statements?
MCP Resources provide read-only reference documentation that AI assistants can access:
Common FiveM code patterns and snippets for quick reference.
URI: fivem://snippets/common
Includes patterns for distance checks, event handlers, threads with cleanup, database queries, and NUI callbacks in both Lua and JavaScript.
FiveM development best practices and optimization tips.
URI: fivem://guides/best-practices
Covers performance optimization, security best practices, code organization, resource management, testing, and common pitfalls.
FiveM database query examples and common patterns for COX MySQL.
URI: fivem://guides/database-queries
Covers CRUD operations, prepared statements, transactions, async queries, error handling, performance tips, and common database patterns (SELECT, INSERT, UPDATE, DELETE).
MCP Prompts are pre-built prompt templates for common tasks:
Create a new FiveM resource with framework and language selection.
Parameters: resource_name, framework (standalone/esx/qbcore), language (lua/js)
Debug common FiveM issues and errors with detailed analysis.
Parameters: issue (description), error_message (from console)
Optimize FiveM script performance with detailed suggestions.
Parameters: code (script to optimize), script_type (client/server/shared)
Convert code between Lua and JavaScript with proper syntax.
Parameters: code, from (lua/js), to (lua/js)
Add ESX or QBCore framework integration to existing resource.
Parameters: code (current resource), current_framework, target_framework (esx/qbcore)
You can test the MCP server locally using the inspector:
php artisan mcp:inspector fivem
This will open the MCP Inspector in your browser where you can test all the tools interactively.
1. Create a new tool class in app/Mcp/Tools/:
<?php
namespace App\Mcp\Tools;
use Illuminate\Contracts\JsonSchema\JsonSchema;
use Laravel\Mcp\Request;
use Laravel\Mcp\Response;
use Laravel\Mcp\Server\Attributes\Description;
use Laravel\Mcp\Server\Tool;
#[Description('Your tool description')]
class YourTool extends Tool
{
public function handle(Request $request): Response
{
// Tool logic here
return Response::text('Result');
}
public function schema(JsonSchema $schema): array
{
return [
'param' => $schema->string()->required(),
];
}
}
2. Register the tool in app/Mcp/Servers/FiveMServer.php:
protected array $tools = [
// ... existing tools
\App\Mcp\Tools\YourTool::class,
];
Format code with Laravel Pint:
vendor/bin/pint
Both Lua and JavaScript are fully supported across all tools and generators.
Contributions are welcome! Areas for expansion:
MIT License