Skip to main content
Glama

๐Ÿš€ Roblox MCP Node.js Server

Node.js Express SQLite License

Comprehensive MCP Server untuk Roblox Development - Solusi Node.js yang stabil dan siap produksi untuk semua kebutuhan Roblox development workflow.

โœจ Key Features

๐Ÿ› ๏ธ Complete Roblox Tool Suite (8 Tools)

  • โœ… create_script - Create new Lua/Luau scripts

  • โœ… list_scripts - List all scripts in project

  • โœ… update_script - Update existing scripts

  • โœ… delete_script - Delete scripts

  • โœ… get_project_status - Get project statistics

  • โœ… validate_script - Validate script syntax dan security

  • โœ… backup_project - Create project backups

  • โœ… restore_project - Restore from backups

๐Ÿš€ Production Ready

  • ๐Ÿ“ฆ Built-in Client Library - Include client functionality dalam server package

  • ๐Ÿ” HMAC Authentication - Secure API communication

  • ๐Ÿ—„๏ธ SQLite Database - Persistent script storage

  • ๐Ÿณ Docker Deployment - Ready untuk containerization

  • ๐Ÿš‚ Railway Deployment - Cloud deployment ready

  • ๐Ÿ“Š Comprehensive Logging - Full operation tracking

  • โšก High Performance - Node.js + Express optimized

๐Ÿ›ก๏ธ Security & Reliability

  • ๐Ÿ”’ Rate Limiting - Prevent abuse

  • ๐Ÿ›ก๏ธ Security Headers - Helmet.js protection

  • โœ… Input Validation - Joi schema validation

  • ๐Ÿ” HMAC Signing - Request authenticity verification

  • ๐Ÿšจ Error Handling - Graceful failure recovery

๐ŸŽฎ Web Dashboard Interface

  • ๐ŸŒ Modern Web Interface - Beautiful dashboard untuk manajemen semua tools

  • ๐Ÿ“ฑ Fully Responsive - Perfect di desktop, tablet, dan mobile

  • ๐ŸŽจ Professional Design - Dark/Light theme dengan smooth animations

  • โšก Real-time Updates - Live data dan auto-refresh capabilities

  • ๐Ÿ“Š Analytics Dashboard - Charts dan insights untuk project monitoring

  • ๐Ÿ” Advanced Search - Filter dan search scripts dengan mudah

  • ๐Ÿ’พ One-click Backup - Manajemen backup dan restore yang mudah

  • ๐Ÿ” Secure Settings - Konfigurasi HMAC secret dengan interface yang user-friendly

๐Ÿš€ Quick Start

Prerequisites

  • Node.js 18+ installed

  • npm atau yarn package manager

Installation

# Clone atau extract server files cd roblox-mcp-nodejs # Install dependencies npm install # Initialize database npm run db:init # Start server (development) npm run dev # Start server (production) npm start

Basic Usage

๐ŸŒ Web Interface (Recommended)

# Start the server npm start # Buka browser dan navigasi ke: http://localhost:3000 # Configure HMAC secret di Settings # Enjoy the beautiful dashboard!

๐Ÿ“ก API Testing

# Test dengan basic usage node examples/basic-usage.js # Test dengan advanced usage node examples/advanced-usage.js # Test dengan production usage node examples/production-usage.js

๐ŸŽฎ Web Dashboard Features

Dashboard Sections:

  • ๐Ÿ“Š Overview - Project statistics dan quick actions

  • ๐Ÿ“ Script Manager - Create, edit, delete scripts dengan interface yang modern

  • ๐Ÿ’พ Backup & Restore - One-click backup management

  • ๐Ÿ“ˆ Analytics - Visual charts dan insights

Key Benefits:

  • โœ… No command-line experience required

  • โœ… Real-time script preview dengan syntax highlighting

  • โœ… Advanced search dan filtering

  • โœ… Mobile-friendly responsive design

  • โœ… Secure authentication configuration

  • โœ… Beautiful animations dan micro-interactions

๐Ÿ“– Detailed Guide: Lihat Web Interface Guide untuk dokumentasi lengkap

