hostinger-api-mcp 3.24.3 → 3.25.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.
Files changed (51) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +31 -105
  3. package/gemini-extension.json +1 -1
  4. package/package.json +1 -1
  5. package/server.json +2 -2
  6. package/skills/connect-domain/SKILL.md +4 -4
  7. package/skills/deploy-to-hosting/SKILL.md +1 -1
  8. package/skills/headless/SKILL.md +3 -3
  9. package/skills/headless/VERSION +2 -2
  10. package/skills/headless/steps/01-check-state/SKILL.md +1 -1
  11. package/skills/headless/steps/03-provision/SKILL.md +8 -8
  12. package/skills/headless/steps/03-provision/ecommerce/SKILL.md +4 -5
  13. package/skills/headless/steps/03-provision/webapp/SKILL.md +6 -7
  14. package/skills/headless/steps/03-provision/wordpress/SKILL.md +8 -9
  15. package/src/core/runtime.js +154 -1
  16. package/src/core/runtime.ts +154 -1
  17. package/src/core/skills.js +24 -24
  18. package/src/core/skills.ts +24 -24
  19. package/src/core/tools/all.js +193 -14
  20. package/src/core/tools/all.ts +193 -14
  21. package/src/core/tools/hosting.js +191 -12
  22. package/src/core/tools/hosting.ts +191 -12
  23. package/src/core/tools/wordpress.js +2 -2
  24. package/src/core/tools/wordpress.ts +2 -2
  25. package/src/servers/agency-hosting.js +1 -1
  26. package/src/servers/agency-hosting.ts +1 -1
  27. package/src/servers/agent-readiness.js +1 -1
  28. package/src/servers/agent-readiness.ts +1 -1
  29. package/src/servers/all.js +1 -1
  30. package/src/servers/all.ts +1 -1
  31. package/src/servers/billing.js +1 -1
  32. package/src/servers/billing.ts +1 -1
  33. package/src/servers/dns.js +1 -1
  34. package/src/servers/dns.ts +1 -1
  35. package/src/servers/domains.js +1 -1
  36. package/src/servers/domains.ts +1 -1
  37. package/src/servers/ecommerce.js +1 -1
  38. package/src/servers/ecommerce.ts +1 -1
  39. package/src/servers/horizons.js +1 -1
  40. package/src/servers/horizons.ts +1 -1
  41. package/src/servers/hosting.js +1 -1
  42. package/src/servers/hosting.ts +1 -1
  43. package/src/servers/mail.js +1 -1
  44. package/src/servers/mail.ts +1 -1
  45. package/src/servers/reach.js +1 -1
  46. package/src/servers/reach.ts +1 -1
  47. package/src/servers/vps.js +1 -1
  48. package/src/servers/vps.ts +1 -1
  49. package/src/servers/wordpress.js +1 -1
  50. package/src/servers/wordpress.ts +1 -1
  51. package/types.d.ts +99 -11
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agent-readiness.js';
5
5
 
6
- startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agent-readiness.js';
5
5
 
6
- startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.25.1', tools });
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
5
5
  import instructions from '../core/instructions.js';
6
6
  import skills from '../core/skills.js';
7
7
 
8
- startServer({ name: 'hostinger-api-mcp', version: '3.24.3', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.25.1', tools, instructions, skills });
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
5
5
  import instructions from '../core/instructions.js';
6
6
  import skills from '../core/skills.js';
7
7
 
8
- startServer({ name: 'hostinger-api-mcp', version: '3.24.3', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '3.25.1', tools, instructions, skills });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '3.25.1', tools });
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
  import instructions from '../core/instructions.js';
6
6
 
7
- startServer({ name: 'hostinger-hosting-mcp', version: '3.24.3', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.25.1', tools, instructions });
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
  import instructions from '../core/instructions.js';
6
6
 
7
- startServer({ name: 'hostinger-hosting-mcp', version: '3.24.3', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '3.25.1', tools, instructions });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.25.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '3.24.3', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '3.25.1', tools });
package/types.d.ts CHANGED
@@ -153,6 +153,94 @@ export interface APITools {
153
153
  response: any; // Response structure will depend on the API
154
154
  };
155
155
 
