← WebMCP Directory

laydyne.com

laydyne.com

live Unverified (seed import) Productivity & Business 64 tools imperative implementation

Describe your space and workflow to AI. Build layouts, adapt process scenarios, and compare simulations through MCP or the built-in assistant.

First seen 2026-10-05 · Last seen 2026-10-05 · Source: webmcp.com

Answer 27 · Act 33 · Transact 4 · Score: Not yet scored

Tool inspector

apply_changes

act imperative

Free. Apply a change set in the saved format (get_project_schema part=changes) in one atomic, undoable step: floors (whole floors with every part), structures (buildings on the site), links (connections) and scenarios are put (added, or replaced by id) or removed, and floors.patch changes a floor part by part (fields to set; parts put or removed by id); everything the set does not name stays as it is, including other floors, other parts of a patched floor and edits made in Studio. dryRun: true validates and checks without changing anything and returns errors with paths, the summary (added, replaced, patched, unchanged and removed items; parts lost or overwritten on replaced floors; connections removed with their floors; ends pulled onto smaller floors; robot stations moved), the geometry checks of the floors and connections it touches (overlaps, narrow passages, doors that open nothing, parts off the floor, floors overlapping, floors over the routing side, steep or misaligned connections; reach: true adds unreachable zones), the current fingerprints and those after the change. base {floors|links|structures|scenarios: {id: fingerprint | null}} refuses the change when a whole item differs from the version it was made from (someone edited it); a patch's own base does so only for the fields and parts it changes, so the user's edits elsewhere on the floor stay and conflicts lists exactly which parts (by id) and fields were edited on both sides. Fingerprints are of items as the app keeps them (parts normalized, robot stations where the robot fits): the fingerprint of what you send, of the applied item and of an export read back are the same. Removing a floor removes its connections; scenarios must name places that exist afterwards; locked parts cannot change; removeUnlisted: true makes the site and scenarios exactly the set. Change sets over about 200 KB: action=write chunks (offset, data of up to 200000 UTF-16 characters; the first with totalCharacters, totalBytes and s…

Page: /studio

Input schema

PropertyTypeRequiredDescription
expectedRevision string no Use revision from the most recent get_space or change. Needed to apply or dry-run; not to write or cancel an upload.
action string no request_begin opens a live group with fixed request and baseRevision; request_commit closes its confirmed prefix into one Undo; request_abort reverses only that unchanged known prefix (groupId). Separate operation IDs for each control. Children use requestGroupId, independent operationId and owned expectedRevision; only edit_space/apply_changes/put_process_scenario/delete_process_scenario/edit_equipment are supported. No simulation, import, other mutations or Plan inside a group. Unknown/reload requires explicit Studio recovery, never blind retry. apply (default): apply changes, or the upload named by transferId. write: stage one chunk of a large change set. cancel: drop the staged upload.
dryRun boolean no Validate and check without changing anything: errors, summary, checks and fingerprints.
plan boolean no Propose one fixed request for human approval in Studio. Requires request. Agent tools cannot approve it; normal edits without plan are unchanged.
request object no One changeset is one request: id is `${baseRevision.length}:${baseRevision}:<name>` (100 characters maximum including the prefix); keep id and baseRevision fixed from its first read. Commit operationId must exactly equal id (do not add a helper prefix); preview/upload operation IDs must differ. This binding is guaranteed for Studio UUID:counter revisions; overly long revisions/IDs are rejected, never truncated. After journal expiry or reload never replace baseRevision to retry. Request-specific Undo/Redo refuses another history entry. Optional scope:{floorId,partIds,attributes} permits only these existing parts and attributes, compared against actual stored data; collateral normalization, other inputs, additions, removals, array reordering and locked changes are refused. plan:true stages this fixed request for human approval in Studio; while pending, all agent writes are blocked until the person approves or cancels. External callers must supply request.scope explicitly; copied selection context alone does not enforce it.
groupId string no Fixed request ID for request_commit/request_abort. Read get_space.authoringRequestGroup before deciding. Abort restores only a known unchanged successful prefix.
changes object no The change set (get_project_schema part=changes): {site, structures, floors, links, scenarios: {put, remove}, removeUnlisted, base}.
transferId string no —
offset integer no —
data string no —
totalCharacters integer no —
totalBytes integer no —
sha256 string no —
minClearance number no Report passages narrower than this many metres.
reach boolean no Also check, on the floors the change touches, which zones a pedestrian cannot reach from any gate (routing; slower on large sites).
operationId string no Your own unique name for this change, such as a UUID; optional. Sending the same call again with the same operationId returns the earlier result (replayed: true) instead of applying it twice, and get_operation tells whether it applied. Use a new one for each new change.
requestGroupId string no Attach this live edit to an open request group. Requires a fixed operationId and the current owned expectedRevision. Only the advertised five editing tools support groups.
Raw JSON schema
{
  "type": "object",
  "properties": {
    "expectedRevision": {
      "description": "Use revision from the most recent get_space or change. Needed to apply or dry-run; not to write or cancel an upload.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "action": {
      "default": "apply",
      "description": "request_begin opens a live group with fixed request and baseRevision; request_commit closes its confirmed prefix into one Undo; request_abort reverses only that unchanged known prefix (groupId). Separate operation IDs for each control. Children use requestGroupId, independent operationId and owned expectedRevision; only edit_space/apply_changes/put_process_scenario/delete_process_scenario/edit_equipment are supported. No simulation, import, other mutations or Plan inside a group. Unknown/reload requires explicit Studio recovery, never blind retry. apply (default): apply changes, or the upload named by transferId. write: stage one chunk of a large change set. cancel: drop the staged upload.",
      "type": "string",
      "enum": [
        "apply",
        "write",
        "cancel",
        "request_begin",
        "request_commit",
        "request_abort"
      ]
    },
    "dryRun": {
      "default": false,
      "description": "Validate and check without changing anything: errors, summary, checks and fingerprints.",
      "type": "boolean"
    },
    "plan": {
      "description": "Propose one fixed request for human approval in Studio. Requires request. Agent tools cannot approve it; normal edits without plan are unchanged.",
      "type": "boolean"
    },
    "request": {
      "description": "One changeset is one request: id is `${baseRevision.length}:${baseRevision}:<name>` (100 characters maximum including the prefix); keep id and baseRevision fixed from its first read. Commit operationId must exactly equal id (do not add a helper prefix); preview/upload operation IDs must differ. This binding is guaranteed for Studio UUID:counter revisions; overly long revisions/IDs are rejected, never truncated. After journal expiry or reload never replace baseRevision to retry. Request-specific Undo/Redo refuses another history entry. Optional scope:{floorId,partIds,attributes} permits only these existing parts and attributes, compared against actual stored data; collateral normalization, other inputs, additions, removals, array reordering and locked changes are refused. plan:true stages this fixed request for human approval in Studio; while pending, all agent writes are blocked until the person approves or cancels. External callers must supply request.scope explicitly; copied selection context alone does not enforce it.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,99}$"
        },
        "baseRevision": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100
        },
        "scope": {
          "type": "object",
          "properties": {
            "floorId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 100
            },
            "partIds": {
              "minItems": 1,
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "uniqueItems": true
            },
            "attributes": {
              "minItems": 1,
              "maxItems": 8,
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "x",
                  "z",
                  "y",
                  "w",
                  "d",
                  "h",
                  "rotation",
                  "color"
                ]
              },
              "uniqueItems": true
            }
          },
          "required": [
            "floorId",
            "partIds",
            "attributes"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "id",
        "baseRevision"
      ],
      "additionalProperties": false
    },
    "groupId": {
      "description": "Fixed request ID for request_commit/request_abort. Read get_space.authoringRequestGroup before deciding. Abort restores only a known unchanged successful prefix.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "changes": {
      "description": "The change set (get_project_schema part=changes): {site, structures, floors, links, scenarios: {put, remove}, removeUnlisted, base}.",
      "type": "object",
      "properties": {
        "site": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        },
        "floors": {
          "type": "object",
          "properties": {
            "put": {
              "description": "Whole floors in the saved format (get_project_schema part=floor), parts included.",
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "remove": {
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              }
            },
            "patch": {
              "description": "Floors changed part by part, keeping edits made in Studio: {id, level?, x?, …, scene?: {fields}, parts?: {put: [parts], remove: [ids]}, base?: {fields as they were, parts: {id: fingerprint | null}}} (part=changes).",
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            }
          },
          "additionalProperties": false
        },
        "structures": {
          "type": "object",
          "properties": {
            "put": {
              "description": "Buildings on the site (part=structure).",
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "remove": {
              "maxItems": 40,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            }
          },
          "additionalProperties": false
        },
        "links": {
          "type": "object",
          "properties": {
            "put": {
              "description": "Connections (part=link).",
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "remove": {
              "maxItems": 100,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              }
            }
          },
          "additionalProperties": false
        },
        "scenarios": {
          "type": "object",
          "properties": {
            "put": {
              "description": "Process scenarios (part=scenario).",
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "remove": {
              "maxItems": 20,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              }
            },
            "activeId": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "removeUnlisted": {
          "type": "boolean"
        },
        "base": {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {}
        }
      },
      "additionalProperties": false
    },
    "transferId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 50000000
    },
    "data": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200000
    },
    "totalCharacters": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50000000
    },
    "totalBytes": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50000000
    },
    "sha256": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "minClearance": {
      "default": 0.9,
      "description": "Report passages narrower than this many metres.",
      "type": "number",
      "minimum": 0.3,
      "maximum": 5
    },
    "reach": {
      "default": false,
      "description": "Also check, on the floors the change touches, which zones a pedestrian cannot reach from any gate (routing; slower on large sites).",
      "type": "boolean"
    },
    "operationId": {
      "type": "string",
      "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,99}$",
      "description": "Your own unique name for this change, such as a UUID; optional. Sending the same call again with the same operationId returns the earlier result (replayed: true) instead of applying it twice, and get_operation tells whether it applied. Use a new one for each new change."
    },
    "requestGroupId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Attach this live edit to an open request group. Requires a fixed operationId and the current owned expectedRevision. Only the advertised five editing tools support groups."
    }
  },
  "additionalProperties": false
}

Similar websites

eworker.ca

eworker.ca

E-Worker is business infrastructure powered by AI, with focused apps and connected business work.

live Unverified Productivity & Business
73 tools A10 / Act63 / T0 Not yet scored Seen 2026-10-05
eworker_site_status eworker_list_apps eworker_resolve_app eworker_open_app ewdoc_status
Inspect tools
takemeup.cv

takemeup.cv

Free CV builder: make a polished, ATS-friendly CV in minutes. No watermarks, no sign-up. Import from LinkedIn, tailor to any job, export PDF.

live Unverified Productivity & Business Transact tools
41 tools A15 / Act25 / T1 Not yet scored Seen 2026-10-05
list_takemeup_guides search_takemeup_guides get_takemeup_guide list_takemeup_cv_templates get_takemeup_locale_cv_rules
Inspect tools
urban-planning-copilot.heisenbug.in

urban-planning-copilot.heisenbug.in

Urban Planning Copilot

demo Unverified Productivity & Business
37 tools A10 / Act27 / T0 Not yet scored Seen 2026-10-05
get_workspace get_analysis_plan list_candidates inspect_candidate list_shortlist
Inspect tools
vide.zerdalu.com

vide.zerdalu.com

Vide

live Unverified Productivity & Business Transact tools
28 tools A13 / Act14 / T1 Not yet scored Seen 2026-10-05
list_project_files read_project_file write_project_file delete_project_file get_active_script
Inspect tools

Related on Influzer