List blocks
fabrement-list-blocksList/search this project's blocks: id, name (the registered name other tools take), title, hasFiles (this site has the block's files; always false on installed:false rows — read importable there), type. Content blocks only by default; type "header"|"footer"|"all" for template parts. Paged (10, limit ≤25; read total/pages) — narrow with search or tags rather than scanning. Rows with installed:false are in the project but NOT on this site — install one with import-block rather than rebuilding it. availableTags lists every tag in use with counts: read it before tagging a block of your own.
Rules: get-skill-doc {id:"block-discovery-contract"} — read it before the first call.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number, 1-based. Default 1. | |
| tags | No | Keep only blocks carrying ALL of these. Take the words from `availableTags` — a tag nobody used matches nothing. | |
| type | No | Which kind to list: "default" (content blocks, the default) | "header" | "footer" | "all". | |
| limit | No | Blocks per page (default 10). Values above 25 are capped, not refused — read `limit` in the response. | |
| search | No | Case-insensitive substring over title, kebabName, pascalName, description and tags (e.g. "hero", "bizcor foot"). | |
| refresh | No | Accepted for compatibility and has no effect: the project is always read fresh from the backend. | |
| installed | No | true = only what is on this site; false = only what the project has and this site does not. Omit for both. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| limit | No | Page size actually used — a `limit` above the ceiling is clamped to it. | |
| pages | No | More than 1 means this response is partial. A `page` above it returns an empty list, not an error. | |
| total | Yes | Blocks matching type + search across ALL pages. | |
| blocks | Yes | ||
| projectSync | No | "ok" fresh from the backend; "unavailable" it did not answer — then this list is THIS SITE ONLY and says nothing about the project. | |
| availableTags | No | Every tag in use across the project for the `type` asked for (a header listing has the words headers carry), with how many blocks carry it. The site's own vocabulary — reuse these words when you tag a block, or the filter splits between "card" and "cards". | |
| notInstalledCount | No | How many project blocks are not on this site, before any filter. Absent when projectSync is "unavailable" — nobody can count what they could not read. |