๐Ÿ› ๏ธ Available Tools

1. create_script

Create new Roblox scripts dengan validation

Parameters:

  • name (str): Script name (unique identifier)

  • content (str): Script content (Lua/Luau code)

  • script_type (str, optional): 'lua' or 'luau' (default: 'lua')

  • project_id (str, optional): Project identifier (default: 'default')

Example:

curl -X POST http://localhost:3000/api/create_script \ -H "Content-Type: application/json" \ -H "X-Signature: your_signature" \ -d '{ "name": "PlayerController", "content": "local Players = game:GetService(\"Players\")", "script_type": "lua", "project_id": "game_project_001" }'

2. list_scripts

List all scripts dalam project dengan metadata

Example:

curl -X GET "http://localhost:3000/api/list_scripts?project_id=default" \ -H "X-Signature: your_signature"

3. update_script

Update existing script content

4. delete_script

Delete script from database

5. get_project_status

Get comprehensive project statistics dan health

6. validate_script

Validate script content untuk syntax, security, dan best practices

7. backup_project

Create complete project backup dengan metadata

8. restore_project

Restore project dari backup file

๐Ÿš‚ Railway Deployment

Prerequisites

  1. GitHub repository dengan kode ini

  2. Railway account di https://railway.app

Step-by-Step Deployment

1. Setup GitHub Repository

# Initialize git (jika belum) git init git add . git commit -m "Initial commit: Roblox MCP Node.js Server" git branch -M main git remote add origin https://github.com/yourusername/roblox-mcp-nodejs.git git push -u origin main

