@typeroll/mcp-server 0.21.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/AGENTS.md CHANGED
@@ -97,10 +97,14 @@ maps to one HTTP endpoint; the actual logic runs in the customer's portal
97
97
  - **Third-party** (origin: 'third_party') — imported from .tcblocks
98
98
  packages via `import_block_types`.
99
99
 
100
- `list_block_types` returns ALL of them in one list, with each entry's
101
- full schema (field names, types, defaults). Always call this FIRST
102
- before working with blocks never hardcode block ids or field names,
103
- the available set is per-site.
100
+ `list_block_types` returns ALL of them in one list as a lightweight
101
+ summary: each entry's id, label, category, container/slot info, origin,
102
+ and full field schema (names, types, defaults) but NOT the render-time
103
+ template/styles/script (omitted so the list stays within token budget as
104
+ the library grows). Use `read_block_type` for one block's markup, or pass
105
+ `full:true` to inline it for every block. Always call this FIRST before
106
+ working with blocks — never hardcode block ids or field names, the
107
+ available set is per-site.
104
108
 
105
109
  Block-library specifics worth knowing (template_capabilities_version
106
110
  0.15.0):
@@ -154,6 +158,15 @@ maps to one HTTP endpoint; the actual logic runs in the customer's portal
154
158
  they merge into the `<section>` element itself. On 0.14.x–0.15.2
155
159
  they wrapped the section in a `<div>`, which silently disabled
156
160
  full-bleed for that section.
