Skip to content
cccskills
FreePublished on GitHub

rql-query

Query the live Unity scene (GameObjects, components, assets) with RQL in ONE call: filter, project, sort, count, walk hierarchies. Far fewer calls/tokens than reading objects one by one.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md4.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

RQL / Query

Run a read-only RQL query against the live Unity Editor scene and return compact rows. One precise query beats many exploratory calls. Changes need rql-mutate.

RQL: source | stage | stage ... Sources: objects (every GameObject in the loaded scenes, inactive included), roots, scenes, selection, prefab (the prefab open in prefab editing mode), console (Editor log entries), shaders, componentTypes, profiler (memory / rendering / frame snapshots; call Start / Stop / Save), tests (test methods; run a selection with tests-run query), testResults (last run), editor (Editor state and operations). Assets: unity.assets("t:Material") or unity.assets("t:Prefab", "Assets/Enemies"), unity.asset("Assets/Mats/Red.mat"). ref("Light#1234") resolves a $ref; unity.find("Player") or unity.find("Level/Pillar_1") a GameObject by unique name or path. Stages: where <predicate> filter select a b.c alias=(expr) project columns (wrap computed expressions in parentheses) sort <expr> [desc], ... stable sort first N | skip N | count get <path> replace each item by a member (lists are flattened) recurse children [max-depth=N] [include-self=false] walk the hierarchy (input items included by default) distinct [expr] | group-by expr | sum expr | min expr | max expr | avg expr Expressions: == != < <= > >= and or not + - * / %; contains, starts-with, ends-with (case-insensitive); matches "regex"; x in [a, b]; x is null; x is not null; $ is Light (includes subclasses); has(member). Literals: numbers, "strings", true/false/null, lists [a, b], objects {x: 1, y: 2}. Paths: a.b.c, list[0], map["key"]; .member on a list maps over its elements. List methods: .any(pred) .all(pred) .count([pred]) .sum(e) .min(e) .max(e) .first([pred]); inside them bare names refer to the element, falling back to the outer item. Meta: $ (current item), $ref (stable id such as Light#1234), $type, $path, $index, $depth. Enums compare to strings (type == "Spot"); == on strings is case-sensitive. Unity: GameObject has components (list), children (list), active, name, tag, layer, transform (position, localPosition, eulerAngles, localScale, parent). Component members are the C# members (public + [SerializeField]); find them via objects | get components | where $ is Light. Vectors/colors print as (x, y, z); write "(1, 2, 3)", [1, 2, 3] or {x: 1, y: 2, z: 3}; colors also "#ff8800". Material shader properties: properties["_Color"]. Destroyed objects read as null (missing references: where target == null). Navigate with paths or get; select only projects output columns. Results come back as compact rows (header line, then col|col). Long results are truncated — refine with where/first or use count. Unknown members produce warnings with suggestions; rql-schema(type) lists a type's members.

Examples: objects | where name contains "Enemy" and active | select $ref name transform.position objects | get components | where $ is Light and intensity > 2 | select gameObject.name intensity color roots | recurse children | where components.count() == 1 | select $path name unity.assets("t:Material") | select name shader.name properties["_Color"] console | where logType == "Error" | sort sequence desc | first 5 | select message scenes | select name path isDirty rootCount componentTypes | where name contains "Collider" | select name editor | select isPlaying isPaused selection

How to Call

unity-mcp-cli run-tool rql-query --input '{
  "query": "string_value"
}'

For complex input (multi-line strings, code), save the JSON to a file and use:

unity-mcp-cli run-tool rql-query --input-file args.json

Or pipe via stdin (recommended):

unity-mcp-cli run-tool rql-query --input-file - <<'EOF'
{"param": "value"}
EOF

Troubleshooting

If unity-mcp-cli is not found, either install it globally (npm install -g unity-mcp-cli) or use npx unity-mcp-cli instead. Read the /unity-initial-setup skill for detailed installation instructions.

Input

NameTypeRequiredDescription
querystringYesRQL query, e.g. objects

Input JSON Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    }
  },
  "required": [
    "query"
  ]
}

Output

This tool does not return structured output.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Build the unity-mcp-cli TypeScript CLI tool and link it globally for terminal use.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Save and quit an editor that a CLI session started (`unity-mcp-cli exec`, `open --headless`). Needs the session lease nonce; an editor the user opened is never closed. Used by `unity-mcp-cli close`.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Review and resolve PR comments from GitHub. Validates each comment, fixes legitimate issues.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Install a Unity package from the registry, a Git URL, or a local path. Modifies `manifest.json` and triggers package resolution; may also trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Use 'package-search' / 'package-list' for discovery first.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

List all UPM packages installed in the Unity project — name, version, source, description. Optionally filter by source (registry, embedded, local, git, built-in, local tarball), by name/display/description substring, and by direct-dependency-only.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

Uninstall a UPM package from the Unity project. Modifies `manifest.json` and may trigger a domain reload — the final result is delivered after the reload via the request's `requestId`. Built-in packages and packages that are dependencies of others cannot be removed. Use 'package-list' to list installed packages first.

The English summary is being prepared. Showing the original description.

IvanMurzak/Unity-MCP4.5KUpdated Oct 20, 2026

See all skills by IvanMurzak

Report a problem with this skill