156
+ /**
157
+ * List the extra domains of a website: its parked (alias) domains, which show the same site under another domain name, and its subdomains (e.g. blog.example.com), with each one's root directory. parked items have domain (a domain name or an IP address) and type (domain or ip); subdomains items have domain (the full name), subdomain (the prefix) and root_directory. A list that cannot be read comes back as { error } and the other is still returned. To add or remove one use hosting_websites_add-domain or hosting_websites_remove-domain. Works for Shared and Cloud hosting websites.
158
+ */
159
+ "hosting_websites_list-domains": {
160
+ params: {
161
+ /**
162
+ * Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)
163
+ */
164
+ domain: string;
165
+ };
166
+ response: any; // Response structure will depend on the API
167
+ };
168
+
169
+ /**
170
+ * Add a domain to an existing website: type parked adds a parked (alias) domain, a second domain name (or an IP address) that shows the same site; type subdomain creates a subdomain such as blog.example.com with its own directory. For a parked domain the domain must be owned by the account or already point to the website: check a domain from outside the account with hosting_domains_verify-ownership first. www belongs to the main domain: do not add it as a subdomain. To create a new website use hosting_websites_create instead. Works for Shared and Cloud hosting websites.
171
+ */
172
+ "hosting_websites_add-domain": {
173
+ params: {
174
+ /**
175
+ * Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)
176
+ */
177
+ domain: string;
178
+ /**
179
+ * parked: an alias domain that shows the same website; subdomain: a subdomain of the website's domain.
180
+ */
181
+ type: string;
182
+ /**
183
+ * For parked: the domain name or IP address to park (e.g., example.net). For subdomain: the prefix (e.g., blog) or the full name (e.g., blog.example.com).
184
+ */
185
+ name: string;
186
+ /**
187
+ * Subdomains only: the subdomain's directory relative to the website root.
188
+ */
189
+ directory?: string;
190
+ /**
191
+ * Subdomains only: serve the subdomain from the website's public directory instead of its own directory.
192
+ */
193
+ usePublicDirectory?: boolean;
194
+ };
195
+ response: any; // Response structure will depend on the API
196
+ };
197
+
198
+ /**
199
+ * Remove a parked (alias) domain or a subdomain from a website. Pass its name as hosting_websites_list-domains shows it: a parked domain, or a subdomain's full name or prefix; the tool finds which one it is. To delete a whole website use hosting_websites_delete. Works for Shared and Cloud hosting websites.
200
+ */
201
+ "hosting_websites_remove-domain": {
202
+ params: {
203
+ /**
204
+ * Domain name of the website, exactly as listed on the account and without www. (e.g., example.com)
205
+ */
206
+ domain: string;
207
+ /**
208
+ * The parked domain (e.g., example.net) or the subdomain, as its full name (e.g., blog.example.com) or prefix (e.g., blog), to remove.
209
+ */
210
+ name: string;
211
+ };
212
+ response: any; // Response structure will depend on the API
213
+ };
214
+
215
+ /**
216
+ * Renamed to hosting_websites_create. This name still runs so older skills keep working, and will be removed in a future release.
217
+ */
218
+ "hosting_websites_start-setup": {
219
+ params: {
220
+ /**
221
+ * Hosting order ID. List orders to find available IDs.
222
+ */
223
+ order_id: number;
224
+ /**
225
+ * Website type, as hosting_websites_create takes it.
226
+ */
227
+ type?: string;
228
+ /**
229
+ * Domain for the website, as hosting_websites_create takes it.
230
+ */
231
+ domain?: string;
232
+ /**
233
+ * Datacenter code, as hosting_websites_create takes it.
234
+ */
235
+ datacenter_code?: string;
236
+ /**
237
+ * WordPress install settings, as hosting_websites_create takes them.
238
+ */
239
+ wordpress?: object;
240
+ };
241
+ response: any; // Response structure will depend on the API
242
+ };
243
+
156
244
  /**
157
245
  * Deploy a node-static Agency Plan (h5g) website from an archive file. WARNING: this overwrites the website's existing contents and cannot be undone — always confirm with the user before proceeding. Use this for Agency Plan websites of type node-static (a Node.js-built static site that requires a build step or a plain simple static site). The tool resolves the website from its domain, uploads the archive to the website's file browser over TUS, and triggers the build-assets process which builds the site and deploys the result to public_html. This operation is synchronous: the build and deployment complete before the tool returns, so the website is live as soon as the tool finishes successfully — there is no separate asynchronous build to wait for or poll. Upload credentials are generated and used internally — do not call a separate upload-url endpoint or upload the archive yourself, this tool does it end-to-end. For plain PHP applications that should be extracted as-is, use agency-hosting_deploy-php-application instead. The website UID is automatically resolved from the domain.
158
246
  */
@@ -5274,11 +5362,11 @@ nothing: WordPress can be added later through
5274
5362
  `POST /api/hosting/v1/accounts/{username}/wordpress/installations`
5275
5363
  (`wordpress_installations_install`) with `type: headless`.
5276
5364
 
