@typeroll/mcp-server 0.45.65 → 0.45.66
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 +41 -6
- package/dist/bundled-content.js +6 -5
- package/dist/server.js +9 -1
- package/dist/structured-data.js +217 -0
- package/dist/tools/structured-data.js +64 -0
- package/dist/tools/workflows.js +8 -4
- package/dist/version.js +1 -1
- package/dist/workspace.js +12 -1
- package/package.json +4 -2
- package/skills/README.md +3 -1
- package/skills/tr-content-write.md +16 -0
- package/skills/tr-edit-site.md +88 -1
- package/skills/tr-new-site.md +7 -1
- package/skills/tr-seo.md +58 -3
- package/skills/tr-starter-design.md +79 -0
package/AGENTS.md
CHANGED
|
@@ -37,10 +37,15 @@ create the branch, then work on it with `version=<id>`.
|
|
|
37
37
|
|
|
38
38
|
Typeroll is a static-site CMS: content lives in a database, the user
|
|
39
39
|
edits it through an in-app editor, and a deploy step compiles everything
|
|
40
|
-
to a fast static site hosted on Cloudflare Pages. The in
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
to a fast static site hosted on Cloudflare Pages. The portal's built-in AI
|
|
41
|
+
chat is optional: it needs the Organization's own AI key and appears only on
|
|
42
|
+
the Sites chosen for it, so you are often the only AI working on the site.
|
|
43
|
+
Everything the chat can do is available to you here — everyday edits
|
|
44
|
+
(`tr-edit-site`, "Everyday requests"), structured data (`add_faq_schema`,
|
|
45
|
+
`add_recipe_schema`, `add_event_schema`) and the starter design reference
|
|
46
|
+
(`tr-starter-design`) — along with the work that doesn't fit a chat:
|
|
47
|
+
site-wide redesigns, bulk content updates, structural migrations, directory
|
|
48
|
+
imports.
|
|
44
49
|
|
|
45
50
|
The MCP server is a thin wrapper around the public REST API. Each tool
|
|
46
51
|
maps to one HTTP endpoint; the actual logic runs in the customer's portal
|
|
@@ -574,6 +579,10 @@ can't create sites (it's bound to one) and gets a 403.
|
|
|
574
579
|
|
|
575
580
|
## Common operations
|
|
576
581
|
|
|
582
|
+
Everyday requests — page links and preview links, images the user hands you,
|
|
583
|
+
menu and footer edits, site-wide changes, settings, analytics, redirects,
|
|
584
|
+
forms and structured data — are collected in `read_skill name="tr-edit-site"`.
|
|
585
|
+
|
|
577
586
|
### "Replace this string across the whole site"
|
|
578
587
|
|
|
579
588
|
```
|
|
@@ -637,7 +646,10 @@ update_page page_id=… patch={ html_content: "<…><x-include name=\"newsletter
|
|
|
637
646
|
```
|
|
638
647
|
|
|
639
648
|
Edits to the block update every page that includes it. Use
|
|
640
|
-
`find_pages_using_block` before changing it.
|
|
649
|
+
`find_pages_using_block` before changing it. A request phrased as a bulk
|
|
650
|
+
edit ("every page", "all hero sections") is usually this: check
|
|
651
|
+
`list_partials` for a block that already fits before proposing a new one, and
|
|
652
|
+
edit pages one by one only for content that really differs per page.
|
|
641
653
|
|
|
642
654
|
### "Build a page using blocks (the default for new pages)"
|
|
643
655
|
|
|
@@ -1018,6 +1030,26 @@ is created). An AI plan needs the Organization's own AI key with site access
|
|
|
1018
1030
|
`all` (`403 ai_not_enabled` otherwise; nothing is created): you can instead
|
|
1019
1031
|
create a blank site and plan it yourself.
|
|
1020
1032
|
|
|
1033
|
+
**AI workflows without the portal's AI.** `site_planning`,
|
|
1034
|
+
`content_generation`, `content_improvement` and `schema_markup` run the
|
|
1035
|
+
model with the Organization's own AI key, and only on Sites an owner or admin
|
|
1036
|
+
allowed. Elsewhere the run fails: `get_workflow` shows `status: "failed"`
|
|
1037
|
+
with `failure_code: "ai_not_enabled"` (older Core: only a `failure_reason`
|
|
1038
|
+
saying the AI assistant is not enabled for this site). That is not an error
|
|
1039
|
+
to retry or escalate. You are an AI agent: do the same work yourself with the
|
|
1040
|
+
recipe and tell the user that you did, instead of the workflow:
|
|
1041
|
+
|
|
1042
|
+
| Workflow | Do it yourself with |
|
|
1043
|
+
|---|---|
|
|
1044
|
+
| `site_planning` / `create_site_and_plan` | `create_site` if needed, then `tr-new-site`: propose the page structure, get approval, build |
|
|
1045
|
+
| `content_generation` | `tr-content-write`: a new page in the site's voice, as a draft |
|
|
1046
|
+
| `content_improvement` | `tr-content-write` on the weakest published pages (thin text, missing `seo_title`/`seo_description`, not updated for a year), left as unsaved drafts for review |
|
|
1047
|
+
| `schema_markup` | `tr-seo` step 5: `add_faq_schema`, `add_recipe_schema`, `add_event_schema` or `json_ld` per page |
|
|
1048
|
+
|
|
1049
|
+
`seo_audit` needs no AI: without it the run returns the per-page issue list
|
|
1050
|
+
without prioritization. Turning on the portal AI is the Organization's
|
|
1051
|
+
choice; never ask for it as a prerequisite for your own work.
|
|
1052
|
+
|
|
1021
1053
|
### "Give someone access" (keys, sharing, invites)
|
|
1022
1054
|
|
|
1023
1055
|
- **API keys:** `list_api_keys` / `revoke_api_key` for this site (revoking
|
|
@@ -1222,7 +1254,9 @@ preview.
|
|
|
1222
1254
|
more work than asking "ok to proceed?" first.
|
|
1223
1255
|
- **Match the site's design.** Read a partial or two before designing
|
|
1224
1256
|
new components. CSS variables (`var(--color-primary)`) are common
|
|
1225
|
-
but not universal — mirror what's already in use.
|
|
1257
|
+
but not universal — mirror what's already in use. On a blank site, or one
|
|
1258
|
+
that still follows the starter design, `read_skill name="tr-starter-design"`
|
|
1259
|
+
lists the variables and header/footer conventions.
|
|
1226
1260
|
|
|
1227
1261
|
## Reference: tool families
|
|
1228
1262
|
|
|
@@ -1237,6 +1271,7 @@ preview.
|
|
|
1237
1271
|
| **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 in the account that hosts the site; a non-ok `status` carries a `reason` with the next step. Conversion rows come from validated Analytics attribution `click_event` targets and can be present even when the traffic provider is unavailable. |
|
|
1238
1272
|
| **Pages — reads** | `list_pages`, `read_page`, `batch_read_pages` |
|
|
1239
1273
|
| **Pages — writes** | `create_page`, `update_page`, `replace_page`, `batch_update_pages`, `delete_page`, `clone_page` |
|
|
1274
|
+
| **Pages — structured data** | `add_faq_schema`, `add_recipe_schema`, `add_event_schema`: validated FAQPage, Recipe and Event JSON-LD merged into the page's `json_ld` (same type replaced, other nodes kept), as a draft. Other types: `update_page` `json_ld`. See `tr-seo`. |
|
|
1240
1275
|
| **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) |
|
|
1241
1276
|
| **Pages — meta** | `get_page_preview` |
|
|
1242
1277
|
| **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>`. |
|