Arenula MCP
Click on "Deploy 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: sbox-mcp-documentation
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, schemagen) — see LICENSE for why the split
exists and which one applies to code you copy.
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
An MCP server that gives your AI access to the source code and docs of all public github repos
MCP server for building and testing AI agents with multi-model experimentation and insights.
Related MCP Servers
- AlicenseCqualityAmaintenanceAn MCP server providing AI assistants with 149 tools to fully control the Godot game engine, including runtime code execution, scene manipulation, physics, audio, networking, animation, and more.10092 npm456MIT
- AlicenseAqualityBmaintenanceAn MCP server that provides AI assistants with searchable access to the full s&box game engine documentation and API reference.715 npm11MIT
- AlicenseAqualityBmaintenanceA local-first MCP server for AI-assisted Garry's Mod addon development.3840 npmMIT
- FlicenseAqualityAmaintenanceMCP server that connects AI coding assistants to a live Godot editor, enabling scene, node, script, resource, runtime, debugger, and test workflows through natural language.45-