Skip to main content

dcc-mcp-tiled

DCC-MCP · TILED

Typed, workspace-bounded level authoring for Tiled through the DCC Model Context Protocol.

Tiled game-level workflow

Illustrative workflow generated with OpenAI ImageGen from the retained source in docs/images/sources; it is not a Tiled screenshot or host-validation artifact.

The adapter invokes Tiled's official JavaScript scripting API through tiled --evaluate. It ships one fixed driver and accepts typed JSON data only: clients cannot submit JavaScript or other arbitrary source code. The service is standalone, so Tiled does not need an in-process Python plug-in or an open editor window.

Capabilities

Typed tool Purpose
get_status Verify the executable, Tiled/Qt versions, formats, roots, and runtime limits.
inspect_map Summarize maps, layers, objects, tilesets, properties, and bounded tile occupancy.
validate_map Parse a map with Tiled and report structural or reference errors.
create_map Create orthogonal, isometric, staggered, or hexagonal maps with initial layers.
add_object_layer Add a uniquely named object layer and scalar properties.
write_objects Append or replace bounded point, rectangle, ellipse, polygon, or polyline objects.
create_tileset Create an external TSJ/TSX tileset from an image.
add_tileset Attach an external tileset to a map.
paint_tiles Paint or clear bounded cells, including Tiled flip flags.
convert_map Convert maps through Tiled's registered map formats, including TMJ and TMX.

All mutating operations write to a same-directory temporary file and atomically replace the requested output only after Tiled returns a valid, non-empty result.

Install

Install Tiled 1.10 or newer, then follow the agent-first installation guide. The adapter is not currently published on PyPI, so pip install dcc-mcp-tiled must not be treated as a working install path. Install a checksum-verified wheel from a trusted release or reviewed checkout, then run:

dcc-mcp-tiled-doctor doctor --json
dcc-mcp-tiled-doctor verify --json
dcc-mcp-tiled

The deprecated dcc-mcp-tiled-install compatibility alias performs verification only and never writes an installation.

When the fixed driver is unavailable, catalog planning is exposed only through dcc-mcp-tiled-doctor catalog-plan --json. That wrapper authenticates the exact Core 0.20.14 CLI bytes against Core's signed platform update manifest and rechecks the path and digest immediately before the read-only plan. Missing or untrusted executables return an explicit blocker instead of a placeholder or browser-only remediation.

The adapter discovers tiled/tiled.exe from PATH and common Windows install locations. Set an explicit executable when needed:

$env:DCC_MCP_TILED_EXECUTABLE = "C:\Program Files\Tiled\tiled.exe"
$env:DCC_MCP_TILED_ALLOWED_ROOTS = "D:\game\maps;D:\game\art"
dcc-mcp-tiled

On POSIX systems, separate multiple allowed roots with : instead of ;. Without DCC_MCP_TILED_ALLOWED_ROOTS, only the server's current working directory is accessible.

The MCP endpoint is registered with DCC-MCP Core and is also available directly from the adapter's loopback HTTP server. Use dcc-mcp-cli instances to discover the active URL and typed capabilities.

Safety contract

  • Source and output paths must remain inside DCC_MCP_TILED_ALLOWED_ROOTS.
  • Inputs, responses, maps, tile cells, objects, coordinates, properties, and execution time all have explicit upper bounds.
  • Subprocesses run without a shell, support DCC-MCP cancellation, and are terminated on timeout.
  • Existing outputs require overwrite=true; successful writes are atomic.
  • The bundled driver is immutable package code. Tool arguments are JSON data, never evaluated source.
  • This adapter does not claim interactive GUI control. Visible editor automation belongs to a separate, explicitly authorized UI-control workflow.

Runtime ceilings can be reduced with DCC_MCP_TILED_MAX_MAP_BYTES, DCC_MCP_TILED_MAX_REQUEST_BYTES, DCC_MCP_TILED_MAX_RESPONSE_BYTES, DCC_MCP_TILED_MAX_TILE_CELLS, DCC_MCP_TILED_MAX_CELLS_PER_CALL, DCC_MCP_TILED_MAX_OBJECTS_PER_CALL, and DCC_MCP_TILED_MAX_TIMEOUT_SECS.

Native validation

The release gate runs the official Tiled 1.12.2 AppImage by a pinned SHA256 in a virtual display. It creates a two-tile image tileset, authors and paints a TMJ map, writes two gameplay objects, validates it, converts it to TMX, starts the packaged MCP server, loads the bundled Skill, and completes a typed asynchronous get_status job. The smoke test verifies 10 registered typed tools and never uses a mock Tiled process.

The adapter does not download Tiled and has no persistent binary cache. The CI AppImage exists only in the ephemeral runner workspace; operators own upgrades and cleanup for OS packages or exact, checksum-verified AppImages.

TMJ/TMX outputs are suitable handoff artifacts for downstream Godot, Blender, and other game-content pipelines. This adapter validates the Tiled artifact; a target engine or DCC remains responsible for its own importer and scene-level acceptance.

Development

python -m pip install -e ".[dev]"
python -m pytest
python -m ruff check src tests tools
python -m ruff format --check src tests tools
python tools/lint_skills.py
python -m build
python -m twine check dist/*

Architecture details are in docs/architecture.md. Official API references: scripting, MapFormat, and TilesetFormat.

Metadata

Release files for dcc-mcp-tiled 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dcc-mcp-tiled 0.5.1
File Size Uploaded
dcc_mcp_tiled-0.5.1.tar.gz 98.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dcc-mcp-tiled 0.5.1
File Interpreter ABI Platform
dcc_mcp_tiled-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 129.9 kB

Release files / dcc_mcp_tiled-0.5.1.tar.gz

Download URL dcc_mcp_tiled-0.5.1.tar.gz
Size 98.0 kB
Tags Source
SHA-256 checksum
How to use checksums
bd44a3601e41387a5aba8b64d055d24ae9c77a2df6153d20b7243f3e891748f6
BLAKE2b-256 checksum
How to use checksums
321faaaadc78817a0df8f73a4eac617e78b9aa54dace5952c1f345489ae52122
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release files / dcc_mcp_tiled-0.5.1-py3-none-any.whl

Download URL dcc_mcp_tiled-0.5.1-py3-none-any.whl
Size 31.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9ce57d7fc56c00c222d0f24cd3c76e5775b50e7be53391f4c2c939d521236891
BLAKE2b-256 checksum
How to use checksums
b5b945f67a48723099bcc749b07e042ecfe1d37af684154ab8394260f3e1fde9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page