2. Deploy ke Railway

  1. Login ke Railway (https://railway.app)

  2. Click "New Project"

  3. Select "Deploy from GitHub repo"

  4. Choose repository roblox-mcp-nodejs

  5. Click "Deploy Now"

3. Configure Environment Variables

Di Railway dashboard, pergi ke Variables tab dan add:

# Required Configuration NODE_ENV=production PORT=3000 # Database Configuration DB_PATH=./data/roblox_mcp.db # HMAC Security (CRITICAL - generate secure secret!) ROBLOX_MCP_HMAC_SECRET=your_very_secure_hmac_secret_32_chars_minimum # Logging LOG_LEVEL=info ROBLOX_MCP_VERBOSE=false # Rate Limiting ENABLE_RATE_LIMITING=true RATE_LIMIT_WINDOW_MS=900000 RATE_LIMIT_MAX_REQUESTS=100 # Security ENABLE_SECURITY_HEADERS=true CORS_ORIGIN=*

4. Custom Build Command (Optional)

Di Railway, pergi ke Settings > Build dan set:

Build Command: npm ci --only=production

5. Deploy

  1. Click "Deploy" di Railway

  2. Wait untuk deployment selesai (~2-3 menit)

  3. Copy Public URL dari Railway dashboard

  4. Test dengan: curl http://your-app.railway.app/health

Railway Configuration File (railway.json)

{ "build": { "builder": "NIXPACKS" }, "deploy": { "startCommand": "npm start", "restartPolicyType": "ON_FAILURE", "restartPolicyMaxRetries": 10 } }

๐Ÿณ Docker Deployment

Local Docker Run

# Build image docker build -f docker/Dockerfile -t roblox-mcp-server . # Run container docker run -p 3000:3000 \ -e ROBLOX_MCP_HMAC_SECRET=your_hmac_secret \ -v roblox_data:/app/data \ roblox-mcp-server

Docker Compose (Recommended)

# Start services docker-compose -f docker/docker-compose.yml up -d # View logs docker-compose -f docker/docker-compose.yml logs -f # Stop services docker-compose -f docker/docker-compose.yml down

โš™๏ธ Configuration

Environment Variables

Variable

Required

Default

Description

NODE_ENV

No

development

Environment mode

PORT

No

3000

Server port

DB_PATH

No

./data/roblox_mcp.db

Database file path

ROBLOX_MCP_HMAC_SECRET

Yes

-

HMAC secret for authentication

ROBLOX_MCP_VERBOSE

No

false

Enable verbose logging

ENABLE_RATE_LIMITING

No

true

Enable rate limiting

RATE_LIMIT_WINDOW_MS

No

900000

Rate limit window in ms

RATE_LIMIT_MAX_REQUESTS

No

100

Max requests per window

LOG_LEVEL

No

info

Log level

CORS_ORIGIN

No

*

CORS origin

Example .env File

# Production Configuration NODE_ENV=production PORT=3000 DB_PATH=./data/roblox_mcp.db ROBLOX_MCP_HMAC_SECRET=your_very_secure_production_secret_32_chars_minimum ROBLOX_MCP_VERBOSE=false ENABLE_RATE_LIMITING=true LOG_LEVEL=info CORS_ORIGIN=* # Development Configuration NODE_ENV=development ROBLOX_MCP_HMAC_SECRET=dev_secret_123 ROBLOX_MCP_VERBOSE=true LOG_LEVEL=debug

๐Ÿ“š API Reference

Authentication

Semua API requests harus include HMAC signature:

const crypto = require('crypto'); function generateSignature(data, secret) { return crypto .createHmac('sha256', secret) .update(data, 'utf8') .digest('hex'); } // Headers yang diperlukan: 'X-Signature': generatedSignature 'X-Timestamp': Date.now().toString() 'Content-Type': 'application/json'

Response Format

Success Response:

{ "success": true, "message": "Operation completed successfully", "data": { ... }, "timestamp": "2025-11-03T10:08:05.000Z" }

Error Response:

{ "success": false, "error": "Error description", "code": "ERROR_CODE" }

Health Check

GET /health

Response:

{ "status": "healthy", "timestamp": "2025-11-03T10:08:05.000Z", "uptime": 1234, "memory": { ... }, "version": "1.0.0" }

๐Ÿงช Testing

Unit Tests

# Test all functionality npm test # Test specific functionality node examples/basic-usage.js node examples/advanced-usage.js node examples/production-usage.js

API Testing

# Health check curl http://localhost:3000/health # Create script curl -X POST http://localhost:3000/api/create_script \ -H "Content-Type: application/json" \ -H "X-Signature: your_signature" \ -d '{"name":"test","content":"print(\"Hello\")"}' # List scripts curl -X GET "http://localhost:3000/api/list_scripts" \ -H "X-Signature: your_signature"

๐Ÿ”ง Troubleshooting

Common Issues

1. Database Connection Error

Error: SQLITE_CANTOPEN: unable to open database file

Solution:

# Check database directory permissions ls -la data/ # Fix permissions chmod 755 data/ # Or specify full path export DB_PATH=/full/path/to/roblox_mcp.db

2. HMAC Authentication Failed

Error: Invalid signature

Solution:

# Verify HMAC secret matches between client and server echo "Client Secret: $ROBLOX_MCP_HMAC_SECRET" echo "Server Secret: $(grep ROBLOX_MCP_HMAC_SECRET .env)" # Ensure timestamp is recent (< 5 minutes) const timestamp = Date.now(); // Should be current time

3. Port Already in Use

Error: listen EADDRINUSE :::3000

Solution:

# Kill process using port 3000 lsof -ti:3000 | xargs kill -9 # Or use different port export PORT=3001

4. Permission Denied (Docker)

Error: EACCES: permission denied

Solution:

# Fix file permissions in container docker exec -u root roblox-mcp-server chown -R roblox:nodejs /app # Or mount with correct permissions docker run -v $(pwd)/data:/app/data roblox-mcp-server

Debug Mode

# Enable debug logging export LOG_LEVEL=debug export ROBLOX_MCP_VERBOSE=true npm start

Health Monitoring

# Monitor server health watch -n 5 'curl -s http://localhost:3000/health | jq .' # Monitor logs tail -f logs/app.log

๐Ÿ—๏ธ Architecture

roblox-mcp-nodejs/ โ”œโ”€โ”€ src/ # Backend server โ”‚ โ”œโ”€โ”€ server.js # Main Express server โ”‚ โ”œโ”€โ”€ database.js # SQLite database service โ”‚ โ”œโ”€โ”€ config.js # Configuration management โ”‚ โ”œโ”€โ”€ robloxToolsService.js # Roblox tools implementation โ”‚ โ””โ”€โ”€ client.js # Built-in client library โ”œโ”€โ”€ public/ # Web Interface (NEW!) โ”‚ โ”œโ”€โ”€ index.html # Main dashboard application โ”‚ โ”œโ”€โ”€ css/ # Modern UI styles โ”‚ โ”‚ โ”œโ”€โ”€ style.css # Core styling โ”‚ โ”‚ โ”œโ”€โ”€ components.css # Component styles โ”‚ โ”‚ โ””โ”€โ”€ animations.css # Smooth animations โ”‚ โ”œโ”€โ”€ js/ # Frontend JavaScript โ”‚ โ”‚ โ”œโ”€โ”€ config.js # App configuration โ”‚ โ”‚ โ”œโ”€โ”€ api.js # API communication โ”‚ โ”‚ โ”œโ”€โ”€ ui.js # UI management โ”‚ โ”‚ โ”œโ”€โ”€ charts.js # Analytics charts โ”‚ โ”‚ โ””โ”€โ”€ main.js # Main application โ”‚ โ””โ”€โ”€ assets/ # Static resources โ”œโ”€โ”€ examples/ # API usage examples โ”‚ โ”œโ”€โ”€ basic-usage.js # Basic functionality tests โ”‚ โ”œโ”€โ”€ advanced-usage.js # Advanced usage patterns โ”‚ โ””โ”€โ”€ production-usage.js # Production deployment tests โ”œโ”€โ”€ docs/ # Documentation โ”‚ โ”œโ”€โ”€ WEB-INTERFACE-GUIDE.md # Web interface documentation โ”‚ โ””โ”€โ”€ RAILWAY-DEPLOYMENT.md # Deployment guides โ”œโ”€โ”€ docker/ # Docker configuration โ”‚ โ”œโ”€โ”€ Dockerfile # Container definition โ”‚ โ”œโ”€โ”€ docker-compose.yml # Multi-service setup โ”‚ โ””โ”€โ”€ nginx/ # Reverse proxy config โ”œโ”€โ”€ data/ # Database files โ”œโ”€โ”€ logs/ # Application logs โ”œโ”€โ”€ backups/ # Project backups โ”œโ”€โ”€ package.json # Dependencies โ””โ”€โ”€ README.md # This file

๐Ÿ”„ Migration from Python Version

Untuk user yang migrasi dari Python version:

API Compatibility

API endpoints tetap sama, hanya base URL berubah:

# Python version POST /tools/create_script # Node.js version POST /api/create_script

Client Update

// Python MCP client from roblox_mcp import create_script // Node.js MCP client const RobloxMCPClient = require('roblox-mcp-nodejs/src/client'); const client = new RobloxMCPClient(baseUrl, hmacSecret); await client.createScript(name, content, scriptType, projectId);

Database Migration

Database structure tetap sama, tidak perlu migration.

๐Ÿค Contributing

  1. Fork repository

  2. Create feature branch (git checkout -b feature/AmazingFeature)

  3. Commit changes (git commit -m 'Add some AmazingFeature')

  4. Push to branch (git push origin feature/AmazingFeature)

  5. Open Pull Request

๐Ÿ“ License

Distributed under the MIT License. See LICENSE for more information.

๐Ÿ†˜ Support

  • ๐Ÿ“– Documentation: Check this README

  • ๐Ÿงช Testing: Run test suite sebelum deployment

  • ๐Ÿš€ Deployment: Follow Railway deployment guide

  • ๐Ÿ› Issues: Report bugs dengan detailed reproduction steps

๐Ÿ† Acknowledgments

  • Express.js - For the excellent web framework

  • Node.js - For the powerful runtime environment

  • SQLite - For reliable embedded database

  • Roblox Development Community - For API insights and best practices

  • MiniMax Agent - For comprehensive development and testing


Ready untuk production deployment! ๐Ÿš€

Built dengan โค๏ธ untuk Roblox developers

Quick Links:

-
security - not tested
F
license - not found
-
quality - not tested

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/Rxuser2/Roblox-MCP-Unified'

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