Skip to main content
Glama

🚀 FXServer MCP Server (fxserver-mcp)

Servidor MCP de Alta Performance e Segurança para FiveM (GTA V) e RedM (RDR 3)

License: MIT Platform Game Protocol

O FXServer MCP é um servidor compatível com a especificação Model Context Protocol (MCP), projetado especificamente para conectar assistentes de IA (como Antigravity IDE, Claude Desktop, Cursor e VS Code) ao ciclo de vida completo de desenvolvimento e administração de servidores FiveM e RedM.


📌 Principais Recursos

  • ⚡ Detecção Inteligente de Jogo: Identifica automaticamente se o ambiente é FiveM (gta5) ou RedM (rdr3) analisando convar de build e estrutura do servidor.

  • 🛡️ Segurança Industrial para Produção:

    • Sandbox Path Traversal Guard: Nenhuma operação sai do diretório raiz do servidor.

    • Pastas Críticas Bloqueadas: Bloqueio estrito contra alteração ou exclusão de txData, cache, databases, artifacts.

    • Backup Hierárquico Anti-Colisão: Cria snapshots espelhando a árvore de diretórios antes de qualquer alteração (.mcp_backups/), evitando conflitos entre arquivos de mesmo nome (ex: config.lua).

  • 🎮 Controle em Tempo Real (Live Server):

    • Companion Resource em Lua (ncode-fx-bridge) ultra-leve.

    • Ações instantâneas: restart, start, stop, refresh, ensure.

    • IP Allowlist (127.0.0.1), autenticação por Bearer Token (256 bits), proteção contra timing attacks e rate limiting (Fail2Ban).

  • 🧩 Scaffolding e Gestão de Recursos:

    • Geração automática de manifests modernos (cerulean, lua54 'yes').

    • Templates prontos para FiveM e RedM (minimal, standalone, nui-lua).

    • Mapeamento recursivo de recursos e subcategorias ([scripts], [qb], [cfx-default]).


Related MCP server: mcp-tap

🏗️ Arquitetura do Sistema

flowchart LR
    subgraph Client["Cliente MCP"]
        AI["Assistente IA (Antigravity / Claude)"]
    end

    subgraph MCPServer["FXServer MCP (Node.js / TypeScript)"]
        Core["MCP Engine (stdio)"]
        FSSafe["File Sandbox & Backups"]
        Scaffold["Scaffold Engine"]
        BridgeClient["Bridge Client (HTTP + Token)"]
    end

    subgraph Server["FXServer Host (Local)"]
        CFG["server.cfg & resources/"]
        Bridge["Companion Resource (ncode-fx-bridge)"]
        Engine["FXServer Runtime (FiveM / RedM)"]
    end

    AI <-->|JSON-RPC| Core
    Core --> FSSafe --> CFG
    Core --> Scaffold --> CFG
    Core --> BridgeClient
    BridgeClient <-->|Localhost HTTP| Bridge
    Bridge <--> Engine

🧰 Catálogo de Ferramentas (MCP Tools)

Ferramenta

Descrição

fx_list_resources

Lista todos os recursos do servidor, mapeando subpastas [categoria] e metadados.

fx_get_resource_info

Inspeciona manifests, dependências, exports e acusa arquivos ausentes declarados.

fx_create_resource

Cria novos recursos FiveM ou RedM com templates prontos e opção de autoEnsure.

fx_read_file

Lê com segurança qualquer arquivo dentro do servidor.

fx_write_file

Grava arquivos gerando automaticamente backup espelhado anti-colisão antes.

fx_delete_file

Remove arquivos ou pastas de recursos com snapshot de segurança prévio.

fx_search_code

Busca strings, regex, eventos de rede e exports em todos os scripts do servidor.

fx_manage_server_cfg

Verifica, adiciona ou remove ensure [resource] no server.cfg.

fx_server_status

Consulta status ao vivo (jogadores conectados, game, uptime, contagem de resources).

fx_resource_action

Dispara ações em tempo real no servidor: restart, start, stop, refresh, ensure.

