# board_tile_create

Build a tile-backed board scene: a TileMapLayer grid whose cells are addressable by integer [x, y] tile coordinates (cols wide × rows tall). The layer binds a TileSet — a supplied tileset .tres, or a fresh empty one created at <scene>_tiles.tres — so it has a real tile_size (the coordinate frame placement uses); paint optionally fills the whole grid with one tile from the bound tileset. General-purpose — cells carry only coordinates. Adds no addon method — decomposes onto scene.new → tileset.create → tilemaplayer.create → tilemap.set_cells_rect → scene.save. DESTRUCTIVE (writes a scene, and a TileSet .tres unless tileset is supplied) — gated by confirmation. Returns the layer path + grid dimensions + tile size.

Agent View of the PolicyLayer registry record for `board_tile_create`. HTML page: https://policylayer.com/tools/breakpoint-mcp/board-tile-create

## Facts

- Tool: `board_tile_create`
- Server: Breakpoint (`breakpoint-mcp`) — https://policylayer.com/tools/breakpoint-mcp.md
- Install: `npx -y breakpoint-mcp`
- Homepage: https://www.npmjs.com/package/breakpoint-mcp
- Risk category: Write (Medium risk)
- Registry record: grade F, identity unverified
- Server rate-limited: no
- Parameters: 9 (3 required)
- Recommended policy verdict: Rate-limited

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `cols` | integer | yes | Grid column count (cell x ranges 0..cols-1) |
| `path` | string | yes | Where to save the board scene, e.g. res://ui/board/TileBoard.tscn |
| `rows` | integer | yes | Grid row count (cell y ranges 0..rows-1) |
| `paint` | object | no | Fill the whole grid with one tile (needs an existing `tileset` that has the source); omitted → cells stay empty (a coordinate frame only) |
| `confirm` | boolean | no | Auto-approve this destructive action (skip the confirmation prompt) |
| `tileset` | string | no | Existing TileSet res:// .tres to bind; omitted → a fresh empty TileSet is created at <scene>_tiles.tres to establish the tile size |
| `overwrite` | boolean | no | Overwrite an existing board at `path` (default false) |
| `tile_size` | array | no | Tile cell size [w, h] in px (default [64, 64]); the coordinate frame board_tile_place snaps to |
| `layer_name` | string | no | TileMapLayer node name (default "Cells") |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "board_tile_create",
    "arguments": {
      "cols": 0,
      "path": "<path>",
      "rows": 0
    }
  }
}
```

## Why board_tile_create is rated Medium

While the description header mentions 'DESTRUCTIVE,' the actual tool behavior—creating and configuring scene objects, tilesets, and tilemaps, then saving—constitutes data creation and modification that can be undone (files can be deleted, scenes modified or reverted). This is Write, not Destructive.

From the tool's own definition: "Tool description states it 'writes a scene' and 'Adds no addon method — decomposes onto scene.new → tileset.create → tilemaplayer.create → tilemap.set_cells_rect → scene.save.' The description itself explicitly ends with 'DESTRUCTIVE (writes a scene, an' but…"

Risk signals: Accepts file system path (path) · High parameter count (11 properties)

## Use case

AI agents use board_tile_create to create or update resources in Breakpoint, usually the action step of a workflow, after the agent has gathered context. Every call changes real data in your Breakpoint environment.

## Recommended policy (PolicyLayer)

Verdict: **Rate-limited**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Breakpoint:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "board_tile_create": {
      "limits": [
        {
          "counter": "board_tile_create_rate",
          "window": "minute",
          "max": 30,
          "scope": "grant"
        }
      ]
    }
  }
}
```

## Other tools on Breakpoint (273)

- `anim_delete` — Destructive — https://policylayer.com/tools/breakpoint-mcp/anim-delete.md
- `anim_remove_key` — Destructive — https://policylayer.com/tools/breakpoint-mcp/anim-remove-key.md
- `filesystem_move` — Destructive — https://policylayer.com/tools/breakpoint-mcp/filesystem-move.md
- `gd_rename` — Destructive — https://policylayer.com/tools/breakpoint-mcp/gd-rename.md
- `inputmap_erase_action` — Destructive — https://policylayer.com/tools/breakpoint-mcp/inputmap-erase-action.md
- `mp_wire_rpc` — Destructive — https://policylayer.com/tools/breakpoint-mcp/mp-wire-rpc.md
- `node_delete` — Destructive — https://policylayer.com/tools/breakpoint-mcp/node-delete.md
- `project_remove_autoload` — Destructive — https://policylayer.com/tools/breakpoint-mcp/project-remove-autoload.md
- `resource_save` — Destructive — https://policylayer.com/tools/breakpoint-mcp/resource-save.md
- `resource_set_import_settings` — Destructive — https://policylayer.com/tools/breakpoint-mcp/resource-set-import-settings.md
- `runtime_node_remove` — Destructive — https://policylayer.com/tools/breakpoint-mcp/runtime-node-remove.md
- `runtime_peer_stop` — Destructive — https://policylayer.com/tools/breakpoint-mcp/runtime-peer-stop.md
- `scene_close` — Destructive — https://policylayer.com/tools/breakpoint-mcp/scene-close.md
- `scene_reload` — Destructive — https://policylayer.com/tools/breakpoint-mcp/scene-reload.md
- `shader_set_code` — Destructive — https://policylayer.com/tools/breakpoint-mcp/shader-set-code.md
- `tilemap_clear` — Destructive — https://policylayer.com/tools/breakpoint-mcp/tilemap-clear.md
- `vcs_restore` — Destructive — https://policylayer.com/tools/breakpoint-mcp/vcs-restore.md
- `vcs_stash` — Destructive — https://policylayer.com/tools/breakpoint-mcp/vcs-stash.md
- `cs_dbg_attach` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-attach.md
- `cs_dbg_continue` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-continue.md
- `cs_dbg_launch` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-launch.md
- `cs_dbg_restart` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-restart.md
- `cs_dbg_set_breakpoints` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-set-breakpoints.md
- `cs_dbg_set_exception_breakpoints` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-set-exception-breakpoints.md
- `cs_dbg_set_variable` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-set-variable.md
- `cs_dbg_step` — Execute — https://policylayer.com/tools/breakpoint-mcp/cs-dbg-step.md
- `dbg_attach` — Execute — https://policylayer.com/tools/breakpoint-mcp/dbg-attach.md
- `dbg_continue` — Execute — https://policylayer.com/tools/breakpoint-mcp/dbg-continue.md
- `dbg_data_breakpoints` — Execute — https://policylayer.com/tools/breakpoint-mcp/dbg-data-breakpoints.md
- `dbg_goto` — Execute — https://policylayer.com/tools/breakpoint-mcp/dbg-goto.md
- …and 243 more: https://policylayer.com/tools/breakpoint-mcp.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=breakpoint-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/breakpoint-mcp
