hostinger-api-mcp 3.10.1 → 3.10.3

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/CHANGELOG.md CHANGED
@@ -4,6 +4,17 @@ Generated at release time from the diff between the previous and current
4
4
  build. Tool changes are listed individually; everything else is summarised
5
5
  by area.
6
6
 
7
+ ## v3.10.3 — 2026-10-26
8
+
9
+ No changes to the published artifact.
10
+
11
+ ## v3.10.2 — 2026-10-26
12
+
13
+ ### Also in this release
14
+
15
+ - Bundled agent skills: 5 files
16
+ - Other files: `src/core/skills.js`, `src/core/skills.ts`
17
+
7
18
  ## v3.10.1 — 2026-10-26
8
19
 
9
20
  ### Also in this release
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "3.10.1",
3
+ "version": "3.10.3",
4
4
  "description": "Hostinger API — manage domains, DNS, hosting, VPS, billing and more from Gemini CLI.",
5
5
  "mcpServers": {
6
6
  "hostinger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "3.10.1",
3
+ "version": "3.10.3",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
package/server.json CHANGED
@@ -6,12 +6,12 @@
6
6
  "url": "https://github.com/hostinger/api-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "3.10.1",
9
+ "version": "3.10.3",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@hostinger/mcp",
14
- "version": "3.10.1",
14
+ "version": "3.10.3",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -102,6 +102,17 @@ user is offered the choice to continue, switch domains, or start over — before
102
102
  Refinement before provisioning, because the backend cannot be chosen until the brief exists.
103
103
  Validation before deploy, always — nothing reaches the live domain unseen.
104
104
 
105
+ ### When you ask the user
106
+
107
+ A question tool's result is the user's answer only when it carries their choice or their words. When
108
+ it comes back skipped, rejected, empty or as an error (a *skipped* result), nobody has answered yet:
109
+ Cursor's `AskQuestion`, for one, returns "Questions skipped by the user" when no one touched it. Ask
110
+ the same questions again as plain text in your reply, end your turn, and continue from what the user
111
+ types. One plain-text re-ask is enough: it can't come back skipped. Fill a question you asked with a
112
+ default only when the user says so in their own words ("you decide", "just build it", "skip that"),
113
+ or when they said up front that no one will be there to answer; then list those defaults under gaps
114
+ in the final report. Every step that asks the user something follows this.
115
+
105
116
  ### Background provision & the instance barrier
106
117
 
107
118
  **Provision always runs — what it does depends on what the domain already has.** Often onboarding on
@@ -187,7 +187,8 @@ connect-only files are *not* something to resume.
187
187
  - **Buy a domain** — they want a custom domain instead of the temporary one. Route to the domain
188
188
  purchase / `connect-domain` flow, then continue with the chosen domain.
189
189
 
190
- When the intent is ambiguous, **ask** — don't guess.
190
+ When the intent is ambiguous, **ask** — don't guess. A skipped tool result is ambiguous; see
191
+ *When you ask the user* in the top-level `SKILL.md`.
191
192
 
192
193
  ---
193
194
 
@@ -10,8 +10,10 @@ Find out what the user wants to build, guess which backend fits, and write it do
10
10
  the site comes from talking to the user.
11
11
 
12
12
  **Keep it short.** The only thing you must know is *what they are building* — enough to guess the
13
- backend. Every other question is skippable: the more the user gives, the better the site, but never
14
- hold the build hostage to refinement. Fill gaps with sensible defaults and say so in the brief.
13
+ backend. Every other question is optional: the more the user gives, the better the site, but never
14
+ hold the build hostage to refinement. Fill gaps with sensible defaults and say so in the brief. A
15
+ skipped question tool is not the user passing on a question; see *When you ask the user* in the
16
+ top-level `SKILL.md`.
15
17
 
16
18
  > **Never ask the user to choose a backend or a technology.** Don't ask "WordPress or Ecommerce?",
17
19
  > don't present WordPress/Ecommerce/WooCommerce/Webapp as options, and don't surface the backend in a
@@ -34,8 +36,9 @@ Read everything already in `~/.hostinger/<domain>/` (`state.json`, `connect.json
34
36
  or files the user dropped there) — it all counts as input.
35
37
 
36
38
  If `brief.md` already exists for this domain, **don't overwrite it**. Show the user a three-line
37
- summary (what the site is, its pages, the suggested backend) and ask: *keep it, or change something?*
38
- Keep → go to Step 6. Change → edit only what they asked for, then re-confirm (Step 5).
39
+ summary (what the site is, its pages, the suggested backend) and ask: *keep it, or change
40
+ something?* Keep → go to Step 6. Change → edit only what they asked for, then re-confirm (Step 5). A
41
+ skipped tool result is not Keep; see *When you ask the user* in the top-level `SKILL.md`.
39
42
 
40
43
  If the site is already provisioned (`site.json` exists), the backend is **fixed** — never change the
41
44
  Suggested backend on a provisioned site. Explain that switching backends means a new domain.
@@ -75,9 +78,11 @@ sentence is enough. Links, screenshots or files help too. Skip anything you don'
75
78
  Ask in **short rounds of 2–3 questions**, and adapt each round to the previous answers. If your tool
76
79
  has a structured question UI (multiple choice with an "other" field), use it for the choice-shaped
77
80
  follow-up questions (pages, selling yes/no, tone) — **never for the opening "what do you want to
78
- build?" and never for the backend** (that's your decision, not theirs). **At most 3 rounds**, and stop early as soon as you can guess the backend and the user
79
- seems done — "just build it", "you decide", or a skipped question means *use defaults*, not *ask
80
- again*.
81
+ build?" and never for the backend** (that's your decision, not theirs). **At most 3 rounds**, and
82
+ stop early as soon as you can guess the backend and the user seems done — "just build it" or "you
83
+ decide" means *use defaults*, not *ask again*. A skipped tool result is not their answer: re-ask
84
+ that round in plain text, as *When you ask the user* in the top-level `SKILL.md` says. The re-ask
85
+ repeats the round; it doesn't count toward the 3.
81
86
 
82
87
  **Round 1 — what it is (the only required round):**
83
88
 
@@ -85,7 +90,7 @@ again*.
85
90
  2. **Will you sell anything on it?** Physical products, digital products, services with checkout —
86
91
  or nothing. *This decides the backend.* Skip it only when the answer is already unmistakable
87
92
  ("an online shop for my candles", "my personal blog"); when in doubt, ask.
88
- 3. **Who is it for?** The audience, and how they'll find the site. *(skippable)*
93
+ 3. **Who is it for?** The audience, and how they'll find the site. *(optional)*
89
94
 
90
95
  **Round 2 — what goes on it (optional, adapt to Round 1):**
91
96
 
@@ -133,6 +138,9 @@ the default from what you found:
133
138
  — you design and code it." Today's flow: the design step proposes directions and the frontend step
134
139
  scaffolds and implements them.
135
140
 
141
+ A skipped tool result is not a pick: re-ask in plain text, and use the seeded default only when the
142
+ user says so (see *When you ask the user* in the top-level `SKILL.md`).
143
+
136
144
  Record the answer as the brief's **Build mode**. This is the one frontend/technology question you *do*
137
145
  put to the user; everything else about the stack (framework, SSR/SSG) is still inferred. The deliverable
138
146
  is the same either way — a working site on the backend; only *who drives the frontend* changes.
@@ -192,9 +200,10 @@ site, not the backend:
192
200
  WordPress admin"), **not** as a choice you're asking them to make. Don't ask "is WordPress OK?" or
193
201
  offer alternatives unless it was a genuine close call *and* the difference matters to the user.
194
202
 
195
- End with *"Good to go, or anything to change?"* A yes (or silence-equivalent like "go") → write
196
- `brief.md`. Changes → apply them and write it; don't loop back into questions. If the user
197
- *volunteers* a different backend, use theirs and note it in the brief.
203
+ End with *"Good to go, or anything to change?"* A yes (or "go") → write `brief.md`. A skipped tool
204
+ result is not a yes (see *When you ask the user* in the top-level `SKILL.md`). Changes → apply them
205
+ and write it; don't loop back into questions. If the user *volunteers* a different backend, use
206
+ theirs and note it in the brief.
198
207
 
199
208
  ## Step 6 — Write `brief.md` and hand off
200
209
 
@@ -90,7 +90,8 @@ Guidance:
90
90
 
91
91
  Every article (and every product) needs an image. There are two sources, and **you MUST offer the user
92
92
  both and let them choose — never pick silently.** State the default for this backend in one line, name
93
- the other option, and proceed on their answer (a skipped answer / "you decide" = use the default):
93
+ the other option, and proceed on their answer ("you decide" = use the default; a skipped tool result is
94
+ not an answer, see *When you ask the user* in the top-level `SKILL.md`):
94
95
 
95
96
  | Option | Tool | Backends | Needs the live instance? |
96
97
  |---|---|---|---|
@@ -76,7 +76,8 @@ Read `brief.md`, `state.json`, and `content-model.md` if it exists.
76
76
  the final report. Files or exact colours and fonts the owner supplied win over anything you read.
77
77
  2. **Confirm in one question.** Describe the kept look in two plain sentences and ask: *keep it, or
78
78
  change something?* "Keep the look we have" still gets this question; skip it only when the brief
79
- says to change nothing at all ("keep it exactly as it is"). Change →
79
+ says to change nothing at all ("keep it exactly as it is"). A skipped tool result is not Keep; see
80
+ *When you ask the user* in the top-level `SKILL.md`. Change →
80
81
  apply only what they asked for; a request for a new logo runs Step 6 for the logo alone.
81
82
  3. **Check it** as in Step 5. The kept colours are fixed like brand colours: a pair that fails gets a
82
83
  shade of the same hue in that role only. Spacing moves to the nearest grid value, and a font
@@ -188,7 +189,9 @@ never suggest one or give an example: that idea would end up in the logo.
188
189
  Then:
189
190
 
190
191
  - **Pick** → use it as written, and confirm the look in one line.
191
- - **"You decide" / skipped** → use A, and tell them in one line which look you went with.
192
+ - **"You decide"** → use A, and tell them in one line which look you went with.
193
+ - **Skipped tool result** → not an answer: write the three directions as plain lines
194
+ and wait for the reply (see *When you ask the user* in the top-level `SKILL.md`).
192
195
  - **A mix** ("A's colours with C's fonts") → merge them. Don't ask again.
193
196
  - **Something else** → build a direction from what they said, run Step 5, and use it. Don't send
194
197
  three new options.