diff --git a/resources/css/app.css b/resources/css/app.css index 3375c14..45ee968 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -9,6 +9,35 @@ --font-sans: 'Instrument Sans', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; + --color-gta-dark: #1a1a1a; + --color-gta-light: #f8fafc; + --color-gta-orange: #f57c00; + --color-gta-cyan: #1de9b6; + --color-gta-gray: #334155; + --color-gta-indigo: #3b82f6; + + --color-gray-50: #f8fafc; + --color-gray-100: #f1f5f9; + --color-gray-200: #e2e8f0; + --color-gray-300: #cbd5e1; + --color-gray-400: #94a3b8; + --color-gray-500: #64748b; + --color-gray-600: #475569; + --color-gray-700: #334155; + --color-gray-800: #1e293b; + --color-gray-900: #0f172a; + + --color-indigo-50: #fff7ed; + --color-indigo-100: #ffedd5; + --color-indigo-200: #fed7aa; + --color-indigo-300: #fdba74; + --color-indigo-400: #fb923c; + --color-indigo-500: #f57c00; + --color-indigo-600: #ea580c; + --color-indigo-700: #c2410c; + --color-indigo-800: #9a3412; + --color-indigo-900: #7c2d12; + --animate-fade-in: fade-in 0.3s ease-in-out; @keyframes fade-in { @@ -22,3 +51,75 @@ } } } + +@layer base { + :root { + color-scheme: light dark; + } + + body { + @apply bg-gray-50 text-gray-900 dark:bg-gray-900 dark:text-gray-100; + } +} + +@layer utilities { + .text-gta-neon { + color: var(--color-gta-cyan); + } + + .text-gta-orange { + color: var(--color-gta-orange); + } + + .bg-gta-neon { + background-color: var(--color-gta-cyan); + } + + .bg-gta-orange { + background-color: var(--color-gta-orange); + } + + .border-gta-neon { + border-color: var(--color-gta-cyan); + } + + .border-gta-orange { + border-color: var(--color-gta-orange); + } +} + +@layer components { + .link-gta { + color: var(--color-gta-cyan); + transition: color 0.2s ease-in-out; + } + + .link-gta:hover { + color: #6ee7b7; + } + + .btn-gta-primary { + background-color: var(--color-gta-orange); + color: #ffffff; + border-radius: 0.5rem; + font-weight: 600; + transition: all 0.2s ease-in-out; + } + + .btn-gta-primary:hover { + background-color: #ea580c; + } + + .btn-gta-secondary { + background-color: transparent; + color: var(--color-gta-cyan); + border: 1px solid var(--color-gta-cyan); + border-radius: 0.5rem; + font-weight: 600; + transition: all 0.2s ease-in-out; + } + + .btn-gta-secondary:hover { + background-color: color-mix(in oklab, var(--color-gta-cyan) 16%, transparent); + } +} diff --git a/resources/js/app.js b/resources/js/app.js index 0f55b1d..c035f4c 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -48,13 +48,13 @@ document.addEventListener('DOMContentLoaded', () => { // Remove active class from all buttons tabButtons.forEach(btn => { - btn.classList.remove('active', 'border-indigo-500', 'text-indigo-600', 'dark:text-indigo-400'); + btn.classList.remove('active', 'border-gta-orange', 'text-gta-orange'); btn.classList.add('border-transparent', 'text-gray-500', 'dark:text-gray-400'); }); // Add active class to clicked button this.classList.remove('border-transparent', 'text-gray-500', 'dark:text-gray-400'); - this.classList.add('active', 'border-indigo-500', 'text-indigo-600', 'dark:text-indigo-400'); + this.classList.add('active', 'border-gta-orange', 'text-gta-orange'); // Hide all tab contents tabContents.forEach(content => { diff --git a/resources/views/docs/documentation.blade.php b/resources/views/docs/documentation.blade.php index 95ff321..9b0e53a 100644 --- a/resources/views/docs/documentation.blade.php +++ b/resources/views/docs/documentation.blade.php @@ -21,12 +21,12 @@
{{ $tool['description'] }}
<?php
+ @verbatim<?php
- namespace App\Mcp\Tools;
+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;
+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');
- }
+#[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(),
- ];
- }
- }
+ public function schema(JsonSchema $schema): array
+ {
+ return [
+ 'param' => $schema->string()->required(),
+ ];
+ }
+}
+@endverbatim
2. Register the tool in app/Mcp/Servers/FiveMServer.php:
protected array $tools = [
- // ... existing tools
- \App\Mcp\Tools\YourTool::class,
- ];
+ @verbatimprotected array $tools = [
+ // ... existing tools
+ \App\Mcp\Tools\YourTool::class,
+];@endverbatim
Format code with Laravel Pint:
@@ -327,25 +326,19 @@- A comprehensive Model Context Protocol server for FiveM development with 5 tools, 3 resources, and 5 prompts. + A comprehensive Model Context Protocol server for FiveM development with 5 tools, 3 resources, and 5 + prompts.
-- Search FiveM documentation by topic and category. Get direct links to relevant documentation. -
+- Look up GTA5/FiveM native functions with signatures, parameters, and code examples. -
-+ Search FiveM documentation by topic and category. Get direct links to relevant + documentation. +
- Generate fxmanifest.lua files automatically for any framework and scripting language. -
+- Complete database of FiveM events including core, ESX, and QBCore events with examples. -
-+ Look up GTA5/FiveM native functions with signatures, parameters, and code examples. +
- Generate complete resource structures with client, server, config, and optional NUI files. -
++ Generate fxmanifest.lua files automatically for any framework and scripting language. +
+- Full support for Standalone, ESX, and QBCore frameworks in both Lua and JavaScript. -
++ Complete database of FiveM events including core, ESX, and QBCore events with examples. +
++ Generate complete resource structures with client, server, config, and optional NUI files. +
++ Full support for Standalone, ESX, and QBCore frameworks in both Lua and JavaScript. +
+- Set up the MCP server in just 5 minutes with our quick start guide. -
- + ++ Set up the MCP server in just 5 minutes with our quick start guide. +
+- To connect to the FiveM MCP server, use the following configuration in your MCP client: -
-{
+
+
+ Resources
+
+
+ MCP Server Configuration
+
+ To connect to the FiveM MCP server, use the following configuration in your MCP client:
+
+ @verbatim{
"servers": {
- "fivem": {
- "url": "{{ route('fivem') }}",
- "type": "http"
+ "fivem": {
+ "url": "{{ route('fivem') }}",
+ "type": "http"
+ }
}
- }
-}
-
-
- External Links
-
+
+ External Links
+
+ -
+ FiveM
Documentation
-
FiveM
+ class="link-gta">FiveM
Natives Reference
-
QBCore
+ class="link-gta">QBCore
Documentation
-
COX
+ class="link-gta">COX
MySQL Documentation
-
Laravel
+ class="link-gta">Laravel
MCP Documentation
-
Model
+ class="link-gta">Model
Context Protocol
diff --git a/resources/views/docs/quickstart.blade.php b/resources/views/docs/quickstart.blade.php
index c264844..d45afc3 100644
--- a/resources/views/docs/quickstart.blade.php
+++ b/resources/views/docs/quickstart.blade.php
@@ -30,12 +30,12 @@