# Yoyo Component Generator — MCP tool `findutils:yoyo_component_generator`

Generate Yoyo PHP component boilerplate: the PHP class (properties, props, query string, listeners, lifecycle hooks, actions, computed properties) and the matching PHP, Blade, or Twig template. Anonymous components return only the template.

- Category: generators
- MCP server: https://mcp.findutils.com/ (Streamable HTTP, no API keys, 120 req/min per IP)
- REST endpoint: POST https://api.findutils.com/api/tools/yoyo-component-generator/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/mcp/yoyo-component-generator/
- Same tool on the other surface: https://findutils.com/api/yoyo-component-generator/

## Connect

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

Claude Desktop (`claude_desktop_config.json`):

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

## Call the tool (verified example)

```bash
curl -X POST https://mcp.findutils.com/ \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "yoyo_component_generator",
      "arguments": {
        "name": "Counter",
        "properties": [
          {
            "name": "count",
            "type": "int",
            "default_value": "0"
          }
        ],
        "actions": [
          "increment"
        ],
        "computed_props": [
          "doubleCount"
        ]
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `name` | string | no | Component name (converted to PascalCase). Default: "MyComponent". Default: `"MyComponent"`. |
| `namespace` | string | no | PHP namespace. Default: "App\Yoyo". Default: `"App\\Yoyo"`. |
| `engine` | string (php \| blade \| twig) | no | Template engine. Default: "php". Default: `"php"`. |
| `component_type` | string (dynamic \| anonymous) | no | "dynamic" (class + template) or "anonymous" (template only). Default: "dynamic". Default: `"dynamic"`. |
| `properties` | array | no | Public properties: [{ name, type: string\|int\|float\|bool\|array, default_value? }]. |
| `use_props` | boolean | no | Declare $props with every property name. Default: false. Default: `false`. |
| `use_query_string` | boolean | no | Declare $queryString with every property name. Default: false. Default: `false`. |
| `actions` | array | no | Action method names, e.g. ["increment", "decrement"]. |
| `computed_props` | array | no | Computed property names, e.g. ["doubleCount"]. |
| `listeners` | array | no | Event listeners: [{ event, handler }]. |
| `hooks` | array | no | Lifecycle hooks to stub: any of "initialize", "mount", "rendering", "rendered". |

Example arguments (verified):

```json
{
  "name": "Counter",
  "properties": [
    {
      "name": "count",
      "type": "int",
      "default_value": "0"
    }
  ],
  "actions": [
    "increment"
  ],
  "computed_props": [
    "doubleCount"
  ]
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/yoyo-component-generator/execute \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Counter",
    "properties": [
      {
        "name": "count",
        "type": "int",
        "default_value": "0"
      }
    ],
    "actions": [
      "increment"
    ],
    "computed_props": [
      "doubleCount"
    ]
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/yoyo-component-generator
```

Full REST reference: https://findutils.com/api/yoyo-component-generator/ · OpenAPI 3.1 spec: https://findutils.com/api/openapi.json

---
Full catalog: POST https://mcp.findutils.com/ with method `tools/list` · https://findutils.com/mcp/ · https://findutils.com/llms.txt
