@typeroll/mcp-server 0.45.42 → 0.45.44
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 +17 -16
- package/README.md +12 -5
- package/dist/bundled-content.js +11 -10
- package/dist/server.js +15 -1
- package/dist/tools/content-types.js +2 -2
- package/dist/tools/forms.js +16 -3
- package/dist/tools/helpers.js +7 -0
- package/dist/tools/page-blocks.js +6 -20
- package/dist/tools/pages.js +11 -4
- package/dist/tools/partials.js +3 -2
- package/dist/tools/preview.js +6 -0
- package/dist/tools/reusable-blocks.js +98 -0
- package/dist/tools/settings.js +3 -2
- package/dist/tools/styles.js +108 -0
- package/dist/tools/working-copy.js +5 -3
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/skills/README.md +1 -0
- package/skills/tr-brand.md +10 -0
- package/skills/tr-content-write.md +17 -0
- package/skills/tr-forms.md +20 -6
- package/skills/tr-import-url.md +10 -0
- package/skills/tr-migrate-wp.md +7 -2
- package/skills/tr-new-site.md +29 -7
- package/skills/tr-page-template.md +1 -1
- package/skills/tr-upgrade-rendering.md +71 -0
package/AGENTS.md
CHANGED
|
@@ -247,11 +247,15 @@ maps to one HTTP endpoint; the actual logic runs in the customer's portal
|
|
|
247
247
|
API key may write are excluded by default: a gap you can't close is
|
|
248
248
|
noise.
|
|
249
249
|
- **Per-field write authority.** A content type field can declare
|
|
250
|
-
`writable_by` (`portal | owner | agent | app | import`)
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
250
|
+
`writable_by` (`portal | owner | agent | app | import`); your API key may
|
|
251
|
+
write every field open to `portal` or `agent`. A write you're not
|
|
252
|
+
permitted, or one that would replace the listed business's own edit
|
|
253
|
+
without a reason, comes back as
|
|
254
|
+
**409 with the losing field names** — never a silent no-op. Your writes
|
|
255
|
+
carry the same authority as an editor in the portal: you may replace a
|
|
256
|
+
value someone set in the portal, as they may replace yours. Only a value
|
|
257
|
+
the listed business set itself needs `override_reason`; send one only
|
|
258
|
+
when the user asked for the change.
|
|
255
259
|
- **Item references.** `page_ref` / `page_ref_list` fields point at items
|
|
256
260
|
in another content type (`ref_content_type`). The reverse direction is
|
|
257
261
|
computed at render time — don't try to maintain backlinks yourself.
|
|
@@ -599,14 +603,9 @@ set_page_mode page_id=about to=blocks
|
|
|
599
603
|
set_page_mode page_id=about to=html
|
|
600
604
|
```
|
|
601
605
|
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
preview in the page editor. The heuristic recognises `<h1-4>` →
|
|
606
|
-
heading, `<img>` → image, `<a.btn>` → button, `grid-cols-2` →
|
|
607
|
-
two-column, `<section>` / hero divs → section. Link-wrapped card text
|
|
608
|
-
and author classes are reported as unconverted rather than discarded
|
|
609
|
-
silently.
|
|
606
|
+
Typeroll does not convert HTML into blocks. `set_page_mode to=blocks`
|
|
607
|
+
keeps the HTML as a revision and starts an empty block tree; build the
|
|
608
|
+
content with blocks.
|
|
610
609
|
|
|
611
610
|
### "Build a directory or migrate a content family"
|
|
612
611
|
|
|
@@ -1031,16 +1030,18 @@ preview.
|
|
|
1031
1030
|
| **Insights** | `get_site_insights` — traffic, AI-assistant referrals, and first-party conversion events over 7/30/90 days. Read-only. Traffic is powered by Cloudflare Web Analytics; conversion rows come from validated Analytics attribution `click_event` targets and can be present even when the traffic provider is unavailable. |
|
|
1032
1031
|
| **Pages — reads** | `list_pages`, `read_page`, `batch_read_pages` |
|
|
1033
1032
|
| **Pages — writes** | `create_page`, `update_page`, `replace_page`, `batch_update_pages`, `delete_page`, `clone_page` |
|
|
1034
|
-
| **Pages — blocks** | `get_page_blocks`, `add_block`, `update_block`, `move_block`, `remove_block`, `
|
|
1033
|
+
| **Pages — blocks** | `get_page_blocks`, `add_block`, `update_block`, `move_block`, `remove_block`, `duplicate_block`, `set_block_responsive`, `set_page_mode` (never converts HTML into blocks) |
|
|
1035
1034
|
| **Pages — meta** | `get_page_preview` |
|
|
1036
|
-
| **Global blocks (partials)** | `list_partials` (summary by default), `read_partial`, `create_free_block
|
|
1035
|
+
| **Global blocks (partials)** | `list_partials` (summary by default), `read_partial`, `create_free_block` (`blocks` or `html_content`), `update_partial`, `replace_partial`, `set_partial_mode`, `delete_partial`, `find_pages_using_block`, `make_block_global`, `detach_global_block`. Block pages reference a global block with `core/global_block` (`global_block_id`); HTML pages use `<x-include>`. |
|
|
1036
|
+
| **Block templates** | `list_block_templates`, `read_block_template`, `save_block_template` (from `blocks` or `from: { page_id, block_id }`), `update_block_template`, `delete_block_template`, `insert_block_template` (copies with new ids). Per site, not per branch. |
|
|
1037
|
+
| **Styles** | `list_styles`, `create_style`, `update_style`, `delete_style`, `apply_standard_styles`. Blocks pick a style with `style_id` (heading parts: `eyebrow_style_id`, `subtitle_style_id`). Contrast below WCAG AA is refused. |
|
|
1037
1038
|
| **Block types** | `list_block_types`, `read_block_type`, `find_pages_using_block_type`, `export_block_types`, `import_block_types` |
|
|
1038
1039
|
| **Content types** | `list_content_types`, `read_content_type`, `create_content_type`, `update_content_type`, `delete_content_type`, `change_page_content_type`, `page_completeness` |
|
|
1039
1040
|
| **Page templates** | `list_page_templates`, `read_page_template`, `create_page_template`, `update_page_template`, `delete_page_template` |
|
|
1040
1041
|
| **Media** | `list_media`, `read_media`, `create_upload_url`, `upload_media_from_url`, `upload_media_inline`, `update_media`, `delete_media`, `finalize_media`, `finalize_all_media`, `generate_image_variants`, `suggest_alt_text_context` |
|
|
1041
1042
|
| **Redirects** | `list_redirects`, `create_redirect`, `delete_redirect`. `from_path` may be a PATTERN: a trailing `*` (with `:splat` in the target) or `:name` for one segment — one rule retires a whole family of dead URLs (`/category/*` → `/blogg/:splat`). Mid-path splats and query strings are refused, as is any rule that would hide a live page. |
|
|
1042
1043
|
| **Migration inventory + launch gate** | `get_migration_readiness` (preflight — CALL FIRST), `list_migration_urls`, `add_migration_urls`, `update_migration_url`, `update_migration_urls`, `delete_migration_url`, `import_sitemap`, `import_gsc_performance`, `repair_migration_plain_text`, `verify_migration_urls`, `record_migration_seo_acceptance`, `get_migration_launch_report`. Sitemap indexes are recursive. GSC supports direct Search Console access or CSV and aggregates fragment variants. Plain-text repair is allowlisted and dry-run-first. A complete unfiltered URL check and reviewed SEO evidence are bound to the latest hosted deploy; the launch report fails closed when either is stale or incomplete. |
|
|
1043
|
-
| **Forms** | `list_forms`, `read_form`, `create_form`, `update_form`, `delete_form`, `list_form_submissions`, `delete_form_submission` (removes one submission — e.g. cleaning up a test entry; `delete_form` with `delete_submissions` is the bulk path). **Steps (form/* block trees) are the ONLY stored model**: pass `steps` for funnels, or `fields` for simple forms — the server converts a flat field list to a single static step. Place with a `core/form` block on block-mode pages or `<x-form id="…" />` in HTML mode. Both expand server-side to the same complete signed shell and initial state.
|
|
1044
|
+
| **Forms** | `list_forms`, `read_form`, `create_form`, `update_form`, `delete_form`, `list_form_submissions`, `delete_form_submission` (removes one submission — e.g. cleaning up a test entry; `delete_form` with `delete_submissions` is the bulk path). **Steps (form/* block trees) are the ONLY stored model**: pass `steps` for funnels, or `fields` for simple forms — the server converts a flat field list to a single static step. Place with a `core/form` block on block-mode pages or `<x-form id="…" />` in HTML mode. Both expand server-side to the same complete signed shell and initial state. `read_form` shows the form's actions (email notifications, webhooks; secrets masked) and `create_form`/`update_form` set them with `actions`, with admin permission as in the portal. |
|
|
1044
1045
|
| **Settings** | `update_site_settings` (whitelist, including `sitewide_noindex` and shallow-merged native `cookie_consent`), `check_site_indexing` (live fallback/production headers, meta robots, and robots.txt diagnostics) |
|
|
1045
1046
|
| **Core modules** | `list_apps`, `read_app`, `update_app` (legacy API name; admin; schema-driven config, masked secrets, redeploy when `affects_build` is true) |
|
|
1046
1047
|
| **Extension installations** | `list_extension_installations`, `read_extension_installation`, `update_extension_installation_config` (admin; schema-driven config, masked secrets preserved, production deploy queued by default) |
|
package/README.md
CHANGED
|
@@ -154,15 +154,21 @@ the full reference + concrete operation recipes.
|
|
|
154
154
|
`read_site_settings`, `update_site_settings`.
|
|
155
155
|
- **Pages** — list, read, batch-read, create, update (PATCH), replace
|
|
156
156
|
(PUT), batch-update, delete, clone, get-preview, `set_page_mode`
|
|
157
|
-
(flip between blocks/html)
|
|
157
|
+
(flip between blocks/html; HTML is never converted into blocks).
|
|
158
158
|
- **Blocks (instances)** — `get_page_blocks`, `add_block`,
|
|
159
159
|
`update_block`, `move_block`, `remove_block`, `duplicate_block`,
|
|
160
160
|
`set_block_responsive`. All take a `target` (page, partial, page
|
|
161
161
|
template), so one tool family edits
|
|
162
162
|
every block container.
|
|
163
163
|
- **Global blocks (partials)** — list (summary mode by default), read,
|
|
164
|
-
create free block, update, replace, delete,
|
|
165
|
-
find-pages-using-block
|
|
164
|
+
create free block (blocks or HTML), update, replace, delete,
|
|
165
|
+
`set_partial_mode`, find-pages-using-block, `make_block_global`,
|
|
166
|
+
`detach_global_block`. Block pages reference one with `core/global_block`.
|
|
167
|
+
- **Block templates** — `list_block_templates`, `read_block_template`,
|
|
168
|
+
`save_block_template`, `update_block_template`, `delete_block_template`,
|
|
169
|
+
`insert_block_template` (inserts an independent copy).
|
|
170
|
+
- **Styles** — `list_styles`, `create_style`, `update_style`,
|
|
171
|
+
`delete_style`, `apply_standard_styles`. New header/footer work should use the native
|
|
166
172
|
`template/site_logo` + `core/navigation` recipe in `tr-header-footer`.
|
|
167
173
|
- **Block types** — list, read, create, update, delete,
|
|
168
174
|
find-pages-using-block-type, plus `.tcblocks` export/import. Custom
|
|
@@ -200,8 +206,9 @@ the full reference + concrete operation recipes.
|
|
|
200
206
|
- **Forms** — list, read, create, update, delete, list submissions.
|
|
201
207
|
Place forms with `core/form` blocks or an HTML-mode `<x-form id="…" />`
|
|
202
208
|
reference; preview/build expands both server-side to the same complete,
|
|
203
|
-
signed form shell.
|
|
204
|
-
|
|
209
|
+
signed form shell. With an admin key, `read_form` returns the form's email
|
|
210
|
+
notifications and allowlisted, signed webhooks (`actions`, secrets masked)
|
|
211
|
+
and `create_form`/`update_form` set them, as the portal's Forms editor does.
|
|
205
212
|
- **Extension installations** — list/read installed Extensions and update
|
|
206
213
|
manifest-defined installation config through the API key with
|
|
207
214
|
`update_extension_installation_config`; omitted and masked secrets are
|