@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 +43 -5
- package/README.md +10 -8
- package/dist/bundled-content.js +28 -0
- package/dist/index.js +1 -1
- package/dist/init.js +16 -0
- package/dist/server.js +6 -3
- package/dist/tools/block-types.js +32 -2
- package/dist/tools/skills.js +55 -52
- package/package.json +3 -1
- package/skills/tr-header-footer.md +174 -0
- package/skills/tr-new-site.md +18 -0
- package/skills/tr-redesign-branch.md +60 -1
- package/skills/tr-responsive.md +112 -0
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
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
the
|
|
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
|
-
| **
|
|
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)** — `
|
|
103
|
-
`read_skill`. The server advertises its own
|
|
104
|
-
so an agent
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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`.
|