@extends('docs.layout') @section('title', 'Full Documentation - FiveM MCP Server') @section('content')

FiveM Development MCP Server

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.

Installation & Connection

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.

Claude Desktop Configuration:

Edit your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Add this configuration (replace with your actual server URL):

{
  "mcpServers": {
    "fivem": {
      "url": "https://your-domain.com/fivem"
    }
  }
}

VSCode Configuration (Cline Extension):

If using VSCode with the Cline extension, edit your settings:

  • Open VSCode Settings (JSON)
  • Add to your global or workspace 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.

Available Tools

1. SearchFiveMDocs

Search FiveM documentation for specific topics.

Parameters:

  • query (required): Search query (e.g., "events", "natives", "manifest")
  • category (optional): Filter by category (all, scripting, natives, networking, resources)

Example:

Search FiveM docs for "network events"

2. GetNativeFunction

Look up GTA5/FiveM native functions.

Parameters:

  • function_name (required): Native function name (e.g., "GetPlayerPed", "SetEntityCoords")
  • language (optional): Code example language (lua or js)

Common Native Examples:

  • Common natives: GetPlayerPed, SetEntityCoords, GetEntityCoords
  • CFX natives: RegisterNetEvent, TriggerServerEvent, TriggerClientEvent
  • ESX: ESX.GetPlayerFromId
  • QBCore: QBCore.Functions.GetPlayer

3. GenerateManifest

Generate a fxmanifest.lua file.

Parameters:

  • resource_name (required): Resource name
  • author (optional): Author name
  • description (optional): Resource description
  • version (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)

Example:

Generate a manifest for an ESX resource called "my-shop"

4. GetEventReference

Get information about FiveM events.

Parameters:

  • event_name (optional): Specific event name to look up
  • event_type (optional): Filter by type (all, core, esx, qbcore)
  • language (optional): Code example language (lua or js)

Examples:

Show me all core FiveM events
Look up the playerConnecting event
List all ESX events

5. GenerateResourceBoilerplate

Generate complete resource boilerplate code.

Parameters:

  • resource_name (required): Resource name
  • framework (optional): standalone, esx, or qbcore (default: standalone)
  • script_type (optional): lua or js (default: lua)
  • include_nui (optional): Include NUI files (default: false)

Example:

Generate boilerplate for a QBCore resource with NUI called "admin-panel"

Available Resources

MCP Resources provide read-only reference documentation that AI assistants can access:

1. Code Snippets

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.

2. Best Practices

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.

3. Framework Comparison

Comparison of FiveM frameworks: Standalone, ESX, and QBCore.

URI: fivem://guides/framework-comparison

Complete comparison with pros/cons, code examples, common functions, and migration guides.

Available Prompts

MCP Prompts are pre-built prompt templates for common tasks:

1. Create New Resource

Create a new FiveM resource with framework and language selection.

Parameters: resource_name, framework (standalone/esx/qbcore), language (lua/js)

2. Debug Issues

Debug common FiveM issues and errors with detailed analysis.

Parameters: issue (description), error_message (from console)

3. Optimize Performance

Optimize FiveM script performance with detailed suggestions.

Parameters: code (script to optimize), script_type (client/server/shared)

4. Convert Language

Convert code between Lua and JavaScript with proper syntax.

Parameters: code, from (lua/js), to (lua/js)

5. Add Framework Integration

Add ESX or QBCore framework integration to existing resource.

Parameters: code (current resource), current_framework, target_framework (esx/qbcore)

Testing the Server

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.

Development

Adding New Tools

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,
];

Code Formatting

Format code with Laravel Pint:

vendor/bin/pint

Supported Frameworks

  • Standalone: Basic FiveM resources without framework dependencies
  • ESX: ESX Framework (es_extended)
  • QBCore: QBCore Framework (qb-core)

Scripting Languages

Both Lua and JavaScript are fully supported across all tools and generators.

Resources

Contributing

Contributions are welcome! Areas for expansion:

  • More native functions in the database
  • Additional framework support (vRP, etc.)
  • More event types
  • Advanced code generators
  • Database query builders

License

MIT License

@endsection