diff --git a/resources/views/docs/documentation.blade.php b/resources/views/docs/documentation.blade.php index ad0a549..c286b9d 100644 --- a/resources/views/docs/documentation.blade.php +++ b/resources/views/docs/documentation.blade.php @@ -3,455 +3,530 @@ @section('title', 'Full Documentation - FiveM MCP Server') @section('content') -
-
-

FiveM Development MCP Server

+
+
+

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. -

+

+ 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:

+ +
+

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. -

+ +
+ +
+
+

+ 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
  • -
+

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"
-    }
-  }
-}
+

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"
+          }
+        }
+      }
+    }
+
-
-

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
  • -
+ +
- - + -
-

- 💡 Tip: After configuring Claude Desktop, completely quit and restart the application for changes to take effect. -

-
- + +
+

Available Tools

- -
-

Available Tools

+ +
+

1. SearchFiveMDocs

+

Search FiveM and QBCore documentation for specific topics.

- -
-

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, qbcore)
  • +
-

Parameters:

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

Example:

+
Search for QBCore callbacks and exports
+
-

Example:

-
Search FiveM docs for "network events"
-
+ +
+

2. GetNativeFunction

+

Look up GTA5/FiveM native functions.

- -
-

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)
  • +
-

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
  • +
+
-

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.

- -
-

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)
  • +
-

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"
+
-

Example:

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

4. GetEventReference

+

Get information about FiveM, ESX, and QBCore events.

- -
-

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)
  • +
-

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 QBCore:Client:OnPlayerLoaded event
+
List all ESX events
+
-

Examples:

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

5. GenerateResourceBoilerplate

+

Generate complete resource boilerplate code.

- -
-

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)
  • +
-

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"
+
-

Example:

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

6. GetQBCoreEventReference

+

Get information about QBCore framework events.

- -
-

Available Resources

-

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

+

Parameters:

+
    +
  • event_name (optional): Specific event name to + look up
  • +
  • event_category (optional): Filter by category + (all, player, job, inventory, vehicle, money)
  • +
  • language (optional): Code example language (lua + or js)
  • +
- -
-

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.

-
+

Examples:

+
What's the QBCore:Client:OnPlayerLoaded event?
+
Show me all QBCore player events
+
List all QBCore inventory events
+
- -
-

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.

-
+ +
+

7. GetQBCoreFunction

+

Look up QBCore functions and exports.

- -
-

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.

-
-
+

Parameters:

+
    +
  • function_name (required): QBCore function name + (e.g., "QBCore.Functions.GetPlayer", "AddMoney")
  • +
  • language (optional): Code example language (lua + or js)
  • +
- -
-

Available Prompts

-

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

+

Common QBCore Functions:

+
    +
  • Player: QBCore.Functions.GetPlayer, QBCore.Functions.GetPlayerData
  • +
  • Items: AddItem, RemoveItem, GetItemByName
  • +
  • Money: AddMoney, RemoveMoney, GetMoney
  • +
  • Jobs: SetJob, GetJob
  • +
  • Vehicles: AddVehicle, DeleteVehicle
  • +
- -
-

1. Create New Resource

-

Create a new FiveM resource with framework and language selection.

-

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

-
+

Example:

+
How do I use the AddMoney function in QBCore?
+
+ - -
-

2. Debug Issues

-

Debug common FiveM issues and errors with detailed analysis.

-

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

-
+ +
+

Available Resources

+

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

- -
-

3. Optimize Performance

-

Optimize FiveM script performance with detailed suggestions.

-

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

-
+ +
+

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.

+
- -
-

4. Convert Language

-

Convert code between Lua and JavaScript with proper syntax.

-

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

-
+ +
+

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.

+
- -
-

5. Add Framework Integration

-

Add ESX or QBCore framework integration to existing resource.

-

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

-
-
+ +
+

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.

+
+ - -
-

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.

-
+ +
+

Available Prompts

+

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

- -
-

Development

+ +
+

1. Create New Resource

+

Create a new FiveM resource with framework and language selection.

+

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

+
-

Adding New Tools

-

1. Create a new tool class in app/Mcp/Tools/:

+ +
+

2. Debug Issues

+

Debug common FiveM issues and errors with detailed analysis.

+

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

+
-
<?php
+                
+                
+

3. Optimize Performance

+

Optimize FiveM script performance with detailed suggestions.

+

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

+
-namespace App\Mcp\Tools; + +
+

4. Convert Language

+

Convert code between Lua and JavaScript with proper syntax.

+

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

+
-use Illuminate\Contracts\JsonSchema\JsonSchema; -use Laravel\Mcp\Request; -use Laravel\Mcp\Response; -use Laravel\Mcp\Server\Attributes\Description; -use Laravel\Mcp\Server\Tool; + +
+

5. Add Framework Integration

+

Add ESX or QBCore framework integration to existing resource.

+

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

+
+
-#[Description('Your tool description')] -class YourTool extends Tool -{ - public function handle(Request $request): Response + +
+

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
     {
-        // Tool logic here
-        return Response::text('Result');
-    }
+        public function handle(Request $request): Response
+        {
+            // Tool logic here
+            return Response::text('Result');
+        }
 
-    public function schema(JsonSchema $schema): array
-    {
-        return [
-            'param' => $schema->string()->required(),
-        ];
-    }
-}
+ public function schema(JsonSchema $schema): array + { + return [ + 'param' => $schema->string()->required(), + ]; + } + }
-

2. Register the tool in app/Mcp/Servers/FiveMServer.php:

+

2. Register the tool in app/Mcp/Servers/FiveMServer.php:

-
protected array $tools = [
-    // ... existing tools
-    \App\Mcp\Tools\YourTool::class,
-];
+
protected array $tools = [
+        // ... existing tools
+        \App\Mcp\Tools\YourTool::class,
+    ];
-

Code Formatting

-

Format code with Laravel Pint:

-
vendor/bin/pint
-
+

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)
  • -
+ +
+

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.

-
+

Scripting Languages

+

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

+
- -
-

Resources

- -
+ +
+

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
  • -
-
+ +
+

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

-
+ +
+

License

+

MIT License

+
+
-
- + @endsection