hostinger-api-mcp 0.2.11 → 0.2.13

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
@@ -49,10 +49,12 @@ pnpm update -g hostinger-api-mcp
49
49
 
50
50
  This package installs the following MCP server commands:
51
51
 
52
- - `hostinger-api-mcp` — unified server with every tool (135 total)
52
+ - `hostinger-api-mcp` — unified server with every tool (139 total)
53
53
  - `hostinger-billing-mcp` — 7 tools for billing
54
54
  - `hostinger-dns-mcp` — 8 tools for dns
55
55
  - `hostinger-domains-mcp` — 18 tools for domains
56
+ - `hostinger-ecommerce-mcp` — 2 tools for ecommerce
57
+ - `hostinger-horizons-mcp` — 2 tools for horizons
56
58
  - `hostinger-hosting-mcp` — 30 tools for hosting
57
59
  - `hostinger-reach-mcp` — 10 tools for reach
58
60
  - `hostinger-vps-mcp` — 62 tools for vps
@@ -542,6 +544,76 @@ Use this endpoint to view which domains use specific contact profiles.
542
544
  - **Method**: `GET`
543
545
  - **Path**: `/api/domains/v1/whois/{whoisId}/usage`
544
546
 
547
+ ### `hostinger-ecommerce-mcp`
548
+
549
+ #### ecommerce_getStoresV1
550
+
551
+ Retrieve the stores associated with your account.
552
+
553
+ - **Method**: `GET`
554
+ - **Path**: `/api/ecommerce/v1/stores`
555
+
556
+ #### ecommerce_createStoreV1
557
+
558
+ Create a new store for your account.
559
+
560
+ A primary sales channel is created alongside the store.
561
+
562
+ - **Method**: `POST`
563
+ - **Path**: `/api/ecommerce/v1/stores`
564
+
565
+ ### `hostinger-horizons-mcp`
566
+
567
+ #### horizons_createWebsiteV1
568
+
569
+ Create new Hostinger Horizons website from the given message.\n
570
+ Use this tool when user asks you to create a website, landing page, blog
571
+ or any other type of application.\n
572
+ This tool initiates the website creation process and returns a website URL and ID.
573
+ The generation happens asynchronously.\n
574
+ After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing
575
+ that Hostinger Horizons is now creating their website and it will be ready in a few minutes
576
+ and you should provide the website URL to the user immediately
577
+ Do not write code.\n\nTo edit afterwards, users must go to Hostinger Horizons interface
578
+ in the provided website URL.
579
+ If the tool call fails with an error, you should provide a clear explanation of the error
580
+ and do not generate code yourself in the chat.
581
+ \n
582
+ TECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\n
583
+ The environment is limited to the following technologies.
584
+ You MUST NOT use, suggest, or implement any technology outside this list:\n
585
+ \n
586
+ - Language: JavaScript ONLY.
587
+ - Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\n
588
+ - Framework: React.\n
589
+ - Navigation: React Router.\n
590
+ - Styling: TailwindCSS.\n
591
+ - Components: shadcn/ui (built with @radix-ui primitives).\n
592
+ - Icons: Lucide React.\n
593
+ - Animations: Framer Motion.\n
594
+ \n
595
+ BACKEND & DATA STORAGE:\n
596
+ - Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,
597
+ authentication, and database needs.\n
598
+ - Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\n
599
+ - Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\n
600
+ \n
601
+ MAPS:\n
602
+ - OpenStreetMap is the default provider.\n
603
+ - Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\n
604
+
605
+ - **Method**: `POST`
606
+ - **Path**: `/api/horizons/v1/websites`
607
+
608
+ #### horizons_getWebsiteV1
609
+
610
+ Get a link for the user to edit their website in Hostinger Horizons interface.\n
611
+ Use this tool when user wants to modify, edit or add new features to an existing website.\n
612
+ Websites can only be edited in Hostinger Horizons interface in the provided website URL.
613
+
614
+ - **Method**: `GET`
615
+ - **Path**: `/api/horizons/v1/websites/{websiteId}`
616
+
545
617
  ### `hostinger-hosting-mcp`
546
618
 
547
619
  #### hosting_importWordpressWebsite
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "0.2.11",
3
+ "version": "0.2.13",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
@@ -22,6 +22,8 @@
22
22
  "hostinger-billing-mcp": "./src/servers/billing.js",
23
23
  "hostinger-dns-mcp": "./src/servers/dns.js",
24
24
  "hostinger-domains-mcp": "./src/servers/domains.js",
25
+ "hostinger-ecommerce-mcp": "./src/servers/ecommerce.js",
26
+ "hostinger-horizons-mcp": "./src/servers/horizons.js",
25
27
  "hostinger-hosting-mcp": "./src/servers/hosting.js",
