hostinger-api-mcp 1.35.0 → 1.35.2

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
@@ -69,12 +69,12 @@ pnpm update -g hostinger-api-mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server with every tool (318 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (319 total)
73
73
  - `hostinger-agency-hosting-mcp` — 27 tools for agency-hosting
74
74
  - `hostinger-billing-mcp` — 9 tools for billing
75
75
  - `hostinger-dns-mcp` — 8 tools for dns
76
76
  - `hostinger-domains-mcp` — 40 tools for domains
77
- - `hostinger-ecommerce-mcp` — 12 tools for ecommerce
77
+ - `hostinger-ecommerce-mcp` — 13 tools for ecommerce
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
79
  - `hostinger-hosting-mcp` — 50 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
@@ -1184,6 +1184,15 @@ Create a published physical product with a single variant priced in the store cu
1184
1184
  - **Method**: `POST`
1185
1185
  - **Path**: `/api/ecommerce/v1/stores/{store_id}/products/physical`
1186
1186
 
1187
+ #### ecommerce_uploadAndAttachAProductImageV1
1188
+
1189
+ Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.
1190
+ The image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make
1191
+ it the product's primary image.
1192
+
1193
+ - **Method**: `POST`
1194
+ - **Path**: `/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images`
1195
+
1187
1196
  #### ecommerce_listSalesChannelsV1
1188
1197
 
1189
1198
  List a store's active sales channels with their full metadata.
@@ -1825,15 +1834,13 @@ websites list endpoint to see when your new website becomes available.
1825
1834
 
1826
1835
  #### hosting_deleteWebsiteV1
1827
1836
 
1828
- Permanently deletes a website and all of its data. This action is destructive
1829
- and cannot be undone. Always ask the user for explicit confirmation before
1830
- calling this endpoint.
1837
+ This endpoint permanently removes a website and all of its data. This action
1838
+ cannot be undone. Before calling it, make sure the user understands the
1839
+ consequences and explicitly confirms that they want to proceed.
1831
1840
 
1832
1841
  All website files, databases and related configuration will be removed.
1833
1842
  The hosting plan itself is kept, so a new website can be created on it afterwards.
1834
1843
 
1835
- The confirm field must be boolean true, otherwise the request is rejected.
1836
-
1837
1844
  Supported websites: main and addon domain websites on web hosting plans, and
1838
1845
  Website Builder websites. Parked domains and subdomains cannot be deleted with
1839
1846
  this endpoint. The domain must be the exact website domain, not a preview
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.35.0",
3
+ "version": "1.35.2",
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": "1.35.0",
3
+ "version": "1.35.2",
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": "1.35.0",
9
+ "version": "1.35.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.35.0",
14
+ "version": "1.35.2",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 1.32.0
32
+ * Generated from OpenAPI spec version 1.32.2
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -52,7 +52,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
52
52
 
53
53
  /**
54
54
  * MCP Server for Hostinger API
55
- * Generated from OpenAPI spec version 1.32.0
55
+ * Generated from OpenAPI spec version 1.32.2
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -3084,6 +3084,44 @@ export default [
3084
3084
  ],
3085
3085
  "group": "ecommerce"
3086
3086
  },
3087
+ {
3088
+ "name": "ecommerce_uploadAndAttachAProductImageV1",
3089
+ "description": "Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.\nThe image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make\nit the product's primary image.",
3090
+ "method": "POST",
3091
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images",
3092
+ "inputSchema": {
3093
+ "type": "object",
3094
+ "properties": {
3095
+ "store_id": {
3096
+ "type": "string",
3097
+ "description": "The ID of the store the product belongs to."
3098
+ },
3099
+ "product_id": {
3100
+ "type": "string",
3101
+ "description": "The ID of the product to attach the image to."
3102
+ },
3103
+ "image": {
3104
+ "type": "string",
3105
+ "description": "Raster image file (JPEG, PNG, GIF or WebP), maximum 15MB. SVG is not accepted."
3106
+ },
3107
+ "is_thumbnail": {
3108
+ "type": "boolean",
3109
+ "description": "When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the\nthumbnail only if the product does not have one yet."
3110
+ }
3111
+ },
3112
+ "required": [
3113
+ "store_id",
3114
+ "product_id",
3115
+ "image"
3116
+ ]
3117
+ },
3118
+ "security": [
3119
+ {
3120
+ "apiToken": []
3121
+ }
3122
+ ],
3123
+ "group": "ecommerce"
3124
+ },
3087
3125
  {
3088
3126
  "name": "ecommerce_listSalesChannelsV1",
3089
3127
  "description": "List a store's active sales channels with their full metadata.",
@@ -4899,7 +4937,7 @@ export default [
4899
4937
  },
4900
4938
  {
4901
4939
  "name": "hosting_deleteWebsiteV1",
4902
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4940
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4903
4941
  "method": "DELETE",
4904
4942
  "path": "/api/hosting/v1/websites/{domain}",
4905
4943
  "inputSchema": {
@@ -3098,6 +3098,44 @@ const tools: OpenApiTool[] = [
3098
3098
  ],
3099
3099
  "group": "ecommerce"
3100
3100
  },
3101
+ {
3102
+ "name": "ecommerce_uploadAndAttachAProductImageV1",
3103
+ "description": "Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.\nThe image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make\nit the product's primary image.",
3104
+ "method": "POST",
3105
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images",
3106
+ "inputSchema": {
3107
+ "type": "object",
3108
+ "properties": {
3109
+ "store_id": {
3110
+ "type": "string",
3111
+ "description": "The ID of the store the product belongs to."
3112
+ },
3113
+ "product_id": {
3114
+ "type": "string",
3115
+ "description": "The ID of the product to attach the image to."
3116
+ },
3117
+ "image": {
3118
+ "type": "string",
3119
+ "description": "Raster image file (JPEG, PNG, GIF or WebP), maximum 15MB. SVG is not accepted."
3120
+ },
3121
+ "is_thumbnail": {
3122
+ "type": "boolean",
3123
+ "description": "When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the\nthumbnail only if the product does not have one yet."
3124
+ }
3125
+ },
3126
+ "required": [
3127
+ "store_id",
3128
+ "product_id",
3129
+ "image"
3130
+ ]
3131
+ },
3132
+ "security": [
3133
+ {
3134
+ "apiToken": []
3135
+ }
3136
+ ],
3137
+ "group": "ecommerce"
3138
+ },
3101
3139
  {
3102
3140
  "name": "ecommerce_listSalesChannelsV1",
3103
3141
  "description": "List a store's active sales channels with their full metadata.",
@@ -4913,7 +4951,7 @@ const tools: OpenApiTool[] = [
4913
4951
  },
4914
4952
  {
4915
4953
  "name": "hosting_deleteWebsiteV1",
4916
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4954
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4917
4955
  "method": "DELETE",
4918
4956
  "path": "/api/hosting/v1/websites/{domain}",
4919
4957
  "inputSchema": {
@@ -133,6 +133,44 @@ export default [
133
133
  ],
134
134
  "group": "ecommerce"
135
135
  },
136
+ {
137
+ "name": "ecommerce_uploadAndAttachAProductImageV1",
138
+ "description": "Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.\nThe image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make\nit the product's primary image.",
139
+ "method": "POST",
140
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images",
141
+ "inputSchema": {
142
+ "type": "object",
143
+ "properties": {
144
+ "store_id": {
145
+ "type": "string",
146
+ "description": "The ID of the store the product belongs to."
147
+ },
148
+ "product_id": {
149
+ "type": "string",
150
+ "description": "The ID of the product to attach the image to."
151
+ },
152
+ "image": {
153
+ "type": "string",
154
+ "description": "Raster image file (JPEG, PNG, GIF or WebP), maximum 15MB. SVG is not accepted."
155
+ },
156
+ "is_thumbnail": {
157
+ "type": "boolean",
158
+ "description": "When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the\nthumbnail only if the product does not have one yet."
159
+ }
160
+ },
161
+ "required": [
162
+ "store_id",
163
+ "product_id",
164
+ "image"
165
+ ]
166
+ },
167
+ "security": [
168
+ {
169
+ "apiToken": []
170
+ }
171
+ ],
172
+ "group": "ecommerce"
173
+ },
136
174
  {
137
175
  "name": "ecommerce_listSalesChannelsV1",
138
176
  "description": "List a store's active sales channels with their full metadata.",
@@ -147,6 +147,44 @@ const tools: OpenApiTool[] = [
147
147
  ],
148
148
  "group": "ecommerce"
149
149
  },
150
+ {
151
+ "name": "ecommerce_uploadAndAttachAProductImageV1",
152
+ "description": "Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.\nThe image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make\nit the product's primary image.",
153
+ "method": "POST",
154
+ "path": "/api/ecommerce/v1/stores/{store_id}/products/{product_id}/images",
155
+ "inputSchema": {
156
+ "type": "object",
157
+ "properties": {
158
+ "store_id": {
159
+ "type": "string",
160
+ "description": "The ID of the store the product belongs to."
161
+ },
162
+ "product_id": {
163
+ "type": "string",
164
+ "description": "The ID of the product to attach the image to."
165
+ },
166
+ "image": {
167
+ "type": "string",
168
+ "description": "Raster image file (JPEG, PNG, GIF or WebP), maximum 15MB. SVG is not accepted."
169
+ },
170
+ "is_thumbnail": {
171
+ "type": "boolean",
172
+ "description": "When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the\nthumbnail only if the product does not have one yet."
173
+ }
174
+ },
175
+ "required": [
176
+ "store_id",
177
+ "product_id",
178
+ "image"
179
+ ]
180
+ },
181
+ "security": [
182
+ {
183
+ "apiToken": []
184
+ }
185
+ ],
186
+ "group": "ecommerce"
187
+ },
150
188
  {
151
189
  "name": "ecommerce_listSalesChannelsV1",
152
190
  "description": "List a store's active sales channels with their full metadata.",
@@ -1747,7 +1747,7 @@ export default [
1747
1747
  },
1748
1748
  {
1749
1749
  "name": "hosting_deleteWebsiteV1",
1750
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1750
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1751
1751
  "method": "DELETE",
1752
1752
  "path": "/api/hosting/v1/websites/{domain}",
1753
1753
  "inputSchema": {
@@ -1761,7 +1761,7 @@ const tools: OpenApiTool[] = [
1761
1761
  },
1762
1762
  {
1763
1763
  "name": "hosting_deleteWebsiteV1",
1764
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1764
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1765
1765
  "method": "DELETE",
1766
1766
  "path": "/api/hosting/v1/websites/{domain}",
1767
1767
  "inputSchema": {
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.35.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.35.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.35.2', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.35.2', 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: '1.35.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.35.2', tools });
package/types.d.ts CHANGED
@@ -1999,6 +1999,34 @@ the Ecommerce API.
1999
1999
  response: any; // Response structure will depend on the API
2000
2000
  };
2001
2001
 
2002
+ /**
2003
+ * Upload a raster image (JPEG, PNG, GIF or WebP, max 15MB) and attach it to a product in a single call.
2004
+ The image is virus-scanned and validated by content, then stored on the CDN. Set is_thumbnail to make
2005
+ it the product's primary image.
2006
+ */
2007
+ "ecommerce_uploadAndAttachAProductImageV1": {
2008
+ params: {
2009
+ /**
2010
+ * The ID of the store the product belongs to.
2011
+ */
2012
+ store_id: string;
2013
+ /**
2014
+ * The ID of the product to attach the image to.
2015
+ */
2016
+ product_id: string;
2017
+ /**
2018
+ * Raster image file (JPEG, PNG, GIF or WebP), maximum 15MB. SVG is not accepted.
2019
+ */
2020
+ image: string;
2021
+ /**
2022
+ * When true, the image becomes the product's thumbnail (primary image). When omitted, it becomes the
2023
+ thumbnail only if the product does not have one yet.
2024
+ */
2025
+ is_thumbnail?: boolean;
2026
+ };
2027
+ response: any; // Response structure will depend on the API
2028
+ };
2029
+
2002
2030
  /**
2003
2031
  * List a store's active sales channels with their full metadata.
2004
2032
  */
@@ -3314,15 +3342,13 @@ websites list endpoint to see when your new website becomes available.
3314
3342
  };
3315
3343
 
3316
3344
  /**
3317
- * Permanently deletes a website and all of its data. This action is destructive
3318
- and cannot be undone. Always ask the user for explicit confirmation before
3319
- calling this endpoint.
3345
+ * This endpoint permanently removes a website and all of its data. This action
3346
+ cannot be undone. Before calling it, make sure the user understands the
3347
+ consequences and explicitly confirms that they want to proceed.
3320
3348
 
3321
3349
  All website files, databases and related configuration will be removed.
3322
3350
  The hosting plan itself is kept, so a new website can be created on it afterwards.
3323
3351
 
3324
- The confirm field must be boolean true, otherwise the request is rejected.
3325
-
3326
3352
  Supported websites: main and addon domain websites on web hosting plans, and
3327
3353
  Website Builder websites. Parked domains and subdomains cannot be deleted with
3328
3354
  this endpoint. The domain must be the exact website domain, not a preview