161
+ - **Shaped section transitions** (since template_capabilities_version
162
+ 0.24.0): `core/section` takes `divider_top` / `divider_bottom`
163
+ (`none | wave | curve | tilt`). The platform paints the divider in the
164
+ section's OWN `background` and overlaps the neighbour by 1px, so a
165
+ cream↔colour transition renders seam-free. **Use this for waves/curves —
166
+ never hand-roll a divider band in `core/html`** (a separate stacked shape
167
+ seams against the next section as a sub-pixel hairline in Chrome). Put the
168
+ divider on the section whose colour should "rise/dip" into the neighbour
169
+ (usually the lower section's `divider_top`).
157
170
  - **`core/html`** is the raw-HTML escape hatch for block-mode pages —
158
171
  one `html` field rendered verbatim (then sanitized like HTML-mode
159
172
  content). Use it for the genuinely unique thing no block covers.
@@ -226,6 +239,18 @@ goes through the MCP:
226
239
  You usually want at least #1 + #2 + a sampling from #3 before
227
240
  proposing any design change, so you mirror the conventions in use.
228
241
 
242
+ **Source of truth = the live site (the API), by default.** The content and
243
+ structure you read back through the MCP (`read_page`, `read_partial`,
244
+ `read_site_settings`, …) is canonical. Local files in the project folder —
245
+ `sources/*.md` copy drafts, briefs, old exports — are PROPOSALS, not truth:
246
+ treat them as authoritative only when the user explicitly says "use the copy
247
+ in `<file>`". When rebuilding or redesigning, derive copy and structure from
248
+ the live page, not from a local draft, unless told otherwise. And if you edit
249
+ copy directly on the live site, sync it back to the corresponding draft file
250
+ in the same pass — otherwise the two diverge and the next agent inherits stale
251
+ text. (This is a real failure mode: a copy draft that had drifted from the live
252
+ page once sent a whole redesign off the approved wording.)
253
+
229
254
  **Don't have a site yet?** With an org-scoped key you can `create_site
230
255
  name="Acme"` — it bootstraps settings + a draft Home page + a published
231
256
  header/footer and returns the new site id. Use that id as `site_id`
@@ -554,6 +579,19 @@ After any non-trivial change, call `get_preview_link` and ask the user
554
579
  (or your own browser tool) to confirm the result before moving on. One
555
580
  HTTP call vs. shipping a broken redesign — always worth it.
556
581
 
582
+ **A design review covers appearance AND readability — not just structure.**
583
+ If you have a browser tool, screenshot at desktop (~1440px) and mobile (~390px)
584
+ and actually judge the visuals before telling the user it's done: logo fully
585
+ visible (not cut off by a header's overflow:hidden + overlap margin) + legible +
586
+ brand-compliant against its real background — screenshot the header in page
587
+ context, NOT the logo element in isolation (an element shot renders the full SVG
588
+ and hides layout clipping); a light/yellow wordmark must not sit bare on a light
589
+ surface without its plate. Text contrast on every
590
+ band, no horizontal scroll (`scrollWidth === clientWidth` at 360–390px), no
591
+ mid-word breaks, all images rendered, mobile layout actually collapsed. "Copy
592
+ present + no overflow + images 200" is a structural check, NOT a design review —
593
+ never report a design as perfect/approved off structural metrics alone.
594
+
557
595
  Preview shows DB state (drafts included). Live (`get_site → urls.production`)
558
596
  shows the most recent deploy. Branch deploys live at
559
597
  `get_version → deploy_url` (`{branch}.{project}.pages.dev`).
@@ -594,7 +632,7 @@ stakeholder review.
594
632
 
595
633
  | Family | Tools |
596
634
  |---|---|
597
- | **Skills (playbook)** | `list_skills`, `read_skill` — the bundled `tr-*.md` recipes, advertised at runtime. Call `list_skills` first when a task looks like "build / migrate / redesign a site", then `read_skill name=…`. No API key or site context needed. |
635
+ | **Guide + skills (playbook)** | `read_guide` (returns this whole guide — the bridge for hosted clients that can't read it off disk), `list_skills`, `read_skill` — the bundled `tr-*.md` recipes (incl. `tr-responsive` for per-breakpoint layout). Call `list_skills` first when a task looks like "build / migrate / redesign a site", then `read_skill name=…`. No API key or site context needed. |
598
636
  | **Discovery** | `get_site`, `create_site` (org-scoped key only — see below), `update_site`, `list_versions`, `read_site_settings` |
599
637
  | **Pages — reads** | `list_pages`, `read_page`, `batch_read_pages` |
600
638
  | **Pages — writes** | `create_page`, `update_page`, `replace_page`, `batch_update_pages`, `delete_page`, `clone_page` |
package/README.md CHANGED
@@ -99,14 +99,16 @@ which tool.
99
99
  Around 50 tools across these families. See [AGENTS.md](./AGENTS.md) for
100
100
  the full reference + concrete operation recipes.
101
101
 
102
- - **Skills (self-describing playbook)** — `list_skills` and
103
- `read_skill`. The server advertises its own bundled recipes at runtime,
104
- so an agent discovers the platform's playbook (`tr-new-site`,
105
- `tr-migrate-wp`, `tr-brand`, …) on connection without any files copied
106
- locally. Call `list_skills` early when the user wants to build /
107
- migrate / redesign a site, then `read_skill name=tr-new-site` for the
108
- full markdown. Pure local reads no API key or site context needed, so
109
- they work identically on the hosted connector and over stdio.
102
+ - **Skills + guide (self-describing playbook)** — `read_guide`,
103
+ `list_skills`, `read_skill`. The server advertises its own operating
104
+ guide AND bundled recipes at runtime, so an agent gets the full context
105
+ on connection without any files copied locally. `read_guide` returns the
106
+ whole AGENTS.md briefing (data model, conventions, safety, tool families)
107
+ the bridge for the hosted connector, which can't read the file off
108
+ disk. `list_skills` then surfaces the task recipes (`tr-new-site`,
109
+ `tr-migrate-wp`, `tr-brand`, `tr-responsive`, …); `read_skill name=…`
110
+ loads one. All pure local reads — no API key or site context — so they
111
+ work identically on the hosted connector and over stdio.
110
112
  - **Discovery** — `get_site`, `create_site` (bootstrap a new site — org-scoped
111
113
  key only), `update_site` (name/slug/domain), `list_versions`,
112
114
  `read_site_settings`, `update_site_settings`.