Skip to main content
The serve command starts an HTTP server that provides web-based interfaces for validation, dedicated server management, and other Minecraft Creator Tools features.

Syntax

mct serve [features] [domain] [host-port] [title] [motd]

Arguments

features
string
Specifies which features the server should enable.Choices:
  • all - Enable all features (web services + dedicated server)
  • allwebservices - Enable all web services
  • basicwebservices - Enable only basic web services
  • dedicatedserver - Enable dedicated server features only
domain
string
The URL domain where this server is hosted.Example: localhost, mctools.example.com
host-port
number
Port number for the HTTP server.Example: 3000, 8080
title
string
Display title for the server.Example: “My Minecraft Server”
motd
string
Message of the day for the server.Example: “Welcome to the validation server!”

Options

-once
boolean
default:"false"
Process only one request and then shutdown. Useful for automated workflows.
-i, --input-folder
string
Path to the folder containing projects to serve.
-updatepc, --update-passcode
string
Sets the update passcode for server access control.

Examples

Start basic web server

mct serve
Starts the server with default settings on the configured port.

Start with all features

mct serve all localhost 3000 "My MCT Server" "Welcome!"
┌─────┐
 Minecraft Creator Tools (preview) command line
 ┏▀┓ See https://aka.ms/mcthomepage for more info.
└─────┘

Starting Minecraft Creator Tools Server...
Title: My MCT Server
MOTD: Welcome!
Domain: localhost
Port: 3000

 Server started successfully
 Web interface available at http://localhost:3000

Press Ctrl+C to stop the server

Start web services only

mct serve basicwebservices localhost 8080
Starts only the web-based validation services without dedicated server features.

Run-once mode for automation

mct serve basicwebservices localhost 3000 "Validation Server" "" -once
The server will handle one request and then automatically shutdown. Useful in CI/CD pipelines.

Serve with specific project folder

mct serve all localhost 3000 -i ./my-projects

Server Features

Includes:
  • Web-based validation interface
  • Project upload and analysis
  • Validation report viewing
  • Basic project management
Use Case: Simple validation server for team use

Server Configuration

Setting Server Properties

Use the setserverprops (or setsrv) command to configure default server properties:
mct setserverprops localhost 3000 "My Server" "Welcome to MCT!"
These settings are saved and used when starting the server without arguments:
mct serve  # Uses saved settings

Access Control

Configure passcodes for different access levels:
mct serve -updatepc "myUpdatePasscode123"
The server uses passcodes for:
  • Display Read-Only: View reports and data
  • Full Read-Only: Access all data without modification
  • Update State: Modify server state and settings
  • Admin: Full administrative access
Passcodes are stored locally and should be kept secure. Use strong, unique passcodes in production environments.

Stopping the Server

Stop the server gracefully:
  1. Keyboard Interrupt: Press Ctrl+C in the terminal
  2. Command Input: Type exit or stop and press Enter
# Server is running...
stop
# Server shutting down gracefully...

Web Interface

When the server is running, access the web interface at:
http://[domain]:[port]
For example: http://localhost:3000

Available Endpoints

GET http://localhost:3000/
# Main web interface

Use Cases

Team Validation Server

Set up a shared validation server for your team:
mct serve allwebservices 0.0.0.0 3000 "Team Validation Server" "Upload your add-ons here"
Team members can access via browser to validate their add-ons without installing the CLI.

CI/CD Integration

Use run-once mode in automated builds:
# Start server for validation
mct serve basicwebservices localhost 3000 -once -i ./build

# Server handles one validation request and exits

Development Workflow

Run a local server during development:
mct serve all localhost 3000 -i ./projects
Validate changes through the web UI as you develop.

Dedicated Server Management

When using dedicatedserver or all features:

EULA Agreement

You must agree to the Minecraft EULA before managing dedicated servers:
mct eula
Or use the full command:
mct minecrafteulaandprivacystatement
This shows the EULA and prompts for acceptance:
This feature uses Minecraft assets and/or the Minecraft Bedrock 
Dedicated Server. To use it, you must agree to the Minecraft End 
User License Agreement and Privacy Statement.

    Minecraft End User License Agreement: https://minecraft.net/eula
    Minecraft Privacy Statement: https://go.microsoft.com/fwlink/?LinkId=521839

? I agree to the Minecraft End User License Agreement and Privacy Statement

Server Management Features

  • Start/stop Minecraft dedicated servers
  • Configure server properties
  • Manage worlds and add-ons
  • View player activity
  • Monitor server logs
  • Backup and restore worlds

Environment Configuration

Server settings are stored in the local environment. View configuration paths:
mct version
Shows:
Machine user data path: /home/user/.minecraft-creator-tools
Machine app data path: /home/user/.local/share/minecraft-creator-tools
Server working path: /home/user/.minecraft-creator-tools/servers
Environment prefs path: /home/user/.minecraft-creator-tools/env.json

Security Considerations

Production Deployment:
  • Use HTTPS with a reverse proxy (nginx, Apache)
  • Set strong passcodes
  • Configure firewall rules
  • Limit access by IP if possible
  • Keep server software updated
# Run server on localhost only
mct serve allwebservices localhost 3000

# Use nginx or Apache as reverse proxy with HTTPS
# Configure authentication at the proxy level

Troubleshooting

Another service is using the specified port.Solution: Use a different port:
mct serve all localhost 3001
Or find and stop the conflicting service:
# Linux/Mac
lsof -i :3000

# Windows
netstat -ano | findstr :3000
Server might be bound to localhost only.Solution: Bind to all interfaces:
mct serve all 0.0.0.0 3000
Then access via: http://[server-ip]:3000
Check for configuration errors or missing dependencies.Solution: Run with verbose logging:
mct serve -lv

Advanced Configuration

Custom Server Properties

Persist server configuration:
# Set properties
mct setserverprops example.com 3000 "Production Server" "Validation Services"

# Start with saved settings
mct serve

Multiple Server Instances

Run multiple servers on different ports:
# Terminal 1: Validation server
mct serve basicwebservices localhost 3000

# Terminal 2: Dedicated server
mct serve dedicatedserver localhost 3001

Build docs developers (and LLMs) love