WorldPainter MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WPSCRIPT_PATH | Yes | Path to WorldPainter's wpscript.exe, e.g. D:\WorldPainter\wpscript.exe |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| wp_get_world_infoB | Read a .world project name, platform, dimensions, bounds, height ranges and layer names. Read-only. |
| wp_export_heightmapB | Export a dimension heightmap to PNG plus lossless bridge data. Dimension may be its selector, name or index. |
| wp_analyze_terrainC | Compute elevation and slope statistics, optional coast coverage, and a heightmap preview. Read-only. |
| wp_plan_terrain_editA | Create a non-writing edit plan. Height operation types: smooth(radius,passes,strength), erosion(iterations,talus,strength), ridge_valley(radius,scale,strength), raise_lower(delta,strength), slope_limit(max_slope,iterations,strength), coastline_soften(sea_level,width,radius,strength). Paint operation types: terrain(terrain), layer(layer,value), biome(biome_id), plants(layer, plants=[{name,weight}], density=0.25,seed=1), water(data_path): NPZ with equal 1D arrays x,y (absolute integer world coordinates), bed (float ground height), water (integer water level). Only lowers existing ground. Water does not clear plants or change terrain/biomes; add masked layer/terrain/biome operations. Plants creates a NEW native Custom Plants layer, with valid-block checks and no farmland. Each paint operation may have its own mask_path, intersected with the global mask. Use wp_get_world_info to see existing layer names; plants must use a new name. Region types: rectangle(x,y,width,height,feather), circle(center_x,center_y,radius,feather), or polygon(points,feather). mask_path may point to a grayscale image covering the full dimension. This tool never saves a .world file; preview is mandatory next. |
| wp_preview_terrain_editA | Generate before/after/delta PNGs and a one-time preview_id for a plan. Does not write a .world file. |
| wp_apply_terrain_planB | Apply an already previewed plan via WorldPainter, snapshot first, and save a new copy by default. |
| wp_list_snapshotsB | List safety snapshots, optionally restricted to one original .world path. |
| wp_rollback_snapshotB | Restore a snapshot to a new .world copy by default; original overwrite requires explicit opt-in. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Each tool has a clearly distinct role in the terrain-editing workflow: inspection, export, analysis, planning, previewing, applying, and snapshot management. The plan/preview/apply trio is explicitly sequenced with non-overlapping outputs, so an agent can easily tell them apart.
All tool names follow a consistent wp_ + verb_noun snake_case pattern (wp_get_world_info, wp_export_heightmap, wp_apply_terrain_plan, etc.). The compound nouns like terrain_edit and terrain_plan remain predictable and readable.
Eight tools is well-scoped for a world-editing MCP with a plan-preview-apply safety pipeline and snapshot support. Each tool earns its place without redundancy or bloat.
The surface covers the core lifecycle: read world info, export/analyze terrain, plan/preview/apply edits, and list/rollback snapshots. Minor gaps exist, such as no tool to delete or prune snapshots, but agents can work around these limitations.