Skip to content

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

Timberborn MCP Dev Tools

Extension for TimberbornMCP. Adds developer tools.

Tools

Tool What it does
get_ui_tree(max_depth: int = 10) Dumps the UI Toolkit (UIElements) visual tree for every active UIDocument - name, type, USS classes, text, children.
get_scene_hierarchy(max_depth: int = 10, name_filter: str = None) Dumps the active scene's GameObject hierarchy with attached component types.
read_log(lines: int = 200, filter: str = None) Tails the game's own Player.log (via Application.consoleLogPath, so it's correct on every OS/store), with an optional substring filter.
list_harmony_patches() Read-only: every method currently patched by any mod, with owners and prefix/postfix/transpiler/finalizer counts.
list_blueprints(path_filter: str = None, spec_type: str = None) Lists every loaded blueprint's path, optionally filtered by path substring or by containing a given spec type.
get_blueprint(path: str) Dumps a blueprint's full spec tree ([Serialize] fields only, matching what a .blueprint.json can express) including children.
list_blueprint_spec_types(filter: str = None) Lists every registered spec type, its JSON key/aliases, and its [Serialize] fields - discovery for edit_blueprint.
edit_blueprint(path: str, operation: "set_field"|"add_spec"|"remove_spec", spec_type: str, field: str = None, value: any = None, fields: dict = None) Sets a field on an existing spec, adds a new spec, or removes one - in-memory only, reverts when the game closes; only affects entities placed/spawned after the edit.
list_localizations(id_filter: str = None, text_filter: str = None, language: str = None) Lists localization entries (ID, Comment, Text per language) read directly from every mod's Localizations/*.csv, independent of the active language.
edit_localization(id: str, operation: "set"|"delete", text: str = None) Sets or deletes a localization ID's text for the currently active language, live - in-memory only, reverts on language switch/reload or game close.
eval_csharp(code: str, reset: bool = False, main_thread: bool = False) Compiles and runs a snippet of C# in-process (Mono.CSharp REPL), with every loaded assembly referenced - the escape hatch for anything the other tools don't cover. State persists across calls until reset.

Requirements

Building

Run tools/fetch-mono-csharp.sh once before the first build (the .vscode build task does this automatically) - it stages Mono.CSharp.dll, required by eval_csharp, from a local Unity Editor install. See ARCHITECTURE.md §4 for why it's fetched rather than committed or pulled from NuGet.

License

GPL-3.0 — see LICENSE.

Releases

Contributors

Languages