fx_list_live_resources

Lista todos os recursos em memória e seus estados (started, stopped).

fx_list_backups

Consulta os snapshots de backups automáticos salvos pelo MCP.


🚀 Instalação e Inicialização

1. Clonar e Instalar Dependências

git clone https://github.com/NCode/fxserver-mcp.git
cd fxserver-mcp
npm install
npm run build

2. Configurar Variáveis de Ambiente

Copie o .env.example para .env:

# Caminho raiz da base do FXServer
FXSERVER_PATH=C:\NCodeBase

# Jogo alvo: "auto" (detecta automaticamente), "gta5" ou "rdr3"
TARGET_GAME=auto

# Endpoint do bridge companion resource
BRIDGE_URL=http://127.0.0.1:30120/ncode-fx-bridge

# Token secreto de 256 bits gerado
BRIDGE_TOKEN=seu_token_secreto_aqui

3. Instalar o Companion Resource no Servidor

Copie a pasta companion-resource/ncode-fx-bridge para a pasta resources/ do seu FXServer e adicione ao seu server.cfg:

# FXServer MCP Companion Bridge
set mcp_token "seu_token_secreto_aqui"
ensure ncode-fx-bridge

Se o servidor já estiver em execução:

refresh
start ncode-fx-bridge

🧪 Testando a Conexão

Execute o teste de comunicação em tempo real com o servidor:

npm run test:live

Saída esperada:

--- TESTANDO CONEXÃO LIVE COM O FXSERVER ---
✅ SUCESSO! Conexão estabelecida com o FXServer.
Status do Servidor:
 - Servidor: Orion DEV
 - Jogo: GTA5
 - Jogadores Online: 0
 - Resources em Memória: 120
✅ O FXServer MCP está 100% operacional em tempo real!

🔌 Configuração no Antigravity / Claude Desktop

Antigravity IDE (Workspace)

No arquivo .agents/mcp_config.json:

{
  "mcpServers": {
    "fxserver": {
      "command": "node",
      "args": ["c:/Users/naayu/Desktop/NCodeFivemMCP/dist/index.js"],
      "env": {
        "FXSERVER_PATH": "C:\\NCodeBase",
        "BRIDGE_TOKEN": "seu_token_secreto_aqui"
      }
    }
  }
}

Claude Desktop

No seu claude_desktop_config.json:

{
  "mcpServers": {
    "fxserver": {
      "command": "node",
      "args": ["C:/caminho/para/fxserver-mcp/dist/index.js"]
    }
  }
}

🛡️ Segurança e Boas Práticas

  • Token Secreto: Nunca compartilhe ou versione o arquivo .env.

  • IP Allowlist: O bridge aceita conexões unicamente originadas de 127.0.0.1 e ::1.

  • Prevenção de Ataques: O script Lua compara tokens usando verificação em tempo constante (safe_equals) e ativa bloqueio temporário (Fail2Ban) após tentativas inválidas repetidas.

  • Rollback Imediato: Todos os arquivos alterados pelo MCP geram snapshots preservados em .mcp_backups/.


📄 Licença

Distribuído sob a licença MIT. Consulte o arquivo LICENSE para obter mais informações.

Available Tools

12 tools
fx_create_resourceC

Cria um novo recurso padronizado para FiveM (gta5) ou RedM (rdr3) com templates prontos (minimal, standalone, nui-lua).

