Skip to main content
Glama

FiveM MCP Server

by eeharumt
README.md14.7 kB
# mcp-fivem MCP Server FiveM RCON Model Context Protocolサーバー このTypeScriptベースのMCPサーバーは、FiveMプラグイン開発のデバッグとサーバー管理機能を提供します: - RCON経由でのFiveMサーバー通信 - プラグインの管理(ensure、stop、restart) - サーバーログの監視とプラグインログの取得 - **FiveMクライアントログの取得** - **スクリプト経由でのF8コンソールコマンド実行(ExecuteCommand)** - **イベントシステムによるサーバー・クライアント間通信** - **FiveMプラグイン(mcp-bridge)との連携** - リソースの更新とサーバーステータスの確認 - 任意のRCONコマンドの実行 ## 🚀 新しい統合ツール(v0.3.0) **改善点:** - ✅ 17個のツールを7個に統合 - ✅ 統一された命名規則(fivem_* プレフィックス) - ✅ サーバー・クライアント間でのコマンド実行機能追加 - ✅ 直接RCONコマンド実行の分離 - ✅ ResponseParserの改善でエラー処理を最適化 - ✅ 機能的グループ化で直感的な操作 - ✅ 冗長性の排除で保守性向上 ### 📋 統合ツール一覧 #### 1. `fivem_plugin_manage` - プラグイン管理 プラグインの開始、停止、再起動、リソース更新を統合管理 **パラメータ:** - `action` (必須): "ensure" | "stop" | "restart" | "refresh" - `plugin_name` (ensure/stop/restart時必須): プラグイン名 **使用例:** ```bash # プラグインの開始 fivem_plugin_manage --action ensure --plugin_name my-plugin # プラグインの停止 fivem_plugin_manage --action stop --plugin_name my-plugin # プラグインの再起動 fivem_plugin_manage --action restart --plugin_name my-plugin # リソースの更新(fxmanifest変更後など) fivem_plugin_manage --action refresh ``` #### 2. `fivem_command_execute` - コマンド実行 サーバーサイドとクライアントサイドでのコマンド実行を統合 **パラメータ:** - `mode` (必須): "server" | "client" - **"server"**: サーバー側でコマンドを実行 - **"client"**: クライアント側でコマンドを実行 - `command` (必須): 実行するコマンド - `player_id` (オプション): クライアントモード時のターゲットプレイヤーID(未指定の場合は全クライアントで実行) **使用例:** ```bash # サーバー側でコマンド実行 fivem_command_execute --mode server --command "say Hello from Server!" # 特定プレイヤーのクライアントでコマンド実行 fivem_command_execute --mode client --command "me waves hand" --player_id 1 # 全クライアントでコマンド実行 fivem_command_execute --mode client --command "engine" ``` #### 3. `fivem_rcon_execute` - 直接RCONコマンド実行 低レベルなサーバー管理のための直接RCONコマンド実行 **パラメータ:** - `command` (必須): 実行するRCONコマンド **使用例:** ```bash # 直接RCONコマンド実行(サーバー管理用) fivem_rcon_execute --command "status" # リソース管理 fivem_rcon_execute --command "restart my-plugin" ``` #### 4. `fivem_event_trigger` - イベントトリガー サーバー・クライアント間のイベントトリガーを統合 **パラメータ:** - `type` (必須): "server" | "client" - `event_name` (必須): イベント名 - `player_id` (client時必須): プレイヤーID - `args` (オプション): JSONエンコードされた引数 **使用例:** ```bash # サーバーイベントのトリガー fivem_event_trigger --type server --event_name playerJoined --args '["player123", "NewPlayer"]' # クライアントイベントのトリガー fivem_event_trigger --type client --event_name showNotification --player_id 1 --args '["Hello Client!"]' ``` #### 5. `fivem_player_get` - プレイヤー情報取得 プレイヤー一覧取得と詳細情報取得を統合 **パラメータ:** - `action` (必須): "list" | "info" - `player_id` (info時必須): プレイヤーID **使用例:** ```bash # プレイヤー一覧取得 fivem_player_get --action list # 特定プレイヤーの詳細情報取得 fivem_player_get --action info --player_id 1 ``` #### 6. `fivem_logs_get` - ログ取得 サーバー・クライアント・プラグインログ取得を統合 **パラメータ:** - `source` (必須): "server" | "server_plugin" | "client" | "client_plugin" - `lines` (オプション): 取得行数(デフォルト値はソースによって異なる) - `plugin_name` (オプション): プラグイン名(*_plugin時のみ) **使用例:** ```bash # サーバーログ取得 fivem_logs_get --source server --lines 100 # 特定プラグインのサーバーログ取得 fivem_logs_get --source server_plugin --plugin_name my-plugin --lines 50 # クライアントログ取得 fivem_logs_get --source client --lines 100 # 特定プラグインのクライアントログ取得 fivem_logs_get --source client_plugin --plugin_name my-plugin --lines 50 ``` #### 7. `fivem_system_manage` - システム管理 システムヘルスチェック、ログクリアを統合 **パラメータ:** - `action` (必須): "health" | "clear" **使用例:** ```bash # プラグインのヘルスチェック fivem_system_manage --action health # ログのクリア fivem_system_manage --action clear ``` ## FiveMプラグイン連携 MCPサーバーは専用のFiveMプラグイン(`mcp-bridge`)と連携することで、RCONでは実現できない高度な機能を提供します: ### 🔗 連携アーキテクチャ ``` MCP Server ←→ RCON Protocol ←→ FiveM Server ←→ mcp-bridge Plugin ``` **新方式の特徴:** - ✅ HTTPサーバー不要 - ✅ 既存のRCON接続を活用 - ✅ シンプルな実装 - ✅ リアルタイム通信 - ✅ 軽量で高速 ### 🚀 プラグイン経由で利用可能な機能 - **サーバーサイドコマンド実行**: RCONカスタムコマンド経由でExecuteCommandを使用 - **クライアントサイドコマンド実行**: 特定プレイヤーまたは全プレイヤーでのコマンド実行 - **リアルタイムイベント**: TriggerEvent/TriggerClientEventの直接実行 - **プレイヤー管理**: オンラインプレイヤーの詳細情報取得 - **ヘルスチェック**: プラグインの状態監視 ### 🆕 v0.3.0の新機能 - **クライアント・サーバー分離**: `fivem_command_execute`でサーバーとクライアント側を明確に分離 - **直接RCON実行**: `fivem_rcon_execute`で低レベルなサーバー管理コマンドを実行 - **エラー処理改善**: ResponseParserの最適化により、プラグインからのレスポンスを正確に解析 - **新RCONコマンド**: `mcp_client_command`、`mcp_client_command_all`をプラグインに追加 ### 🔧 FiveMプラグインのインストール 1. `fivem-plugin/mcp-bridge` フォルダを FiveM サーバーの `resources` ディレクトリにコピー 2. `server.cfg` に以下を追加: ``` ensure mcp-bridge ``` 3. FiveMサーバーを再起動 ### 🎯 使用例 ```bash # サーバー側でメッセージ送信 fivem_command_execute --mode server --command "say Hello from MCP Bridge!" # クライアント側でコマンド実行 fivem_command_execute --mode client --command "me waves" --player_id 1 # サーバーイベントのトリガー fivem_event_trigger --type server --event_name playerJoined --args '["player123", "NewPlayer"]' # プレイヤー情報の取得 fivem_player_get --action info --player_id 1 # プラグインの健康状態チェック fivem_system_manage --action health # 直接RCONコマンド実行 fivem_rcon_execute --command "status" ``` ## 機能詳細 ### リソース - `fivem://logs/recent` - 最新のサーバー操作ログ - `fivem://console/info` - サーバーコンソール情報(ログファイル経由) ### ツール #### サーバー管理 - `fivem_plugin_manage` - プラグイン管理(ensure/stop/restart/refresh) - `fivem_command_execute` - コマンド実行(Server/Client) - `fivem_rcon_execute` - 直接RCONコマンド実行 - `fivem_event_trigger` - イベントトリガー(Server/Client) - `fivem_player_get` - プレイヤー情報取得(List/Info) - `fivem_logs_get` - ログ取得(Server/Client/Plugin) - `fivem_system_manage` - システム管理(Health/Clear) ## 開発 依存関係のインストール: ```bash npm install ``` サーバーのビルド: ```bash npm run build ``` 開発時の自動リビルド: ```bash npm run watch ``` ## インストール ### Cursor IDE Cursor IDEで使用するには、設定を追加します: 1. Cursor IDE設定を開く(Cmd/Ctrl + ,) 2. "MCP"で検索 3. 以下の設定を追加: ```json { "mcp.servers": { "mcp-fivem": { "command": "/path/to/mcp-fivem/build/index.js", "env": { "RCON_ADDRESS": "localhost", "RCON_PORT": "30120", "RCON_PASSWORD": "your_rcon_password", "FIVEM_LOGS_DIR": "/path/to/your/fivem/txData/default/logs" } } } } ``` または、Cursor設定ファイル(`settings.json`)に直接追加することもできます。 ## 環境変数設定 以下の環境変数を設定することで、自動接続やデフォルト値を利用できます: - `RCON_ADDRESS`: FiveMサーバーのホスト(必須) - `RCON_PORT`: RCONポート(必須) - `RCON_PASSWORD`: RCONパスワード(必須) - `FIVEM_LOGS_DIR`: サーバーログファイルが格納されているディレクトリのパス(**サーバーログ機能使用時は必須**) - `FIVEM_CLIENT_LOGS_DIR`: クライアントログファイルが格納されているディレクトリのパス(**クライアントログ機能使用時は必須**) すべての環境変数が設定されている場合、MCPサーバー起動時に自動的に接続を試行します。 **ログ機能について:** - `fivem_logs_get --source server`および`fivem_logs_get --source server_plugin`ツールを使用するには、`FIVEM_LOGS_DIR`の設定が必須です。 - `fivem_logs_get --source client`および`fivem_logs_get --source client_plugin`ツールを使用するには、`FIVEM_CLIENT_LOGS_DIR`の設定が必須です。 ### ログディレクトリパスの設定 #### サーバーログ(FIVEM_LOGS_DIR) `FIVEM_LOGS_DIR`には、サーバーログファイル(`fxserver.log`、`server.log`等)が**直接格納されているディレクトリ**を指定してください。 **設定例:** ```bash export FIVEM_LOGS_DIR="/path/to/server/txData/default/logs" ``` #### クライアントログ(FIVEM_CLIENT_LOGS_DIR) `FIVEM_CLIENT_LOGS_DIR`には、FiveMクライアントログファイル(`CitizenFX.log`等)が**直接格納されているディレクトリ**を指定してください。 **設定例:** ```bash # Windows export FIVEM_CLIENT_LOGS_DIR="C:\Users\username\AppData\Local\FiveM\FiveM.app\logs" # Linux/WSL2 export FIVEM_CLIENT_LOGS_DIR="/home/username/.local/share/CitizenFX" ``` **完全な環境変数設定例:** ```bash export RCON_ADDRESS="localhost" export RCON_PORT="30120" export RCON_PASSWORD="your_rcon_password" export FIVEM_LOGS_DIR="/path/to/server/txData/default/logs" export FIVEM_CLIENT_LOGS_DIR="/home/username/.local/share/CitizenFX" ``` **ディレクトリ構造例:** ``` # サーバーログ /path/to/server/txData/default/logs/ ← FIVEM_LOGS_DIRで直接指定 ├── fxserver.log ← メインログファイル ├── server.log ← サーバーログファイル └── fxserver_20240101.log ← 日付付きバックアップ # クライアントログ /home/username/.local/share/CitizenFX/ ← FIVEM_CLIENT_LOGS_DIRで直接指定 ├── CitizenFX.log ← メインクライアントログ ├── CitizenFX_log.txt ← 追加ログファイル └── launcher.log ← ランチャーログ ``` ## 🚀 移行について ### 旧ツールからの移行 既存のツールは後方互換性のため保持されていますが、新しい統合ツールの使用を推奨します: | 旧ツール | 新ツール | 変更点 | |--------|--------|--------| | `ensure_plugin` | `fivem_plugin_manage` | `action: "ensure"` | | `stop_plugin` | `fivem_plugin_manage` | `action: "stop"` | | `restart_plugin` | `fivem_plugin_manage` | `action: "restart"` | | `execute_command` | `fivem_rcon_execute` | 直接RCONコマンド実行 | | `execute_plugin_command` | `fivem_command_execute` | `mode: "server"` | | `trigger_server_event_plugin` | `fivem_event_trigger` | `type: "server"` | | `trigger_client_event_plugin` | `fivem_event_trigger` | `type: "client"` | | `get_players_plugin` | `fivem_player_get` | `action: "list"` | | `get_player_info_plugin` | `fivem_player_get` | `action: "info"` | | `get_fivem_server_logs` | `fivem_logs_get` | `source: "server"` | | `get_fivem_server_plugin_logs` | `fivem_logs_get` | `source: "server_plugin"` | | `get_fivem_client_logs` | `fivem_logs_get` | `source: "client"` | | `get_fivem_client_plugin_logs` | `fivem_logs_get` | `source: "client_plugin"` | | `check_plugin_health` | `fivem_system_manage` | `action: "health"` | | `refresh_resources` | `fivem_plugin_manage` | `action: "refresh"` | | `clear_logs` | `fivem_system_manage` | `action: "clear"` | ```bash npm run inspector ``` InspectorはブラウザでデバッグツールにアクセスするためのURLを提供します。 ## 📝 変更履歴 ### v0.3.0 (2025-07-06) - **🆕 新機能**: サーバー・クライアント間でのコマンド実行機能追加 - **🆕 新ツール**: `fivem_rcon_execute` - 直接RCONコマンド実行 - **🔧 改善**: `fivem_command_execute`を`mode: "server"/"client"`に変更 - **🔧 改善**: ResponseParserの最適化でエラー処理を改善 - **🔧 改善**: FiveMプラグインに`mcp_client_command`、`mcp_client_command_all`コマンド追加 - **📖 更新**: ドキュメントとREADMEの全面的な更新 ### v0.2.0 - **🆕 新機能**: 17個のツールを6個に統合 - **🆕 新機能**: 統一された命名規則(fivem_* プレフィックス) - **🔧 改善**: 機能的グループ化で直感的な操作 - **🔧 改善**: 冗長性の排除で保守性向上 ### v0.1.0 - **🎉 初回リリース**: 基本的なFiveM RCON機能 - **🆕 新機能**: プラグイン管理、ログ取得、イベントシステム

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/eeharumt/fivem-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server