26
28
  "hostinger-reach-mcp": "./src/servers/reach.js",
27
29
  "hostinger-vps-mcp": "./src/servers/vps.js"
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": "0.2.11",
9
+ "version": "0.2.13",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "0.2.11",
14
+ "version": "0.2.13",
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 0.18.1
32
+ * Generated from OpenAPI spec version 0.19.0
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -116,6 +116,17 @@ class MCPServer {
116
116
  * Set up request handlers
117
117
  */
118
118
  setupHandlers() {
119
+ // Capture the connecting MCP client's identity once the initialize handshake completes.
120
+ // The name is client-controlled input, so strip CR/LF to prevent header injection.
121
+ this.server.oninitialized = () => {
122
+ const clientName = String(this.server.getClientVersion()?.name ?? "")
123
+ .replace(/\r|\n/g, "")
124
+ .trim();
125
+ if (clientName) {
126
+ this.headers["X-MCP-Client"] = clientName;
127
+ }
128
+ };
129
+
119
130
  // Handle tool listing requests
120
131
  this.server.setRequestHandler(ListToolsRequestSchema, async () => {
121
132
  this.log('debug', "Handling ListTools request");
@@ -47,7 +47,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
47
47
 
48
48
  /**
49
49
  * MCP Server for Hostinger API
50
- * Generated from OpenAPI spec version 0.18.1
50
+ * Generated from OpenAPI spec version 0.19.0
51
51
  */
52
52
  class MCPServer {
53
53
  private readonly name: string;
@@ -142,6 +142,17 @@ class MCPServer {
142
142
  * Set up request handlers
143
143
  */
144
144
  private setupHandlers(): void {
145
+ // Capture the connecting MCP client's identity once the initialize handshake completes.
146
+ // The name is client-controlled input, so strip CR/LF to prevent header injection.
147
+ this.server.oninitialized = () => {
148
+ const clientName = String(this.server.getClientVersion()?.name ?? "")
149
+ .replace(/\r|\n/g, "")
150
+ .trim();
151
+ if (clientName) {
152
+ this.headers["X-MCP-Client"] = clientName;
153
+ }
154
+ };
155
+
145
156
  // Handle tool listing requests
146
157
  this.server.setRequestHandler(ListToolsRequestSchema, async () => {
147
158
  this.log('debug', "Handling ListTools request");
@@ -1287,6 +1287,152 @@ export default [
1287
1287
  ],
1288
1288
  "group": "domains"
1289
1289
  },
1290
+ {
1291
+ "name": "ecommerce_getStoresV1",
1292
+ "description": "Retrieve the stores associated with your account.",
1293
+ "method": "GET",
1294
+ "path": "/api/ecommerce/v1/stores",
1295
+ "inputSchema": {
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "page": {
1299
+ "type": "integer",
1300
+ "description": "Page number"
1301
+ }
1302
+ },
1303
+ "required": []
1304
+ },
1305
+ "security": [
1306
+ {
1307
+ "apiToken": []
1308
+ }
1309
+ ],
1310
+ "group": "ecommerce"
1311
+ },
1312
+ {
1313
+ "name": "ecommerce_createStoreV1",
1314
+ "description": "Create a new store for your account.\n\nA primary sales channel is created alongside the store.",
1315
+ "method": "POST",
1316
+ "path": "/api/ecommerce/v1/stores",
1317
+ "inputSchema": {
1318
+ "type": "object",
1319
+ "properties": {
1320
+ "name": {
1321
+ "type": "string",
1322
+ "description": "name parameter"
1323
+ },
1324
+ "country_code": {
1325
+ "type": "string",
1326
+ "description": "ISO 3166-1 alpha-2 country code."
1327
+ },
1328
+ "company_email": {
1329
+ "type": "string",
1330
+ "description": "company_email parameter"
1331
+ },
1332
+ "company_name": {
1333
+ "type": "string",
1334
+ "description": "company_name parameter"
1335
+ },
1336
+ "language": {
1337
+ "type": "string",
1338
+ "description": "ISO 639-1 language code."
1339
+ },
1340
+ "sales_channel": {
1341
+ "type": "object",
1342
+ "description": "sales_channel parameter",
1343
+ "properties": {
1344
+ "type": {
1345
+ "type": "string",
1346
+ "description": "Sales channel type. Only \"custom\" channels can be created via the API.",
1347
+ "enum": [
1348
+ "custom"
1349
+ ]
1350
+ },
1351
+ "external_id": {
1352
+ "type": "string",
1353
+ "description": "External identifier for the sales channel."
1354
+ }
1355
+ }
1356
+ }
1357
+ },
1358
+ "required": []
1359
+ },
1360
+ "security": [
1361
+ {
1362
+ "apiToken": []
1363
+ }
1364
+ ],
1365
+ "group": "ecommerce"
1366
+ },
1367
+ {
1368
+ "name": "horizons_createWebsiteV1",
1369
+ "description": "Create new Hostinger Horizons website from the given message.\\n\nUse this tool when user asks you to create a website, landing page, blog\nor any other type of application.\\n\nThis tool initiates the website creation process and returns a website URL and ID.\nThe generation happens asynchronously.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat Hostinger Horizons is now creating their website and it will be ready in a few minutes\nand you should provide the website URL to the user immediately\nDo not write code.\\n\\nTo edit afterwards, users must go to Hostinger Horizons interface\nin the provided website URL.\nIf the tool call fails with an error, you should provide a clear explanation of the error\nand do not generate code yourself in the chat.\n\\n\nTECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\\n\nThe environment is limited to the following technologies.\nYou MUST NOT use, suggest, or implement any technology outside this list:\\n\n\\n\n- Language: JavaScript ONLY.\n- Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\\n\n- Framework: React.\\n\n- Navigation: React Router.\\n\n- Styling: TailwindCSS.\\n\n- Components: shadcn/ui (built with @radix-ui primitives).\\n\n- Icons: Lucide React.\\n\n- Animations: Framer Motion.\\n\n\\n\nBACKEND & DATA STORAGE:\\n\n- Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,\nauthentication, and database needs.\\n\n- Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\\n\n- Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\\n\n\\n\nMAPS:\\n\n- OpenStreetMap is the default provider.\\n\n- Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\\n",
1370
+ "method": "POST",
1371
+ "path": "/api/horizons/v1/websites",
1372
+ "inputSchema": {
1373
+ "type": "object",
1374
+ "properties": {
1375
+ "message": {
1376
+ "type": "array",
1377
+ "description": "message parameter",
1378
+ "items": {
1379
+ "type": "object",
1380
+ "description": "message parameter",
1381
+ "properties": {
1382
+ "type": {
1383
+ "type": "string",
1384
+ "description": "type parameter",
1385
+ "enum": [
1386
+ "text"
1387
+ ]
1388
+ },
1389
+ "text": {
1390
+ "type": "string",
1391
+ "description": "Detailed project specification.\nInclude purpose, key features, user flows, data models, and design preferences.\nThe specification should be detailed and comprehensive, covering all aspects of the project."
1392
+ }
1393
+ },
1394
+ "required": [
1395
+ "type",
1396
+ "text"
1397
+ ]
1398
+ }
1399
+ }
1400
+ },
1401
+ "required": [
1402
+ "message"
1403
+ ]
1404
+ },
1405
+ "security": [
1406
+ {
1407
+ "apiToken": []
1408
+ }
1409
+ ],
1410
+ "group": "horizons"
1411
+ },
1412
+ {
1413
+ "name": "horizons_getWebsiteV1",
1414
+ "description": "Get a link for the user to edit their website in Hostinger Horizons interface.\\n\nUse this tool when user wants to modify, edit or add new features to an existing website.\\n\nWebsites can only be edited in Hostinger Horizons interface in the provided website URL.",
1415
+ "method": "GET",
1416
+ "path": "/api/horizons/v1/websites/{websiteId}",
1417
+ "inputSchema": {
1418
+ "type": "object",
1419
+ "properties": {
1420
+ "websiteId": {
1421
+ "type": "string",
1422
+ "description": "The website ID"
1423
+ }
1424
+ },
1425
+ "required": [
1426
+ "websiteId"
1427
+ ]
1428
+ },
1429
+ "security": [
1430
+ {
1431
+ "apiToken": []
1432
+ }
1433
+ ],
1434
+ "group": "horizons"
1435
+ },
1290
1436
  {
1291
1437
  "name": "hosting_changeDatabasePasswordV1",
1292
1438
  "description": "Changes the password for the specified database user.\n\nThe database name must be the full name returned by the list databases endpoint.\nThe password must also be updated in any website configuration that uses this database.",
@@ -1297,6 +1297,152 @@ const tools: OpenApiTool[] = [
1297
1297
  ],
1298
1298
  "group": "domains"
1299
1299
  },
1300
+ {
1301
+ "name": "ecommerce_getStoresV1",
1302
+ "description": "Retrieve the stores associated with your account.",
1303
+ "method": "GET",
1304
+ "path": "/api/ecommerce/v1/stores",
1305
+ "inputSchema": {
1306
+ "type": "object",
1307
+ "properties": {
1308
+ "page": {
1309
+ "type": "integer",
1310
+ "description": "Page number"
1311
+ }
1312
+ },
1313
+ "required": []
1314
+ },
1315
+ "security": [
1316
+ {
1317
+ "apiToken": []
1318
+ }
1319
+ ],
1320
+ "group": "ecommerce"
1321
+ },
1322
+ {
1323
+ "name": "ecommerce_createStoreV1",
1324
+ "description": "Create a new store for your account.\n\nA primary sales channel is created alongside the store.",
1325
+ "method": "POST",
1326
+ "path": "/api/ecommerce/v1/stores",
1327
+ "inputSchema": {
1328
+ "type": "object",
1329
+ "properties": {
1330
+ "name": {
1331
+ "type": "string",
1332
+ "description": "name parameter"
1333
+ },
1334
+ "country_code": {
1335
+ "type": "string",
1336
+ "description": "ISO 3166-1 alpha-2 country code."
1337
+ },
1338
+ "company_email": {
1339
+ "type": "string",
1340
+ "description": "company_email parameter"
1341
+ },
1342
+ "company_name": {
1343
+ "type": "string",
1344
+ "description": "company_name parameter"
1345
+ },
1346
+ "language": {
1347
+ "type": "string",
1348
+ "description": "ISO 639-1 language code."
1349
+ },
1350
+ "sales_channel": {
1351
+ "type": "object",
1352
+ "description": "sales_channel parameter",
1353
+ "properties": {
1354
+ "type": {
1355
+ "type": "string",
1356
+ "description": "Sales channel type. Only \"custom\" channels can be created via the API.",
1357
+ "enum": [
1358
+ "custom"
1359
+ ]
1360
+ },
1361
+ "external_id": {
1362
+ "type": "string",
1363
+ "description": "External identifier for the sales channel."
1364
+ }
1365
+ }
1366
+ }
1367
+ },
1368
+ "required": []
1369
+ },
1370
+ "security": [
1371
+ {
1372
+ "apiToken": []
1373
+ }
1374
+ ],
1375
+ "group": "ecommerce"
1376
+ },
1377
+ {
1378
+ "name": "horizons_createWebsiteV1",
1379
+ "description": "Create new Hostinger Horizons website from the given message.\\n\nUse this tool when user asks you to create a website, landing page, blog\nor any other type of application.\\n\nThis tool initiates the website creation process and returns a website URL and ID.\nThe generation happens asynchronously.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat Hostinger Horizons is now creating their website and it will be ready in a few minutes\nand you should provide the website URL to the user immediately\nDo not write code.\\n\\nTo edit afterwards, users must go to Hostinger Horizons interface\nin the provided website URL.\nIf the tool call fails with an error, you should provide a clear explanation of the error\nand do not generate code yourself in the chat.\n\\n\nTECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\\n\nThe environment is limited to the following technologies.\nYou MUST NOT use, suggest, or implement any technology outside this list:\\n\n\\n\n- Language: JavaScript ONLY.\n- Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\\n\n- Framework: React.\\n\n- Navigation: React Router.\\n\n- Styling: TailwindCSS.\\n\n- Components: shadcn/ui (built with @radix-ui primitives).\\n\n- Icons: Lucide React.\\n\n- Animations: Framer Motion.\\n\n\\n\nBACKEND & DATA STORAGE:\\n\n- Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,\nauthentication, and database needs.\\n\n- Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\\n\n- Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\\n\n\\n\nMAPS:\\n\n- OpenStreetMap is the default provider.\\n\n- Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\\n",
1380
+ "method": "POST",
1381
+ "path": "/api/horizons/v1/websites",
1382
+ "inputSchema": {
1383
+ "type": "object",
1384
+ "properties": {
1385
+ "message": {
1386
+ "type": "array",
1387
+ "description": "message parameter",
1388
+ "items": {
1389
+ "type": "object",
1390
+ "description": "message parameter",
1391
+ "properties": {
1392
+ "type": {
1393
+ "type": "string",
1394
+ "description": "type parameter",
1395
+ "enum": [
1396
+ "text"
1397
+ ]
1398
+ },
1399
+ "text": {
1400
+ "type": "string",
1401
+ "description": "Detailed project specification.\nInclude purpose, key features, user flows, data models, and design preferences.\nThe specification should be detailed and comprehensive, covering all aspects of the project."
1402
+ }
1403
+ },
1404
+ "required": [
1405
+ "type",
1406
+ "text"
1407
+ ]
1408
+ }
1409
+ }
1410
+ },
1411
+ "required": [
1412
+ "message"
1413
+ ]
1414
+ },
1415
+ "security": [
1416
+ {
1417
+ "apiToken": []
1418
+ }
1419
+ ],
1420
+ "group": "horizons"
1421
+ },
1422
+ {
1423
+ "name": "horizons_getWebsiteV1",
1424
+ "description": "Get a link for the user to edit their website in Hostinger Horizons interface.\\n\nUse this tool when user wants to modify, edit or add new features to an existing website.\\n\nWebsites can only be edited in Hostinger Horizons interface in the provided website URL.",
1425
+ "method": "GET",
1426
+ "path": "/api/horizons/v1/websites/{websiteId}",
1427
+ "inputSchema": {
1428
+ "type": "object",
1429
+ "properties": {
1430
+ "websiteId": {
1431
+ "type": "string",
1432
+ "description": "The website ID"
1433
+ }
1434
+ },
1435
+ "required": [
1436
+ "websiteId"
1437
+ ]
1438
+ },
1439
+ "security": [
1440
+ {
1441
+ "apiToken": []
1442
+ }
1443
+ ],
1444
+ "group": "horizons"
1445
+ },
1300
1446
  {
1301
1447
  "name": "hosting_changeDatabasePasswordV1",
1302
1448
  "description": "Changes the password for the specified database user.\n\nThe database name must be the full name returned by the list databases endpoint.\nThe password must also be updated in any website configuration that uses this database.",
@@ -0,0 +1,80 @@
1
+ // Auto-generated tool list for group: ecommerce
2
+ export default [
3
+ {
4
+ "name": "ecommerce_getStoresV1",
5
+ "description": "Retrieve the stores associated with your account.",
6
+ "method": "GET",
7
+ "path": "/api/ecommerce/v1/stores",
8
+ "inputSchema": {
9
+ "type": "object",
10
+ "properties": {
11
+ "page": {
12
+ "type": "integer",
13
+ "description": "Page number"
14
+ }
15
+ },
16
+ "required": []
17
+ },
18
+ "security": [
19
+ {
20
+ "apiToken": []
21
+ }
22
+ ],
23
+ "group": "ecommerce"
24
+ },
25
+ {
26
+ "name": "ecommerce_createStoreV1",
27
+ "description": "Create a new store for your account.\n\nA primary sales channel is created alongside the store.",
28
+ "method": "POST",
29
+ "path": "/api/ecommerce/v1/stores",
30
+ "inputSchema": {
31
+ "type": "object",
32
+ "properties": {
33
+ "name": {
34
+ "type": "string",
35
+ "description": "name parameter"
36
+ },
37
+ "country_code": {
38
+ "type": "string",
39
+ "description": "ISO 3166-1 alpha-2 country code."
40
+ },
41
+ "company_email": {
42
+ "type": "string",
43
+ "description": "company_email parameter"
44
+ },
45
+ "company_name": {
46
+ "type": "string",
47
+ "description": "company_name parameter"
48
+ },
49
+ "language": {
50
+ "type": "string",
51
+ "description": "ISO 639-1 language code."
52
+ },
53
+ "sales_channel": {
54
+ "type": "object",
55
+ "description": "sales_channel parameter",
56
+ "properties": {
57
+ "type": {
58
+ "type": "string",
59
+ "description": "Sales channel type. Only \"custom\" channels can be created via the API.",
60
+ "enum": [
61
+ "custom"
62
+ ]
63
+ },
64
+ "external_id": {
65
+ "type": "string",
66
+ "description": "External identifier for the sales channel."
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "required": []
72
+ },
73
+ "security": [
74
+ {
75
+ "apiToken": []
76
+ }
77
+ ],
78
+ "group": "ecommerce"
79
+ }
80
+ ];
@@ -0,0 +1,91 @@
1
+ // Auto-generated tool list for group: ecommerce
2
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
3
+
4
+ export interface OpenApiTool extends Tool {
5
+ method: string;
6
+ path: string;
7
+ security: unknown[];
8
+ custom?: boolean;
9
+ group?: string;
10
+ }
11
+
12
+ const tools: OpenApiTool[] = [
13
+ {
14
+ "name": "ecommerce_getStoresV1",
15
+ "description": "Retrieve the stores associated with your account.",
16
+ "method": "GET",
17
+ "path": "/api/ecommerce/v1/stores",
18
+ "inputSchema": {
19
+ "type": "object",
20
+ "properties": {
21
+ "page": {
22
+ "type": "integer",
23
+ "description": "Page number"
24
+ }
25
+ },
26
+ "required": []
27
+ },
28
+ "security": [
29
+ {
30
+ "apiToken": []
31
+ }
32
+ ],
33
+ "group": "ecommerce"
34
+ },
35
+ {
36
+ "name": "ecommerce_createStoreV1",
37
+ "description": "Create a new store for your account.\n\nA primary sales channel is created alongside the store.",
38
+ "method": "POST",
39
+ "path": "/api/ecommerce/v1/stores",
40
+ "inputSchema": {
41
+ "type": "object",
42
+ "properties": {
43
+ "name": {
44
+ "type": "string",
45
+ "description": "name parameter"
46
+ },
47
+ "country_code": {
48
+ "type": "string",
49
+ "description": "ISO 3166-1 alpha-2 country code."
50
+ },
51
+ "company_email": {
52
+ "type": "string",
53
+ "description": "company_email parameter"
54
+ },
55
+ "company_name": {
56
+ "type": "string",
57
+ "description": "company_name parameter"
58
+ },
59
+ "language": {
60
+ "type": "string",
61
+ "description": "ISO 639-1 language code."
62
+ },
63
+ "sales_channel": {
64
+ "type": "object",
65
+ "description": "sales_channel parameter",
66
+ "properties": {
67
+ "type": {
68
+ "type": "string",
69
+ "description": "Sales channel type. Only \"custom\" channels can be created via the API.",
70
+ "enum": [
71
+ "custom"
72
+ ]
73
+ },
74
+ "external_id": {
75
+ "type": "string",
76
+ "description": "External identifier for the sales channel."
77
+ }
78
+ }
79
+ }
80
+ },
81
+ "required": []
82
+ },
83
+ "security": [
84
+ {
85
+ "apiToken": []
86
+ }
87
+ ],
88
+ "group": "ecommerce"
89
+ }
90
+ ];
91
+ export default tools;
@@ -0,0 +1,72 @@
1
+ // Auto-generated tool list for group: horizons
2
+ export default [
3
+ {
4
+ "name": "horizons_createWebsiteV1",
5
+ "description": "Create new Hostinger Horizons website from the given message.\\n\nUse this tool when user asks you to create a website, landing page, blog\nor any other type of application.\\n\nThis tool initiates the website creation process and returns a website URL and ID.\nThe generation happens asynchronously.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat Hostinger Horizons is now creating their website and it will be ready in a few minutes\nand you should provide the website URL to the user immediately\nDo not write code.\\n\\nTo edit afterwards, users must go to Hostinger Horizons interface\nin the provided website URL.\nIf the tool call fails with an error, you should provide a clear explanation of the error\nand do not generate code yourself in the chat.\n\\n\nTECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\\n\nThe environment is limited to the following technologies.\nYou MUST NOT use, suggest, or implement any technology outside this list:\\n\n\\n\n- Language: JavaScript ONLY.\n- Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\\n\n- Framework: React.\\n\n- Navigation: React Router.\\n\n- Styling: TailwindCSS.\\n\n- Components: shadcn/ui (built with @radix-ui primitives).\\n\n- Icons: Lucide React.\\n\n- Animations: Framer Motion.\\n\n\\n\nBACKEND & DATA STORAGE:\\n\n- Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,\nauthentication, and database needs.\\n\n- Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\\n\n- Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\\n\n\\n\nMAPS:\\n\n- OpenStreetMap is the default provider.\\n\n- Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\\n",
6
+ "method": "POST",
7
+ "path": "/api/horizons/v1/websites",
8
+ "inputSchema": {
9
+ "type": "object",
10
+ "properties": {
11
+ "message": {
12
+ "type": "array",
13
+ "description": "message parameter",
14
+ "items": {
15
+ "type": "object",
16
+ "description": "message parameter",
17
+ "properties": {
18
+ "type": {
19
+ "type": "string",
20
+ "description": "type parameter",
21
+ "enum": [
22
+ "text"
23
+ ]
24
+ },
25
+ "text": {
26
+ "type": "string",
27
+ "description": "Detailed project specification.\nInclude purpose, key features, user flows, data models, and design preferences.\nThe specification should be detailed and comprehensive, covering all aspects of the project."
28
+ }
29
+ },
30
+ "required": [
31
+ "type",
32
+ "text"
33
+ ]
34
+ }
35
+ }
36
+ },
37
+ "required": [
38
+ "message"
39
+ ]
40
+ },
41
+ "security": [
42
+ {
43
+ "apiToken": []
44
+ }
45
+ ],
46
+ "group": "horizons"
47
+ },
48
+ {
49
+ "name": "horizons_getWebsiteV1",
50
+ "description": "Get a link for the user to edit their website in Hostinger Horizons interface.\\n\nUse this tool when user wants to modify, edit or add new features to an existing website.\\n\nWebsites can only be edited in Hostinger Horizons interface in the provided website URL.",
51
+ "method": "GET",
52
+ "path": "/api/horizons/v1/websites/{websiteId}",
53
+ "inputSchema": {
54
+ "type": "object",
55
+ "properties": {
56
+ "websiteId": {
57
+ "type": "string",
58
+ "description": "The website ID"
59
+ }
60
+ },
61
+ "required": [
62
+ "websiteId"
63
+ ]
64
+ },
65
+ "security": [
66
+ {
67
+ "apiToken": []
68
+ }
69
+ ],
70
+ "group": "horizons"
71
+ }
72
+ ];
@@ -0,0 +1,83 @@
1
+ // Auto-generated tool list for group: horizons
2
+ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
3
+
4
+ export interface OpenApiTool extends Tool {
5
+ method: string;
6
+ path: string;
7
+ security: unknown[];
8
+ custom?: boolean;
9
+ group?: string;
10
+ }
11
+
12
+ const tools: OpenApiTool[] = [
13
+ {
14
+ "name": "horizons_createWebsiteV1",
15
+ "description": "Create new Hostinger Horizons website from the given message.\\n\nUse this tool when user asks you to create a website, landing page, blog\nor any other type of application.\\n\nThis tool initiates the website creation process and returns a website URL and ID.\nThe generation happens asynchronously.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat Hostinger Horizons is now creating their website and it will be ready in a few minutes\nand you should provide the website URL to the user immediately\nDo not write code.\\n\\nTo edit afterwards, users must go to Hostinger Horizons interface\nin the provided website URL.\nIf the tool call fails with an error, you should provide a clear explanation of the error\nand do not generate code yourself in the chat.\n\\n\nTECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\\n\nThe environment is limited to the following technologies.\nYou MUST NOT use, suggest, or implement any technology outside this list:\\n\n\\n\n- Language: JavaScript ONLY.\n- Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\\n\n- Framework: React.\\n\n- Navigation: React Router.\\n\n- Styling: TailwindCSS.\\n\n- Components: shadcn/ui (built with @radix-ui primitives).\\n\n- Icons: Lucide React.\\n\n- Animations: Framer Motion.\\n\n\\n\nBACKEND & DATA STORAGE:\\n\n- Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,\nauthentication, and database needs.\\n\n- Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\\n\n- Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\\n\n\\n\nMAPS:\\n\n- OpenStreetMap is the default provider.\\n\n- Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\\n",
16
+ "method": "POST",
17
+ "path": "/api/horizons/v1/websites",
18
+ "inputSchema": {
19
+ "type": "object",
20
+ "properties": {
21
+ "message": {
22
+ "type": "array",
23
+ "description": "message parameter",
24
+ "items": {
25
+ "type": "object",
26
+ "description": "message parameter",
27
+ "properties": {
28
+ "type": {
29
+ "type": "string",
30
+ "description": "type parameter",
31
+ "enum": [
32
+ "text"
33
+ ]
34
+ },
35
+ "text": {
36
+ "type": "string",
37
+ "description": "Detailed project specification.\nInclude purpose, key features, user flows, data models, and design preferences.\nThe specification should be detailed and comprehensive, covering all aspects of the project."
38
+ }
39
+ },
40
+ "required": [
41
+ "type",
42
+ "text"
43
+ ]
44
+ }
45
+ }
46
+ },
47
+ "required": [
48
+ "message"
49
+ ]
50
+ },
51
+ "security": [
52
+ {
53
+ "apiToken": []
54
+ }
55
+ ],
56
+ "group": "horizons"
57
+ },
58
+ {
59
+ "name": "horizons_getWebsiteV1",
60
+ "description": "Get a link for the user to edit their website in Hostinger Horizons interface.\\n\nUse this tool when user wants to modify, edit or add new features to an existing website.\\n\nWebsites can only be edited in Hostinger Horizons interface in the provided website URL.",
61
+ "method": "GET",
62
+ "path": "/api/horizons/v1/websites/{websiteId}",
63
+ "inputSchema": {
64
+ "type": "object",
65
+ "properties": {
66
+ "websiteId": {
67
+ "type": "string",
68
+ "description": "The website ID"
69
+ }
70
+ },
71
+ "required": [
72
+ "websiteId"
73
+ ]
74
+ },
75
+ "security": [
76
+ {
77
+ "apiToken": []
78
+ }
79
+ ],
80
+ "group": "horizons"
81
+ }
82
+ ];
83
+ export default 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '0.2.13', tools });
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated entry for group: ecommerce
3
+ import { startServer } from '../core/runtime.js';
4
+ import tools from '../core/tools/ecommerce.js';
5
+
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.13', tools });
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated entry for group: ecommerce
3
+ import { startServer } from '../core/runtime.js';
4
+ import tools from '../core/tools/ecommerce.js';
5
+
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.13', tools });
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated entry for group: horizons
3
+ import { startServer } from '../core/runtime.js';
4
+ import tools from '../core/tools/horizons.js';
5
+
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '0.2.13', tools });
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ // Auto-generated entry for group: horizons
3
+ import { startServer } from '../core/runtime.js';
4
+ import tools from '../core/tools/horizons.js';
5
+
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.13', 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: '0.2.11', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.13', tools });
package/types.d.ts CHANGED
@@ -796,6 +796,116 @@ Use this endpoint to view which domains use specific contact profiles.
796
796
  response: any; // Response structure will depend on the API
797
797
  };
798
798
 
799
+ /**
800
+ * Retrieve the stores associated with your account.
801
+ */
802
+ "ecommerce_getStoresV1": {
803
+ params: {
804
+ /**
805
+ * Page number
806
+ */
807
+ page?: number;
808
+ };
809
+ response: any; // Response structure will depend on the API
810
+ };
811
+
812
+ /**
813
+ * Create a new store for your account.
814
+
815
+ A primary sales channel is created alongside the store.
816
+ */
817
+ "ecommerce_createStoreV1": {
818
+ params: {
819
+ /**
820
+ * name parameter
821
+ */
822
+ name?: string;
823
+ /**
824
+ * ISO 3166-1 alpha-2 country code.
825
+ */
826
+ country_code?: string;
827
+ /**
828
+ * company_email parameter
829
+ */
830
+ company_email?: string;
831
+ /**
832
+ * company_name parameter
833
+ */
834
+ company_name?: string;
835
+ /**
836
+ * ISO 639-1 language code.
837
+ */
838
+ language?: string;
839
+ /**
840
+ * sales_channel parameter
841
+ */
842
+ sales_channel?: object;
843
+ };
844
+ response: any; // Response structure will depend on the API
845
+ };
846
+
847
+ /**
848
+ * Create new Hostinger Horizons website from the given message.\n
849
+ Use this tool when user asks you to create a website, landing page, blog
850
+ or any other type of application.\n
851
+ This tool initiates the website creation process and returns a website URL and ID.
852
+ The generation happens asynchronously.\n
853
+ After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing
854
+ that Hostinger Horizons is now creating their website and it will be ready in a few minutes
855
+ and you should provide the website URL to the user immediately
856
+ Do not write code.\n\nTo edit afterwards, users must go to Hostinger Horizons interface
857
+ in the provided website URL.
858
+ If the tool call fails with an error, you should provide a clear explanation of the error
859
+ and do not generate code yourself in the chat.
860
+ \n
861
+ TECHNOLOGY STACK CONSTRAINTS (STRICTLY ENFORCED):\n
862
+ The environment is limited to the following technologies.
863
+ You MUST NOT use, suggest, or implement any technology outside this list:\n
864
+ \n
865
+ - Language: JavaScript ONLY.
866
+ - Languages like TypeScript, Rust, Python, Java, PHP, etc., are STRICTLY PROHIBITED.\n
867
+ - Framework: React.\n
868
+ - Navigation: React Router.\n
869
+ - Styling: TailwindCSS.\n
870
+ - Components: shadcn/ui (built with @radix-ui primitives).\n
871
+ - Icons: Lucide React.\n
872
+ - Animations: Framer Motion.\n
873
+ \n
874
+ BACKEND & DATA STORAGE:\n
875
+ - Horizons integrated backend is the EXCLUSIVE solution for persistent data storage,
876
+ authentication, and database needs.\n
877
+ - Local databases (SQLite, MySQL, etc.) are STRICTLY PROHIBITED.\n
878
+ - Third-party services (Firebase, AWS Amplify) are allowed ONLY if explicitly requested by the user.\n
879
+ \n
880
+ MAPS:\n
881
+ - OpenStreetMap is the default provider.\n
882
+ - Alternative providers (Google Maps, Mapbox) are allowed ONLY if explicitly requested by the user.\n
883
+ */
884
+ "horizons_createWebsiteV1": {
885
+ params: {
886
+ /**
887
+ * message parameter
888
+ */
889
+ message: array;
890
+ };
891
+ response: any; // Response structure will depend on the API
892
+ };
893
+
894
+ /**
895
+ * Get a link for the user to edit their website in Hostinger Horizons interface.\n
896
+ Use this tool when user wants to modify, edit or add new features to an existing website.\n
897
+ Websites can only be edited in Hostinger Horizons interface in the provided website URL.
898
+ */
899
+ "horizons_getWebsiteV1": {
900
+ params: {
901
+ /**
902
+ * The website ID
903
+ */
904
+ websiteId: string;
905
+ };
906
+ response: any; // Response structure will depend on the API
907
+ };
908
+
799
909
  /**
800
910
  * Changes the password for the specified database user.
801
911