Skip to main content
Glama

cp77wb — Cyberpunk 2077 World Builder Automation & Tooling

Project Status: WIP (Paused) Python Version Tests MCP Tools License: MIT Cyberpunk 2077

cp77wb is an external, non-invasive automation layer, procedural construction suite, and Model Context Protocol (MCP) server for Cyberpunk 2077 World Builder (entSpawner).

While World Builder serves as the in-game visual editor, cp77wb provides Linux-friendly offline project management, high-performance SQLite asset catalogs, procedural math (spline placement, 2D/3D scatters, room/corridor generation), automated device and elevator wiring, end-to-end mod build orchestration (.NET 10 native WolvenKit worker & WScript fallbacks), an optional history-safe Cyber Engine Tweaks (CET) live bridge, and 94 native MCP tools for AI pair programming with Claude Code, Cursor, and LLM agents.


IMPORTANT

⚠️ Project Status: Work In Progress (WIP) — Currently Paused

Notice: Active feature development on cp77wb is currently paused/on hold.

  • The codebase is fully functional, complete, and verified (all 107 unit tests pass, Ruff and Pyright static checks pass with 0 errors, and the bundled C# .NET 10 worker builds cleanly).

  • You can install, run, fork, or adapt cp77wb for your Cyberpunk 2077 modding workflows.

  • Pull requests, bug reports, and forks are welcome, but no active roadmap milestones are being actively developed by the original author at this time.


Table of Contents


Related MCP server: UnrealEngine Bridge

Key Features

  • Non-Invasive Architecture: Never modifies core game binaries, never redistributes copyrighted game assets, and does not fork World Builder. Preserves unknown JSON fields and creates timestamped backups on write.

  • Offline Saved-Build Editing: Inspect, translate, rotate, scale, align, distribute, and duplicate nodes within World Builder Build.json files offline on Linux without launching the game.

  • Deterministic Asset Catalog: Indexes over 50,000+ game assets directly from your local entSpawner installation into an SQLite3 database with deterministic hash IDs (#75857) and semantic tagging.

  • Procedural Level Design:

    • Polyline and cubic Bezier curve spline placement with tangent interpolation.

    • 2D polygon bounding and 3D volume scatters (box, sphere, cylinder) with collision clearance guards.

    • Room shell, corridor connector, and open market layout generators.

    • Parameterized JSON prefab templates.

  • Device & Elevator Wiring: Connects security areas to controllers and automates complex multi-floor elevator terminal setups, generating unique persistent NodeRefs and component schemas.

  • Full Mod Packaging Pipeline:

    • Inspects World Builder export files.

    • Generates WolvenKit projects with ArchiveXL .xl definitions.

    • High-performance .NET 10 worker backend for direct RED JSON to CR2W conversion.

    • Automatic fallback to v0.9 template CLI conversion or upstream WolvenKit WScript execution.

    • Safe archive packing via cp77tools or WolvenKit CLI, distribution layout creation, and conflict-checked game deployment.

  • In-Game CET Live Bridge: Optional file-RPC companion mod for Cyber Engine Tweaks providing camera raycasting, surface snapping to real REDengine collision geometry, and unified undo history integration.

  • 94 Native MCP Tools: First-class support for AI agents (Claude Code, Cursor) to inspect, generate, modify, and build Cyberpunk 2077 environments autonomously.


Architecture & Workflow

┌────────────────────────────────────────────────────────┐
│               Cyberpunk 2077 Game                      │
│   (Cyber Engine Tweaks + World Builder / entSpawner)   │
└───────────────────────▲────────────────────────────────┘
                        │ File-RPC (Live Bridge)
                        ▼
┌────────────────────────────────────────────────────────┐
│                        cp77wb                          │
│  ┌───────────────────┐        ┌─────────────────────┐  │
│  │  CLI & MCP Tools  │ ◄────► │ Asset Catalog (DB)  │  │
│  │   (94 AI Tools)   │        │ (SQLite3 / Semantic)│  │
│  └─────────┬─────────┘        └─────────────────────┘  │
│            │                                           │
│            ▼                                           │
│  ┌───────────────────┐        ┌─────────────────────┐  │
│  │ Procedural Engine │        │ Construction Plans  │  │
│  │ (Splines/Scatter) │        │   (cp77wb-plan/1)   │  │
│  └─────────┬─────────┘        └─────────────────────┘  │
└────────────┼───────────────────────────────────────────┘
             │ Build / Export
             ▼
┌────────────────────────────────────────────────────────┐
│              Mod Compilation Pipeline                  │
│  ┌──────────────────────────────────────────────────┐  │
│  │ .NET 10 WolvenKit Worker / WScript Native Engine │  │
│  └─────────────────────────┬────────────────────────┘  │
│                            ▼                           │
│  ┌──────────────────────────────────────────────────┐  │
│  │ cp77tools / WolvenKit CLI Archive Packing        │  │
│  └─────────────────────────┬────────────────────────┘  │
│                            ▼                           │
│         Final Distributable Mod (.archive + .xl)       │
└────────────────────────────────────────────────────────┘

System Requirements

Component

Minimum Requirement

Notes

Operating System

Linux, macOS, or Windows (WSL2)

Developed and tested natively on Linux

Python

Python 3.11+

Zero external pip dependencies for core CLI

Cyberpunk 2077

Version 2.0+ (Phantom Liberty supported)

Required for in-game editor & CET bridge

World Builder

entSpawner mod installed in CP77

Visual editor & export source

Cyber Engine Tweaks

CET 1.30+

Required only if using live bridge

.NET SDK (Optional)

.NET 10 SDK

Required to build native WolvenKit worker

WolvenKit (Optional)

WolvenKit CLI or cp77tools

Required for final .archive packing


Installation

Method 1: User Install (install.sh)

The included zero-dependency installer installs cp77wb and cp77wb-mcp into your user path (default: ~/.local/bin):

git clone https://github.com/0xra0/cp77wb.git
cd cp77wb
./install.sh --prefix "$HOME/.local"

Verify your installation:

cp77wb --version
# Output: cp77wb 1.0.1

(Ensure $HOME/.local/bin is in your $PATH)

Method 2: Python Package (pip)

You can install cp77wb directly into your current Python environment:

cd cp77wb
pip install -e .

Method 3: Portable / In-Place Execution

Run cp77wb directly from the cloned repository without installing anything:

./bin/cp77wb --version
./bin/cp77wb-mcp --help

CET Live Bridge Installation

If you want real-time live manipulation in the game:

./extras/install-cet-bridge.sh \
  "/path/to/Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/mods"

Building the .NET 10 WolvenKit Worker

To use the high-performance native CR2W conversion backend:

# Using cp77wb helper:
cp77wb worker-build --run

# Or building directly with dotnet:
./extras/cp77wb_wkit_worker/build.sh

Quick Start

1. Validate an Existing Saved Build

Inspect any World Builder Build.json file offline:

cp77wb validate /path/to/Build.json
cp77wb tree /path/to/Build.json

2. Build the Asset Catalog

Index all World Builder assets from your game directory into a local fast SQLite3 database:

cp77wb assets-build "/path/to/Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/mods/entSpawner"

3. Search Assets

Find assets with deterministic IDs:

cp77wb assets-search ~/.local/share/cp77wb/assets.sqlite3 "neon sign" --variant Mesh
# Results return unique IDs like #14022

4. Procedurally Place Objects

Place lamps along a curved road using cubic Bezier interpolation:

cp77wb path-array Build.json /Build/StreetLamp \
  --points '[[0,0,0],[15,2,0],[30,10,0]]' \
  --spacing 3.0 \
  --write

Comprehensive CLI Usage

All mutation commands are dry-run by default. Pass --write or --apply only after reviewing the diff output.

Build Inspection & Validation

# Validate structural integrity, NodeRef uniqueness, and component references
cp77wb validate Build.json

# Display hierarchical tree view of node groups
cp77wb tree Build.json

# List all node paths in the build
cp77wb paths Build.json

# Inspect details of a specific node
cp77wb inspect Build.json /Build/MyNode
# Build the SQLite asset catalog from World Builder entSpawner files
cp77wb assets-build /path/to/entSpawner --output assets.sqlite3

# Search by keyword and asset type
cp77wb assets-search assets.sqlite3 "arasaka crate" --variant Mesh

# Build semantic facets (style, role, scale heuristic)
cp77wb semantic-build assets.sqlite3

# Query semantic catalog
cp77wb semantic-search assets.sqlite3 "industrial barrier" --role wall --style industrial

Procedural Path & Spline Placement

# Follow existing World Builder marker group with Bezier tangents
cp77wb path-array Build.json /Build/LightPole \
  --marker-group /Build/SplinePath \
  --spacing 4.0 \
  --curve-samples 16 \
  --write

# Supply arbitrary 3D polyline coordinates
cp77wb path-array Build.json /Build/Barrier \
  --points '[[0,0,0],[10,0,0],[20,5,1]]' \
  --spacing 1.5 \
  --yaw-offset 90 \
  --write

Polygon & Volume 3D Scatter

# Scatter objects inside a 2D boundary polygon on the ground
cp77wb polygon-scatter Build.json /Build/Debris \
  --points '[[0,0,0],[10,0,0],[10,10,0],[0,10,0]]' \
  --count 25 --seed 2077 \
  --write

# Scatter objects in a 3D cylindrical volume (e.g. particles, dust, floating drones)
cp77wb volume-scatter Build.json /Build/Drone \
  --shape cylinder --count 15 \
  --center-x 50 --center-y 100 --center-z 10 \
  --size-x 10 --size-z 6 --seed 42 \
  --write

Weighted Asset Pools & Native RNG Groups

Create a weighted asset pool configuration (market_pool.json):

{
  "entries": [
    {"asset": "#1201", "weight": 5, "name": "Food Stall Common"},
    {"asset": "#1770", "weight": 1, "name": "Tech Vendor Rare"}
  ]
}

Spawn items according to weights:

cp77wb asset-pool-spawn Build.json /Build/Market \
  --catalog assets.sqlite3 \
  --pool market_pool.json \
  --count 10 --seed 77 \
  --half-x 15 --half-y 8 \
  --write

Generate native World Builder randomized groups that can still be edited in-game:

cp77wb rng-create Build.json /Build "Loot RNG" \
  --seed 1337 --rule fixed --fixed-mode total --total 3 \
  --write

Procedural Generators (Rooms, Corridors, Markets)

# Generate a room enclosure with modular wall and floor segments
cp77wb generate-room Build.json /Build \
  --catalog assets.sqlite3 \
  --wall-asset '#1234' \
  --floor-asset '#4321' \
  --width 12 --depth 8 --segment 2 \
  --write

# Generate a hallway corridor
cp77wb generate-corridor Build.json /Build \
  --catalog assets.sqlite3 \
  --wall-asset '#1234' \
  --length 24 --width 4 --segment 2 \
  --write

# Generate a grid-based market area
cp77wb generate-market Build.json /Build \
  --catalog assets.sqlite3 \
  --pool market_pool.json \
  --rows 3 --columns 4 --spacing-x 4 --spacing-y 6 \
  --write

Device & Elevator Wiring Automation

# Connect security terminal to its controller
cp77wb device-connect Build.json \
  /Build/SecurityCamera \
  /Build/SecurityController \
  --device-class-name SecurityAreaControllerPS \
  --write

# Automatically wire an elevator with multi-floor terminals and markers
cp77wb elevator-wire Build.json /Build/Elevator \
  --terminal /Build/Floor0_Terminal --marker /Build/Floor0_Marker --floor-name 'LocKey#100' \
  --terminal /Build/Floor1_Terminal --marker /Build/Floor1_Marker --floor-name 'LocKey#101' \
  --noderef-prefix my_mod/elevator \
  --write

AI Construction Plans (cp77wb-plan/1)

Declarative JSON specifications for entire procedural scenes:

# Compile and validate plan
cp77wb plan-compile examples/construction-plan.json --catalog assets.sqlite3

# Preview against an existing build with collision detection
cp77wb plan-preview Build.json examples/construction-plan.json --catalog assets.sqlite3

# Apply changes after preview review
cp77wb plan-apply Build.json examples/construction-plan.json --catalog assets.sqlite3 --write

World Builder Compatibility Scanner

Check whether a project or export matches your installed World Builder version:

cp77wb compat-scan "/path/to/Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/mods/entSpawner" \
  --project Build.json

Mod Packaging & Build Pipeline

Take an export from World Builder and produce an installable .archive mod:

# 1. Inspect the exported file
cp77wb export-inspect project_exported.json

# 2. Prepare a WolvenKit project workspace
cp77wb build-prepare project_exported.json ~/cp77-projects --world-builder-root /path/to/entSpawner

# 3. Import via native worker (or fallback to WolvenKit CLI / WScript)
cp77wb worker-import project_exported.json ~/cp77-projects/my_project/source --run

# 4. Check workspace compilation readiness
cp77wb build-status ~/cp77-projects/my_project

# 5. Pack into game archive
cp77wb build-pack ~/cp77-projects/my_project --cli cp77tools --run

# 6. Package into distributable ZIP with ArchiveXL layout
cp77wb build-package ~/cp77-projects/my_project \
  --archive ~/cp77-projects/my_project/packed/archive/pc/mod/my_project.archive \
  --output ~/cp77-projects/my_project/dist \
  --zip ~/cp77-projects/my_project/my_project.zip

# 7. Deploy to game with conflict checking and automated backups
cp77wb build-deploy ~/cp77-projects/my_project/dist "/path/to/Cyberpunk 2077" --apply

.NET 10 Worker Diagnostics

# Build the worker and capture diagnostic build logs
cp77wb worker-build --run --log-file ~/worker-build.log

# Inspect discovered WolvenKit assemblies and API fingerprint
cp77wb worker-inspect --worker extras/cp77wb_wkit_worker/publish/cp77wb-wkit-worker

# Run self-tests for native serialization and CR2W magic header verification
cp77wb worker-preflight --worker extras/cp77wb_wkit_worker/publish/cp77wb-wkit-worker

# Generate a diagnostic report bundle for debugging
cp77wb worker-doctor --output ~/cp77wb-doctor.zip

Claude Code & AI MCP Integration

cp77wb provides an MCP (Model Context Protocol) server exposing 94 unique tools to AI coding agents.

Adding to Claude Code

claude mcp add cp77wb -- cp77wb-mcp

Adding to Claude Desktop / Cursor (claude_desktop_config.json)

{
  "mcpServers": {
    "cp77wb": {
      "command": "cp77wb-mcp"
    }
  }
}

MCP Tool Categories

Tool Domain

Example MCP Tools

Function

Inspection & Validation

wb_validate, wb_tree, wb_paths, wb_inspect

Inspect and check saved projects

Asset Discovery

wb_asset_search, wb_semantic_search, wb_bounds_info

Query 50K+ game assets and bounding boxes

Procedural Layout

wb_path_array, wb_polygon_scatter, wb_volume_scatter

Polyline, spline, and volume distribution

Generators

wb_generate_room, wb_generate_corridor, wb_generate_fence

Architectural element synthesis

AI Planner

wb_plan_compile, wb_plan_preview, wb_plan_apply

Declarative cp77wb-plan/1 scene execution

Build & Packaging

wb_build_prepare, wb_build_pack, wb_build_deploy

Complete pipeline orchestration

Native Worker

wb_worker_inspect, wb_worker_preflight, wb_worker_doctor

.NET 10 WolvenKit backend management

Live Bridge

wb_live_ping, wb_live_raycast, wb_live_snap, wb_live_spawn

Real-time in-game engine interaction


Optional CET Live Bridge

The included extras/cp77wb_bridge mod enables real-time bidirectional communication between cp77wb and the running game using a safe file-based RPC protocol:

  • History Protection: Reads the active World Builder undo singleton and refuses live operations if history state has diverged.

  • True Engine Raycasting: Casts collision rays directly in REDengine to accurately snap objects to terrain, floors, and walls.

  • In-Game Live Spawning: Spawns assets in real time without restarting or reloading the save.

To test connectivity while Cyberpunk 2077 is running:

RPC="/path/to/Cyberpunk 2077/bin/x64/plugins/cyber_engine_tweaks/mods/cp77wb_bridge/rpc"
cp77wb live "$RPC" ping
cp77wb live "$RPC" raycast --ray-mode camera

Safety Guarantees & Philosophy

  1. Dry-Run by Default: Offline modifications require --write and live modifications require --apply. Without these flags, tools output a preview diff.

  2. Schema Integrity: Unknown JSON properties present in upstream World Builder versions are preserved verbatim without data loss.

  3. Collision Clearance: Procedural scattering checks asset bounds to avoid overlapping geometry.

  4. Non-Invasive: No game DLL hooks, no binary memory injection, and no asset redistribution.

  5. Atomic Writes: Saved files are written to temporary files and atomically moved with timestamped .bak copies.


Testing & Verification

The repository includes a comprehensive test suite covering all modules:

# Run test suite with pytest:
pytest

# Or with standard library unittest:
python3 -m unittest discover -s tests -v

# Run full multi-language static analysis (Python, Ruff, Pyright, Shell, Lua, C#):
./static-check.sh

Verification Status:

  • 107/107 Python unit tests passing

  • 0 errors in Ruff linter checks

  • 0 errors in Pyright static type checks

  • Shell and Lua syntax checks passing

  • C# .NET 10 worker builds with 0 errors


Documentation Directory

Deep dive guides are available in the docs/ directory:


License & Acknowledgements

This project is licensed under the MIT License — see the LICENSE file for details.

Acknowledgements & Community Credits

  • World Builder (entSpawner): Created by the amazing Cyberpunk 2077 modding community.

  • WolvenKit: Developed by the REDmodding team for REDengine asset handling.

  • Cyber Engine Tweaks (CET): Essential Lua scripting platform for Cyberpunk 2077.

  • CD Projekt Red: Cyberpunk 2077 is a registered trademark of CD PROJEKT S.A.

This project is an unofficial community tool and is not affiliated with, endorsed by, or associated with CD PROJEKT RED.

Available Tools

94 tools
wb_alignB

Align independent objects/groups on x/y/z. Dry-run unless write=true.

Inputs: axis (required), file (required), paths (required), mode, +2 more.

wb_arrayB

Create a linear array; count includes source. Dry-run unless write=true.

Inputs: file (required), path (required), count (required), x, +5 more.

wb_asset_pool_spawnC

Spawn a deterministic weighted pool of exact indexed World Builder assets. Dry-run unless write=true.

Inputs: file (required), pool (required), count (required), parent (required), +12 more.

wb_assets_buildC

Build/rebuild a local SQLite/FTS asset catalog from a World Builder installation/source tree.

Inputs: world_builder_root (required), database.

wb_assets_infoB

Read asset-catalog metadata or one exact asset ID.

Inputs: database (required), id.

wb_bounds_importC

Import explicit asset bounds records into the catalog.

Inputs: bounds (required), database (required).

wb_bounds_infoC

Read explicit/effective asset bounds and heuristic fallback metadata.

Inputs: database (required), id.

wb_bounds_setB

Attach explicit local XYZ bounds to one indexed asset for collision-aware planning.

Inputs: x (required), y (required), z (required), id (required), +3 more.

wb_build_backendsC

Detect WolvenKit CLI/importer availability and report the Linux-native conversion boundary.

Inputs: cli, world_builder_root.

wb_build_deployB

Preview or deploy a game-layout folder into Cyberpunk. apply=false by default; overwrite required for conflicting existing files.

Inputs: layout (required), game_root (required), apply, overwrite.

wb_build_doctorC

Verify package structure/conflicts and summarize issue-like World Builder/CET/framework log lines.

Inputs: layout (required), tail, game_root.

wb_build_native_importB

Preview or run the template-bundle + WolvenKit JSON-deserialize import directly into a prepared workspace. run=false by default.

Inputs: bundle (required), workspace (required), cli, run, +2 more.

wb_build_packB

Preview or run WolvenKit CLI/cp77tools pack after verified Object Spawner import. run=false by default.

Inputs: workspace (required), cli, run, output, +1 more.

wb_build_packageC

Preview or assemble a game-layout distribution folder/ZIP from a built archive. write=false by default.

Inputs: output (required), archive (required), workspace (required), zip, +1 more.

wb_build_prepareC

Preview or create a WolvenKit workspace around a WB export. write=false by default.

Inputs: workspace (required), export_file (required), write, author, +5 more.

wb_build_statusC

Check expected streamingblock/sector/device outputs after WolvenKit Object Spawner import.

Inputs: workspace (required).

wb_build_verifyC

Verify a prepared game-layout package and optional conflicts with an installed game.

Inputs: layout (required), game_root.

wb_build_worker_importC

Preview or populate a prepared workspace/source/archive through the verified .NET WolvenKit worker. run=false by default.

Inputs: workspace (required), run, worker, timeout, +1 more.

wb_collisionsC

Approximate saved-build collision scan using yaw-aware oriented bounds; heuristic results are marked approximate.

Inputs: file (required), catalog (required), clearance, explicit_only.

wb_compat_scanC

Scan World Builder version/features/module schema and optionally compare a saved build against that exact source/install.

Inputs: world_builder_root (required), project.

wb_device_connectC

Connect two saved World Builder device nodes with a unique target NodeRef. Dry-run unless write=true.

Inputs: file (required), source (required), target (required), write, +2 more.

wb_distributeA

Evenly distribute 3+ independent objects/groups on x/y/z. Dry-run unless write=true.

Inputs: axis (required), file (required), paths (required), write.

wb_duplicateB

Duplicate an object/group with unique names and repaired internal references. Dry-run unless write=true.

Inputs: file (required), path (required), x, y, +5 more.

wb_elevator_wireB

Wire an existing elevator, terminals and floor markers; patch saved instance data when available. Dry-run unless write=true.

Inputs: file (required), markers (required), elevator (required), terminals (required), +4 more.

wb_export_inspectC

Validate/summarize a World Builder *_exported.json before conversion.

Inputs: export_file (required), importer_version.

wb_export_xlC

Generate the ArchiveXL structure implied by a World Builder export without writing files.

Inputs: export_file (required).

wb_favorite_addC

Add an object/group to World Builder Favorites as a reusable prefab. Preview-only unless write=true.

Inputs: file (required), path (required), category (required), world_builder_root (required), +5 more.

wb_favorites_listC

List World Builder native Favorite categories (reusable object/group prefabs).

Inputs: world_builder_root (required).

wb_findC

Search World Builder names, paths, modules, assets and NodeRefs.

Inputs: file (required), query (required), case_sensitive.

wb_generate_cableB

Generate a repeated cable/pipe segment chain along a path without guessing mesh stretching. Dry-run unless write=true.

Inputs: file (required), parent (required), points (required), catalog (required), +5 more.

wb_generate_corridorB

Generate a corridor shell from verified indexed assets. Dry-run unless write=true.

Inputs: file (required), width (required), length (required), parent (required), +9 more.

wb_generate_fenceB

Generate repeated verified fence segments and optional posts along a path. Dry-run unless write=true.

Inputs: file (required), parent (required), points (required), catalog (required), +6 more.

wb_generate_marketB

Generate a market grid from a deterministic weighted asset pool. Dry-run unless write=true.

Inputs: file (required), pool (required), rows (required), parent (required), +10 more.

wb_generate_noderefC

Generate a World Builder-compatible NodeRef. Dry-run unless write=true.

Inputs: file (required), path (required), force, write, +1 more.

wb_generate_roadC

Generate repeated road tiles and optional edge assets along a path. Dry-run unless write=true.

Inputs: file (required), width (required), parent (required), points (required), +7 more.

wb_generate_roomB

Generate a rectangular room shell from verified indexed assets. Dry-run unless write=true.

Inputs: file (required), depth (required), width (required), parent (required), +9 more.

wb_getC

Read project stats or one World Builder element by path.

Inputs: file (required), path.

wb_gridB

Create a 3D rectangular array; counts include source. Dry-run unless write=true.

Inputs: file (required), path (required), count_x (required), count_y (required), +7 more.

wb_live_batchB

Apply move/rotate/scale/snap operations to the current selection as one World Builder undo transaction. Preview unless apply=true.

Inputs: rpc_dir (required), operations (required), apply, timeout.

wb_live_cameraC

Read the live FPP camera transform through the optional CET bridge.

Inputs: rpc_dir (required), timeout.

wb_live_deleteB

Delete the current World Builder selection through WB history. Preview unless apply=true.

Inputs: rpc_dir (required), apply, timeout.

wb_live_duplicateB

Duplicate the current WB selection with optional per-copy offset. v0.5 remaps cloned NodeRefs and known internal references by default. Preview unless apply=true.

Inputs: rpc_dir (required), x, y, z, +4 more.

wb_live_historyB

Read World Builder's active undo/redo state and whether history-safe live mutation is available.

Inputs: rpc_dir (required), timeout.

wb_live_moveB

Move the current World Builder selection as one WB history action. Preview unless apply=true.

Inputs: rpc_dir (required), x, y, z, +2 more.

wb_live_pathsC

Search paths/names in the currently loaded World Builder hierarchy.

Inputs: rpc_dir (required), limit, query, timeout.

wb_live_pingC

Ping the optional cp77wb CET file-RPC companion and report v0.5 spatial/history capabilities.

Inputs: rpc_dir (required), timeout.

wb_live_playerC

Read the live player transform through the optional CET bridge.

Inputs: rpc_dir (required), timeout.

wb_live_raycastC

Raycast through World Builder's live scene intersection system; camera mode uses the current FPP camera.

Inputs: rpc_dir (required), mode, dir_x, dir_y, +6 more.

wb_live_redoB

Redo one World Builder history action. Preview/history check unless apply=true.

Inputs: rpc_dir (required), apply, timeout.

wb_live_reloadB

Reload one top-level active WB root from data/objects while preserving an undoable pre-reload state. Preview unless apply=true.

Inputs: path (required), rpc_dir (required), apply, timeout.

wb_live_rotateA

Rotate the current World Builder selection as one WB history action; multi-selection rotates around its center. Preview unless apply=true.

Inputs: rpc_dir (required), yaw, roll, apply, +2 more.

wb_live_saveB

Save all saveable top-level active World Builder roots through WB's native save() path. Preview unless apply=true.

Inputs: rpc_dir (required), apply, timeout.

wb_live_scaleB

Scale current selection around its selection pivot or explicit pivot as one WB history action. Refuses non-scaleable leaves unless allow_partial=true. Preview unless apply=true.

Inputs: rpc_dir (required), x, y, z, +6 more.

wb_live_selectB

Select exact paths in the active World Builder UI. Preview unless apply=true.

Inputs: paths (required), rpc_dir (required), apply, timeout.

wb_live_selectionC

Read current World Builder selection through the optional CET bridge.

Inputs: rpc_dir (required), timeout, include_data.

wb_live_snapB

Drop/snap the current selection to the live scene surface along a direction, collapsed into one WB undo action. Preview unless apply=true.

Inputs: rpc_dir (required), apply, dir_x, dir_y, +2 more.

wb_live_spawn_assetC

Spawn one exact indexed WB asset directly into the active editor, optionally in front of the camera and dropped to the surface. Preview unless apply=true.

Inputs: asset (required), catalog (required), rpc_dir (required), x, +14 more.

wb_live_stateC

Read current World Builder/CET state through the optional live bridge.

Inputs: rpc_dir (required), timeout.

wb_live_surface_scatterB

Create deterministic copies around one selected source and drop each copy onto the live scene surface; one undo removes the whole scatter. Preview unless apply=true.

Inputs: count (required), rpc_dir (required), seed, apply, +9 more.

wb_live_undoB

Undo one World Builder history action. Preview/history check unless apply=true.

Inputs: rpc_dir (required), apply, timeout.

wb_logsC

Read/tail World Builder, CET and related Cyberpunk mod logs from a game root (or entSpawner directory).

Inputs: game_root (required), tail, issues_only.

wb_moveC

Translate an object/group. Dry-run unless write=true.

Inputs: file (required), path (required), x, y, +2 more.

wb_native_convertC

Preview or execute conversion of prepared WolvenKit JSON intermediates to CR2W using a verified CLI. run=false by default.

Inputs: output (required), native_json (required), cli, run, +1 more.

wb_native_importC

Prepare/import a WB export through template-bundle + WKit JSON deserialize backend. run=false by default.

Inputs: bundle (required), output (required), export_file (required), cli, +3 more.

wb_native_jsonB

Generate WolvenKit JSON intermediates mirroring the WB importer from a captured template bundle. write=false by default.

Inputs: bundle (required), output (required), export_file (required), write.

wb_native_preflightC

Probe WolvenKit CLI/cp77tools for the convert deserialize JSON-to-CR2W capability.

Inputs: cli, timeout.

wb_native_template_planC

Plan or write a WolvenKit template-capture wscript for exactly the RED types used by an export. write=false by default.

Inputs: output (required), export_file (required), write, resource_name.

wb_native_template_verifyC

Verify a captured cp77wb RED type template bundle covers every type required by a World Builder export.

Inputs: bundle (required), export_file (required).

wb_native_verifyC

Verify converted sector/block/device files exist and carry CR2W magic.

Inputs: output (required), targets, strict_magic.

wb_path_arrayC

Place reference-safe copies along a polyline or WB marker group. Dry-run unless write=true.

Inputs: file (required), path (required), count, write, +9 more.

wb_plan_applyB

Apply a declarative construction plan to a saved build. Dry-run unless write=true.

Inputs: file (required), plan (required), catalog (required), write.

wb_plan_compileC

Compile a declarative cp77wb-plan/1 specification into exact indexed spawn operations without editing a build.

Inputs: plan (required), catalog (required).

wb_plan_previewB

Compile a construction plan, apply it to a clone, validate it and report approximate collisions with the existing build.

Inputs: file (required), plan (required), catalog (required).

wb_polygon_scatterB

Deterministically scatter copies inside an XY polygon. Dry-run unless write=true.

Inputs: file (required), path (required), count (required), points (required), +10 more.

wb_prefab_renderA

Render ${parameter} placeholders in a JSON WB prefab/build template. Returns rendered JSON unless output is supplied.

Inputs: template (required), output, parameters.

wb_radial_arrayC

Create an XY radial array; count includes source. Dry-run unless write=true.

Inputs: file (required), path (required), count (required), angle, +7 more.

wb_refsC

List NodeRef definitions and known World Builder references.

Inputs: file (required).

wb_rng_createC

Create a native World Builder Randomized Nested Group. Dry-run unless write=true.

Inputs: file (required), name (required), parent (required), x, +8 more.

wb_rotateB

Rotate an object/group around its origin or explicit pivot. Dry-run unless write=true.

Inputs: file (required), path (required), yaw, roll, +5 more.

wb_scaleA

Scale an object/group hierarchy. Existing scale fields only by default. Dry-run unless write=true.

Inputs: file (required), path (required), x, y, +4 more.

wb_scatterB

Deterministically scatter copies inside an offline box. Dry-run unless write=true.

Inputs: file (required), path (required), count (required), seed, +10 more.

wb_semantic_buildC

Build deterministic local semantic tags/facets over an existing World Builder asset catalog.

Inputs: database (required), overrides.

wb_spawn_assetB

Insert one exact/search-resolved indexed asset into a saved-build group. Ambiguous text queries fail. Dry-run unless write=true.

Inputs: file (required), asset (required), parent (required), catalog (required), +12 more.

wb_treeC

Read a World Builder build hierarchy.

Inputs: file (required), show_modules.

wb_validateC

Validate World Builder-specific references, NodeRefs and caches.

Inputs: file (required).

wb_volume_scatterB

Scatter copies inside box/cylinder/sphere volumes. Dry-run unless write=true.

Inputs: file (required), path (required), count (required), shape (required), +11 more.

wb_worker_buildB

Preview or build the bundled .NET 10 WolvenKit worker. run=false by default; optional log_file captures full dotnet publish output.

Inputs: run, dotnet, output, source, +2 more.

wb_worker_bundleC

Preview or create exact RED default templates directly through the verified .NET worker. run=false by default.

Inputs: output (required), export_file (required), run, worker, +1 more.

wb_worker_doctorC

Collect .NET/worker diagnostics and optionally write a support ZIP for deferred compatibility testing.

Inputs: dotnet, output, worker, timeout.

wb_worker_importB

Preview or import a WB export directly through the verified .NET WolvenKit worker, without WScript template capture. run=false by default.

Inputs: output (required), export_file (required), run, worker, +2 more.

wb_worker_inspectC

Inspect discovered WolvenKit assemblies, serializer/writer API signatures and API profile without requiring the round-trip self-test to pass.

Inputs: worker, timeout.

wb_worker_preflightC

Run the worker self-test; authoritative native is true only when RED default serialization and JSON-to-CR2W both pass.

Inputs: worker, timeout.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

    TDQS

    C2.6/5.0

    Scored across 94 tools

    Disambiguation2/5

    The set contains many near-duplicate families—wb_move vs wb_live_move, wb_scale vs wb_live_scale, wb_duplicate vs wb_live_duplicate, and several scatter/array variants—so an agent must carefully distinguish saved-build edits from live-editor actions. The build/native/worker import pipeline also has multiple overlapping entries such as wb_native_import, wb_build_native_import, wb_worker_import, and wb_build_worker_import. Descriptions help, but tool boundaries are still easy to misselect.

    Naming Consistency3/5

    All tools are snake_case with a consistent wb_ prefix and readable subsystem names such as live, build, native, worker, and assets. However, verb/noun ordering is inconsistent: wb_assets_search and wb_build_prepare versus wb_spawn_asset and wb_plan_apply, plus bare noun-style names like wb_tree and wb_refs. The set is readable but not fully predictable.

    Tool Count1/5

    At 94 tools this is far beyond a well-scoped MCP surface, even for a broad World Builder automation domain. The set is fragmented into highly granular live/offline and pipeline variants that could be consolidated or grouped behind fewer tools.

    Completeness4/5

    The surface covers an unusually full lifecycle: asset cataloging, semantic search, bounds and collision checks, planning, generation, live editing, export inspection, native conversion, packaging, verification, and deployment. Remaining gaps are minor—for example, offline saved-build deletion/rename and favorite removal are not clearly exposed—but core workflows are well covered.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers