State Machine Designer

Validation REST API MCP

Validate a finite state machine given as nodes and edges and return a normalized machine config plus issues. Checks for missing ids, dangling transitions, duplicate labels, missing or multiple initial states, unreachable states, and outgoing transitions from final states. The config matches the designer's "Export Code" output ({ id, initial, states: { State: { EVENT: Target } } }).

This page documents the HTTP endpoint POST /api/tools/state-machine-designer/execute. See the MCP reference →

Call it over REST

POST https://api.findutils.com/api/tools/state-machine-designer/execute · no API keys · 60 requests/min per IP

Execute — verified arguments

curl -X POST https://api.findutils.com/api/tools/state-machine-designer/execute \
  -H "Content-Type: application/json" \
  -d '{
    "nodes": [
      {
        "id": "s1",
        "data": {
          "label": "Idle",
          "stateType": "initial"
        }
      },
      {
        "id": "s2",
        "data": {
          "label": "Done",
          "stateType": "final"
        }
      }
    ],
    "edges": [
      {
        "source": "s1",
        "target": "s2",
        "label": "FINISH"
      }
    ]
  }'

Parameter schema for this endpoint

curl https://api.findutils.com/api/tools/state-machine-designer

Interactive docs · OpenAPI 3.1 spec · All REST tools

Input schema

Argument Type Required Description
nodes array yes States: [{ id, data: { label, stateType: initial|normal|final, description? } }]. Flat { id, label, stateType } objects are also accepted.
edges array yes Transitions: [{ source, target, label }] where label is the event name (uppercased in the config; "EVENT" when missing).
machine_id string no Id written into the config. Default: "stateMachine". Default: "stateMachine".

Example arguments (verified)

{
  "nodes": [
    {
      "id": "s1",
      "data": {
        "label": "Idle",
        "stateType": "initial"
      }
    },
    {
      "id": "s2",
      "data": {
        "label": "Done",
        "stateType": "final"
      }
    }
  ],
  "edges": [
    {
      "source": "s1",
      "target": "s2",
      "label": "FINISH"
    }
  ]
}

Also an MCP tool

Claude, Cursor, and any MCP client can call this tool as findutils:state_machine_designer after one connect command.

Connect once

claude mcp add findutils --transport http https://mcp.findutils.com/
Open the MCP reference for State Machine Designer →

More Validation tools