ParametersJSON Schema
NameRequiredDescriptionDefault
gameNoJogo alvo: "gta5" (FiveM), "rdr3" (RedM) ou "both". Padrão: detectado automaticamente.
nameYesNome do recurso a ser criado (apenas letras, números, hífens e underlines)
authorNoAutor do recurso para o fxmanifest.lua
categoryNoCategoria ou subpasta onde criar o recurso (ex: "[scripts]" ou "standalone")
templateNoTemplate inicial da estruturaminimal
autoEnsureNoSe verdadeiro, adiciona automaticamente "ensure [name]" ao server.cfg
descriptionNoDescrição do recurso para o fxmanifest.lua

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a write/mutation operation but never states what gets created on disk, whether an existing resource with the same name is overwritten or errors out, or that autoEnsure silently edits server.cfg — a notable side effect left undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that states the action, target platforms, and template options with no wasted words. It is efficient, though extremely terse for a seven-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with no annotations, no output schema, and seven parameters including a side-effecting autoEnsure flag, the description is too thin. It omits prerequisites, overwrite behavior, the server.cfg modification, and any sense of what is returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters thoroughly (including enums for game and template). The description adds only the enumeration of template names, which the schema already carries, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (create a new standardized FiveM/RedM resource) and names the template variants available. It clearly distinguishes itself from read-oriented siblings like fx_get_resource_info or fx_read_file, though it doesn't explicitly contrast with fx_write_file or fx_manage_server_cfg.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives such as fx_write_file for editing existing resources or fx_resource_action. The agent must infer that this is the scaffolding tool from the word 'novo' alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_delete_fileB

Remove um arquivo ou pasta de recurso de forma segura, criando backup prévio antes da remoção.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesCaminho relativo a ser excluído (ex: "resources/[scripts]/antigo_script")

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses a non-obvious safety trait: a backup is created before removal. However, it omits whether the deletion is reversible, where the backup lives, required permissions, and whether restoring is possible — significant gaps for a destructive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that packs verb, target, and the key safeguard with no wasted words. Slightly terse for a destructive tool, but structurally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive tool with no annotations and no output schema, the description covers the what and the backup safeguard but leaves the return value (e.g., backup path), reversibility, and failure behavior unexplained. Adequate but incomplete for the risk level involved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the 'path' parameter and its example are already fully documented in the schema. The description notes that both files and folders can be targeted, but adds no syntax or format detail beyond what the schema provides. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (remove/delete) and resource (a file or resource folder), clearly distinguishing it from read-oriented siblings like fx_read_file and fx_list_resources. It does not, however, name any sibling or clarify the boundary against fx_resource_action or fx_write_file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives such as fx_write_file (overwrite) or fx_resource_action (resource lifecycle operations). The only implied usage is 'you want to delete something', with no preconditions or exclusions stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_get_resource_infoB

Obtém detalhes aprofundados de um recurso (fxmanifest.lua, arquivos declarados, arquivos ausentes, dependências, exports).

ParametersJSON Schema
NameRequiredDescriptionDefault
resourceNameOrPathYesNome do recurso (ex: "meu_script") ou caminho relativo (ex: "resources/[scripts]/meu_script")

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. The verb 'Obtém' implies a read-only inspection, and the parenthetical clarifies what is inspected, but nothing is stated about behavior on an invalid/nonexistent resource name, filesystem access requirements, or whether any state is mutated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the verb and resource come first and the enumeration of returned artifacts follows. It is appropriately sized for a one-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description compensates by listing the categories of data returned (manifest, declared/missing files, dependencies, exports). That covers the main completeness gap; only error/failure behavior for a bad path is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the single parameter 'resourceNameOrPath' is fully documented in the schema with name-or-path examples. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Obtém') and resource ('recurso'), then enumerates exactly what is retrieved: fxmanifest.lua, declared/missing files, dependencies, exports. This clearly separates it from the list-oriented siblings (fx_list_resources, fx_list_live_resources), though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus fx_read_file, fx_list_resources, or fx_resource_action. No prerequisites, no conditions, no exclusions are given; the agent must infer usage entirely from the purpose sentence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_list_backupsB

