@awesomate/hosting-mcp
Version:
Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases
117 lines (96 loc) • 6.75 kB
Markdown
# Possibilities — grounding "what could I automate?"
Rules for suggesting automations. Every idea must be grounded in this
instance's real inventory — never in what n8n generically supports.
## When to offer ideas
| Situation | Action |
|---|---|
| Explicit ask ("what could I automate", "give me ideas", "what else") | Run the inspect, present the tiers below |
| Vague request, right after the first inventory pass | ONE offering sentence ("Based on what you have connected I can suggest a few automations — want that?"), then wait |
| The inventory shows something striking | ONE grounded observation, once per session, in one line — then back to the task |
| Anything else | Never volunteer an unprompted idea dump |
**The one-observation rule:** never dump a list unprompted, but a single
grounded observation per session is welcome when the inventory genuinely
shows something. Examples: `awesomate_n8n_storage` shows executions heavy
with media/binary data → "you've got 4GB of generated media sitting in
executions — want a small app to browse it?" (awesomate-app-builder); a
credential for a paid SaaS whose job an n8n workflow could do → name what it
would replace. One line, grounded in a number or a name from THEIR account,
easy to decline.
## Data source — facts only
`awesomate_n8n_inspect {what:'possibilities'}` returns facts, zero ideas.
Ideation is your job; this payload is the ground truth you build on:
| Field | Meaning |
|---|---|
| `services[]` | Connected services: `service`, `credentials` (count), `credentialNames` (≤3 names), `confirmed`, `nodeType` (native n8n node or null), `usedInWorkflows` (inventory refs), `activeInWorkflows` (node present in the LIVE histogram) |
| `unusedConnections` | Services with a credential but no known usage. Cached inventory cross-checked against live node usage — a workflow wired up after the last weekly refresh still counts as used |
| `nodesInUse` | `{type, count}` histogram across the instance, descending |
| `aiToolsAvailable` | AI/langchain nodes on this n8n. **null = unknown (catalog down). Never say "no AI tools" on null** |
| `communityPackages` | `{packageName, installedVersion, nodeTypes}`. **null = unknown, [] = verified none — never collapse the two** |
| `counts` | `workflows`, `activeWorkflows`, `credentials`, `datatables` (null = table absent on this n8n version) |
**Other legitimate inventory inputs** (same grounding standard — a real
number from their account, never a guess):
- `awesomate_n8n_storage` — heavy media/binary in executions is a signal
(a browse/archive app, a cleanup automation, a delivery workflow).
- WP media and post counts via `awesomate_run_wp_cli`
(`['media','list','--format=count']`, `['post','list','--format=count']`)
— a big library with no automation around it suggests publishing or
repurposing workflows.
- `awesomate_knowledge_sources {action:'summary'}` — content already
ingested is content an agent or workflow could answer from.
## Presentation — at most 8 ideas, three grounded tiers
Order by concreteness. Skip a tier rather than pad it.
1. **Extend what you already have** — per existing workflow: "your
`<workflow name>` could also notify X / retry Y / log to a datatable".
Ground each in a workflow from `awesomate_n8n_workflows` plus the nodes
it already uses.
2. **New builds with existing connections** — name the actual credential:
"using your `<credentialNames[0]>` Gmail credential, a daily digest of…".
`unusedConnections` is the highest-signal list here: they connected it
for a reason and nothing uses it yet.
3. **Needs something new** — labelled honestly with exactly what:
a new connection ("needs a Slack credential — 2 min in your n8n UI"),
a plan upgrade ("builds need Support Plus+"), or the FFMPEG variant
("media nodes are Support Plus+ only"). Never disguise tier 3 as tier 2.
**Say what it saves.** Every suggestion carries its money line: the hours
per week it removes ("that's the 2 hours you spend re-typing enquiries"),
the SaaS subscription it replaces ("this is what you're paying $49/mo for"),
or the missed-lead cost it prevents ("the enquiries that arrive after 6pm
currently wait overnight"). The yardstick: a credit is $100 and a
done-for-you build spends 1 credit — an idea worth suggesting should beat
that comparison obviously, and saying so is what makes the suggestion
concrete rather than a feature tour. Estimates are estimates — say "roughly"
and ground them in their numbers, never invent precision.
## Grounding rules (hard)
- Only suggest nodes present on THIS variant. `capabilities.variant` from
`awesomate_n8n_context`: Standard has no localFiles / better-ffmpeg /
mediafx. Check `communityPackages` before naming any community node.
- Only reference credentials in `services[]`. **Never claim a credential
works because it exists** — inventory shows names, not validity; say
"you have a credential named X" and verify during the build.
- AI-agent ideas require `aiToolsAvailable` to be a non-empty array. On
null, say the catalog is unavailable, not that AI is unsupported.
- Respect platform invariants in any sketch you show: `$vars` not `$env`,
webhook data at `$json.body`, HTTP Request nodes not `$helpers`, Code
nodes return `[{json:{...}}]`, `saveExecutionProgress` stays false,
webhook trigger (explicit path) instead of formTrigger. Details:
[platform-notes.md](platform-notes.md).
- Datatable-backed ideas: only when `counts.datatables` is non-null; the
user creates tables in n8n's Data tables (no Awesomate tool does); tables
resolve per project at runtime.
## Community templates — importable starting points
Search by the user's actually-connected services, not by the idea's topic:
- `awesomate_n8n_node_docs {tool:'search_templates', args:{query: '<service>'}}`
then `{tool:'get_template', args:{templateId}}` for the JSON.
- A template is a starting point, not a finished workflow: strip nodes
needing credentials the user lacks, then run the full build loop
(SKILL.md §3) through the n8n MCP server.
- 503 `node_catalog_unavailable` → skip templates this session and fall
back to the vendored references in `references/vendor/`.
## Essentials plan
Reads, n8n Agents and building through the user's own n8n MCP server all
work on Essentials. What it lacks is Awesomate's template library:
`capabilities.templateInstall: false`. When an idea is best served by a
curated bundle, say so ONCE, honestly ("that one is a ready-made template,
which needs Support Plus+ (upgrade at hub.awesomate.ai/billing); I can build
you a version of it on your n8n instead"), then keep going. Do not repeat
the upsell on every idea.