Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FLAX_BRIDGENoBridge mode placeholder; defaults to `auto`. It is parsed but does not currently change connection behaviorauto
FLAX_TOOLSETSNoComma-separated selection from `project`, `content`, `scene`, `build`, `logs`, `editor`, `events`, `jobs`, and `game`; `server` is always included. Omit for all toolsets
FLAX_LOG_LEVELNoMinimum server log level written to stderr; defaults to `Warning`Warning
FLAX_READ_ONLYNo`true`, `1`, or `yes` removes all tools that can alter files or editor state
FLAX_ENGINE_PATHNoFlax Engine root. When omitted, uses the Flax Launcher's `%APPDATA%/Flax/Versions.txt` registrations
FLAX_PROJECT_PATHYesPath to a `.flaxproj`, or a directory containing exactly one top-level `.flaxproj`
FLAX_EDITOR_CONFIGNoEditor binary configuration: `Development` (default), `Debug`, or `Release`Development
FLAX_ALLOW_CODE_EXECUTIONNoEnables `editor_execute_csharp` and `editor_invoke_method` only when true and `FLAX_READ_ONLY` is false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
server_infoA

Returns the FlaxMcp server name and version.

flax_statusA

Reports whether the configured project has a reachable Flax Editor bridge and returns its session metadata.

project_infoA

Reads the .flaxproj file: name, version, targets, references, and default scene.

project_targetsB

Parses the GameTarget/EditorTarget *.Build.cs files referenced from the .flaxproj: target class names and referenced modules.

project_settingsA

Reads Content/.json and Content/Settings/.json settings assets (Game, Graphics, Input, Physics, ...) as structured JSON.

content_searchB

Searches the Content/ index by partial path match, TypeName, and/or extension. Id/TypeName are null for files whose format isn't recognized or a .flax header that doesn't match the reverse-engineered layout (verified against Flax 1.12 and 1.13).

content_asset_infoB

Returns metadata (Id, TypeName, RelativePath, Extension) for the content asset with the given GUID.

content_resolve_guidB

Resolves a content asset GUID to its path relative to Content/.

content_create_materialC

Creates a surface Material asset through the live Flax Editor. Paths are relative to Content/ and must end in .flax.

content_material_detailsA

Returns typed values, texture references, UV tiling, and exposed parameters for a live surface Material asset.

content_create_material_instanceA

Creates a MaterialInstance asset from a live surface material and applies validated parameter overrides atomically.

content_set_material_instance_parameterB

Sets one validated parameter override on an existing MaterialInstance and saves the asset.

content_create_material_transparentA

Creates a transparent surface Material (blend mode Transparent, Lit) through the live Flax Editor, for glass, water or film. Opacity 0 is fully clear. Refraction is the material's Refraction input: 1 bends nothing. Flax applies it as a strong screen distortion: 1.03 already shrinks objects behind a bottle-sized surface to about 40 % of their width, as through thick glass. Use 1.0 for thin glass with something inside (a bottle with liquid), and values above 1 only for a lens effect. The material traces screen-space reflections. Its four values are public parameters named BaseColor, Opacity, Roughness and Refraction, so content_create_material_instance makes variants (a tint, frosted or thicker glass, water) of one material. Paths are relative to Content/ and must end in .flax. No asset may exist at the path.

scene_listB

Lists scenes (.scene) and prefabs (.prefab) in the project's Content/ directory.

scene_outlineA

Reads a .scene/.prefab file's actor tree, built from ParentID linkage (not file order). Scripts attached to an actor are listed on that actor's Scripts, not as child nodes. Truncated is true if the configured depth/node-count limit was hit.

scene_find_actorA

Searches a .scene/.prefab file's actors by partial Name match and/or exact TypeName.

build_generate_projectsA

Runs FlaxEditor.exe -genprojectfiles to regenerate IDE project/solution files.

build_compile_scriptsA

Compiles game scripts headlessly. Returns structured compiler errors (file/line/code/message) parsed from the engine log, not a raw log dump.

build_clear_cacheB

Runs FlaxEditor.exe -clearcache, and optionally -clearcooker too, to clear build caches.

build_check_scriptsA

Compiles the project's script modules (and those of the projects it references) outside the editor, with the compiler arguments Flax.Build last used and the modules' current files, into a scratch folder. Returns passed, failed or unavailable (never built yet: Reason says why) with structured errors and warnings (file, line, column, code) and each module's outcome. Works while the editor is open, also during play mode; changes nothing in the project.

build_gameA