Lista os snapshots de backups automáticos criados pelo MCP antes de edições e deleções.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoQuantidade máxima de snapshots a listar

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses valuable behavioral context — these snapshots are automatic and generated before edits/deletions — but says nothing about whether listing is read-only, how long snapshots are retained, or whether/how they can be restored.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the resource named up front and the qualifying origin clause appended. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, one-parameter read tool with full schema coverage and no output schema, the description is nearly sufficient: it explains what is listed and where the items come from. It only omits ordering/retention details and any pointer to restore-related siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single optional parameter (limit) with 100% schema description coverage, so the schema already documents it. The description adds no additional meaning about the limit (e.g., max values, ordering, pagination). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Lista") and resource ("snapshots de backups automáticos") and clarifies their origin (created by the MCP before edits/deletions). It is distinguishable from fx_list_live_resources and fx_list_resources by the 'backup snapshots' framing, though it never explicitly contrasts itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a recovery/audit use case by noting the snapshots predate edits and deletions, but gives no explicit when-to-use guidance, no prerequisites, and no mention of the sibling list tools an agent might confuse it with.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_list_live_resourcesA

Obtém a lista de todos os recursos carregados na memória do FXServer e seus estados atuais (started, stopped, uninitialized).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It usefully discloses that results include runtime states (started, stopped, uninitialized), which is real behavioral context beyond the schema. However it says nothing about ordering, size limits, or whether it reflects server-observed state, which matters for a live-status tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the resource scope and the returned states both appear immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-param read tool with no output schema, the description adequately conveys what is returned (all loaded resources plus their states). The main gap is the lack of contrast with fx_list_resources, which the agent needs to pick correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4 and there is nothing for the description to clarify or compensate for.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (obtém a lista) and resource (recursos carregados na memória do FXServer), and enumerates the states returned. The phrase 'carregados na memória' implicitly separates it from fx_list_resources, but the description never names or contrasts that sibling, so an agent must infer the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no mention of alternatives, despite a clearly overlapping sibling (fx_list_resources). The only hint of usage context is the word 'live/loaded in memory', which is left for the agent to interpret.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_list_resourcesB

Lista todos os recursos (resources) existentes no servidor FXServer, mapeando subcategorias e metadados.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only enumeration, but says nothing about whether it returns on-disk resources vs. running ones, result size/pagination, ordering, or required permissions for a live server.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the core action front-loaded and no filler. It is arguably too terse for the ambiguity in the sibling set, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and no output schema, the description's only real job is to differentiate this listing from fx_list_live_resources and fx_list_backups, and it does not. The minimum viable information is there, but the sibling ambiguity is left unresolved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and the schema is fully closed (additionalProperties: false), so there is nothing for the description to disambiguate. Baseline 4 applies; the mention of 'subcategorias e metadados' hints at result shape but adds no parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Lista todos os recursos ... no servidor FXServer'), so the agent knows it enumerates FXServer resources. However, it never distinguishes itself from the sibling fx_list_live_resources or fx_list_backups, which is exactly the ambiguity that matters here.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisite, and no mention of alternatives such as fx_list_live_resources or fx_get_resource_info for deeper per-resource detail. The agent must guess which listing tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_manage_server_cfgC

Verifica, adiciona ou remove diretivas "ensure" ou "start" no server.cfg principal do servidor.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAção a executar no server.cfg
commentNoComentário opcional ao adicionar ensure
resourceNameYesNome do recurso

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses that it mutates the main server.cfg, but says nothing about whether changes are reversible, whether a backup is made, whether the running server must be restarted, or what a 'check' returns versus an 'ensure'/'remove'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that wastes no words and puts the core operation first. It is efficient, though it is arguably under-specified rather than optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating configuration tool with no annotations and no output schema, the description is too thin. It gives no return-value expectations for 'check', no side-effect or safety context, and no indication of how resourceName influences the resulting directive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents action, comment, and resourceName, making 3 the baseline. The description adds the notion of 'ensure'/'start' directives, but this partly conflicts with the action enum (check/ensure/remove), since 'start' never appears as an action value and the mapping between directives and actions is left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names specific verbs (check/add/remove) and a precise target: the 'ensure' or 'start' directives in the server's main server.cfg. This scopes it far more narrowly than generic siblings like fx_read_file/fx_write_file or fx_write_file, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance and no alternatives named. An agent cannot tell from this text why it should call fx_manage_server_cfg rather than editing the file through fx_write_file, nor when to prefer 'ensure' over 'remove'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_read_fileB

