Skip to content
Agentmart
Submit a tool

SpatialPack — 3D asset readiness

Test whether 3D assets survive Apple Quick Look and Safari <model>, then fix what fails

Connector by spatialpack.devOfficial · Domain verified by the MCP Registry

IndexedLicense unknownLocal (stdio)
Write a review

Install

Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.

npx agentmarket install connector/spatialpack-dev-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Test whether 3D assets survive Apple Quick Look and Safari <model>, then fix what fails

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
15 read · 4 write · 0 delete · 10 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Node.js package

Tools by what they do 29

Read from the source code; the running server may list different tools.

Read 15 · Look things up without changing anything.

  • canonical_cid
  • cohort_recipes_lookup
  • compare_images
  • dedup_textures
  • explain_budget
  • find_similar_assets
  • list_presets
  • phash
  • phash_distance
  • recipe_search
  • splat_to_usdz
  • unbundle_glb_zip
Show 3 more tools
  • usdc_to_usda
  • usdz_export
  • usdz_validate

Write 4 · Create, change, send or run things.

  • cohort_recipes_build
  • diagnose_asset
  • optimize
  • safety_gate

Not yet classified 10 · We could not tell from the name and description.

  • analyze
  • autocorrect
  • batch_autocorrect
  • batch_optimize
  • bundle_glb_zip
  • commerce_readiness
  • compatibility_check
  • lod_bundle
  • model_ready
  • recipe_search_with_inheritance

Secrets and settings it asks for

Other settings (environment variables or headers).

  • SPATIALPACK_MCP_LOG
  • SPATIALPACK_MCP_SANDBOX

Files it touches

  • Any path the agent passes to its tools

Tools (29)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • analyzeAnalyze a glTF / GLB asset

    Run the SpatialPack analyzer against a GLB or glTF file. Returns the full structured report: vertex / triangle / texture / animation counts, cohort tags (texture, animation, poly), KHR / EXT extensions used, estimated GPU texture memory, and a per-target compatibility rollup (Three.js, Babylon, model-viewer, AR Quick Look, Scene Viewer). Read-only — does not modify the input.

  • autocorrectAutocorrect an asset for commerce readiness

    SPEC-0125/0126: repair a GLB / glTF so it is commerce-ready for AR Quick Look + web, and prove it. Runs floater removal + USDZ-safe material bake (transmission→alpha; clearcoat/sheen/etc. flattened) + preset optimization, then RE-SCORES readiness and returns the before→after report: applied repairs, size reduction, resolvedBlockers (what it fixed) and remainingBlockers (what needs manual work). Writes the repaired GLB to output_path (sandbox). Set bake_usdz_safe=false to keep lossy materials (leaves the AR blocker).

  • batch_autocorrectAutocorrect a whole catalog for commerce readiness

    SPEC-0128: repair + re-score every GLB / glTF under the given files/dirs (recursive), writing each repaired asset + a per-asset report into out_dir, plus a roll-up that tallies readiness status transitions (not-ready→ready/warnings), how many assets were rescued, how many remain not-ready, and total size reduction. The agency / generator catalog surface. Set bake_usdz_safe=false to keep lossy materials.

  • batch_optimizeBatch-optimize a directory of GLBs / glTFs

    Walk a list of files and/or directories (recursive for .glb/.gltf), run the SpatialPack optimizer on each at the requested preset, and write per-asset reports + optimized GLBs into out_dir. Continues on per-asset error by default (failFast=false). Honors a resume mode that skips assets whose report file already exists.

  • bundle_glb_zipBundle a GLB + sidecars into a single .glb.zip (SPEC-0091)

    Pack a primary GLB plus sidecar files (textures/, etc.) into a single `.glb.zip` archive with a versioned manifest. Sidecar paths inside the archive default to their basenames; pass `sidecar_arcnames` to override. Auto-DEFLATE per entry, falling back to stored when DEFLATE wastes bytes. Returns the manifest and on-disk size.

  • canonical_cidCanonical-vertex content identifier (CID)

    Compute the SPEC-0055 16-char hex SHA-256 prefix of the canonicalized geometry stream. Robust to mesh / primitive / attribute ordering and endianness; excludes textures and materials. Use as a deterministic geometry-identity key for caching and deduplication.

  • cohort_recipes_buildBuild cohort-recipes lookup from a corpus manifest

    Run TPE recipe-search per cohort bucket (poly × animation × material) using a representative subset of the corpus. Emits a sidecar `cohort-recipes.json` the runtime / batch pipeline can use to pick the right recipe for any given asset by its cohort tags.

  • cohort_recipes_lookupLook up the recipe for a given cohort from a manifest

    Read a cohort-recipes.json manifest and resolve the recipe for the given cohort tags. Falls back to same-poly+animation, then same-poly only, then null.

  • commerce_readinessCommerce-readiness scorecard

    SPEC-0124: score whether a GLB / glTF is commerce-ready for AR Quick Look + web. Composes ACG-2.0 conformance with AR-parity (lossy materials like KHR_materials_transmission, structural USDZ risks, geometry) into ONE verdict — ready | warnings | not-ready — plus explicit must-fix blockers and review warnings. Read-only; does not modify the input. Use this to gate AI-generated 3D output before publishing.

  • compare_imagesCompare two PNGs (MAE / ΔE94 / Sobel-edge / SSIM)

    Pixel-precise comparison of two PNG buffers of identical dimensions. Returns differing-pixel count, MAE per channel, ΔE94 mean/max/p95 (CIE perceptual colour distance), Sobel-edge delta, and SSIM. Inputs are file paths (sandbox-relative).

  • compatibility_checkPer-target compatibility rollup

    Run the analyzer against the input asset and surface the per-target compatibility matrix: Three.js, Babylon.js, model-viewer, AR Quick Look, Scene Viewer. Returns warnings and notes per target so a caller can pick a delivery format.

  • dedup_texturesDe-duplicate embedded textures across a set of GLBs (SPEC-0091)

    Scan a set of GLBs for byte-identical embedded images and extract any image shared by ≥ `min_occurrences` GLBs into a shared sidecar directory. Rewrites each input GLB to reference the sidecar via `image.uri`. Returns the per-image and per-GLB savings report. Set `dry_run: true` to plan without writing. Default `min_occurrences` is 2.

  • diagnose_assetInspect an asset and produce actionable optimization recommendations

    Run analyze + compatibility-check on the asset and return a structured list of recommendations the caller can act on (e.g. "enable channelPack — material has separate occlusion + metallicRoughness"). Each recommendation includes a `tool` + `suggested_args` so the model can chain into `optimize` with confidence.

  • explain_budgetExplain the cohort budgets used by SpatialPack

    Return the SPEC-0030 cohort budget table (texture / animation / poly), the SPEC-0046 cohort attribute-quantization budgets, and the SPEC-0059 per-cohort meshopt method scheduler. Pure data — useful for the model to explain trade-offs to the user.

  • find_similar_assetsFind top-K visually-similar assets via SPEC-0087 embeddings

    Embed the query asset, query an on-disk AssetEmbeddingIndex, and return the top-K nearest neighbors by cosine similarity. The index must have been built by `spatialpack index build` (or the equivalent core helpers); pass its sandbox-relative path. K defaults to 5. Read-only — does not modify either the query or the index.