Starts a game build (-build ., e.g. preset 'Development', target 'Windows') in the background and returns its job at once -- a real build can take minutes. Follow it with job_status or job_wait; the job's result is the build outcome.

logs_tailA

Returns the last N lines (default 200) of the project's most recent Logs/*.txt file, without running the editor.

logs_errorsA

Extracts lines tagged [Error] or [Warning] from the project's most recent Logs/*.txt file, without running the editor.

editor_scene_graphA

Returns the live actor tree from every scene loaded in the Flax Editor, including unsaved runtime state. Truncated is true when the 500-node or 32-level response limit is reached.

editor_get_selectionA

Returns the actors currently selected in the live Flax Editor.

editor_set_selectionA

Replaces the live Flax Editor actor selection with the actors identified by GUID. Pass an empty list to clear the selection.

editor_actor_detailsA

Returns live identity, hierarchy, activation, layer, tags, world/local transforms, and scripts for one actor loaded in the Flax Editor.

editor_modify_actorA

Replaces an existing live actor's world transform and returns its updated details. Use editor_actor_details first to preserve transform values that should not change.

editor_create_actorB

Creates an allowlisted EmptyActor or StaticModel in a loaded scene and returns its live details.

editor_duplicate_actorC

Duplicates a loaded actor into a loaded scene or parent and returns the duplicate's live details.

editor_rename_actorA

Renames a loaded actor through the editor Undo/Redo history and returns its updated details.

editor_reparent_actorA

Moves a loaded actor to another loaded parent or to a loaded scene root through Undo/Redo history. Set exactly one of sceneId or parentId and explicitly choose whether to preserve the world transform.

editor_delete_actorA

Deletes a loaded actor through the editor Undo/Redo history. Set deleteDescendants to true to explicitly delete its complete hierarchy; false rejects actors with children.

editor_static_model_detailsA

Returns the assigned model reference and live actor details for a loaded StaticModel actor.

editor_set_static_modelA

Assigns an existing FlaxEngine.Model asset to a loaded StaticModel actor through Undo/Redo history. The bridge validates that modelId resolves to a compatible model before changing the scene.

editor_set_static_model_materialA

Assigns an existing FlaxEngine.MaterialBase asset to one slot of a loaded StaticModel through Undo/Redo history. The bridge validates the actor, slot, and material before changing the scene.

editor_box_collider_detailsA

Returns the local size, center, trigger mode, and actor details for a loaded BoxCollider.

editor_create_box_colliderB

Creates a BoxCollider under a loaded parent actor and returns its effective properties.

editor_set_box_colliderB

Updates a loaded BoxCollider's local size, center, and trigger mode through Undo/Redo history.

editor_saveA

Saves every open scene (including changes made through the API, which the editor does not mark as modified) and all modified content assets in the live Flax Editor. Refused during play mode: a save then would write the play-time scene, with every actor scripts created at run time.

editor_play_modeA

Controls play mode in the live Flax Editor. Action must be start, stop, pause, or resume. Returns when the editor has reached the requested state (up to 30 seconds, so a heavy scene can load).

editor_screenshotA

Captures the visible Flax Editor scene viewport to a PNG file. The output directory must already exist, and capture is unavailable in headless mode.

editor_compileA

Compiles the project's scripts and returns when the editor has reloaded and settled. The scripts are first compiled outside the editor with the compiler arguments Flax.Build last used (build_check_scripts): errors come back at once, structured (file, line, column, code), and the editor is not touched. A clean check goes on to the editor's compile; its outcome is reloaded, unchanged or failed (build tool lines in BuildErrors). Check says how the check went (passed, failed, or unavailable with the reason). Stops play mode first.

editor_open_sceneA

Opens a scene in the live Flax Editor and returns when it has loaded. The path is absolute or relative to the project's Content folder (for example Scenes/Main.scene). Refused during play mode.

editor_host_statusA

Returns the state of the bridge host, the pipe server that outlives script reloads: its version and start time, the attached plugin generation, attach and detach counts, the editor's memory and garbage collections, and how many old plugin load contexts are still alive (reloads that leak). collect=true runs a full garbage collection first so that count is a measurement; it takes long on a large heap.

editor_find_actorsA

Finds actors in the loaded scenes (the play-time scene during play) by name, actor type and script type, all optional and combined. Types match by full or short name. Returns id, name, type, path from the scene and the scripts' types; Truncated is true when more than the limit matched.

editor_get_memberA

Reads a field or property of an actor, or of one of its scripts, by a dotted path (e.g. Clock.Steps). Private members count. Unknown names list the members that exist.