5277
- Omit `domain` to set the website up on a generated temporary free subdomain. To know the
5278
- free subdomain before the call, so a timed-out call can be looked up and retried on the
5279
- same domain, generate one through `POST /api/hosting/v1/domains/free-subdomains`
5280
- (`hosting_domains_generate-free-subdomain`) and send it as `domain`. It is accepted for
5281
- 24 hours, only from the client that generated it.
5365
+ Omit `domain` to set the website up on a generated temporary free subdomain; the created
5366
+ setup returns it as `domain`. REST clients that need to know the free subdomain before the
5367
+ call, so a timed-out call can be looked up and retried on the same domain, can generate
5368
+ one through `POST /api/hosting/v1/domains/free-subdomains` and send it as `domain`. It is
5369
+ accepted for 24 hours, only from the client that generated it.
5282
5370
 
5283
5371
  When the order has no hosting account yet, the setup creates one first, in the datacenter
5284
5372
  given by `datacenter_code` or the order's default datacenter when it is omitted.
@@ -5286,7 +5374,7 @@ Returns 404 when the order does not exist or is not accessible to the authentica
5286
5374
  client, and 409 with a `Retry-After` header while a setup for the same domain is still
5287
5375
  running.
5288
5376
  */
5289
- "hosting_websites_start-setup": {
5377
+ "hosting_websites_create": {
5290
5378
  params: {
5291
5379
  /**
5292
5380
  * Hosting order ID. List orders to find available IDs.
@@ -5297,7 +5385,7 @@ running.
5297
5385
  */
5298
5386
  type?: string;
5299
5387
  /**
5300
- * Customer-owned domain, or a free subdomain you generated through `POST /api/hosting/v1/domains/free-subdomains` (`hosting_domains_generate-free-subdomain`) in the last 24 hours. Cannot start with "www." and can have at most one subdomain level, e.g. `blog.example.com`. Omit or `null` to set the website up on a generated temporary free subdomain.
5388
+ * Customer-owned domain. Omit or `null` to set the website up on a generated temporary free subdomain. Cannot start with "www." and can have at most one subdomain level, e.g. `blog.example.com`. A free subdomain generated through `POST /api/hosting/v1/domains/free-subdomains` in the last 24 hours is also accepted.
5301
5389
  */
5302
5390
  domain?: string;
5303
5391
  /**
@@ -5734,7 +5822,7 @@ completed` before uploading files, deploying or creating databases. While the se
5734
5822
  `running`, endpoints that operate on the website may respond with `404` or `409`.
5735
5823
  `is_enabled` on the websites list reflects suspension, not readiness.
5736
5824
  */
5737
- "hosting_websites_create": {
5825
+ "hosting_websites_create-deprecated": {
5738
5826
  params: {
5739
5827
  /**
5740
5828
  * Domain name for the website. Cannot start with "www." and can have at most one subdomain level, e.g. `blog.example.com`.
@@ -10295,12 +10383,12 @@ database files that have been uploaded to the website's directory.
10295
10383
 
10296
10384
  The website must already exist before calling this endpoint. To create a new
10297
10385
  website first, use POST /api/hosting/v1/orders/{order_id}/onboardings
10298
- (`hosting_websites_start-setup`) and poll GET /api/hosting/v1/onboardings
10386
+ (`hosting_websites_create`) and poll GET /api/hosting/v1/onboardings
10299
10387
  (`hosting_websites_list-setups`) with the `domain` filter until its `status` is
10300
10388
  `completed`.
10301
10389
 
10302
10390
  Send `type: headless` to turn a headless website (for example one created by
10303
- `hosting_websites_start-setup` with `type: headless_empty`) into a headless WordPress
10391
+ `hosting_websites_create` with `type: headless_empty`) into a headless WordPress
10304
10392
  website: WordPress is installed into the `cms` directory with the Hostinger headless
10305
10393
  MU plugin and the website is marked as a headless WordPress website. `directory` is
10306
10394
  not allowed with it. The target website must already be headless: the headless
@@ -10340,7 +10428,7 @@ unless `database.name` is an existing database on the account.
10340
10428
  */
10341
10429
  language?: string;
10342
10430
  /**
10343
- * Installation kind; `default` when omitted. `headless` installs WordPress into the `cms` directory with the Hostinger headless MU plugin and marks the website as a headless WordPress website. Accepted only for a website that is already headless, e.g. one created by `POST /api/hosting/v1/orders/{order_id}/onboardings` (`hosting_websites_start-setup`) with `type: headless_empty`; any other website is rejected with 422.
10431
+ * Installation kind; `default` when omitted. `headless` installs WordPress into the `cms` directory with the Hostinger headless MU plugin and marks the website as a headless WordPress website. Accepted only for a website that is already headless, e.g. one created by `POST /api/hosting/v1/orders/{order_id}/onboardings` (`hosting_websites_create`) with `type: headless_empty`; any other website is rejected with 422.
10344
10432
  */
10345
10433
  type?: string;
10346
10434
  /**