AI Skills, MCP Tools, and CLI for Unity Engine. Full AI develop and test loop. Use cli for quick setup. Efficient token usage, advanced tools. Any C# method may be turned into a tool by a single line. Works with Claude Code, Gemini, Copilot, Cursor and any other absolutely for free.
This report summarizes scanner evidence for IvanMurzak/Unity-MCP, a C# project with 4,418 GitHub stars. SynthScan examined 141,964 lines of code across 896 source files, recording 495 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 7.4 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 252 finding(s).
Are imports declared and package/API names verified? 23 finding(s).
Are wrappers, guards, and repeated structures necessary? 241 finding(s).
Which changes need focused human review? 495 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 495 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | README.md | 303 | # 1.1 Install unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | README.md | 305 | # ├────────────────────┤ | COMMENT |
| MEDIUM | README.md | 320 | # └────────────────────┘ | COMMENT |
| MEDIUM | docs/README.es.md | 303 | # 1.1 Instalar unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | docs/README.es.md | 305 | # ├────────────────────┤ | COMMENT |
| MEDIUM | docs/README.es.md | 320 | # └────────────────────┘ | COMMENT |
| MEDIUM | docs/README.ja.md | 303 | # 1.1 unity-mcp-cli をインストール # ┌────────────────────┐ | COMMENT |
| MEDIUM | docs/README.ja.md | 305 | # ├────────────────────┤ | COMMENT |
| MEDIUM | docs/README.ja.md | 320 | # └────────────────────┘ | COMMENT |
| MEDIUM | docs/README.zh-CN.md | 303 | # 1.1 安装 unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | docs/README.zh-CN.md | 305 | # ├────────────────────┤ | COMMENT |
| MEDIUM | docs/README.zh-CN.md | 320 | # └────────────────────┘ | COMMENT |
| MEDIUM | cli/README.md | 57 | # 1.1 Install unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | cli/README.md | 59 | # ├────────────────────┤ | COMMENT |
| MEDIUM | cli/README.md | 74 | # └────────────────────┘ | COMMENT |
| MEDIUM | cli/tests/open.test.ts | 168 | // ── Unit tests for the extracted validation helpers ─────────────────────────── | COMMENT |
| MEDIUM | cli/tests/close.test.ts | 63 | // ─── close command — flag parsing, refusals, idempotent no-op ───────────────── | COMMENT |
| MEDIUM | cli/tests/close.test.ts | 139 | // ─── path normalisation helpers (pure unit tests) ──────────────────────────── | COMMENT |
| MEDIUM | cli/tests/close.test.ts | 234 | // ─── shutdown utility unit tests ────────────────────────────────────────────── | COMMENT |
| MEDIUM | cli/tests/close.test.ts | 355 | // ─── live-editor integration smoke test (gated by UMCP_LIVE=1) ─────────────── | COMMENT |
| MEDIUM | cli/tests/run-tool.test.ts | 57 | // ── resolveConnectionFromConfig unit tests ──────────────────────────────────── | COMMENT |
| MEDIUM | cli/tests/run-tool.test.ts | 193 | // ── machine-store credential wiring (default, un-injected path) ─────────────── | COMMENT |
| MEDIUM | cli/tests/run-tool.test.ts | 242 | // ── resolveConnection cloud-auth-missing signal (feeds the run-tool guard) ───── | COMMENT |
| MEDIUM | cli/tests/run-tool.test.ts | 329 | // ── run-tool CLI integration tests ──────────────────────────────────────────── | COMMENT |
| MEDIUM | cli/tests/run-tool.test.ts | 371 | // ── run-tool config-based resolution integration tests ──────────────────────── | COMMENT |
| MEDIUM | cli/docs/README.es.md | 57 | # 1.1 Install unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | cli/docs/README.es.md | 59 | # ├────────────────────┤ | COMMENT |
| MEDIUM | cli/docs/README.es.md | 74 | # └────────────────────┘ | COMMENT |
| MEDIUM | cli/docs/README.ja.md | 57 | # 1.1 Install unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | cli/docs/README.ja.md | 59 | # ├────────────────────┤ | COMMENT |
| MEDIUM | cli/docs/README.ja.md | 74 | # └────────────────────┘ | COMMENT |
| MEDIUM | cli/docs/README.zh-CN.md | 57 | # 1.1 Install unity-mcp-cli # ┌────────────────────┐ | COMMENT |
| MEDIUM | cli/docs/README.zh-CN.md | 59 | # ├────────────────────┤ | COMMENT |
| MEDIUM | cli/docs/README.zh-CN.md | 74 | # └────────────────────┘ | COMMENT |
| MEDIUM | cli/src/commands/install-plugin.ts | 50 | // ── Phase 1: install the plugin into the Unity project's manifest ──────── | COMMENT |
| MEDIUM | cli/src/commands/install-plugin.ts | 99 | // ── Phase 2: download the RID-matched server binary (--with-server) ────── | COMMENT |
| MEDIUM | cli/src/commands/install-plugin.ts | 122 | // ── Phase 3: redeem an enrollment code (--enroll / --enroll-stdin) ─────── | COMMENT |
| MEDIUM | .github/workflows/release.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/release.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/release.yml | 362 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 478 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/test_unity_plugin.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/test_unity_plugin.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request_manual.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request_manual.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request_manual.yml | 19 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/test_pull_request_manual.yml | 123 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/publish_test_results.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/publish_test_results.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/test_pull_request.yml | 176 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/test_pull_request.yml | 296 | # ------------------- | COMMENT |
| MEDIUM | .github/workflows/test_cli.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/test_cli.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/claude.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/claude.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/generate-unity-activation-file.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| MEDIUM | .github/workflows/generate-unity-activation-file.yml | 7 | # └──────────────────────────────────────────────────────────────────┘ | COMMENT |
| MEDIUM | .github/workflows/bump_version.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| 149 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 301 | COMMENT | |
| LOW | docs/README.es.md | 301 | COMMENT | |
| LOW | docs/README.ja.md | 301 | COMMENT | |
| LOW | docs/README.zh-CN.md | 301 | COMMENT | |
| LOW | cli/tests/extensions-catalog-csharp-parity.test.ts | 1 | import { describe, it, expect } from 'vitest'; | COMMENT |
| LOW | cli/tests/launch-error-dismiss.test.ts | 221 | describe('permanent-error message constants', () => { | COMMENT |
| LOW | cli/tests/unity-editor.test.ts | 461 | // --------------------------------------------------------------------------- | COMMENT |
| LOW | cli/tests/project-identity.test.ts | 1 | // Copyright (c) 2024 Ivan Murzak. All rights reserved. | COMMENT |
| LOW | cli/src/cli.ts | 1 | // CLI entry for `unity-mcp-cli`, exported at the `./cli` subpath. | COMMENT |
| LOW | cli/src/lib.ts | 1 | // Library entry point for `unity-mcp-cli`. | COMMENT |
| LOW | cli/src/utils/extensions-catalog.ts | 1 | // The CLI's typed mirror of the SHARED extension catalogue — the single source of | COMMENT |
| LOW | cli/src/utils/unity-editor.ts | 301 | // user-typed trailing separator (e.g. `C:\Program Files\Unity\Hub\Editor\`) | COMMENT |
| LOW | cli/src/utils/launch-error-dismiss.ts | 381 | `${LINUX_XDOTOOL_MISSING_PREFIX}. Install it (e.g. \`sudo apt-get install xdotool\`) to enable Unity launch-erro | COMMENT |
| LOW | cli/src/lib/open.ts | 341 | COMMENT | |
| LOW | cli/src/lib/types.ts | 1 | // Shared public types for the unity-mcp-cli library API. | COMMENT |
| LOW | cli/src/lib/logger.ts | 1 | // Minimal logger interface used by shared utility functions that are | COMMENT |
| LOW | .github/workflows/release.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| LOW | .github/workflows/release.yml | 221 | # This job only exports a .unitypackage; it never reads Application.version. | COMMENT |
| LOW | .github/workflows/release.yml | 401 | COMMENT | |
| LOW | .github/workflows/release.yml | 421 | COMMENT | |
| LOW | .github/workflows/release.yml | 741 | COMMENT | |
| LOW | .github/workflows/test_unity_plugin.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| LOW | .github/workflows/test_unity_plugin.yml | 21 | # ordinary pull_request run, where the chain feed steps below are no-ops. | COMMENT |
| LOW | .github/workflows/test_unity_plugin.yml | 81 | COMMENT | |
| LOW | .github/workflows/test_unity_plugin.yml | 161 | # Library/burst.pid at startup and SIGKILLs that PID to reap a "stale" Burst compiler, but PIDs in a | COMMENT |
| LOW | .github/workflows/test_unity_plugin.yml | 221 | COMMENT | |
| LOW | .github/workflows/test_pull_request_manual.yml | 61 | # unityVersion: "2022.3.62f3" | COMMENT |
| LOW | .github/workflows/test_pull_request.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| LOW | .github/workflows/test_pull_request.yml | 221 | COMMENT | |
| LOW | .github/workflows/test_pull_request.yml | 241 | # projectPath: './Unity-Tests/6000.3.1f1' | COMMENT |
| LOW | .github/workflows/generate-unity-activation-file.yml | 1 | # ┌──────────────────────────────────────────────────────────────────┐ | COMMENT |
| LOW | .github/scripts/chain_fixture.py | 1 | #!/usr/bin/env python3 | COMMENT |
| LOW | .github/scripts/chain_feed.py | 61 | # lock input validation — every lock-sourced scalar, strictly, at LOAD time | COMMENT |
| LOW | .github/scripts/chain_feed.py | 81 | #: control character, whitespace, `~^:?*[\`, `..` or leading `-`. A future reader that pastes it | COMMENT |
| LOW | .github/scripts/chain_feed.py | 121 | COMMENT | |
| LOW | .github/scripts/chain_feed.py | 481 | COMMENT | |
| LOW | …/Assets/com.IvanMurzak/AI Game Dev Installer/README.md | 301 | COMMENT | |
| LOW | …-MCP-Plugin/Tests~/EngineFree/ConnectionConfigTests.cs | 21 | /// <summary> | COMMENT |
| LOW | …ity-MCP-Plugin/Tests~/EngineFree/ToolAttributeTests.cs | 21 | { | COMMENT |
| LOW | Unity-MCP-Plugin/Tests~/EngineFree/NuGetPinGateTests.cs | 61 | /// record that <i>some</i> NuGet DLL set was restored, never <i>which</i>. Raise a pin without | COMMENT |
| LOW | …rzak.unity.mcp/Runtime/UnityMcpPluginRuntime.Static.cs | 81 | } | COMMENT |
| LOW | …rzak.unity.mcp/Runtime/UnityMcpPluginRuntime.Static.cs | 101 | /// { | COMMENT |
| LOW | ….ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.Config.cs | 81 | public static string CloudServerUrl => CloudServerBaseUrl + "/mcp"; | COMMENT |
| LOW | ….ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.Config.cs | 101 | /// <remarks> | COMMENT |
| LOW | ….ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.Config.cs | 121 | /// an anonymous Cloud connection; Local/Custom mode ignores it entirely. Static because the machine | COMMENT |
| LOW | ….ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.Config.cs | 201 | // Seed the LOCAL server token directly. `GenerateToken()` produces the local server secret; | COMMENT |
| LOW | ….ivanmurzak.unity.mcp/Runtime/UnityMcpPluginBuilder.cs | 21 | /// Builder for configuring a runtime <see cref="UnityMcpPluginRuntime"/> from C# code. | COMMENT |
| LOW | …ges/com.ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.cs | 241 | public static string GenerateToken() | COMMENT |
| LOW | …ges/com.ivanmurzak.unity.mcp/Runtime/UnityMcpPlugin.cs | 261 | /// directory reported with backslashes hashes identically to its forward-slash form. The port | COMMENT |
| LOW | …ivanmurzak.unity.mcp/Runtime/Unity/Logs/ILogStorage.cs | 61 | } | COMMENT |
| LOW | …on/UnityEngine_Material_ReflectionConverter.Runtime.cs | 101 | logs?.Success($"Property '{propertyValue.name}' modified to '{value}'. Converter: {GetType().Get | COMMENT |
| LOW | …mpl/UnityEngine_Texture_ReflectionConverter.Runtime.cs | 21 | using LogLevel = Microsoft.Extensions.Logging.LogLevel; | COMMENT |
| LOW | …mpl/UnityEngine_Texture_ReflectionConverter.Runtime.cs | 41 | COMMENT | |
| LOW | …Impl/UnityEngine_Sprite_ReflectionConverter.Runtime.cs | 21 | using LogLevel = Microsoft.Extensions.Logging.LogLevel; | COMMENT |
| LOW | …Impl/UnityEngine_Sprite_ReflectionConverter.Runtime.cs | 41 | COMMENT | |
| LOW | …om.ivanmurzak.unity.mcp/Runtime/Utils/EntityIdUtils.cs | 21 | /// Unity 6.5+ encodes an EntityId's raw data as | COMMENT |
| LOW | …ivanmurzak.unity.mcp/Runtime/Utils/EnvironmentUtils.cs | 21 | /// <summary> | COMMENT |
| LOW | …com.ivanmurzak.unity.mcp/Runtime/Data/ComponentData.cs | 21 | public List<SerializedMember?>? fields { get; set; } | COMMENT |
| LOW | …com.ivanmurzak.unity.mcp/Runtime/Data/ComponentData.cs | 41 | // obj: go, | COMMENT |
| LOW | …rzak.unity.mcp/Runtime/Data/ObjectRef.pre-Unity.6.5.cs | 61 | #endif | COMMENT |
| 113 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …-MCP-Plugin/.claude/skills/unity-skill-create/SKILL.md | 3 | description: Create a new skill (MCP tool) for the Unity Editor by writing a C# (.cs) file that Unity compiles into the | CODE |
| CRITICAL⚡ | …mcp/Tests/Editor/Tool/RunToolStructuredContentTests.cs | 41 | _reflector.JsonSerializer.AddConverter(new com.IvanMurzak.Unity.MCP.JsonConverters.Vector3Converter()); | CODE |
| CRITICAL⚡ | …mcp/Tests/Editor/Tool/RunToolStructuredContentTests.cs | 42 | _reflector.JsonSerializer.AddConverter(new com.IvanMurzak.Unity.MCP.JsonConverters.ColorConverter()); | CODE |
| CRITICAL⚡ | …mcp/Tests/Editor/Tool/RunToolStructuredContentTests.cs | 43 | _reflector.JsonSerializer.AddConverter(new com.IvanMurzak.Unity.MCP.JsonConverters.QuaternionConverter()); | CODE |
| CRITICAL | …ity.mcp/Editor/Scripts/API/SystemTool/Skills.Create.cs | 38 | "run via com.IvanMurzak.ReflectorNet.Utils.MainThread.Instance.Run(), and the method should either " + | CODE |
| CRITICAL | …ity.mcp/Editor/Scripts/API/SystemTool/Skills.Create.cs | 48 | "All Unity API calls must use com.IvanMurzak.ReflectorNet.Utils.MainThread.Instance.Run(). " + | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | .github/scripts/chain_feed.py | 223 | "build": "npm ci && npm run typecheck && npm run build", | CODE |
| HIGH⚡ | .github/scripts/chain_feed.py | 225 | "npm pkg set version={ws_version} && npm ci && npm run build && npm pack --pack-destination {npm_feed}", | CODE |
| HIGH | .github/scripts/chain_feed.py | 244 | "build": "cd cli && npm ci && npm run build", | CODE |
| HIGH | .github/scripts/chain_feed.py | 246 | "cd cli && npm ci && npm pkg set version={ws_version} && npm pack --pack-destination {npm_feed}", | CODE |
| HIGH | .github/scripts/chain_feed.py | 329 | "cd cli && npm ci && npm pkg set version={ws_version} && npm pack --pack-destination {npm_feed}", | CODE |
| HIGH | .github/scripts/chain_feed.py | 374 | "cd cli && npm ci && npm pkg set version={ws_version} && npm pack --pack-destination {npm_feed}", | CODE |
| HIGH | .github/scripts/chain_feed.py | 407 | "build": "pnpm install --frozen-lockfile && pnpm build && pnpm typecheck", | CODE |
| HIGH | .github/scripts/chain_feed.py | 3328 | " group: ${{ github.event_name == 'workflow_dispatch' && %s || format('%s-{0}', github.ref) }}" | CODE |
| HIGH | .github/scripts/chain_feed.py | 3363 | " exe=\"$(\"$c\" -c '%s' 2>/dev/null)\" || continue" % CHAIN_PY_PROBE, | CODE |
| HIGH | .github/scripts/chain_feed.py | 3381 | " try { $out = & $cmd.Source -c '%s' 2>$null } catch { continue }" % CHAIN_PY_PROBE, | CODE |
| HIGH | .github/scripts/chain_feed.py | 1195 | yet its workflow packs with `npm pkg set version=$CHAIN_WS_VERSION && npm pack`. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 276 | ## Step 1: Install `Unity MCP Plugin` | COMMENT |
| LOW | README.md | 329 | ## Step 2: Install `AI agent` | COMMENT |
| LOW | README.md | 343 | ## Step 3: Configure `AI agent` | COMMENT |
| LOW | …/Assets/com.IvanMurzak/AI Game Dev Installer/README.md | 276 | ## Step 1: Install `Unity MCP Plugin` | COMMENT |
| LOW | …/Assets/com.IvanMurzak/AI Game Dev Installer/README.md | 329 | ## Step 2: Install `AI agent` | COMMENT |
| LOW | …/Assets/com.IvanMurzak/AI Game Dev Installer/README.md | 343 | ## Step 3: Configure `AI agent` | COMMENT |
| LOW | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 141 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 172 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 181 | // Step 2: create a variant from the asset path | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 252 | // Step 1: create a base prefab (on main thread for setup) | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 260 | // Step 2: create variant from background thread | COMMENT |
| LOW | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 141 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 172 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 181 | // Step 2: create a variant from the asset path | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 252 | // Step 1: create a base prefab (on main thread for setup) | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 260 | // Step 2: create variant from background thread | COMMENT |
| LOW⚡ | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 251 | // Step 1: Clear logs | COMMENT |
| LOW⚡ | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 254 | // Step 2: Perform an action (simulate by generating new logs) | COMMENT |
| LOW | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 265 | // Step 3: Get logs - should only contain action logs | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 141 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 172 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 181 | // Step 2: create a variant from the asset path | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 252 | // Step 1: create a base prefab (on main thread for setup) | COMMENT |
| LOW⚡ | …r/Tool/Assets/AssetsPrefabCreateTests.pre-Unity.6.5.cs | 260 | // Step 2: create variant from background thread | COMMENT |
| LOW | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 141 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 172 | // Step 1: create a base prefab | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 181 | // Step 2: create a variant from the asset path | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 252 | // Step 1: create a base prefab (on main thread for setup) | COMMENT |
| LOW⚡ | …cp/Tests/Editor/Tool/Assets/AssetsPrefabCreateTests.cs | 260 | // Step 2: create variant from background thread | COMMENT |
| LOW⚡ | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 251 | // Step 1: Clear logs | COMMENT |
| LOW⚡ | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 254 | // Step 2: Perform an action (simulate by generating new logs) | COMMENT |
| LOW | …ests/Editor/Tool/Console/TestToolConsoleIntegration.cs | 265 | // Step 3: Get logs - should only contain action logs | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | commands/tools/validate_mcp_openai.py | 66 | print(f" Content: OPENAI_API_KEY=sk-your-api-key-here") | CODE |
| HIGH⚡ | commands/tools/validate_mcp_openai.py | 68 | print(f" Linux/Mac: export OPENAI_API_KEY='sk-your-api-key-here'") | CODE |
| HIGH⚡ | commands/tools/validate_mcp_openai.py | 69 | print(f" Windows: set OPENAI_API_KEY=sk-your-api-key-here") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | cli/src/utils/cloud-login.ts | 78 | function buildAccountSwitchConfirm( | CODE |
| LOW | cli/src/utils/connection.ts | 38 | export function resolveAndValidateProjectPath(positionalPath: string | undefined, options: ConnectionOptions): string { | CODE |
| LOW | cli/src/utils/cloud-credentials.ts | 41 | export function createCloudCredentialProvider( | CODE |
| LOW | cli/src/utils/cloud-credentials.ts | 68 | export function resetCloudCredentialProviderForTests(): void { | CODE |
| LOW | cli/src/utils/unity-hub.ts | 225 | export function parseInstalledEditorsLine(line: string): InstalledEditor | null { | CODE |
| LOW | cli/src/utils/unity-hub.ts | 483 | function runHubInstallWithProgress(hubPath: string, args: string[], version: string): Promise<void> { | CODE |
| LOW | cli/src/utils/unity-editor.ts | 160 | export function getSecondaryInstallPathFile(os: NodeJS.Platform): string | null { | CODE |
| LOW | cli/src/utils/unity-editor.ts | 194 | export function readSecondaryInstallPaths(os: NodeJS.Platform): string[] { | CODE |
| LOW | cli/src/utils/unity-editor.ts | 258 | function findEditorPathByCommonLocations(version?: string): string | null { | CODE |
| LOW | cli/src/utils/manifest.ts | 54 | export async function resolveLatestPackageVersion( | CODE |
| LOW | cli/src/utils/config.ts | 89 | export function getOrCreateConfig(projectPath: string): UnityConnectionConfig { | CODE |
| LOW | cli/src/utils/config.ts | 198 | export async function resolveConnectionFromConfig( | CODE |
| LOW | cli/src/utils/launch-error-dismiss.ts | 97 | export async function tryDismissLaunchErrorsDialog( | CODE |
| LOW | cli/src/lib/create-project.ts | 23 | function defaultResolveEditorExecutable(editorInstallPath: string): string | null { | CODE |
| LOW | cli/src/lib/open.ts | 78 | function extractEditorPathFromCommandLine(commandLine: string): string { | CODE |
| LOW | cli/src/lib/open.ts | 511 | async function pollAndDismissLaunchErrors(opts: PollAndDismissOptions): Promise<void> { | CODE |
| LOW | cli/src/commands/login.ts | 37 | async function finishPartialAuthorization(store: MachineCredentialStore): Promise<never> { | CODE |
| LOW | .github/scripts/chain_feed.py | 1978 | def _assert_only_patch_entry_changed(before_raw, after_raw, old_key, new_key, new_value): | CODE |
| LOW | .github/scripts/chain_feed.py | 2243 | def pe_version_strings_from_bytes(buf): | CODE |
| LOW⚡ | commands/tools/validate_mcp_openai.py | 74 | def convert_mcp_to_openai_tool(mcp_tool): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | .github/scripts/chain_fixture.py | 865 | except (ValueError, OSError): | CODE |
| HIGH | .github/scripts/chain_feed.py | 3918 | except (ValueError, OSError): # pragma: no cover | CODE |
| HIGH | commands/tools/validate_mcp_openai.py | 21 | except ImportError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/chain_fixture.py | 200 | CODE | |
| LOW | .github/scripts/chain_fixture.py | 355 | CODE | |
| LOW | .github/scripts/chain_fixture.py | 404 | CODE | |
| LOW | .github/scripts/chain_fixture.py | 480 | CODE | |
| LOW | .github/scripts/check_nuget_gate.py | 91 | CODE | |
| LOW | .github/scripts/chain_feed.py | 1860 | CODE | |
| LOW | .github/scripts/chain_feed.py | 1889 | CODE | |
| LOW | .github/scripts/chain_feed.py | 2177 | CODE | |
| LOW | .github/scripts/chain_feed.py | 2243 | CODE | |
| LOW | .github/scripts/chain_feed.py | 2428 | CODE | |
| LOW | .github/scripts/chain_feed.py | 2676 | CODE | |
| LOW | .github/scripts/chain_feed.py | 2954 | CODE | |
| LOW | .github/scripts/chain_feed.py | 3040 | CODE | |
| LOW | .github/scripts/chain_feed.py | 3162 | CODE | |
| LOW | .github/scripts/chain_feed.py | 3227 | CODE | |
| LOW | commands/tools/validate_mcp_openai.py | 94 | CODE | |
| LOW | commands/tools/validate_json_schema.py | 48 | CODE | |
| LOW | commands/tools/validate_json_schema.py | 74 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/chain_feed.py | 3189 | except Exception as exc: # a corrupt tarball is a failing proof, never a crash | CODE |
| MEDIUM | commands/tools/validate_mcp_openai.py | 28 | print("Error: openai library not found.") | CODE |
| LOW | commands/tools/validate_mcp_openai.py | 138 | except Exception as e: | CODE |
| LOW | commands/tools/validate_mcp_openai.py | 194 | except Exception as e: | CODE |
| LOW | commands/tools/validate_mcp_openai.py | 307 | except Exception as e: | CODE |
| MEDIUM | commands/tools/validate_json_schema.py | 21 | print("Error: jsonschema library not found.") | CODE |
| LOW | commands/tools/validate_json_schema.py | 124 | except Exception as e: | CODE |
| LOW | commands/tools/validate_json_schema.py | 160 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .github/scripts/chain_feed.py | 232 | # mixed-language concurrency suite runs MCP-Plugin-dotnet's C# harness from source | COMMENT |
| MEDIUM | commands/tools/validate_mcp_openai.py | 180 | # Check for missing descriptions or other best practices | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | commands/tools/validate_mcp_openai.py | 119 | # Check if it's wrapped in a result object (like the example) | COMMENT |
| LOW | commands/tools/validate_mcp_openai.py | 294 | # Check if file exists | COMMENT |
| LOW | commands/tools/validate_mcp_openai.py | 326 | # Check if filename was provided as command line argument | COMMENT |
| LOW | commands/tools/validate_json_schema.py | 111 | # Check if file exists | COMMENT |
| LOW | commands/tools/validate_json_schema.py | 169 | # Check if filename was provided as command line argument | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 703 | # Create the release URL | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …mcp/Tests/Editor/Tool/RunToolStructuredContentTests.cs | 700 | public static Person ReturnCustomClass() => new Person { Name = "John Doe", Age = 30 }; | CODE |
| LOW | …mcp/Tests/Editor/Tool/RunToolStructuredContentTests.cs | 704 | CompanyName = "Acme Corp", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/chain_fixture.py | 294 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | commands/tools/validate_json_schema.py | 12 | CODE |