Skip to content

CUE4Parse-MCP v1.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 16 Oct 16:23

Windows x64 self-contained ZIP: extract all files, copy games.example.json to games.json, and follow docs/INSTALL.md. No separate .NET installation is needed.

Known limitation: ImageSharp 3.1.12 retains the security advisories documented in README.md; NuGet warnings are not suppressed.

  • Added export_json / export-json: complete, untruncated property JSON for a package (every export) or one Package.Object, streamed atomically to a file instead of returned inline.
  • Added query_table / query-table: paged DataTable queries (offset ≥ 0, limit 1–500) with column selection, typed eq/ne/contains/gt/gte/lt/lte filters combined with AND, documented null/missing/nested semantics, and total/matched/next-offset information. Unknown columns and unsupported operators are rejected.
  • Added export_table / export-table: every matching row as nested JSON or RFC 4180 CSV (UTF-8 with BOM, CRLF, invariant numbers, distinct null and empty string). Text fields that spreadsheets could evaluate as formulas are prefixed with '; struct/array cells are rejected for CSV instead of flattened.
  • Added diagnose_game / diagnose: sanitized mount report covering engine version, mount status, mounted/unmounted archives, index/entry encryption, required encryption GUIDs with configured/assigned/verified/rejected state, mappings source, and native codec/ACL availability, with an optional single-asset probe that separates locate/read/header/deserialize failures. Mount failures are reported rather than thrown. Keys are marked verified only by evidence of successful decryption (CUE4Parse index validation, an encrypted DefaultGame.ini, or a probed encrypted package header), never by unencrypted reads. Key values, endpoint credentials/paths/queries, local paths, token-like strings, and stack traces are not reported.
  • Added get_dependencies / dependencies: bounded (depth 1–8, limit 1–2000) outgoing hard (import map/IoStore) and soft (typed soft object path) package references with source/kind, resolvability, deduplication, cycle marking, and explicit truncation/depth/completeness flags. It is not a reverse index; runtime-constructed, string-based, bytecode, native-serialized, and asset-registry-only references are not reported.
  • Added export_audio / export-audio for SoundWave, SoundNodeWave, AkMediaAssetData, and loose .wem/.wav/.ogg/.opus/.flac archive files. original (default) writes the cooked payload unchanged with an extension matching its actual header (for example .wem, .ogg, .ueopus, .binka, .rada); wav succeeds only for payloads that already are valid integer PCM RIFF/WAVE. Nothing is transcoded, compressed codecs are never labeled as WAV, and sound banks are rejected.
  • Added previewable batch exports (preview_batch, start_batch, get_batch_job, cancel_batch; CLI batch --request PATH [--run]) for mesh, texture, animation, JSON, table, and audio kinds, up to 500 assets. Previews write nothing and expire; stale previews are rejected. Jobs keep their own game lease across configuration hot reloads, report progress and per-item results, support cancellation, share one native export session to deduplicate mesh/texture/animation dependencies, and write a full JSON manifest.
  • CLI: new commands with typed option parsing (--columns, --filters, --offset, --depth, --probe, --mode, --request, --run). --run batches exit 1 unless the job completes without errors; Ctrl+C cancels the running job and still prints its final status. The CLI source moved from Program.cs to Cli.cs.
  • Parser failures now propagate rather than returning partially deserialized objects as successful exports; atomic single-file exports preserve previous output on failure. Dependency discovery follows actual legacy import ownership, omits native class-default objects, and marks bounded property traversal incomplete when it reaches its nesting budget.
  • Existing ImageSharp security advisories remain disclosed and unsuppressed.

Verified all 61 encrypted-pak, configuration-reload, structured-data, diagnostics/redaction, dependency, audio, and batch regressions, including genuine cooked fixtures, byte-identical audio, rejected unsupported WAV conversions, atomic-write rollback, partial batch failures, stale previews, deduplication, and cancellation. A live MCP server exposed all 18 tools, mounted 289,307 real Valorant packages, exported valid full JSON and CSV, reported truthful unencrypted-probe evidence, and exported two glTF meshes in one batch with 15 shared dependency files.

The relocated self-contained ZIP also passed MCP DataTable paging/numeric filters/CSV, typed dependency traversal, actual PCM WAV and Unreal Opus extraction, unsupported-WAV rejection, raw archive-audio batching, and CLI preview/run workflows. On real Valorant packages, the bundled native library reported ACL available, dependency traversal scanned 7 packages and 25 references, and ActorX animation export succeeded. Cancelling a 42-selection batch and closing the server with another active job both wrote cancelled manifests and released the process cleanly. The ZIP checksum matched and it contained no local config, keys, mappings, or game archives.