hostinger-api-mcp 2.7.3 → 2.9.0
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/CHANGELOG.md +28 -0
- package/README.md +45 -9
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/core/runtime.js +1 -1
- package/src/core/runtime.ts +1 -1
- package/src/core/tools/all.js +99 -3
- package/src/core/tools/all.ts +99 -3
- package/src/core/tools/horizons.js +6 -2
- package/src/core/tools/horizons.ts +6 -2
- package/src/core/tools/hosting.js +93 -1
- package/src/core/tools/hosting.ts +93 -1
- package/src/servers/agency-hosting.js +1 -1
- package/src/servers/agency-hosting.ts +1 -1
- package/src/servers/all.js +1 -1
- package/src/servers/all.ts +1 -1
- package/src/servers/billing.js +1 -1
- package/src/servers/billing.ts +1 -1
- package/src/servers/dns.js +1 -1
- package/src/servers/dns.ts +1 -1
- package/src/servers/domains.js +1 -1
- package/src/servers/domains.ts +1 -1
- package/src/servers/ecommerce.js +1 -1
- package/src/servers/ecommerce.ts +1 -1
- package/src/servers/horizons.js +1 -1
- package/src/servers/horizons.ts +1 -1
- package/src/servers/hosting.js +1 -1
- package/src/servers/hosting.ts +1 -1
- package/src/servers/mail.js +1 -1
- package/src/servers/mail.ts +1 -1
- package/src/servers/reach.js +1 -1
- package/src/servers/reach.ts +1 -1
- package/src/servers/vps.js +1 -1
- package/src/servers/vps.ts +1 -1
- package/src/servers/wordpress.js +1 -1
- package/src/servers/wordpress.ts +1 -1
- package/types.d.ts +75 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ Generated at release time from the diff between the previous and current
|
|
|
4
4
|
build. Tool changes are listed individually; everything else is summarised
|
|
5
5
|
by area.
|
|
6
6
|
|
|
7
|
+
## v2.9.0 — 2026-10-07
|
|
8
|
+
|
|
9
|
+
### Operations
|
|
10
|
+
|
|
11
|
+
- Changed the description and input schema of `horizons_websites_publish`
|
|
12
|
+
- Changed the description of `horizons_websites_get`
|
|
13
|
+
|
|
14
|
+
### Also in this release
|
|
15
|
+
|
|
16
|
+
- Documentation: `README.md`
|
|
17
|
+
- Dependencies: `package-lock.json`
|
|
18
|
+
- Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
|
|
19
|
+
- Build and packaging: `types.d.ts`
|
|
20
|
+
|
|
21
|
+
## v2.8.0 — 2026-10-06
|
|
22
|
+
|
|
23
|
+
### Operations
|
|
24
|
+
|
|
25
|
+
- Added `hosting_websites_start-setup` — Start website setup
|
|
26
|
+
- Changed the description and input schema of `hosting_websites_list-setups`
|
|
27
|
+
|
|
28
|
+
### Also in this release
|
|
29
|
+
|
|
30
|
+
- Documentation: `README.md`
|
|
31
|
+
- Dependencies: `package-lock.json`
|
|
32
|
+
- Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
|
|
33
|
+
- Build and packaging: `types.d.ts`
|
|
34
|
+
|
|
7
35
|
## v2.7.3 — 2026-10-05
|
|
8
36
|
|
|
9
37
|
### Operations
|
package/README.md
CHANGED
|
@@ -69,14 +69,14 @@ pnpm update -g @hostinger/mcp
|
|
|
69
69
|
|
|
70
70
|
This package installs the following MCP server commands:
|
|
71
71
|
|
|
72
|
-
- `hostinger-api-mcp` — unified server over every operation (
|
|
72
|
+
- `hostinger-api-mcp` — unified server over every operation (408 total)
|
|
73
73
|
- `hostinger-agency-hosting-mcp` — 42 operations for agency-hosting
|
|
74
74
|
- `hostinger-billing-mcp` — 9 operations for billing
|
|
75
75
|
- `hostinger-dns-mcp` — 8 operations for dns
|
|
76
76
|
- `hostinger-domains-mcp` — 42 operations for domains
|
|
77
77
|
- `hostinger-ecommerce-mcp` — 29 operations for ecommerce
|
|
78
78
|
- `hostinger-horizons-mcp` — 6 operations for horizons
|
|
79
|
-
- `hostinger-hosting-mcp` —
|
|
79
|
+
- `hostinger-hosting-mcp` — 80 operations for hosting
|
|
80
80
|
- `hostinger-mail-mcp` — 38 operations for mail
|
|
81
81
|
- `hostinger-reach-mcp` — 52 operations for reach
|
|
82
82
|
- `hostinger-vps-mcp` — 64 operations for vps
|
|
@@ -1747,6 +1747,9 @@ Publish a Hostinger Horizons website so its latest changes go live.\n
|
|
|
1747
1747
|
Use this tool when the user asks to publish, deploy or make their website live.\n
|
|
1748
1748
|
This tool starts the publish process and returns the URL the website will be live on.
|
|
1749
1749
|
Publishing happens asynchronously and takes a few minutes.\n
|
|
1750
|
+
Set `is_template` only when the user explicitly asks to share the website as a template:
|
|
1751
|
+
true adds a "Use template" banner to its published pages that copies the website into the
|
|
1752
|
+
visitor's own account, and false removes it. Leave it out to keep the current setting.\n
|
|
1750
1753
|
After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing
|
|
1751
1754
|
that the website is being published and you should provide the published URL to the user immediately.
|
|
1752
1755
|
|
|
@@ -1758,6 +1761,10 @@ that the website is being published and you should provide the published URL to
|
|
|
1758
1761
|
Get the link for the user to open their website in Hostinger Horizons interface.\n
|
|
1759
1762
|
Use this tool when the user wants the link to an existing website, or when you need its
|
|
1760
1763
|
website URL before or after editing it.\n
|
|
1764
|
+
`is_in_progress` is true while changes are being generated or the website is being published;
|
|
1765
|
+
wait until it is false before publishing. `published_at` is when the website was last published,
|
|
1766
|
+
`is_template` is whether its published pages show the "Use template" banner, and
|
|
1767
|
+
`has_ecommerce_store` is whether it has an online store.\n
|
|
1761
1768
|
Websites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons
|
|
1762
1769
|
interface in the provided website URL.
|
|
1763
1770
|
|
|
@@ -2510,19 +2517,48 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
2510
2517
|
#### hosting_websites_list-setups
|
|
2511
2518
|
|
|
2512
2519
|
Returns the website setups started in the last 24 hours for the hosting accounts
|
|
2513
|
-
accessible to the authenticated client, newest first.
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
`
|
|
2520
|
+
accessible to the authenticated client, newest first. Narrow the list with the
|
|
2521
|
+
`order_id`, `subscription_id` or `domain` filters.
|
|
2522
|
+
|
|
2523
|
+
Meant for polling right after creating a website or starting a website setup: the
|
|
2524
|
+
website shows up in the websites list before its server-side setup has finished, and
|
|
2525
|
+
while the setup is `running` endpoints that operate on that website may respond with
|
|
2526
|
+
`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and
|
|
2527
|
+
wait for `status: completed` before uploading files, deploying or creating databases.
|
|
2520
2528
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
2521
2529
|
over an hour. Setups older than 24 hours are not listed.
|
|
2522
2530
|
|
|
2531
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,
|
|
2532
|
+
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.
|
|
2533
|
+
|
|
2523
2534
|
- **Method**: `GET`
|
|
2524
2535
|
- **Path**: `/api/hosting/v1/onboardings`
|
|
2525
2536
|
|
|
2537
|
+
#### hosting_websites_start-setup
|
|
2538
|
+
|
|
2539
|
+
Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
2540
|
+
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
2541
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
2542
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
2543
|
+
|
|
2544
|
+
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
2545
|
+
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
2546
|
+
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
2547
|
+
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless
|
|
2548
|
+
website; `headless_wordpress` additionally installs WordPress into the `cms` directory
|
|
2549
|
+
of the website root with generated credentials.
|
|
2550
|
+
|
|
2551
|
+
Omit `domain` to set the website up on a generated temporary free subdomain.
|
|
2552
|
+
|
|
2553
|
+
The order must already have a hosting account: to create the first website on a new
|
|
2554
|
+
hosting plan use the create website endpoint, which takes the `datacenter_code`.
|
|
2555
|
+
Returns 404 when the order does not exist or is not accessible to the authenticated
|
|
2556
|
+
client, and 409 with a `Retry-After` header while a setup for the same domain is still
|
|
2557
|
+
running.
|
|
2558
|
+
|
|
2559
|
+
- **Method**: `POST`
|
|
2560
|
+
- **Path**: `/api/hosting/v1/orders/{order_id}/onboardings`
|
|
2561
|
+
|
|
2526
2562
|
#### hosting_orders_list
|
|
2527
2563
|
|
|
2528
2564
|
Retrieve a paginated list of orders accessible to the authenticated client.
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
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": "2.
|
|
9
|
+
"version": "2.9.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.9.0",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/src/core/runtime.js
CHANGED
|
@@ -64,7 +64,7 @@ const GetSkillRequestSchema = z.object({
|
|
|
64
64
|
|
|
65
65
|
/**
|
|
66
66
|
* MCP Server for Hostinger API
|
|
67
|
-
* Generated from OpenAPI spec version 1.
|
|
67
|
+
* Generated from OpenAPI spec version 1.60.0
|
|
68
68
|
*/
|
|
69
69
|
class MCPServer {
|
|
70
70
|
constructor({ name, version, tools, instructions, skills = [] }) {
|
package/src/core/runtime.ts
CHANGED
|
@@ -94,7 +94,7 @@ interface Skill { uri: string; frontmatter: Record<string, unknown>; resources:
|
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
* MCP Server for Hostinger API
|
|
97
|
-
* Generated from OpenAPI spec version 1.
|
|
97
|
+
* Generated from OpenAPI spec version 1.60.0
|
|
98
98
|
*/
|
|
99
99
|
class MCPServer {
|
|
100
100
|
private readonly name: string;
|
package/src/core/tools/all.js
CHANGED
|
@@ -5770,7 +5770,7 @@ export default [
|
|
|
5770
5770
|
"readOnlyHint": false,
|
|
5771
5771
|
"destructiveHint": false
|
|
5772
5772
|
},
|
|
5773
|
-
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
5773
|
+
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nSet `is_template` only when the user explicitly asks to share the website as a template:\ntrue adds a \"Use template\" banner to its published pages that copies the website into the\nvisitor's own account, and false removes it. Leave it out to keep the current setting.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
5774
5774
|
"method": "POST",
|
|
5775
5775
|
"path": "/api/horizons/v1/websites/{websiteId}/publish",
|
|
5776
5776
|
"inputSchema": {
|
|
@@ -5779,6 +5779,10 @@ export default [
|
|
|
5779
5779
|
"websiteId": {
|
|
5780
5780
|
"type": "string",
|
|
5781
5781
|
"description": "The website ID"
|
|
5782
|
+
},
|
|
5783
|
+
"is_template": {
|
|
5784
|
+
"type": "boolean",
|
|
5785
|
+
"description": "Set to true to publish the website as a template: its published pages show a \"Use template\" banner\nthat copies the website into the visitor's own account. Set to false to remove the banner.\nLeave it out to keep the current setting."
|
|
5782
5786
|
}
|
|
5783
5787
|
},
|
|
5784
5788
|
"required": [
|
|
@@ -5800,7 +5804,7 @@ export default [
|
|
|
5800
5804
|
"readOnlyHint": true,
|
|
5801
5805
|
"destructiveHint": false
|
|
5802
5806
|
},
|
|
5803
|
-
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
5807
|
+
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\n`is_in_progress` is true while changes are being generated or the website is being published;\nwait until it is false before publishing. `published_at` is when the website was last published,\n`is_template` is whether its published pages show the \"Use template\" banner, and\n`has_ecommerce_store` is whether it has an online store.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
5804
5808
|
"method": "GET",
|
|
5805
5809
|
"path": "/api/horizons/v1/websites/{websiteId}",
|
|
5806
5810
|
"inputSchema": {
|
|
@@ -8138,12 +8142,20 @@ export default [
|
|
|
8138
8142
|
"readOnlyHint": true,
|
|
8139
8143
|
"destructiveHint": false
|
|
8140
8144
|
},
|
|
8141
|
-
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first.\n\nMeant for polling right after creating a website: the
|
|
8145
|
+
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
|
|
8142
8146
|
"method": "GET",
|
|
8143
8147
|
"path": "/api/hosting/v1/onboardings",
|
|
8144
8148
|
"inputSchema": {
|
|
8145
8149
|
"type": "object",
|
|
8146
8150
|
"properties": {
|
|
8151
|
+
"order_id": {
|
|
8152
|
+
"type": "integer",
|
|
8153
|
+
"description": "Order ID"
|
|
8154
|
+
},
|
|
8155
|
+
"subscription_id": {
|
|
8156
|
+
"type": "string",
|
|
8157
|
+
"description": "Filter by hosting order subscription ID"
|
|
8158
|
+
},
|
|
8147
8159
|
"domain": {
|
|
8148
8160
|
"type": "string",
|
|
8149
8161
|
"description": "Filter by domain name (exact match)"
|
|
@@ -8158,6 +8170,90 @@ export default [
|
|
|
8158
8170
|
],
|
|
8159
8171
|
"group": "hosting"
|
|
8160
8172
|
},
|
|
8173
|
+
{
|
|
8174
|
+
"name": "hosting_websites_start-setup",
|
|
8175
|
+
"title": "Start website setup",
|
|
8176
|
+
"annotations": {
|
|
8177
|
+
"title": "Start website setup",
|
|
8178
|
+
"readOnlyHint": false,
|
|
8179
|
+
"destructiveHint": false
|
|
8180
|
+
},
|
|
8181
|
+
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nThe order must already have a hosting account: to create the first website on a new\nhosting plan use the create website endpoint, which takes the `datacenter_code`.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
|
|
8182
|
+
"method": "POST",
|
|
8183
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8184
|
+
"inputSchema": {
|
|
8185
|
+
"type": "object",
|
|
8186
|
+
"properties": {
|
|
8187
|
+
"order_id": {
|
|
8188
|
+
"type": "integer",
|
|
8189
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
8190
|
+
},
|
|
8191
|
+
"type": {
|
|
8192
|
+
"type": "string",
|
|
8193
|
+
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
|
|
8194
|
+
"enum": [
|
|
8195
|
+
"wordpress",
|
|
8196
|
+
"headless_wordpress",
|
|
8197
|
+
"headless_ecommerce",
|
|
8198
|
+
"headless_pocketbase"
|
|
8199
|
+
]
|
|
8200
|
+
},
|
|
8201
|
+
"domain": {
|
|
8202
|
+
"type": "string",
|
|
8203
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
8204
|
+
},
|
|
8205
|
+
"wordpress": {
|
|
8206
|
+
"type": "object",
|
|
8207
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
8208
|
+
"properties": {
|
|
8209
|
+
"language": {
|
|
8210
|
+
"type": "string",
|
|
8211
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
8212
|
+
},
|
|
8213
|
+
"is_ai_builder": {
|
|
8214
|
+
"type": "boolean",
|
|
8215
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
8216
|
+
},
|
|
8217
|
+
"admin": {
|
|
8218
|
+
"type": "object",
|
|
8219
|
+
"description": "WordPress administrator account",
|
|
8220
|
+
"properties": {
|
|
8221
|
+
"user": {
|
|
8222
|
+
"type": "string",
|
|
8223
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
8224
|
+
},
|
|
8225
|
+
"password": {
|
|
8226
|
+
"type": "string",
|
|
8227
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
8228
|
+
},
|
|
8229
|
+
"email": {
|
|
8230
|
+
"type": "string",
|
|
8231
|
+
"description": "WordPress admin email address"
|
|
8232
|
+
}
|
|
8233
|
+
},
|
|
8234
|
+
"required": [
|
|
8235
|
+
"user",
|
|
8236
|
+
"password",
|
|
8237
|
+
"email"
|
|
8238
|
+
]
|
|
8239
|
+
}
|
|
8240
|
+
},
|
|
8241
|
+
"required": [
|
|
8242
|
+
"admin"
|
|
8243
|
+
]
|
|
8244
|
+
}
|
|
8245
|
+
},
|
|
8246
|
+
"required": [
|
|
8247
|
+
"order_id"
|
|
8248
|
+
]
|
|
8249
|
+
},
|
|
8250
|
+
"security": [
|
|
8251
|
+
{
|
|
8252
|
+
"apiToken": []
|
|
8253
|
+
}
|
|
8254
|
+
],
|
|
8255
|
+
"group": "hosting"
|
|
8256
|
+
},
|
|
8161
8257
|
{
|
|
8162
8258
|
"name": "hosting_orders_list",
|
|
8163
8259
|
"title": "List orders",
|
package/src/core/tools/all.ts
CHANGED
|
@@ -5784,7 +5784,7 @@ const tools: OpenApiTool[] = [
|
|
|
5784
5784
|
"readOnlyHint": false,
|
|
5785
5785
|
"destructiveHint": false
|
|
5786
5786
|
},
|
|
5787
|
-
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
5787
|
+
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nSet `is_template` only when the user explicitly asks to share the website as a template:\ntrue adds a \"Use template\" banner to its published pages that copies the website into the\nvisitor's own account, and false removes it. Leave it out to keep the current setting.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
5788
5788
|
"method": "POST",
|
|
5789
5789
|
"path": "/api/horizons/v1/websites/{websiteId}/publish",
|
|
5790
5790
|
"inputSchema": {
|
|
@@ -5793,6 +5793,10 @@ const tools: OpenApiTool[] = [
|
|
|
5793
5793
|
"websiteId": {
|
|
5794
5794
|
"type": "string",
|
|
5795
5795
|
"description": "The website ID"
|
|
5796
|
+
},
|
|
5797
|
+
"is_template": {
|
|
5798
|
+
"type": "boolean",
|
|
5799
|
+
"description": "Set to true to publish the website as a template: its published pages show a \"Use template\" banner\nthat copies the website into the visitor's own account. Set to false to remove the banner.\nLeave it out to keep the current setting."
|
|
5796
5800
|
}
|
|
5797
5801
|
},
|
|
5798
5802
|
"required": [
|
|
@@ -5814,7 +5818,7 @@ const tools: OpenApiTool[] = [
|
|
|
5814
5818
|
"readOnlyHint": true,
|
|
5815
5819
|
"destructiveHint": false
|
|
5816
5820
|
},
|
|
5817
|
-
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
5821
|
+
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\n`is_in_progress` is true while changes are being generated or the website is being published;\nwait until it is false before publishing. `published_at` is when the website was last published,\n`is_template` is whether its published pages show the \"Use template\" banner, and\n`has_ecommerce_store` is whether it has an online store.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
5818
5822
|
"method": "GET",
|
|
5819
5823
|
"path": "/api/horizons/v1/websites/{websiteId}",
|
|
5820
5824
|
"inputSchema": {
|
|
@@ -8152,12 +8156,20 @@ const tools: OpenApiTool[] = [
|
|
|
8152
8156
|
"readOnlyHint": true,
|
|
8153
8157
|
"destructiveHint": false
|
|
8154
8158
|
},
|
|
8155
|
-
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first.\n\nMeant for polling right after creating a website: the
|
|
8159
|
+
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
|
|
8156
8160
|
"method": "GET",
|
|
8157
8161
|
"path": "/api/hosting/v1/onboardings",
|
|
8158
8162
|
"inputSchema": {
|
|
8159
8163
|
"type": "object",
|
|
8160
8164
|
"properties": {
|
|
8165
|
+
"order_id": {
|
|
8166
|
+
"type": "integer",
|
|
8167
|
+
"description": "Order ID"
|
|
8168
|
+
},
|
|
8169
|
+
"subscription_id": {
|
|
8170
|
+
"type": "string",
|
|
8171
|
+
"description": "Filter by hosting order subscription ID"
|
|
8172
|
+
},
|
|
8161
8173
|
"domain": {
|
|
8162
8174
|
"type": "string",
|
|
8163
8175
|
"description": "Filter by domain name (exact match)"
|
|
@@ -8172,6 +8184,90 @@ const tools: OpenApiTool[] = [
|
|
|
8172
8184
|
],
|
|
8173
8185
|
"group": "hosting"
|
|
8174
8186
|
},
|
|
8187
|
+
{
|
|
8188
|
+
"name": "hosting_websites_start-setup",
|
|
8189
|
+
"title": "Start website setup",
|
|
8190
|
+
"annotations": {
|
|
8191
|
+
"title": "Start website setup",
|
|
8192
|
+
"readOnlyHint": false,
|
|
8193
|
+
"destructiveHint": false
|
|
8194
|
+
},
|
|
8195
|
+
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nThe order must already have a hosting account: to create the first website on a new\nhosting plan use the create website endpoint, which takes the `datacenter_code`.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
|
|
8196
|
+
"method": "POST",
|
|
8197
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8198
|
+
"inputSchema": {
|
|
8199
|
+
"type": "object",
|
|
8200
|
+
"properties": {
|
|
8201
|
+
"order_id": {
|
|
8202
|
+
"type": "integer",
|
|
8203
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
8204
|
+
},
|
|
8205
|
+
"type": {
|
|
8206
|
+
"type": "string",
|
|
8207
|
+
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
|
|
8208
|
+
"enum": [
|
|
8209
|
+
"wordpress",
|
|
8210
|
+
"headless_wordpress",
|
|
8211
|
+
"headless_ecommerce",
|
|
8212
|
+
"headless_pocketbase"
|
|
8213
|
+
]
|
|
8214
|
+
},
|
|
8215
|
+
"domain": {
|
|
8216
|
+
"type": "string",
|
|
8217
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
8218
|
+
},
|
|
8219
|
+
"wordpress": {
|
|
8220
|
+
"type": "object",
|
|
8221
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
8222
|
+
"properties": {
|
|
8223
|
+
"language": {
|
|
8224
|
+
"type": "string",
|
|
8225
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
8226
|
+
},
|
|
8227
|
+
"is_ai_builder": {
|
|
8228
|
+
"type": "boolean",
|
|
8229
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
8230
|
+
},
|
|
8231
|
+
"admin": {
|
|
8232
|
+
"type": "object",
|
|
8233
|
+
"description": "WordPress administrator account",
|
|
8234
|
+
"properties": {
|
|
8235
|
+
"user": {
|
|
8236
|
+
"type": "string",
|
|
8237
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
8238
|
+
},
|
|
8239
|
+
"password": {
|
|
8240
|
+
"type": "string",
|
|
8241
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
8242
|
+
},
|
|
8243
|
+
"email": {
|
|
8244
|
+
"type": "string",
|
|
8245
|
+
"description": "WordPress admin email address"
|
|
8246
|
+
}
|
|
8247
|
+
},
|
|
8248
|
+
"required": [
|
|
8249
|
+
"user",
|
|
8250
|
+
"password",
|
|
8251
|
+
"email"
|
|
8252
|
+
]
|
|
8253
|
+
}
|
|
8254
|
+
},
|
|
8255
|
+
"required": [
|
|
8256
|
+
"admin"
|
|
8257
|
+
]
|
|
8258
|
+
}
|
|
8259
|
+
},
|
|
8260
|
+
"required": [
|
|
8261
|
+
"order_id"
|
|
8262
|
+
]
|
|
8263
|
+
},
|
|
8264
|
+
"security": [
|
|
8265
|
+
{
|
|
8266
|
+
"apiToken": []
|
|
8267
|
+
}
|
|
8268
|
+
],
|
|
8269
|
+
"group": "hosting"
|
|
8270
|
+
},
|
|
8175
8271
|
{
|
|
8176
8272
|
"name": "hosting_orders_list",
|
|
8177
8273
|
"title": "List orders",
|
|
@@ -168,7 +168,7 @@ export default [
|
|
|
168
168
|
"readOnlyHint": false,
|
|
169
169
|
"destructiveHint": false
|
|
170
170
|
},
|
|
171
|
-
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
171
|
+
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nSet `is_template` only when the user explicitly asks to share the website as a template:\ntrue adds a \"Use template\" banner to its published pages that copies the website into the\nvisitor's own account, and false removes it. Leave it out to keep the current setting.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
172
172
|
"method": "POST",
|
|
173
173
|
"path": "/api/horizons/v1/websites/{websiteId}/publish",
|
|
174
174
|
"inputSchema": {
|
|
@@ -177,6 +177,10 @@ export default [
|
|
|
177
177
|
"websiteId": {
|
|
178
178
|
"type": "string",
|
|
179
179
|
"description": "The website ID"
|
|
180
|
+
},
|
|
181
|
+
"is_template": {
|
|
182
|
+
"type": "boolean",
|
|
183
|
+
"description": "Set to true to publish the website as a template: its published pages show a \"Use template\" banner\nthat copies the website into the visitor's own account. Set to false to remove the banner.\nLeave it out to keep the current setting."
|
|
180
184
|
}
|
|
181
185
|
},
|
|
182
186
|
"required": [
|
|
@@ -198,7 +202,7 @@ export default [
|
|
|
198
202
|
"readOnlyHint": true,
|
|
199
203
|
"destructiveHint": false
|
|
200
204
|
},
|
|
201
|
-
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
205
|
+
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\n`is_in_progress` is true while changes are being generated or the website is being published;\nwait until it is false before publishing. `published_at` is when the website was last published,\n`is_template` is whether its published pages show the \"Use template\" banner, and\n`has_ecommerce_store` is whether it has an online store.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
202
206
|
"method": "GET",
|
|
203
207
|
"path": "/api/horizons/v1/websites/{websiteId}",
|
|
204
208
|
"inputSchema": {
|
|
@@ -182,7 +182,7 @@ const tools: OpenApiTool[] = [
|
|
|
182
182
|
"readOnlyHint": false,
|
|
183
183
|
"destructiveHint": false
|
|
184
184
|
},
|
|
185
|
-
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
185
|
+
"description": "Publish a Hostinger Horizons website so its latest changes go live.\\n\nUse this tool when the user asks to publish, deploy or make their website live.\\n\nThis tool starts the publish process and returns the URL the website will be live on.\nPublishing happens asynchronously and takes a few minutes.\\n\nSet `is_template` only when the user explicitly asks to share the website as a template:\ntrue adds a \"Use template\" banner to its published pages that copies the website into the\nvisitor's own account, and false removes it. Leave it out to keep the current setting.\\n\nAfter invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing\nthat the website is being published and you should provide the published URL to the user immediately.",
|
|
186
186
|
"method": "POST",
|
|
187
187
|
"path": "/api/horizons/v1/websites/{websiteId}/publish",
|
|
188
188
|
"inputSchema": {
|
|
@@ -191,6 +191,10 @@ const tools: OpenApiTool[] = [
|
|
|
191
191
|
"websiteId": {
|
|
192
192
|
"type": "string",
|
|
193
193
|
"description": "The website ID"
|
|
194
|
+
},
|
|
195
|
+
"is_template": {
|
|
196
|
+
"type": "boolean",
|
|
197
|
+
"description": "Set to true to publish the website as a template: its published pages show a \"Use template\" banner\nthat copies the website into the visitor's own account. Set to false to remove the banner.\nLeave it out to keep the current setting."
|
|
194
198
|
}
|
|
195
199
|
},
|
|
196
200
|
"required": [
|
|
@@ -212,7 +216,7 @@ const tools: OpenApiTool[] = [
|
|
|
212
216
|
"readOnlyHint": true,
|
|
213
217
|
"destructiveHint": false
|
|
214
218
|
},
|
|
215
|
-
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
219
|
+
"description": "Get the link for the user to open their website in Hostinger Horizons interface.\\n\nUse this tool when the user wants the link to an existing website, or when you need its\nwebsite URL before or after editing it.\\n\n`is_in_progress` is true while changes are being generated or the website is being published;\nwait until it is false before publishing. `published_at` is when the website was last published,\n`is_template` is whether its published pages show the \"Use template\" banner, and\n`has_ecommerce_store` is whether it has an online store.\\n\nWebsites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons\ninterface in the provided website URL.",
|
|
216
220
|
"method": "GET",
|
|
217
221
|
"path": "/api/horizons/v1/websites/{websiteId}",
|
|
218
222
|
"inputSchema": {
|
|
@@ -2615,12 +2615,20 @@ export default [
|
|
|
2615
2615
|
"readOnlyHint": true,
|
|
2616
2616
|
"destructiveHint": false
|
|
2617
2617
|
},
|
|
2618
|
-
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first.\n\nMeant for polling right after creating a website: the
|
|
2618
|
+
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
|
|
2619
2619
|
"method": "GET",
|
|
2620
2620
|
"path": "/api/hosting/v1/onboardings",
|
|
2621
2621
|
"inputSchema": {
|
|
2622
2622
|
"type": "object",
|
|
2623
2623
|
"properties": {
|
|
2624
|
+
"order_id": {
|
|
2625
|
+
"type": "integer",
|
|
2626
|
+
"description": "Order ID"
|
|
2627
|
+
},
|
|
2628
|
+
"subscription_id": {
|
|
2629
|
+
"type": "string",
|
|
2630
|
+
"description": "Filter by hosting order subscription ID"
|
|
2631
|
+
},
|
|
2624
2632
|
"domain": {
|
|
2625
2633
|
"type": "string",
|
|
2626
2634
|
"description": "Filter by domain name (exact match)"
|
|
@@ -2635,6 +2643,90 @@ export default [
|
|
|
2635
2643
|
],
|
|
2636
2644
|
"group": "hosting"
|
|
2637
2645
|
},
|
|
2646
|
+
{
|
|
2647
|
+
"name": "hosting_websites_start-setup",
|
|
2648
|
+
"title": "Start website setup",
|
|
2649
|
+
"annotations": {
|
|
2650
|
+
"title": "Start website setup",
|
|
2651
|
+
"readOnlyHint": false,
|
|
2652
|
+
"destructiveHint": false
|
|
2653
|
+
},
|
|
2654
|
+
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nThe order must already have a hosting account: to create the first website on a new\nhosting plan use the create website endpoint, which takes the `datacenter_code`.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
|
|
2655
|
+
"method": "POST",
|
|
2656
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
2657
|
+
"inputSchema": {
|
|
2658
|
+
"type": "object",
|
|
2659
|
+
"properties": {
|
|
2660
|
+
"order_id": {
|
|
2661
|
+
"type": "integer",
|
|
2662
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
2663
|
+
},
|
|
2664
|
+
"type": {
|
|
2665
|
+
"type": "string",
|
|
2666
|
+
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
|
|
2667
|
+
"enum": [
|
|
2668
|
+
"wordpress",
|
|
2669
|
+
"headless_wordpress",
|
|
2670
|
+
"headless_ecommerce",
|
|
2671
|
+
"headless_pocketbase"
|
|
2672
|
+
]
|
|
2673
|
+
},
|
|
2674
|
+
"domain": {
|
|
2675
|
+
"type": "string",
|
|
2676
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
2677
|
+
},
|
|
2678
|
+
"wordpress": {
|
|
2679
|
+
"type": "object",
|
|
2680
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
2681
|
+
"properties": {
|
|
2682
|
+
"language": {
|
|
2683
|
+
"type": "string",
|
|
2684
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
2685
|
+
},
|
|
2686
|
+
"is_ai_builder": {
|
|
2687
|
+
"type": "boolean",
|
|
2688
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
2689
|
+
},
|
|
2690
|
+
"admin": {
|
|
2691
|
+
"type": "object",
|
|
2692
|
+
"description": "WordPress administrator account",
|
|
2693
|
+
"properties": {
|
|
2694
|
+
"user": {
|
|
2695
|
+
"type": "string",
|
|
2696
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
2697
|
+
},
|
|
2698
|
+
"password": {
|
|
2699
|
+
"type": "string",
|
|
2700
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
2701
|
+
},
|
|
2702
|
+
"email": {
|
|
2703
|
+
"type": "string",
|
|
2704
|
+
"description": "WordPress admin email address"
|
|
2705
|
+
}
|
|
2706
|
+
},
|
|
2707
|
+
"required": [
|
|
2708
|
+
"user",
|
|
2709
|
+
"password",
|
|
2710
|
+
"email"
|
|
2711
|
+
]
|
|
2712
|
+
}
|
|
2713
|
+
},
|
|
2714
|
+
"required": [
|
|
2715
|
+
"admin"
|
|
2716
|
+
]
|
|
2717
|
+
}
|
|
2718
|
+
},
|
|
2719
|
+
"required": [
|
|
2720
|
+
"order_id"
|
|
2721
|
+
]
|
|
2722
|
+
},
|
|
2723
|
+
"security": [
|
|
2724
|
+
{
|
|
2725
|
+
"apiToken": []
|
|
2726
|
+
}
|
|
2727
|
+
],
|
|
2728
|
+
"group": "hosting"
|
|
2729
|
+
},
|
|
2638
2730
|
{
|
|
2639
2731
|
"name": "hosting_orders_list",
|
|
2640
2732
|
"title": "List orders",
|
|
@@ -2629,12 +2629,20 @@ const tools: OpenApiTool[] = [
|
|
|
2629
2629
|
"readOnlyHint": true,
|
|
2630
2630
|
"destructiveHint": false
|
|
2631
2631
|
},
|
|
2632
|
-
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first.\n\nMeant for polling right after creating a website: the
|
|
2632
|
+
"description": "Returns the website setups started in the last 24 hours for the hosting accounts\naccessible to the authenticated client, newest first. Narrow the list with the\n`order_id`, `subscription_id` or `domain` filters.\n\nMeant for polling right after creating a website or starting a website setup: the\nwebsite shows up in the websites list before its server-side setup has finished, and\nwhile the setup is `running` endpoints that operate on that website may respond with\n`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and\nwait for `status: completed` before uploading files, deploying or creating databases.\n`failed` means the setup stopped before finishing or has not reported progress for\nover an hour. Setups older than 24 hours are not listed.\n\n`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,\n`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.",
|
|
2633
2633
|
"method": "GET",
|
|
2634
2634
|
"path": "/api/hosting/v1/onboardings",
|
|
2635
2635
|
"inputSchema": {
|
|
2636
2636
|
"type": "object",
|
|
2637
2637
|
"properties": {
|
|
2638
|
+
"order_id": {
|
|
2639
|
+
"type": "integer",
|
|
2640
|
+
"description": "Order ID"
|
|
2641
|
+
},
|
|
2642
|
+
"subscription_id": {
|
|
2643
|
+
"type": "string",
|
|
2644
|
+
"description": "Filter by hosting order subscription ID"
|
|
2645
|
+
},
|
|
2638
2646
|
"domain": {
|
|
2639
2647
|
"type": "string",
|
|
2640
2648
|
"description": "Filter by domain name (exact match)"
|
|
@@ -2649,6 +2657,90 @@ const tools: OpenApiTool[] = [
|
|
|
2649
2657
|
],
|
|
2650
2658
|
"group": "hosting"
|
|
2651
2659
|
},
|
|
2660
|
+
{
|
|
2661
|
+
"name": "hosting_websites_start-setup",
|
|
2662
|
+
"title": "Start website setup",
|
|
2663
|
+
"annotations": {
|
|
2664
|
+
"title": "Start website setup",
|
|
2665
|
+
"readOnlyHint": false,
|
|
2666
|
+
"destructiveHint": false
|
|
2667
|
+
},
|
|
2668
|
+
"description": "Starts a website setup on a Web or Cloud hosting order and returns the created setup\nright away; the website itself is provisioned asynchronously. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`status: completed` before uploading files, deploying or creating databases.\n\nOmit `type` for an empty website. `type: wordpress` installs WordPress in the website\nroot with the admin user, email and password from `wordpress`, the domain as the site\ntitle, and `en_US` when `wordpress.language` is omitted. The headless types\n(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless\nwebsite; `headless_wordpress` additionally installs WordPress into the `cms` directory\nof the website root with generated credentials.\n\nOmit `domain` to set the website up on a generated temporary free subdomain.\n\nThe order must already have a hosting account: to create the first website on a new\nhosting plan use the create website endpoint, which takes the `datacenter_code`.\nReturns 404 when the order does not exist or is not accessible to the authenticated\nclient, and 409 with a `Retry-After` header while a setup for the same domain is still\nrunning.",
|
|
2669
|
+
"method": "POST",
|
|
2670
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
2671
|
+
"inputSchema": {
|
|
2672
|
+
"type": "object",
|
|
2673
|
+
"properties": {
|
|
2674
|
+
"order_id": {
|
|
2675
|
+
"type": "integer",
|
|
2676
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
2677
|
+
},
|
|
2678
|
+
"type": {
|
|
2679
|
+
"type": "string",
|
|
2680
|
+
"description": "Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.",
|
|
2681
|
+
"enum": [
|
|
2682
|
+
"wordpress",
|
|
2683
|
+
"headless_wordpress",
|
|
2684
|
+
"headless_ecommerce",
|
|
2685
|
+
"headless_pocketbase"
|
|
2686
|
+
]
|
|
2687
|
+
},
|
|
2688
|
+
"domain": {
|
|
2689
|
+
"type": "string",
|
|
2690
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
2691
|
+
},
|
|
2692
|
+
"wordpress": {
|
|
2693
|
+
"type": "object",
|
|
2694
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
2695
|
+
"properties": {
|
|
2696
|
+
"language": {
|
|
2697
|
+
"type": "string",
|
|
2698
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
2699
|
+
},
|
|
2700
|
+
"is_ai_builder": {
|
|
2701
|
+
"type": "boolean",
|
|
2702
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
2703
|
+
},
|
|
2704
|
+
"admin": {
|
|
2705
|
+
"type": "object",
|
|
2706
|
+
"description": "WordPress administrator account",
|
|
2707
|
+
"properties": {
|
|
2708
|
+
"user": {
|
|
2709
|
+
"type": "string",
|
|
2710
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
2711
|
+
},
|
|
2712
|
+
"password": {
|
|
2713
|
+
"type": "string",
|
|
2714
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
2715
|
+
},
|
|
2716
|
+
"email": {
|
|
2717
|
+
"type": "string",
|
|
2718
|
+
"description": "WordPress admin email address"
|
|
2719
|
+
}
|
|
2720
|
+
},
|
|
2721
|
+
"required": [
|
|
2722
|
+
"user",
|
|
2723
|
+
"password",
|
|
2724
|
+
"email"
|
|
2725
|
+
]
|
|
2726
|
+
}
|
|
2727
|
+
},
|
|
2728
|
+
"required": [
|
|
2729
|
+
"admin"
|
|
2730
|
+
]
|
|
2731
|
+
}
|
|
2732
|
+
},
|
|
2733
|
+
"required": [
|
|
2734
|
+
"order_id"
|
|
2735
|
+
]
|
|
2736
|
+
},
|
|
2737
|
+
"security": [
|
|
2738
|
+
{
|
|
2739
|
+
"apiToken": []
|
|
2740
|
+
}
|
|
2741
|
+
],
|
|
2742
|
+
"group": "hosting"
|
|
2743
|
+
},
|
|
2652
2744
|
{
|
|
2653
2745
|
"name": "hosting_orders_list",
|
|
2654
2746
|
"title": "List orders",
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.9.0', tools, instructions });
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.9.0', tools, instructions });
|
package/src/servers/all.js
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '2.
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '2.9.0', tools, instructions, skills });
|
package/src/servers/all.ts
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '2.
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '2.9.0', tools, instructions, skills });
|
package/src/servers/billing.js
CHANGED
package/src/servers/billing.ts
CHANGED
package/src/servers/dns.js
CHANGED
package/src/servers/dns.ts
CHANGED
package/src/servers/domains.js
CHANGED
package/src/servers/domains.ts
CHANGED
package/src/servers/ecommerce.js
CHANGED
package/src/servers/ecommerce.ts
CHANGED
package/src/servers/horizons.js
CHANGED
package/src/servers/horizons.ts
CHANGED
package/src/servers/hosting.js
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '2.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '2.9.0', tools, instructions });
|
package/src/servers/hosting.ts
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '2.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '2.9.0', tools, instructions });
|
package/src/servers/mail.js
CHANGED
package/src/servers/mail.ts
CHANGED
package/src/servers/reach.js
CHANGED
package/src/servers/reach.ts
CHANGED
package/src/servers/vps.js
CHANGED
package/src/servers/vps.ts
CHANGED
package/src/servers/wordpress.js
CHANGED
package/src/servers/wordpress.ts
CHANGED
package/types.d.ts
CHANGED
|
@@ -3191,6 +3191,9 @@ and do not generate code yourself in the chat.
|
|
|
3191
3191
|
Use this tool when the user asks to publish, deploy or make their website live.\n
|
|
3192
3192
|
This tool starts the publish process and returns the URL the website will be live on.
|
|
3193
3193
|
Publishing happens asynchronously and takes a few minutes.\n
|
|
3194
|
+
Set `is_template` only when the user explicitly asks to share the website as a template:
|
|
3195
|
+
true adds a "Use template" banner to its published pages that copies the website into the
|
|
3196
|
+
visitor's own account, and false removes it. Leave it out to keep the current setting.\n
|
|
3194
3197
|
After invoking this tool, your chat reply must be EXACTLY 1 sentence summarizing
|
|
3195
3198
|
that the website is being published and you should provide the published URL to the user immediately.
|
|
3196
3199
|
*/
|
|
@@ -3200,6 +3203,12 @@ that the website is being published and you should provide the published URL to
|
|
|
3200
3203
|
* The website ID
|
|
3201
3204
|
*/
|
|
3202
3205
|
websiteId: string;
|
|
3206
|
+
/**
|
|
3207
|
+
* Set to true to publish the website as a template: its published pages show a "Use template" banner
|
|
3208
|
+
that copies the website into the visitor's own account. Set to false to remove the banner.
|
|
3209
|
+
Leave it out to keep the current setting.
|
|
3210
|
+
*/
|
|
3211
|
+
is_template?: boolean;
|
|
3203
3212
|
};
|
|
3204
3213
|
response: any; // Response structure will depend on the API
|
|
3205
3214
|
};
|
|
@@ -3208,6 +3217,10 @@ that the website is being published and you should provide the published URL to
|
|
|
3208
3217
|
* Get the link for the user to open their website in Hostinger Horizons interface.\n
|
|
3209
3218
|
Use this tool when the user wants the link to an existing website, or when you need its
|
|
3210
3219
|
website URL before or after editing it.\n
|
|
3220
|
+
`is_in_progress` is true while changes are being generated or the website is being published;
|
|
3221
|
+
wait until it is false before publishing. `published_at` is when the website was last published,
|
|
3222
|
+
`is_template` is whether its published pages show the "Use template" banner, and
|
|
3223
|
+
`has_ecommerce_store` is whether it has an online store.\n
|
|
3211
3224
|
Websites can be edited with the `Edit website` tool, or by the user in Hostinger Horizons
|
|
3212
3225
|
interface in the provided website URL.
|
|
3213
3226
|
*/
|
|
@@ -4717,18 +4730,30 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
4717
4730
|
|
|
4718
4731
|
/**
|
|
4719
4732
|
* Returns the website setups started in the last 24 hours for the hosting accounts
|
|
4720
|
-
accessible to the authenticated client, newest first.
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
`
|
|
4733
|
+
accessible to the authenticated client, newest first. Narrow the list with the
|
|
4734
|
+
`order_id`, `subscription_id` or `domain` filters.
|
|
4735
|
+
|
|
4736
|
+
Meant for polling right after creating a website or starting a website setup: the
|
|
4737
|
+
website shows up in the websites list before its server-side setup has finished, and
|
|
4738
|
+
while the setup is `running` endpoints that operate on that website may respond with
|
|
4739
|
+
`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and
|
|
4740
|
+
wait for `status: completed` before uploading files, deploying or creating databases.
|
|
4727
4741
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
4728
4742
|
over an hour. Setups older than 24 hours are not listed.
|
|
4743
|
+
|
|
4744
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,
|
|
4745
|
+
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.
|
|
4729
4746
|
*/
|
|
4730
4747
|
"hosting_websites_list-setups": {
|
|
4731
4748
|
params: {
|
|
4749
|
+
/**
|
|
4750
|
+
* Order ID
|
|
4751
|
+
*/
|
|
4752
|
+
order_id?: number;
|
|
4753
|
+
/**
|
|
4754
|
+
* Filter by hosting order subscription ID
|
|
4755
|
+
*/
|
|
4756
|
+
subscription_id?: string;
|
|
4732
4757
|
/**
|
|
4733
4758
|
* Filter by domain name (exact match)
|
|
4734
4759
|
*/
|
|
@@ -4737,6 +4762,49 @@ over an hour. Setups older than 24 hours are not listed.
|
|
|
4737
4762
|
response: any; // Response structure will depend on the API
|
|
4738
4763
|
};
|
|
4739
4764
|
|
|
4765
|
+
/**
|
|
4766
|
+
* Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
4767
|
+
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
4768
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
4769
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
4770
|
+
|
|
4771
|
+
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
4772
|
+
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
4773
|
+
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
4774
|
+
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless
|
|
4775
|
+
website; `headless_wordpress` additionally installs WordPress into the `cms` directory
|
|
4776
|
+
of the website root with generated credentials.
|
|
4777
|
+
|
|
4778
|
+
Omit `domain` to set the website up on a generated temporary free subdomain.
|
|
4779
|
+
|
|
4780
|
+
The order must already have a hosting account: to create the first website on a new
|
|
4781
|
+
hosting plan use the create website endpoint, which takes the `datacenter_code`.
|
|
4782
|
+
Returns 404 when the order does not exist or is not accessible to the authenticated
|
|
4783
|
+
client, and 409 with a `Retry-After` header while a setup for the same domain is still
|
|
4784
|
+
running.
|
|
4785
|
+
*/
|
|
4786
|
+
"hosting_websites_start-setup": {
|
|
4787
|
+
params: {
|
|
4788
|
+
/**
|
|
4789
|
+
* Hosting order ID. List orders to find available IDs.
|
|
4790
|
+
*/
|
|
4791
|
+
order_id: number;
|
|
4792
|
+
/**
|
|
4793
|
+
* Website type. Omit or `null` for an empty website. `wordpress` installs WordPress in the website root and requires `wordpress`. The headless types (`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless website; `headless_wordpress` additionally installs WordPress into the `cms` directory with generated credentials.
|
|
4794
|
+
*/
|
|
4795
|
+
type?: string;
|
|
4796
|
+
/**
|
|
4797
|
+
* Customer-owned domain. Cannot start with "www.". Omit or `null` to set the website up on a generated temporary free subdomain.
|
|
4798
|
+
*/
|
|
4799
|
+
domain?: string;
|
|
4800
|
+
/**
|
|
4801
|
+
* WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.
|
|
4802
|
+
*/
|
|
4803
|
+
wordpress?: object;
|
|
4804
|
+
};
|
|
4805
|
+
response: any; // Response structure will depend on the API
|
|
4806
|
+
};
|
|
4807
|
+
|
|
4740
4808
|
/**
|
|
4741
4809
|
* Retrieve a paginated list of orders accessible to the authenticated client.
|
|
4742
4810
|
|