hostinger-api-mcp 0.2.12 → 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,11 +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 (137 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
56
  - `hostinger-ecommerce-mcp` — 2 tools for ecommerce
57
+ - `hostinger-horizons-mcp` — 2 tools for horizons
57
58
  - `hostinger-hosting-mcp` — 30 tools for hosting
58
59
  - `hostinger-reach-mcp` — 10 tools for reach
59
60
  - `hostinger-vps-mcp` — 62 tools for vps
@@ -561,6 +562,58 @@ A primary sales channel is created alongside the store.
561
562
  - **Method**: `POST`
562
563
  - **Path**: `/api/ecommerce/v1/stores`
563
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
+
564
617
  ### `hostinger-hosting-mcp`
565
618
 
566
619
  #### hosting_importWordpressWebsite
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "0.2.12",
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": {
@@ -23,6 +23,7 @@
23
23
  "hostinger-dns-mcp": "./src/servers/dns.js",
24
24
  "hostinger-domains-mcp": "./src/servers/domains.js",
25
25
  "hostinger-ecommerce-mcp": "./src/servers/ecommerce.js",
26
+ "hostinger-horizons-mcp": "./src/servers/horizons.js",
26
27
  "hostinger-hosting-mcp": "./src/servers/hosting.js",
27
28
  "hostinger-reach-mcp": "./src/servers/reach.js",
28
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.12",
9
+ "version": "0.2.13",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "0.2.12",
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.2
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.2
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");
@@ -1364,6 +1364,75 @@ export default [
1364
1364
  ],
1365
1365
  "group": "ecommerce"
1366
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
+ },
1367
1436
  {
1368
1437
  "name": "hosting_changeDatabasePasswordV1",
1369
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.",
@@ -1374,6 +1374,75 @@ const tools: OpenApiTool[] = [
1374
1374
  ],
1375
1375
  "group": "ecommerce"
1376
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
+ },
1377
1446
  {
1378
1447
  "name": "hosting_changeDatabasePasswordV1",
1379
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,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.12', 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.12', 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.12', 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.12', 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.12', 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.12', 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.12', 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.12', 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/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.12', tools });
6
+ startServer({ name: 'hostinger-ecommerce-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/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '0.2.12', tools });
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.12', 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.12', 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.12', 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.12', 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.12', 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.12', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '0.2.13', tools });
package/types.d.ts CHANGED
@@ -844,6 +844,68 @@ A primary sales channel is created alongside the store.
844
844
  response: any; // Response structure will depend on the API
845
845
  };
846
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
+
847
909
  /**
848
910
  * Changes the password for the specified database user.
849
911