exec-by-btw
v3.1.1
Published
exec by btw — universal MCP server for Roblox. Execute Luau, inspect scripts, spy on remotes. Works on macOS, Linux, Windows with any executor.
Maintainers
Readme
Roblox Executor MCP Server v3
Un serveur MCP universel pour interagir avec un client Roblox — exécuter du code, inspecter des scripts, espionner les remotes, prendre des screenshots, et plus.
🌍 macOS · Linux · Windows — toutes plateformes supportées. 🔄 Compatibilité universelle — fonctionne avec tous les exécuteurs (auto-détection). 🤖 Optimisé IA — descriptions d'outils claires, erreurs explicites, workflow guidé.
Dashboard
http://localhost:16384/Fonctionnalités
| Catégorie | Outil | Description |
|-----------|-------|-------------|
| Clients | list-clients | Voir les clients connectés |
| | set-active-client | Choisir le client cible |
| Exploration | get-game-info | Infos du jeu (PlaceId, nom, créateur) |
| | get-descendants-tree | Arborescence des instances |
| | search-instances | Recherche CSS-like d'instances |
| Code | script-grep | Recherche textuelle rapide |
| | semantic-search-scripts | Recherche IA par comportement |
| | get-script-content | Lire le code source (avec plage de lignes) |
| Exécution | execute | Exécuter du Luau (fire & forget) |
| | get-data-by-code | Exécuter + récupérer les valeurs |
| | get-console-output | Vérifier les effets |
| GUI | type-text-box | Taper dans un TextBox |
| | click-button | Cliquer un bouton |
| Remotes | ensure-remote-spy | Activer Cobalt |
| | get-remote-spy-logs | Voir le trafic remote |
| | block-remote / ignore-remote | Bloquer/Ignorer des remotes |
| Screenshots | screenshot-window | Capture d'écran macOS/Linux/Windows |
| | list-roblox-windows | Lister les fenêtres Roblox |
Prérequis
- Node.js ≥ 18 (Pas besoin de Bun !)
- Un exécuteur Roblox supportant
loadstringetrequest(WebSocket optionnel)
Quick Start
1. Cloner
git clone https://github.com/notpoiu/roblox-executor-mcp.git
cd roblox-executor-mcp2. Installer & Build
npm install
npm run buildOu utilisez le launcher universel (installe et build automatiquement) :
node scripts/launcher.mjs3. Lancer
npm start4. Connecter depuis Roblox
Copiez ce script dans votre exécuteur ou Auto Execute :
local bridgeUrl = getgenv().BridgeURL or "localhost:16384"
loadstring(game:HttpGet("http://" .. bridgeUrl .. "/script.luau"))()Options (à mettre avant le loadstring) :
getgenv().BridgeURL = "10.0.0.4:16384" -- IP personnalisée
getgenv().DisableWebSocket = true -- Forcer HTTP polling
getgenv().DisableInitialScriptDecompMapping = true -- Désactiver le mapping auto5. Configurer votre client IA
Ajoutez ceci à la config MCP de votre client (Claude Desktop, Cursor, Codex, Windsurf, etc.) :
{
"mcpServers": {
"exec-by-btw": {
"command": "node",
"args": ["chemin/vers/roblox-executor-mcp/dist/index.js"]
}
}
}Screenshots — Toutes Plateformes
| Plateforme | Outil utilisé |
|-----------|--------------|
| macOS | screencapture (intégré) |
| Linux | import (ImageMagick), scrot, maim, ou gnome-screenshot |
| Windows | PowerShell + .NET (aucun addon natif requis) |
Workflow Recommandé pour l'IA
list-clients→set-active-client→get-game-info(confirmer le bon jeu)get-descendants-tree(summaryOnly) →script-grep(terme précis) →get-script-content(plage de lignes)execute→get-console-output(vérifier)screenshot-window→ capture visuelle
Configuration Avancée
# Port personnalisé
node dist/index.js --port 16385
# Mode relay (secondaire pointe vers primaire distant)
node dist/index.js --baseurl http://192.168.1.50:16384
# Nom de serveur personnalisé (par défaut: exec-by-btw)
node dist/index.js --server-name "exec by btw"Variables d'environnement :
export BRIDGE_TOKEN="mon-token-secret" # Auth pour le bridge
export ROBLOX_MCP_PORT=16385 # Port personnalisé
export ROBLOX_MCP_SCREENSHOT_DIR="/tmp" # Dossier screenshotsCompatibilité Exécuteurs
Le connector.luau détecte automatiquement les capacités de l'exécuteur :
- ✅ WebSocket — utilisé si disponible, sinon HTTP polling
- ✅ Multiple APIs de décompilation — lua.expert → built-in → Medal → Konstant
- ✅ Multiple APIs HTTP — syn.request → HttpService:RequestAsync → request()
- ✅ Gestion d'erreurs robuste — chaque feature se dégrade gracieusement
Communauté
Sécurité
Ce serveur permet l'exécution de code arbitraire. Utilisez-le uniquement avec des clients IA de confiance. Le port 16384 n'a pas d'authentification par défaut — ne l'exposez jamais sur Internet. Pour les configurations multi-machines, utilisez un réseau local, VPN, ou tunnel SSH.