Show 14 more tools
  • list_presetsList available SpatialPack presets

    Return the configured preset ids (web-mobile, web-desktop, quality-max) and their key budget knobs: maxTextureSize, useWebpTextures, preferKtx2, meshoptLevel.

  • lod_bundleBuild a multi-tier LOD bundle

    Bake multiple quality tiers (default: high / medium / low) of a single source GLB and emit a sidecar spatialpack.lod.json manifest pointing at them. The runtime picks the largest tier whose recommendedMinPixelHeight ≤ the projected screen height.

  • model_readySafari <model>-ready USDZ gate (SPEC-0161)

    SPEC-0161: score whether a USDZ will load + render in Safari 27's HTML <model> element and Apple AR Quick Look. Composes USDZ packaging conformance with the AR-Quick-Look render constraints and the <model>-specific deltas (centimeter 100x scale bug, .usdz extension/MIME negotiation, empty-stage) into ONE verdict — ready | warnings | not-ready — plus explicit must-fix blockers and review warnings. Read-only; does not modify the input. HONESTY: this is documented-constraint conformance, NOT a live Safari/Quick Look render — Apple ships no headless <model>/RealityKit renderer, so verify high-valu…

  • optimizeOptimize a glTF / GLB asset

    Run the full SpatialPack optimization pipeline against a preset. Writes a new GLB to `output_path` (must be inside the sandbox) and returns the structured optimization report — pass-by-pass before/after stats, baseline comparison, KTX2 status, quality notes. All opt-in passes (decimate, saliencyAware decimation, channelPack ORM, palette PNG re-encode, materialClustering, symmetry detection, cohort-quantize, lockBorder, etc.) are exposed as flat options.

  • phashPerceptual hash of a PNG (64-bit DCT-based)

    Compute the SPEC-0052 64-bit DCT-based perceptual hash of a PNG. Returns a 16-character hex string. Pair with `phash_distance` to short-circuit visual diffs when two renders are byte-equivalent.

  • phash_distanceHamming distance between two pHashes

    Compute the Hamming distance (count of differing bits) between two 16-char hex pHashes. Convention: ≤ 5 = near-duplicate, 6–15 = ambiguous, > 15 = clearly different.

  • recipe_searchAuto-tune optimization recipes via TPE Bayesian search

    Sweep optimization recipes (preset × meshopt × decimate × KTX2 quality) for the input asset and return the winning recipe under the configured policy. Uses cohort-aware pruning + grid warm-start + TPE Bayesian search (SPEC-0044). The visual-quality gate is OFF by default — pass `with_quality_gate: true` to enable Playwright + ΔE94 / SSIM gating (much slower, ~30s per candidate).

  • recipe_search_with_inheritanceRecipe search seeded with k-NN inherited recipes

    Run multi-fidelity TPE recipe search (SPEC-0044) against the input asset, but seed the queue with the winning recipes already cached for the input's k nearest neighbors in the supplied AssetEmbeddingIndex. Composes SPEC-0087 Phase 2 (k-NN recipe inheritance) + SPEC-0096 (index management). Visual quality gate is OFF — same constraint as `recipe_search`.

  • safety_gateGate a cohort of assets against cohort-aware visual-diff thresholds (SPEC-0090)

    Apply SpatialPack's cohort-aware quality gate (SPEC-0036 thresholds + SPEC-0090 reporting) to a set of per-asset visual-diff metrics. Each input asset carries its cohort tags (textured/untextured · animated/static · low/medium/high poly) and worst-of-N ssim/ΔE94/edgeDelta numbers from an orbit-8 render. Returns per-asset verdicts plus an aggregate `summary` (`pass` iff every asset passed); optionally writes a JSON report and a `gate-report.md` to `output_path`.

  • splat_to_usdzSplat → Apple ParticleField USDZ (SPEC-0160)

    Convert a Gaussian splat file (PLY, .splatz, or KHR_gaussian_splatting GLB) into an Apple ParticleField3DGaussianSplat USDZ (OpenUSD 26.03 schema pin) for RealityKit / Reality Composer Pro / Safari `<model>`. Pure-TS — no Apple toolchain. Optionally also writes the RealityKit per-channel f32 buffer set + layout.json sidecar via `realitykit_buffers_dir`. STRUCTURAL CONFORMANCE ONLY — the emitted USDZ is a valid package whose ParticleField3DGaussianSplat prim this tool re-parses; it is NOT RealityKit/visionOS render-verified (that requires Apple hardware, SPEC-0160 Phase D).

  • unbundle_glb_zipExtract a .glb.zip archive (SPEC-0091)

    Read a `.glb.zip` and write the primary GLB + every sidecar to `out_dir`, preserving the relative paths recorded in the manifest. Verifies CRC32 + cross-checks manifest names against archive entries. Returns the manifest and per-entry output paths.

  • usdc_to_usdaConvert binary USDC → USDA text (SPEC-0076 Phase H)

    Read a binary USDC file and emit the equivalent USDA text — the same conversion the Pixar `usdcat` tool performs. Returns the rendered text directly; pass `output_path` to also write it to disk (sandbox-relative). Useful for inspecting a USDZ payload, diffing generated USDC against a Pixar reference, or letting an AI agent read scene structure as plain text.

  • usdz_exportExport GLB → USDZ

    Convert a GLB to a USDZ for AR Quick Look using the local converter (usd_from_gltf, usdzconvert, or xcrun usdz_converter — the first one found on PATH). Includes a post-export validation pass when `validate: true` (default true).

  • usdz_validateValidate a USDZ asset

    Open a .usdz, walk its contents, and report compatibility warnings (size budget, asset-ref resolution, missing textures, file-size cap). Pure-JS read; no converter required.

Signals

Last release
Jul 28, 2026 (3 months ago)

Details

Registry name
dev.spatialpack/mcp
Version
0.1.0
Auth
No auth
Packages
npm @spatialpack/mcp
License
License unknown
First seen
Oct 24, 2026
Last checked
Oct 24, 2026
Cite this page

SpatialPack — 3D asset readiness MCP server. Agent Mart. https://agentmart.dev/connectors/spatialpack-dev-mcp (last updated 2026-10-24)