editor_set_memberA

Writes a field or property of an actor or of one of its scripts by a dotted path; a struct on the way is written back. The value is JSON in the member's shape (a number, true, "text", an enum name, {"X":1,"Y":2,"Z":3}). In edit mode it goes through the editor's undo and marks the scene edited (editor_save keeps it); in play mode it lasts until play ends. Returns the value read back.

editor_add_scriptA

Adds a script of a type to an actor (nothing when it has one already) and, in edit mode, marks the scene edited so editor_save keeps it. The type is resolved by full or short name in the loaded assemblies.

editor_camera_screenshotA

Renders a camera into its own render target and saves a PNG. It does not read an editor window, so it works with the editor covered, small or minimised, in play mode and in edit mode. Camera: the given Camera actor. Without one: the main camera in play mode, else the editor viewport's view. The picture shows the 3D scene with the game's post effects, without editor or screen-space UI. Not available in headless mode. Replaces an existing file. Read the PNG to see it.

game_commandsA

Lists the commands the game registered with the bridge (FlaxMcpBridge.GameCommands.Register): name, description and the type that registered it. Game scripts usually register while enabled, so the list in play mode can differ from the one in edit mode.

game_commandA

Runs a registered game command on the editor's main thread and returns its text result. Errors: unknown_command (lists the registered names), command_failed (the handler's exception type and message).

editor_eventsA

Returns the editor's recorded events after a sequence number, oldest first. Kinds: log (managed log lines only; the engine's native lines such as compiler output stay in the log file), exception, compile_begin, compile_succeeded, compile_failed, reload_begin, reload_end, play_begin, play_end, scene_loaded, scene_load_error, scene_saved, scene_save_error, scene_unloaded. The bridge host keeps the last 4096 events across script reloads; Truncated is true when some after sinceSeq were overwritten. A new HostStartedUtc means the editor restarted and the sequence began again.

editor_wait_forA

Waits for the first editor event of a kind (see editor_events), optionally with a text, and returns it. Without sinceSeq it waits for an event after the call; with it, an event already recorded after that number counts. A timeout is a result (TimedOut true), not an error. Example: start play with editor_play_mode, then editor_wait_for kind=log textContains="[Test]" to read a game's answer.

editor_job_startA

Starts a long editor operation as a job and returns at once: compile (compile scripts and wait until the editor has reloaded and settled), play_start, play_stop, play_pause, play_resume, open_scene (path). Editor jobs run one at a time: another one while one runs fails with job_conflict naming it. Follow the job with job_wait or job_status; its result is what editor_compile, editor_play_mode or editor_open_scene return.

job_statusA

Returns a job's state: running, succeeded (with its result), failed or canceled (with the reason), and its latest progress message. Jobs come from editor_job_start, build_game, and the editor tools that run as jobs.

job_waitA

Waits for a job to end, up to the timeout, sending its progress messages as progress notifications, and returns its state. A timeout is a result (Status running), not an error.

Prompts

Interactive templates invoked by user choice

NameDescription
diagnose_build_failureCompiles Flax game scripts and diagnoses the failure using structured diagnostics and the engine log.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 57 tools

Disambiguation3/5

Most tools have distinct purposes and the descriptions clarify live-editor versus file-based contexts. However, several pairs overlap in practice: editor_find_actors vs scene_find_actor, editor_scene_graph vs scene_outline, and editor_compile vs build_compile_scripts vs build_check_scripts. editor_job_start also duplicates blocking editor operations, so the large surface creates real selection ambiguity.

Naming Consistency4/5

Names are consistently snake_case and grouped by clear functional prefixes such as editor_, content_, scene_, build_, logs_, project_, and job_. Within those prefixes some names are noun-first (editor_actor_details, editor_scene_graph, editor_play_mode) while others are verb-first (editor_find_actors, editor_create_actor), so it is not a pure verb_noun convention, but it remains predictable.

Tool Count1/5

With 57 tools, the surface is far beyond the typical well-scoped range and well past the 25+ threshold for being heavy. Even though the tools are grouped into coherent domains, the sheer count makes reliable tool selection difficult for an agent.

Completeness4/5

Coverage is broad: project metadata, scene inspection, live actor manipulation, materials, builds, logs, screenshots, play mode, events, and jobs are all represented. Notable gaps remain around asset lifecycle operations (delete/rename/import), broader component creation beyond BoxCollider/StaticModel, script removal, and prefab creation, though generic member access and game commands provide workarounds.

Maintenance

ActivityActive
ResponsivenessResponsive