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.
More Validation tools
Email Validate
Validate an email address and break it into local / domain / TLD parts.
Html Formatter
Format (beautify) or minify HTML and return the result with a tag-balance validation report.
Json Validate
Validate a JSON string.
Openapi Validator
Validate an OpenAPI 3.x (or Swagger 2.0) document given as JSON or YAML and return a report with errors, warnings, and summary info (title,
Phone Format
Format a phone number to E.164 (+CCNNNNNNN…) given an optional country calling code.
Url Validate
Validate that a string is a well-formed URL and (optionally) require HTTPS.
Wvw Apps Json Generator
Build and validate an apps.json manifest for wvw.dev (World Vibe Web) from a store object and a list of apps.
Xml Formatter
Beautify or minify an XML document and return the formatted text.