Lê com segurança o conteúdo de um arquivo do servidor (dentro do serverRoot).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesCaminho relativo ao serverRoot (ex: "resources/[scripts]/meu_script/config.lua" ou "server.cfg")

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose two meaningful traits: the read is non-mutating and the path is confined to serverRoot (implying path validation). It says nothing about behavior on missing/forbidden files, size limits, encoding, or return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; action and safety scope come first. Brevity here borders on under-specification, but nothing is padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool this covers purpose and path confinement, which is the minimum viable. Since no output schema exists and no annotations are provided, the omission of return format and error behavior leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already explains that 'path' is relative to serverRoot with examples. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Lê ... o conteúdo de um arquivo') and adds a scope constraint ('dentro do serverRoot'). This cleanly separates it from fx_write_file and fx_delete_file, though the description never names or routes to any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as fx_search_code for locating a file or fx_get_resource_info for resource metadata. The agent must infer that this is the tool for retrieving known file contents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_resource_actionC

Executa ações de ciclo de vida em recursos no servidor ativo em tempo real (restart, start, stop, refresh, ensure).

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAção de runtime a executar
resourceNoNome do recurso (obrigatório para restart, start, stop, ensure; omitido para refresh)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies live mutation ('no servidor ativo em tempo real') but does not disclose whether stop/restart are destructive to running state, whether the operation blocks, whether confirmation or elevated permissions are needed, or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and resource up front, followed by the action list. Efficient, though the parenthetical enumeration duplicates the schema enum and slightly pads the sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description should explain side effects and the conditional resource parameter. It leaves the agent without any indication of what the action returns or what state change to expect, which is a significant gap for a lifecycle-control tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the action enum and the resource conditional-requirement note ('obrigatório para restart, start, stop, ensure; omitido para refresh') already live in the schema. The description's parenthetical action list merely repeats the enum, adding no new parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (executa ações de ciclo de vida) and resource (recursos no servidor ativo), and enumerates the supported actions. An agent can distinguish it from siblings like fx_create_resource or fx_list_resources, though the description never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives such as fx_manage_server_cfg or fx_server_status. The only usage hint ('em tempo real') is incidental and not framed as a selection condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_search_codeB

Busca ocorrências de texto, eventos de rede (RegisterNetEvent, TriggerClientEvent), exports ou queries nos recursos do servidor.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesTermo de busca
isRegexNoIndica se a busca usa expressão regular
scopePathNoSubpasta opcional para restringir a busca (ex: "resources/[scripts]")

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full behavioral burden, and it discloses only what is scanned. It says nothing about permissions/auth needed, whether the search is read-only (implied by "Busca" but never stated), performance or timeout risk on a large codebase, result caps, or how regex mode changes behaviour. For an unannotated tool this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tightly written sentence with no filler, and the search targets are front-loaded immediately after the verb. It is efficient, though the brevity is partly under-specification rather than pure conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no annotations and no output schema, the description should compensate for a read tool whose return shape and limits matter. It never indicates the result format (file paths, line numbers?), whether matches are capped, or what scope is used when scopePath is omitted, leaving the caller to guess before invoking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so query, isRegex and scopePath are already documented in the schema (including the example "resources/[scripts]"). The description adds no syntax, default, or interaction detail beyond that, which is the baseline 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ("Busca") plus the resource and the exact artifact types it scans: texto, eventos de rede (RegisterNetEvent, TriggerClientEvent), exports e queries nos recursos do servidor. That is far more concrete than a generic "search" and clearly separates it from the sibling file/resource tools. It stops short of naming a sibling as the non-alternative, so it lands at 4 rather than 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for locating code across resources, but there is no explicit when-to-use statement, no case for when to prefer fx_read_file or fx_list_live_resources instead, and no note on scope defaults (all resources vs a subfolder). Nothing misleading, but nothing guiding either.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_server_statusA

