A Model Context Protocol server for FiveM plugin development with server/client command execution
14 tools with schemas present but significant quality gaps. Tool names follow verb_noun pattern (good), but descriptions are inconsistent, some are adequate (60-120 chars), others vague or missing context. Parameters have types and enums where appropriate, but many lack actionable descriptions. No output schemas documented. Error handling is minimal, most tools throw generic errors without recovery guidance. Security concern: fivem_connect_server accepts password as parameter (should use env-var injection). Composition is reasonable (single responsibility per tool), but several tools combine multiple actions (e.g., fivem_player_control has 15+ sub-actions in one tool).
Execute multiple FiveM commands in batch (sequential or parallel)
Execute FiveM commands on server or client side
Validate FiveM commands before execution
Connect to a FiveM server via RCON
Trigger FiveM events (server/client) via mcp-bridge plugin
Get FiveM logs from various sources
Watch FiveM logs in real-time with optional filtering
fivem_player_control combines 15+ sub-actions (teleport, freeze, input_pulse, screenshot, etc.) into one tool. Should split into separate tools (teleport_player, freeze_player, input_pulse_player, etc.) so LLM can compose them independently.
fivem_connect_server accepts 'password' as a parameter. Credentials must never appear in tool parameters, use server-side secret injection via environment variables only. Current code reads from env as fallback, but parameter exposure is a security leak.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., fivem_player_get(action='list') should document it returns array of {player_id, name, health, ...}; fivem_server_info should document structure for each info_type.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Control a player for dev QA (teleport, state, input pulses, screenshot)
Get player information (list/info) via mcp-bridge plugin
Manage FiveM plugins (ensure/stop/restart/refresh)
Execute direct RCON commands (low-level server management)
Analyze FiveM resources for dependencies and metadata
Get FiveM server information (status, config, resources, performance)
Manage MCP system operations (health check, clear logs)
Error handling is generic. Most tools throw 'Failed to X: <error message>' without recovery guidance. Should categorize errors (retryable vs user-fixable) and suggest next steps. E.g., 'Plugin not found. Try fivem_plugin_manage(action=list) to see available plugins.'
fivem_player_control description lacks context on when to use each sub-action. 'input_pulse' vs 'input_tap' vs 'input_sequence' are not explained. Parameter descriptions for 'keys' array do not specify valid key names (W, A, S, D, E, SHIFT, SPACE, F mentioned in description but not formalized as enum).