Arenula MCP
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., "@Arenula MCPcreate a cube at origin"
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.
Arenula
MCP server suite for the s&box game engine. Connects AI coding assistants to the s&box editor — reading scenes, creating objects, compiling code, managing assets, and more.
Designed following Anthropic's MCP best practices: omnibus tools with action enums, rich descriptions with negative guidance, trimmed responses, actionable errors.
Arenula — Latin for "grain of sand". One grain in the sandbox.
Response envelope
Mutation tools return JSON with these fields:
message— short human-readable confirmation.verified— (optional) read-back of state after the mutation, so callers can confirm the change actually stuck. E.g. aftercomponent.add:{ "component_exists": true, "component_type": "ModelRenderer" }. Afterterrain.configure_clutter:{ "clutter_assigned": "volcano_ground", "seed": 42, "mode": "Infinite" }. When this field is missing the caller should assume the mutation is unverified.warnings— (optional) array of per-field partial-success notes, each{ field, message, suggestion? }. Used where the main operation succeeded but some sub-step was skipped — e.g.networking.add_helperwith a mix of valid and invalid spawn-point IDs will return the helper wired up and a warning per bad ID.
Errors still return the standard { error, action, suggestion } body with isError: true. Any user-facing value that can't be resolved to a real engine resource now errors with an actionable suggestion rather than silently no-op'ing.
Related MCP server: Gear
Servers
Server | What it does | Runtime | Transport |
Editor | Scene manipulation, compilation, assets, terrain | C# plugin inside s&box | SSE |
API | Offline type/member reference (~1,800 types, ~15,000 members), PBR texture fetching | Node.js | stdio |
Docs | Narrative docs from sbox.game (raw markdown via | Node.js | stdio |
Setup
1. Clone Arenula-MCP
Clone or download this repo somewhere on your machine. This is where the API and Docs servers will live — they don't need to be inside your s&box project.
C:\Projects\Arenula-MCP\ <-- can be anywhere you like
editor/ goes into your s&box project (step 2)
api/ stays here, runs from here
docs/ stays here, runs from here2. Editor plugin
Copy editor/ into your s&box project's Libraries folder:
YourProject/
Libraries/
arenula_mcp/ <-- copy the contents of editor/ here
Editor/
Core/
Handlers/
sbox_mcp.sbprojOpen s&box — Arenula compiles automatically and starts the MCP server on port 8098.
3. Build API & Docs
From the Arenula-MCP root, install and build both Node.js servers:
npm run setup # installs dependencies and builds both serversThis builds api/dist/index.js and docs/dist/index.js — those are the files your AI client will point to.
4. Configure your AI client
Add a .mcp.json file to your s&box project root (or copy .mcp.json.example). Update the paths to where you cloned Arenula-MCP:
{
"mcpServers": {
"editor": {
"type": "sse",
"url": "http://localhost:8098/sse"
},
"api": {
"command": "node",
"args": ["C:/Projects/Arenula-MCP/api/dist/index.js"],
"env": {
"SBOX_API_URL": "https://cdn.sbox.game/releases/..."
}
},
"docs": {
"command": "node",
"args": ["C:/Projects/Arenula-MCP/docs/dist/index.js"]
}
}
}Replace C:/Projects/Arenula-MCP with wherever you cloned the repo. Get the latest API schema URL from sbox.game/api/schema (click Download, copy URL).
Tools appear as mcp__editor__*, mcp__api__*, mcp__docs__* in your AI client.
Editor Tools
23 omnibus tools, 182 actions. Each tool takes a required action parameter.
Tool | Actions | Count |
scene | summary, hierarchy, statistics, find, find_in_radius, get_details, prefab_instances | 7 |
gameobject | create, destroy, duplicate, reparent, rename, enable, set_tags, set_transform, batch_transform | 9 |
component | add, remove, set_property, set_enabled, get_properties, get_types, copy | 7 |
compile | trigger, status, errors, generate_solution, wait | 5 |
prefab | instantiate, get_structure, get_instances, break, update, create, save_overrides, revert, get_overrides | 9 |
asset_query | browse, search, open, get_dependencies, get_model_info, get_material_properties, get_mesh_info, get_bounds, get_unsaved, get_status, get_json, get_references | 12 |
asset_manage | create, delete, rename, move, save, reload, get_references | 7 |
editor | select, get/set_selected, clear/frame_selection, get_play_state, start/stop_play, get_log, save_scene, save_scene_as, save_all, undo/redo, console_list, console_run, open_code_file, get/set_preferences | 19 |
session | list, set_active, load_scene | 3 |
lighting | create, configure, create_skybox, set_skybox | 4 |
physics | add_collider, configure_collider, add_rigidbody, create_model_physics, create_character_controller, create_joint | 6 |
audio | create, configure | 2 |
effects | create, configure_particle, configure_post_processing, configure_sprite, configure_prop, configure_world_panel | 6 |
camera | create, configure, capture_viewport, capture_tour, orbit_capture | 5 |
mesh | create_block, create_plane, create_cylinder, create_wedge, create_arch, create_clutter, extrude_faces, remove_faces, add_face, clip_faces, scale_mesh, thicken_faces, bevel_edges, bevel_vertices, split_edges, quad_slice_faces, dissolve_edges, bridge_edges, connect_vertices, flip_faces, extend_edges, set_face_material, set_texture_params, vertex ops, get_info | 27 |
navmesh | create_agent, create_area, create_link, generate, generate_tile, unload_tile, set_defer_generation, get_status, query_path | 9 |
cloud | search, get_package, get_versions, mount | 4 |
project | get_collision, set_collision_rule, get_input, get_info | 4 |
terrain | create, configure, get_info, get_height, get_height_region, set_height, noise, erode, stamp, add/remove_material, get_material_at, blend_materials, set_hole, paint_material, import/export_heightmap, sync, configure_clutter, regenerate_clutter, clear_clutter | 21 |
trace | ray, sphere_cast, box_cast, sample_grid, multi_ray | 5 |
player | create, configure_movement, configure_camera, configure_body, configure_interaction | 5 |
networking | add_helper, configure_object, get_status | 3 |
schema | export, info, clear | 3 |
Architecture
33 C# source files — 9 core infrastructure, 24 per-tool handlers (incl. ConsoleHandler).

Attribution
Editor based on Ozmium MCP Server by ozmium7 (GPL-3.0)
API based on sbox-api-mcp by sofianebel (MIT)
Docs based on sbox-docs-mcp by sofianebel (MIT)
License
GPL-3.0 (Editor) · MIT (API, Docs)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Nyx000/arenula-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server