hostinger-api-mcp 1.35.1 → 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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.35.1",
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.1",
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.1",
9
+ "version": "1.35.2",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.35.1",
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.1
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.1
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.",
@@ -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.",
@@ -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.",
@@ -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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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.1', 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
  */