Consulta o estado em tempo real do FXServer ativo através do companion resource (jogadores online, uptime, game ativo).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the mechanism ('através do companion resource') and that data is real-time, but omits prerequisites (companion resource must be running), failure behavior, and any auth or rate-limit context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb and target resource first, followed by the returned fields. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description does double duty by listing the payload (players, uptime, active game). For a no-parameter status query this is nearly complete; only the companion-resource dependency caveat is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing for the description to clarify about inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Consulta') and resource ('estado em tempo real do FXServer ativo') and enumerates the returned data (online players, uptime, active game). This clearly separates it from resource-scoped siblings like fx_get_resource_info, though it does not name an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It implies the tool is for checking live server state but gives no when-to-use vs when-not guidance and never references sibling tools such as fx_list_live_resources or fx_get_resource_info. The agent must infer the boundary itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fx_write_fileB

Escreve ou modifica um arquivo do servidor. Se o arquivo já existir, um backup espelhado anti-colisão é criado automaticamente antes.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesCaminho relativo ao serverRoot (ex: "resources/[scripts]/meu_script/config.lua")
contentYesConteúdo a ser gravado no arquivo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose one important non-obvious behavior: an automatic mirrored anti-collision backup is created before overwriting an existing file. However, it says nothing about permissions, encoding, parent-directory creation, or what happens on failure, so the mutation profile is only partially covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler, and the core action is front-loaded ahead of the conditional backup caveat. Every clause carries information an agent does not get from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter write tool with no annotations and no output schema, the description covers overwrite safety but leaves the agent guessing about encoding, directory creation, permission requirements, and return behavior. Adequate for invocation, incomplete for confident use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (path relative to serverRoot, content) are already fully documented in the schema. The description adds no format, encoding, or path-resolution semantics beyond that, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Escreve ou modifica um arquivo do servidor") that an agent can immediately match against siblings like fx_read_file or fx_delete_file. It does not explicitly name a sibling or boundary, but the create/modify scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance and no routing away from alternatives such as fx_create_resource or fx_manage_server_cfg, which could also produce files. The only contextual hint is that overwriting is tolerated because a backup is made, which implies usage rather than stating it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 12 tool updatesv1.0.0
    • First observedfx_create_resource
    • First observedfx_delete_file
    • First observedfx_get_resource_info
    • First observedfx_list_backups
    • First observedfx_list_live_resources
    • First observedfx_list_resources
    • First observedfx_manage_server_cfg
    • First observedfx_read_file
    • First observedfx_resource_action
    • First observedfx_search_code
    • First observedfx_server_status
    • First observedfx_write_file

TDQS

A3.5/5.0

Scored across 12 tools

Disambiguation4/5

Most tools have clearly distinct purposes (file CRUD, resource introspection, live server state, backup listing). However, fx_list_resources (on-disk) vs fx_list_live_resources (in-memory) and fx_resource_action vs fx_manage_server_cfg (both touch start/ensure lifecycle) create mild boundary ambiguity, though descriptions clarify.

Naming Consistency5/5

Every tool follows the exact same fx_ prefix plus verb_noun pattern (fx_get_, fx_create_, fx_read_, fx_write_, fx_delete_, fx_list_, fx_manage_, fx_search_). Fully predictable and readable.

Tool Count5/5

12 tools is well-scoped for a server-management MCP covering files, resources, config, live status, and backups. Each tool earns its place with no obvious redundancy.

Completeness4/5

Strong lifecycle coverage: file read/write/delete, resource create/inspect, config management, live actions and status, plus backup listing. The notable gap is a backup restore/revert tool to complement fx_list_backups, and there is no explicit resource delete/rename.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI assistants full SSH/SFTP remote operations — session management, command execution, interactive shells, file transfers, port forwarding, and system diagnostics.
    2
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to discover, install, configure, and manage MCP servers through natural language conversation, automating tedious manual setup across multiple clients.
    11
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI tools to manage SSH connections, execute commands, transfer files, and perform remote server diagnostics via MCP protocol.
    17
    10 npm
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to read and administer FiveM/RedM game servers via txAdmin, supporting queries about server status, players, bans, and actions like announcements, resource control, and bans.
    37 npm
    MIT