♪ Melo
Agentic Roblox Studio MCP — script diffs, bulk ops, playtest automation, and a cat that sleeps.
Melo is a next-generation MCP server + Studio plugin that combines the best of BoshyXD's community MCP (39+ tools, bulk ops, grep, builds library) with Roblox's official MCP (playtest automation, virtual input, multi-instance) — then pushes beyond both.
What makes Melo different
- Script diff review — GitHub-style inline diffs inside the Studio plugin. Accept/reject individual hunks before they commit. Rejected hunks feed back as context so the agent can iterate.
- 45+ tools — the full superset of both MCPs, unified in one package.
- Transaction-safe batch ops — mass operations rollback atomically on failure.
- Animated mascot — a sleeping cat that wakes up when the agent is working. Because why not.
- Activity feed — real-time log of every MCP tool call with timing and status.
- Mode system — switch between Full, Inspector (read-only), and Sandbox from the plugin.
- Agentic loop support — auto-accept mode for unattended plan → write → test → fix cycles.
Quick start
1. Install the MCP server
# Claude Code
claude mcp add melo -- npx -y melo-mcp-server@latest
# Or in your MCP config (Claude Desktop, Cursor, etc.)
{
"mcpServers": {
"melo": {
"command": "npx",
"args": ["-y", "melo-mcp-server@latest"]
}
}
}
2. Install the Studio plugin
# Build and install the .rbxmx plugin automatically
npm run install-plugin --workspace=packages/server
This builds MeloMCP.rbxmx and copies it to your local plugins folder:
- macOS:
~/Documents/Roblox/Plugins/ - Windows:
%LOCALAPPDATA%/Roblox/Plugins/
3. Enable HTTP requests
Game Settings → Security → ✅ Allow HTTP Requests
4. Connect
Click the "Melo" button in the Plugins toolbar. The cat should wake up.
Architecture
┌─────────────────────┐ stdio ┌──────────────────────┐
│ Claude Code CLI │◄────────────►│ Melo MCP Server │
│ (or any MCP │ │ (TypeScript/Node) │
│ client) │ │ │
└─────────────────────┘ │ ┌────────────────┐ │
│ │ Diff Engine │ │
│ │ (Myers' algo) │ │
│ └────────────────┘ │
│ ┌────────────────┐ │
│ │ HTTP Bridge │ │
│ │ (long-poll) │ │
│ └───────┬────────┘ │
└──────────┼───────────┘
│ HTTP localhost:3002
┌──────────┼───────────┐
│ Studio │ Plugin │
│ ┌───────▼────────┐ │
│ │ Request │ │
│ │ Router │ │
│ └───────┬────────┘ │
│ ┌───────▼────────┐ │
│ │ Handlers │ │
│ │ (per domain) │ │
│ └───────┬────────┘ │
│ ┌───────▼────────┐ │
│ │ Widget UI │ │
│ │ Cat + Diffs │ │
│ └────────────────┘ │
└──────────────────────┘
Tool registry (45+)
Navigation
get_file_tree · get_project_structure · get_place_info · get_services · list_roblox_studios · set_active_studio
Search & Inspection
search_files · search_objects · search_by_property · get_instance_properties · get_instance_children · get_class_info · get_selection · grep_scripts · mass_get_property
Script Editing (with diff staging)
get_script_source · set_script_source · patch_script · grep_replace · execute_luau · run_code
Instance Manipulation
create_object · delete_object · set_property · mass_create_objects · mass_set_property · mass_duplicate · smart_duplicate · set_calculated_property
Playtest Automation
start_playtest · stop_playtest · get_playtest_output · get_studio_mode · run_script_in_play_mode · user_mouse_input · user_keyboard_input · character_navigation
Diff & Meta
get_diff_queue · resolve_diff · get_activity_log · set_mode · rollback
Attributes & Tags
get_attribute · get_attributes · get_tags · get_tagged
Build Library & Assets
export_build · import_build · list_library · insert_model · capture_screenshot
Development
# Clone and install
git clone https://github.com/your-org/melo.git
cd melo
npm install
# Build
npm run build
# Dev mode (auto-rebuild)
npm run dev
Project structure
melo/
├── package.json # Root workspace config
├── packages/
│ ├── server/ # MCP server (TypeScript)
│ │ ├── src/
│ │ │ ├── index.ts # Entry point — boots MCP + HTTP bridge
│ │ │ ├── types.ts # Core type definitions
│ │ │ ├── constants.ts # Configuration constants
│ │ │ ├── services/
│ │ │ │ ├── bridge.ts # HTTP long-poll bridge
│ │ │ │ └── diff-engine.ts # Myers' diff computation
│ │ │ └── tools/
│ │ │ ├── _helpers.ts # Shared tool utilities
│ │ │ ├── navigation.ts # File tree, project structure
│ │ │ ├── search.ts # Search, grep, inspection
│ │ │ ├── script.ts # Script read/write with diff staging
│ │ │ ├── instance.ts # Create, delete, bulk ops
│ │ │ ├── playtest.ts # Playtest automation, virtual input
│ │ │ └── diff-meta.ts # Diff review, activity log, modes
│ │ ├── package.json
│ │ └── tsconfig.json
│ └── plugin/ # Roblox Studio plugin (Luau)
│ └── src/
│ └── plugin.luau # Full plugin — UI, handlers, mascot
└── README.md
License
MIT