Skip to main content
Glama
Rxuser2

Roblox MCP Unified Server

by Rxuser2

๐Ÿš€ 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
# 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

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

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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