Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@OpenSimulator MCP Servershow me the current uptime and version"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
OpenSimulator MCP Server
An MCP (Model Context Protocol) server that allows you to control OpenSimulator via console commands. Built with FastMCP.
Features
This MCP server exposes OpenSimulator console commands as tools, including:
General Commands: version, uptime, info, logging
Region Commands: create, delete, restart, change region context
User Commands: show users, alerts, kick, teleport, login control
Object Commands: show, delete, backup objects
Archive Commands: save/load OAR and IAR files
Terrain Commands: load, save, fill, elevate, lower terrain
Script Commands: start, stop, suspend, resume scripts
Estate Commands: show, reload, set estate properties
Stats Commands: show stats, monitor, queues, connections
Module Commands: list, load, unload modules
Land Commands: show, clear parcels
Asset Commands: cache status and management
Scene Commands: rotate, scale, translate scene
HyperGrid Commands: link/unlink regions
User Account Commands: create user, reset password, set user level
Prerequisites
OpenSimulator must be running with the REST console enabled. Start OpenSimulator with:
./OpenSim -console=restConfigure the REST console in
OpenSim.iniunder[Network]:[Network] ConsoleUser = "admin" ConsolePass = "password" console_port = 0 ; Uses main HTTP port (default 9000)
Installation
Configuration
The server is configured via environment variables:
Variable | Description | Default |
| Path to OpenSimulator installation |
|
| URL of the REST console |
|
| REST console username | (empty) |
| REST console password | (empty) |
Usage
Running the Server
Configuring with Claude Desktop
Add to your Claude Desktop configuration (~/.config/claude/claude_desktop_config.json on Linux):
Configuring with Windsurf/Cascade
Add to your MCP settings:
Available Tools (only three)
All OpenSimulator console commands are issued through three MCP tools:
get(command, args="")– for read-only/show/info queries.set(command, args="")– for mutating/config/management actions.run(command)– for any raw console command (escape hatch).
Examples by category
General Server Commands
These commands work on both simulator and ROBUST consoles.
Command | Description | Example |
| Run a command script containing console commands |
|
| Shutdown the server |
|
| Show server information (version and startup path) |
|
| Show server startup time and uptime |
|
| Show server version |
|
| Print the current console logging level |
|
| Change the console logging level (e.g., off, debug) |
|
| Get general command list or help on a specific command |
|
Debug Commands
Command | Description | Example |
| Turn on/off extra logging for HTTP request debugging |
|
| Turn on/off logging of activity in the main threadpool |
|
Simulator Commands
General
Command | Description | Example |
| Select region for subsequent commands; "root" selects all |
|
| Turn on packet debugging for viewer communications |
|
| Turn emergency debugging monitoring on/off |
|
| Set local grid coordinate to map to remote hypergrid |
|
| Link a HyperGrid region |
|
| Unlink a hypergrid region |
|
| List modules |
|
| Load a module |
|
| Unload a module |
|
| Returns statistics about the current region/simulator |
|
| Set terrain texture heights on a corner |
|
| Set terrain texture by number |
|
| Set water height simulator-wide or per region |
|
| Show all registered capabilities URLs |
|
| Show agent circuit data |
|
| Show connections data |
|
| Show all registered HTTP handlers |
|
| List hypergrid linked regions |
|
| Show module data |
|
| Show pending objects in viewer queues |
|
| Show priority queue data for each client |
|
| Show queue data for agent connections |
|
| Show persistent threads registered with the system |
|
| Show throttle data for each client connection |
|
Appearance Commands
Command | Description | Example |
| Find which avatar uses a given asset as baked texture |
|
| Request user's viewer to rebake and reupload textures |
|
| Send appearance data for avatars to other viewers |
|
| Show appearance information for avatars |
|
Archive Commands
Command | Description | Example |
| Load user inventory archive |
|
| Load OpenSimulator region archive (replaces region) |
|
| Load region data from XML format (deprecated) |
|
| Load region data from XML2 format |
|
| Save user inventory archive |
|
| Save current region to OpenSimulator archive |
|
| Save named prim to XML2 |
|
| Save prims to XML |
|
| Save prims to XML2 format |
|
Asset Commands (fcache)
Command | Description | Example |
| Deep scan and cache all assets in all scenes |
|
| Remove all assets in cache (file/memory optional) |
|
| Clear negative cache entries if enabled |
|
| Purge cached assets older than specified date |
|
| Display cache status |
|
| Do JPEG2000 decoding of an asset |
|
Config Commands
Command | Description | Example |
| Get current configuration (section/key optional) |
|
| Save current configuration to a file |
|
| Set a particular configuration value |
|
| Synonym for config get |
|
Land Commands
Command | Description | Example |
| Show all parcels on the current region |
|
| Clear all parcels on the land |
|
Map Commands
Command | Description | Example |
| Save an image of the world map |
|
| Regenerate and store map tile |
|
Object Commands
Command | Description | Example |
| Persist unsaved object changes immediately |
|
| Delete scene objects by creator UUID |
|
| Delete scene object by UUID or localID |
|
| Delete scene object by name (supports --regex) |
|
| Delete all objects outside region boundaries |
|
| Delete scene objects by owner UUID |
|
| Dump object serialization to file for debugging |
|
| Change the scale of a named prim |
|
| Force region to send all clients updates about objects |
|
| Show details of object by UUID or localID |
|
| Show details of objects by name (supports --regex) |
|
| Show details of object part by UUID or localID |
|
| Show details of object parts by name (supports --regex) |
|
Estate Commands
Command | Description | Example |
| Create a new estate |
|
| Attach a region to an estate |
|
| Rename an estate |
|
| Change estate owner (by name or UUID) |
|
| Show estate name, ID, and owner for regions |
|
| Reload estate data |
|
Region Commands
Command | Description | Example |
| Select region for subsequent commands |
|
| Create a new region |
|
| Delete a region from disk |
|
| Show region parameters (name, UUID, location, etc.) |
|
| Abort a scheduled region restart |
|
| Schedule restart with dismissable bluebox notice |
|
| Schedule restart with transient notice |
|
| Set region parameters (agent-limit, max-agent-limit) |
|
| Remove a region from the simulator |
|
| Restart all sims in this instance |
|
| Set database flags for region |
|
| Show the local regions' neighbours |
|
| Show rating data |
|
| Show region parameters |
|
| Show all regions data (names, coords, ports, estates) |
|
Region Flags: DefaultRegion, FallbackRegion, RegionOnline, NoDirectLogin, Persistent, LockedOut, NoMove, Reservation, Authenticate, Hyperlink, DefaultHGRegion
Scene Commands
Command | Description | Example |
| Turn on scene debugging |
|
| Rotate scene around 128,128 axis (0-360 degrees) |
|
| Scale all scene objects by factor (1.0 = original) |
|
| Move entire scene to new coordinate |
|
Script Commands
Command | Description | Example |
| Resume all suspended scripts (or specific script) |
|
| Show script information |
|
| Start all stopped scripts (or specific script) |
|
| Stop all running scripts (or specific script) |
|
| Suspend all running scripts (or specific script) |
|
Stats Commands
Command | Description | Example |
| Show useful statistical information for this server |
|
| Record stats periodically to a separate log file |
|
| Save a snapshot of current stats to a file |
|
| Synonym for show stats |
|
Terrain Commands
Command | Description | Example |
| Save current terrain into region's baked map |
|
| Run a specified plugin effect (or list) |
|
| Raise current heightmap by specified amount |
|
| Fill current heightmap with specified value |
|
| Flip current terrain about X or Y axis |
|
| Load terrain from file |
|
| Load terrain from section of larger file |
|
| Lower current heightmap by specified amount |
|
| Set maximum terrain height |
|
| Set minimum terrain height |
|
| Area-of-effect terraforming with optional taper |
|
| Multiply heightmap by specified value |
|
| Enable experimental terrain brushes |
|
| Rescale terrain to fit between min/max heights |
|
| Load baked map terrain into heightmap |
|
| Save current heightmap to file |
|
| Save heightmap to section of larger file |
|
| Show terrain height at given coordinate |
|
| Show heightmap info for debugging |
|
Supported formats: .r32, .f32, .ter, .raw, .jpg, .jpeg, .bmp, .png, .gif, .tif, .tiff
Tree Commands
Command | Description | Example |
| Change activity state for trees module |
|
| Freeze/unfreeze activity for a defined copse |
|
| Load a copse definition from XML file |
|
| Start planting on a copse |
|
| Reset tree update rate (milliseconds) |
|
| Reload copse definitions from in-scene trees |
|
| Remove copse definition and all its trees |
|
| Log statistics about the trees |
|
User Commands
Command | Description | Example |
| Send in-world alert to everyone |
|
| Send in-world alert to specific user |
|
| Bypass in-world permission checks |
|
| Turn on permissions debugging |
|
| Force permissions on or off |
|
| Kick a user off the simulator |
|
| Disable user entry to this simulator |
|
| Enable user entry to this simulator |
|
| Show whether logins are enabled or disabled |
|
| Show info about connected users (full for child agents) |
|
| Teleport a user to a specific destination |
|
Windlight/LightShare Commands
Command | Description | Example |
| Disable the windlight plugin |
|
| Enable the windlight plugin |
|
| Load windlight profile from database and broadcast |
|
YEngine Commands
Command | Description | Example |
| Show compiler version value |
|
| Show YEngine help |
|
| List scripts (options: -full, -max, -topcpu, -queues) |
|
| Show/set migration version value |
|
| Post event to scripts |
|
| Reset scripts (-all or by name) |
|
| Resume script processing |
|
| Suspend script processing |
|
| Enable/disable call tracing |
|
| Enable/disable verbose output |
|
ROBUST Service Commands
These commands are available on the ROBUST console (or standalone console).
Asset Service
Command | Description | Example |
| Delete an asset from the database |
|
| Dump an asset to the filesystem |
|
| Show summary information about an asset |
|
Grid Service
Command | Description | Example |
| Deregister a region manually |
|
| Set database flags for region |
|
| Show details on region at given coordinate |
|
| Show details on a region by name |
|
| Show details on all regions |
|
User Service
Command | Description | Example |
| Create a new user account |
|
| Set a new password for a user |
|
| Show account details for given user |
|
Login Service
Command | Description | Example |
| Set minimum user level allowed to login |
|
| Reset login level to default value |
|
| Set text to display during login |
|
| Set user level (god status, login permission) |
|
HyperGrid Commands
Command | Description | Example |
| Set local grid coordinate for remote hypergrid mapping |
|
| Link a HyperGrid region at specified coordinates |
|
| List all hypergrid linked regions |
|
| Unlink a hypergrid region by local name |
|
Generic / Raw Commands
Command | Description | Example |
Any command | Execute any raw console command |
|
License
MIT License