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 MCP tool findutils:state_machine_designer. See the REST reference →

Call it over MCP

Tool name findutils:state_machine_designer · no API keys · 120 requests/min per IP

Claude Code

claude mcp add findutils --transport http https://mcp.findutils.com/

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "findutils": {
      "url": "https://mcp.findutils.com/"
    }
  }
}

Raw JSON-RPC (any MCP client) — verified example

curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "state_machine_designer",
      "arguments": {
        "nodes": [
          {
            "id": "s1",
            "data": {
              "label": "Idle",
              "stateType": "initial"
            }
          },
          {
            "id": "s2",
            "data": {
              "label": "Done",
              "stateType": "final"
            }
          }
        ],
        "edges": [
          {
            "source": "s1",
            "target": "s2",
            "label": "FINISH"
          }
        ]
      }
    }
  }'

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 a REST endpoint

The same tool answers plain HTTP at POST /api/tools/state-machine-designer/execute — no key, 60 requests/min.

Open the REST reference for State Machine Designer →

More Validation tools