# Template To Liquid — MCP tool `findutils:template_to_liquid`

Convert a Handlebars, Mustache or Knap template into Shopify Liquid. Blocks become if/unless/for, Handlebars scopes (this, ../, #with, block params) are resolved to Liquid paths, @index and loop.* become forloop.*, Knap elseif becomes elsif, Knap colon arguments become comma arguments, dayjs date formats become strftime, the ?? fallback becomes | default, helpers with arguments become filters, partials become render tags, and comments become comment blocks. Handlebars and Mustache HTML-escape outputs by default, so their {{ }} outputs gain | escape unless escape_output is false; Knap writes Markdown and gets none. Every construct with no Liquid form (helpers, @key, not inside a compound condition, Markdown-only Knap filters) is kept as written and listed in warnings with its line, never dropped silently. Jinja2, Twig and Nunjucks templates are refused, not half-converted. Auto detects the dialect. The browser page at /developers/json-to-liquid/ previews the result with LiquidJS.

- Category: calculators
- 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/template-to-liquid/execute (no API keys, 60 req/min per IP)
- Reference page: https://findutils.com/mcp/template-to-liquid/
- Same tool on the other surface: https://findutils.com/api/template-to-liquid/

## 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": "template_to_liquid",
      "arguments": {
        "template": "<h1>{{title}}</h1>{{#each items}}<li>{{name}}</li>{{/each}}"
      }
    }
  }'
```

## Input schema

| Argument | Type | Required | Description |
|---|---|---|---|
| `template` | string | yes | The template text. |
| `from` | string (auto \| handlebars \| mustache \| knap) | no | The source dialect. auto (default) detects it from the tags used. Default: `"auto"`. |
| `escape_output` | boolean | no | Add \| escape to plain {{ }} outputs, matching the source engine's default HTML escaping. Default: true for Handlebars and Mustache; false for Knap, which writes Markdown. |

Example arguments (verified):

```json
{
  "template": "<h1>{{title}}</h1>{{#each items}}<li>{{name}}</li>{{/each}}"
}
```

## Also a REST endpoint

```bash
curl -X POST https://api.findutils.com/api/tools/template-to-liquid/execute \
  -H "Content-Type: application/json" \
  -d '{
    "template": "<h1>{{title}}</h1>{{#each items}}<li>{{name}}</li>{{/each}}"
  }'

# Parameter schema
curl https://api.findutils.com/api/tools/template-to-liquid
```

Full REST reference: https://findutils.com/api/template-to-liquid/ · 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
