@awesomate/hosting-mcp 0.17.0 → 0.19.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/README.md +72 -45
- package/dist/index.js +648 -58
- package/package.json +2 -2
- package/skill/CHANGELOG.json +29 -0
- package/skill/awesomate-app-builder/SKILL.md +6 -3
- package/skill/awesomate-app-builder/references/node-recipes.md +3 -2
- package/skill/awesomate-app-builder/references/stack-decision.md +1 -1
- package/skill/awesomate-hosting/SKILL.md +84 -18
- package/skill/awesomate-hosting/scripts/bootstrap.mjs +11 -4
- package/skill/awesomate-knowledge/SKILL.md +16 -2
- package/skill/awesomate-n8n/SKILL.md +28 -2
- package/skill/awesomate-n8n/references/error-handling.md +91 -0
- package/skill/awesomate-n8n/references/possibilities.md +32 -0
- package/skill/awesomate-n8n/references/recurring-reports.md +82 -0
- package/skill/awesomate-seo/SKILL.md +38 -3
|
@@ -20,9 +20,10 @@ Be honest about limits: these are the signals that *let* you rank and be cited
|
|
|
20
20
|
- **WordPress** → drive it through WP-CLI via the awesomate-hosting skill
|
|
21
21
|
(`wp` passthrough). Install a free SEO plugin + let it generate the sitemap
|
|
22
22
|
rather than hand-writing files (see §WordPress).
|
|
23
|
-
- **A shop (WooCommerce)** →
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
- **A shop (WooCommerce)** → same WordPress path, plus `Product` JSON-LD on
|
|
24
|
+
product pages and product-data quality (real titles, descriptions, images,
|
|
25
|
+
prices) — drive it through WP-CLI like any WordPress site. This skill
|
|
26
|
+
covers the site-level SEO around the shop.
|
|
26
27
|
|
|
27
28
|
## 1. Static / Node — write these
|
|
28
29
|
|
|
@@ -56,6 +57,10 @@ Through the awesomate-hosting skill's `wp` passthrough:
|
|
|
56
57
|
- Confirm the sitemap is live (`/sitemap_index.xml` or `/sitemap.xml`) and
|
|
57
58
|
`robots.txt` references it.
|
|
58
59
|
- Add an `llms.txt` at the site root for AI discoverability (the plugin won't).
|
|
60
|
+
- Posts and pages can be created/updated directly via `awesomate_wp_post`
|
|
61
|
+
(drafts first — the user approves publishing). Useful for adding the content
|
|
62
|
+
pages that back up `llms.txt` — a services overview, an FAQ, an about page —
|
|
63
|
+
when the site is thin on machine-readable substance.
|
|
59
64
|
- WordPress is the recommended stack precisely when SEO/organic reach matters —
|
|
60
65
|
lean into it here.
|
|
61
66
|
|
|
@@ -74,6 +79,36 @@ Through the awesomate-hosting skill's `wp` passthrough:
|
|
|
74
79
|
Tell the user the next step is submitting the sitemap in Google Search Console
|
|
75
80
|
(you can't do that for them) — offer a one-paragraph how-to if they want it.
|
|
76
81
|
|
|
82
|
+
## 4. Ongoing upkeep — the seo-healthcheck
|
|
83
|
+
|
|
84
|
+
SEO decays quietly: a plugin update flips an option, an edge rule starts
|
|
85
|
+
challenging crawlers, a sitemap stops regenerating. Run this routine whenever
|
|
86
|
+
the user asks to "check SEO", and after any content change:
|
|
87
|
+
|
|
88
|
+
1. **Content in the raw HTML** — `curl -s https://DOMAIN/page` and confirm the
|
|
89
|
+
key content is actually in the response, not rendered later by JavaScript.
|
|
90
|
+
2. **Sitemap** — `/sitemap.xml` (WP: `/sitemap_index.xml`) returns 200 and
|
|
91
|
+
`<lastmod>` is fresh. A months-old lastmod on a site that changed last week
|
|
92
|
+
means generation is broken, not that nothing changed.
|
|
93
|
+
3. **robots.txt + llms.txt** — both exist, and `llms.txt` still mentions the
|
|
94
|
+
current offerings. A stale llms.txt misdescribes the business to every AI
|
|
95
|
+
assistant that reads it.
|
|
96
|
+
4. **AI crawlers not blocked at the edge** —
|
|
97
|
+
`curl -A "GPTBot" -s -o /dev/null -w "%{http_code}" https://DOMAIN/`
|
|
98
|
+
(repeat with `ClaudeBot`) returns 200, not 403 or a challenge page.
|
|
99
|
+
Where to fix each case: [references/ai-discoverability.md](references/ai-discoverability.md).
|
|
100
|
+
5. **WordPress only: `blog_public` must be 1** — one checkbox ("Discourage
|
|
101
|
+
search engines") silently de-indexes the whole site. Read it via
|
|
102
|
+
`awesomate_run_wp_cli` with args `['option','get','blog_public']`; if it's
|
|
103
|
+
0, fix with `['option','update','blog_public','1']` (allowlisted).
|
|
104
|
+
|
|
105
|
+
Report pass/fail per check, with the fix for each failure.
|
|
106
|
+
|
|
107
|
+
**Make it automatic:** offer — once — to build a scheduled n8n workflow (via
|
|
108
|
+
the awesomate-n8n skill) that runs these checks weekly and emails the user the
|
|
109
|
+
result. A weekly email is what turns "SEO as ongoing" from a good intention
|
|
110
|
+
into a mechanism.
|
|
111
|
+
|
|
77
112
|
## Hard rules
|
|
78
113
|
- Never fabricate content, reviews, or business facts to "help SEO".
|
|
79
114
|
- Never claim these guarantee a ranking — they make the site *eligible* and
|