UNPKG

@awesomate/hosting-mcp

Version:

Awesomate MCP server — lets Claude manage your Awesomate WordPress hosting, plan, limits, n8n automations, and build Node/static apps + databases

116 lines (95 loc) • 6.67 kB
# 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; writes need Support Plus+ (`awesomate_n8n_datatable_write`); 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 deploy: strip nodes needing credentials the user lacks, then run the full build loop (validate → create_draft → test) from SKILL.md §2. - 503 `node_catalog_unavailable` → skip templates this session and fall back to the vendored references in `references/vendor/`. ## Essentials plan `capabilities.builder: false` → reads work, builds need Support Plus+. Say so ONCE, honestly — "I can explain, diagnose, and design these, but building on your instance needs Support Plus+ (upgrade at hub.awesomate.ai/billing)" — then keep helping within reads: present the tiers as a roadmap, sketch designs, diagnose existing workflows. Do not repeat the upsell on every idea.