uloop-execute-dynamic-code

Installation
SKILL.md

Task

Execute the following request using uloop execute-dynamic-code: $ARGUMENTS

For basic selected GameObject discovery or property inspection, use find-game-objects --search-mode Selected before this tool. Use this tool after the built-in inspection tools are not enough or when you need to modify Unity state.

Workflow

  1. Read the relevant reference file(s) from the Code Examples section below
  2. Construct C# code based on the reference examples
  3. Execute via Bash: uloop execute-dynamic-code --code '<code>'
  4. If execution fails, adjust code and retry
  5. Report the execution result

Parameters

  • --code '<code>' (required): Inline C# statements to execute. Use direct statements only; return is optional, and using directives may appear at the top of the snippet.
  • Shell quoting: bash/zsh uses single quotes, for example uloop execute-dynamic-code --code 'using UnityEngine; return Mathf.PI;'. PowerShell doubles inner quotes ('Debug.Log(""Hello!"");').
  • --parameters {} (advanced, optional): Pass an object when reusing a snippet with varying data or when keeping values outside the code. Values are exposed as parameters["param0"], parameters["param1"], and so on. Omit this flag for most snippets, and pass an object instead of a JSON string.
  • --compile-only true (optional): Compile the snippet without executing it. Use this when you want Roslyn diagnostics before running new code.

Code Rules

Write direct statements only — no class/namespace/method wrappers. Return is optional.

using UnityEngine;
float x = Mathf.PI;
return x;

Forbidden — these will be rejected at compile time: System.IO.*, AssetDatabase.CreateFolder, creating/editing .cs/.asmdef files. Use terminal commands for file operations instead.

Output

Returns JSON:

  • Success: boolean — overall execution success
  • Result: string — value of the snippet's return statement (empty when omitted)
  • Logs: string[] — Debug.Log / Debug.LogWarning / Debug.LogError messages emitted during the run
  • CompilationErrors: object[] — Roslyn diagnostics with Message, Line, Column, ErrorCode, optional Hint and Suggestions
  • ErrorMessage: string — top-level failure summary (empty on success)
  • Error: string — alias of ErrorMessage
  • SecurityLevel: string — dynamic-code security level active for the request
  • UpdatedCode: string|null — the wrapped form actually compiled (handy when debugging using-statement reordering)
  • DiagnosticsSummary: string|null — compact summary when diagnostics are available
  • Diagnostics: object[] — structured diagnostics; same shape as CompilationErrors, usually populated together with it

On Success: false, inspect CompilationErrors first. If empty, read ErrorMessage (and Logs for extra context) — the failure may be a runtime exception, security violation, cancellation, or an "execution in progress" rejection, all of which return empty CompilationErrors. Both EditMode and PlayMode are supported targets — the snippet runs in whichever mode the Editor is currently in.

Code Examples by Category

For detailed code examples, refer to these files:

Related skills

More from hatayama/uloopmcp

Installs
33
GitHub Stars
306
First Seen
Feb 14, 2026