@awesomate/hosting-mcp 0.18.0 → 0.19.1

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 CHANGED
@@ -1,58 +1,85 @@
1
1
  # @awesomate/hosting-mcp
2
2
 
3
- MCP server that lets Claude read (and, in later releases, manage) your
4
- Awesomate WordPress hosting: provisioning status, sites, domains, plan,
5
- limits, and upgrade nudges.
6
-
7
- ## Setup
8
-
9
- The intended path is the **Connect Claude Code** card on
10
- [hub.awesomate.ai/sites](https://hub.awesomate.ai/sites): it generates a
11
- one-time prompt that has Claude run the bundled `skill/awesomate-hosting/scripts/bootstrap.mjs`,
12
- which redeems a setup code for a scoped access token (stored at
13
- `~/.awesomate/credentials.json`, chmod 600), provisions an SSH key
14
- (Support Plus+), and registers this server. The **`awesomate-hosting` skill**
15
- (bundled under `skill/`) makes Claude plan-aware and enforces snapshot-before-change.
16
-
17
- Manual registration add to `~/.claude.json` under `mcpServers` (the
18
- bootstrap does this automatically; never bake `AWESOMATE_PAT` into the env,
19
- that pins the registration to one stale account forever):
20
-
21
- ```json
22
- "awesomate-hosting": {
23
- "command": "npx",
24
- "args": ["-y", "--package=@awesomate/hosting-mcp", "awesomate-hosting-mcp"]
25
- }
26
- ```
3
+ The MCP server that connects an Awesomate customer's own Claude Code to their
4
+ Awesomate account: WordPress hosting, n8n automations, apps, and Knowledge
5
+ Base. It authenticates to the Awesomate hub with a scoped Personal Access
6
+ Token and ships the nine `awesomate-*` skills that teach Claude how to use it.
7
+
8
+ ## Install (customers)
9
+
10
+ Don't install this by hand. Open **hub.awesomate.ai/claude** (or the Sites
11
+ page) and click **Connect Claude Code** it gives you a one-time command that:
12
+
13
+ 1. redeems a short-lived setup code for a scoped access token, born on your
14
+ machine (`~/.awesomate/credentials.json`, chmod 600 it never traverses
15
+ the clipboard),
16
+ 2. installs the `awesomate-*` skills into `~/.claude/skills`,
17
+ 3. registers this server in Claude Code (user scope, no token in the
18
+ registration see below).
19
+
20
+ Then restart Claude Code and run `awesomate_whoami`.
21
+
22
+ ## What Claude can do with it
23
+
24
+ Roughly 60 tools across five domains — the authoritative list is whatever
25
+ `tools/list` returns from the version you're running (this server self-updates,
26
+ so a hand-maintained table here would only ever be stale):
27
27
 
28
- If you use `claude mcp add` instead, keep the `--package=` form — the claude
29
- CLI pre-scans the whole argv for its own global `-p`/`--print` flag (even
30
- after `--`), so a bare `-p <pkg>` breaks its option parsing.
28
+ - **Hosting & WordPress** sites, domains, DNS checks, uptime, plan limits,
29
+ snapshots/rollback, `.dev` staging, allowlisted WP-CLI, structured post/page
30
+ writes (drafts first) and media import. Writes need Support Plus+.
31
+ - **n8n automations** — full read surface on every plan (workflows, executions
32
+ with structural error decode, instance-wide error clusters, KPIs, storage
33
+ footprint, node docs); validate → draft → test → promote build loop on
34
+ Support Plus+; AI error-analyzer findings on Pro/Embedded.
35
+ - **Apps** — scaffold, create, deploy-via-git, env vars, health, app Postgres.
36
+ - **Knowledge Base** (Pro+) — provision, ingest sources, faceted search,
37
+ cited answers, agents, people/entities, business-data queries.
38
+ - **Account** — context + attention digest (notifications, erroring workflows,
39
+ token expiry), plan features, upgrade nudges, support tickets, done-for-you
40
+ build requests (two-step credit confirmation; never spends without an
41
+ explicit yes).
31
42
 
32
- Account resolution: `AWESOMATE_PAT` env `AWESOMATE_ACCOUNT` env
33
- `.awesomate.json` folder pin sole/default profile in
34
- `~/.awesomate/credentials.json` (multi-account since 0.7.0).
43
+ Every response is stamped `account: <slug>` so a session talking to the wrong
44
+ account is impossible to miss. Read tools carry `readOnlyHint`; destructive
45
+ ones carry `destructiveHint` and confirm-before-acting instructions.
35
46
 
36
- ## Tools (v0.1 — read-only)
47
+ ## Security posture
37
48
 
38
- | Tool | What it returns |
39
- |---|---|
40
- | `awesomate_get_context` | Plan, capabilities, scopes, token expiry, cPanel routing |
41
- | `awesomate_get_hosting_status` | Provisioning state, primary domain, DNS targets |
42
- | `awesomate_get_hosting_account` | cPanel package/server details |
43
- | `awesomate_list_sites` | WordPress sites with SSL/WP-version state |
44
- | `awesomate_list_domains` | Included + custom domains, DNS/SSL state |
45
- | `awesomate_get_limits` | Usage vs plan limits + upgrade nudges |
46
- | `awesomate_get_plan_features` | Static plan-ladder reference |
49
+ - **No signup, no payment, no secrets through the model.** Purchases and
50
+ privacy toggles happen only in the hub UI. Secrets travel via the
51
+ secret-drop flow (`awesomate-credentials` skill), never the chat.
52
+ - **Scopes live plan** are re-derived per request server-side; consent
53
+ toggles gate every read of instance data and every write is audited.
54
+ - The registration is deliberately env-free: baking `AWESOMATE_PAT` into the
55
+ MCP registration pins it to one stale account forever. The token lives in
56
+ `~/.awesomate/credentials.json`; a `.awesomate.json` folder pin selects the
57
+ profile in multi-account setups.
47
58
 
48
- Access tokens are plan-scoped server-side: what the token can do always
49
- reflects the account's **live** plan. Tokens are revocable from the hub Sites
50
- page.
59
+ ## Updates
60
+
61
+ The server self-updates: it's registered as unpinned `npx -y`, so every Claude
62
+ Code restart runs the latest published version. The skill files update via the
63
+ `awesomate_skill_update` tool — Claude notices the drift itself (it's stamped
64
+ on every response) and offers the update with what's-new lines from
65
+ `skill/CHANGELOG.json`, then hands over the exact restart step.
66
+
67
+ ## Manual registration (developers)
68
+
69
+ Keep `--package=` with the `=` — the claude CLI's global-argv pre-scan chokes
70
+ on a bare `-p`, and the package must be explicit because this package ships
71
+ two bins:
72
+
73
+ ```bash
74
+ claude mcp add awesomate-hosting -- npx -y --package=@awesomate/hosting-mcp awesomate-hosting-mcp
75
+ ```
51
76
 
52
77
  ## Development
53
78
 
54
79
  ```bash
55
- npm install
56
80
  npm run typecheck
57
- npm run build # esbuild bundle dist/index.js (single file, no runtime deps)
81
+ npm test # builds, then boot-smoke + resolution + skills + knowledge suites
58
82
  ```
83
+
84
+ Publishing is CI-only: any `mcp/**` change merged to main with a bumped
85
+ version publishes via `publish-mcp.yml`. Never `npm publish` by hand.