hostinger-api-mcp 2.7.2 → 2.8.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 +26 -0
- package/README.md +41 -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 +96 -4
- package/src/core/tools/all.ts +96 -4
- package/src/core/tools/hosting.js +93 -1
- package/src/core/tools/hosting.ts +93 -1
- package/src/core/tools/wordpress.js +3 -3
- package/src/core/tools/wordpress.ts +3 -3
- 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 +66 -8
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,32 @@ 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.8.0 — 2026-10-06
|
|
8
|
+
|
|
9
|
+
### Operations
|
|
10
|
+
|
|
11
|
+
- Added `hosting_websites_start-setup` — Start website setup
|
|
12
|
+
- Changed the description and input schema of `hosting_websites_list-setups`
|
|
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.7.3 — 2026-10-05
|
|
22
|
+
|
|
23
|
+
### Operations
|
|
24
|
+
|
|
25
|
+
- Changed the description and input schema of `wordpress_installations_install`
|
|
26
|
+
|
|
27
|
+
### Also in this release
|
|
28
|
+
|
|
29
|
+
- Documentation: `README.md`
|
|
30
|
+
- Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
|
|
31
|
+
- Build and packaging: `types.d.ts`
|
|
32
|
+
|
|
7
33
|
## v2.7.2 — 2026-10-05
|
|
8
34
|
|
|
9
35
|
### 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
|
|
@@ -2510,19 +2510,48 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
2510
2510
|
#### hosting_websites_list-setups
|
|
2511
2511
|
|
|
2512
2512
|
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
|
-
`
|
|
2513
|
+
accessible to the authenticated client, newest first. Narrow the list with the
|
|
2514
|
+
`order_id`, `subscription_id` or `domain` filters.
|
|
2515
|
+
|
|
2516
|
+
Meant for polling right after creating a website or starting a website setup: the
|
|
2517
|
+
website shows up in the websites list before its server-side setup has finished, and
|
|
2518
|
+
while the setup is `running` endpoints that operate on that website may respond with
|
|
2519
|
+
`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and
|
|
2520
|
+
wait for `status: completed` before uploading files, deploying or creating databases.
|
|
2520
2521
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
2521
2522
|
over an hour. Setups older than 24 hours are not listed.
|
|
2522
2523
|
|
|
2524
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,
|
|
2525
|
+
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.
|
|
2526
|
+
|
|
2523
2527
|
- **Method**: `GET`
|
|
2524
2528
|
- **Path**: `/api/hosting/v1/onboardings`
|
|
2525
2529
|
|
|
2530
|
+
#### hosting_websites_start-setup
|
|
2531
|
+
|
|
2532
|
+
Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
2533
|
+
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
2534
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
2535
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
2536
|
+
|
|
2537
|
+
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
2538
|
+
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
2539
|
+
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
2540
|
+
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless
|
|
2541
|
+
website; `headless_wordpress` additionally installs WordPress into the `cms` directory
|
|
2542
|
+
of the website root with generated credentials.
|
|
2543
|
+
|
|
2544
|
+
Omit `domain` to set the website up on a generated temporary free subdomain.
|
|
2545
|
+
|
|
2546
|
+
The order must already have a hosting account: to create the first website on a new
|
|
2547
|
+
hosting plan use the create website endpoint, which takes the `datacenter_code`.
|
|
2548
|
+
Returns 404 when the order does not exist or is not accessible to the authenticated
|
|
2549
|
+
client, and 409 with a `Retry-After` header while a setup for the same domain is still
|
|
2550
|
+
running.
|
|
2551
|
+
|
|
2552
|
+
- **Method**: `POST`
|
|
2553
|
+
- **Path**: `/api/hosting/v1/orders/{order_id}/onboardings`
|
|
2554
|
+
|
|
2526
2555
|
#### hosting_orders_list
|
|
2527
2556
|
|
|
2528
2557
|
Retrieve a paginated list of orders accessible to the authenticated client.
|
|
@@ -4534,6 +4563,9 @@ takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered
|
|
|
4534
4563
|
by username and domain to track progress. When the installation appears in
|
|
4535
4564
|
that list, WordPress is ready.
|
|
4536
4565
|
|
|
4566
|
+
Returns 422 when the account already uses all the databases its plan allows,
|
|
4567
|
+
unless `database.name` is an existing database on the account.
|
|
4568
|
+
|
|
4537
4569
|
- **Method**: `POST`
|
|
4538
4570
|
- **Path**: `/api/hosting/v1/accounts/{username}/wordpress/installations`
|
|
4539
4571
|
|
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.8.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.8.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.59.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.59.0
|
|
98
98
|
*/
|
|
99
99
|
class MCPServer {
|
|
100
100
|
private readonly name: string;
|
package/src/core/tools/all.js
CHANGED
|
@@ -8138,12 +8138,20 @@ export default [
|
|
|
8138
8138
|
"readOnlyHint": true,
|
|
8139
8139
|
"destructiveHint": false
|
|
8140
8140
|
},
|
|
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
|
|
8141
|
+
"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
8142
|
"method": "GET",
|
|
8143
8143
|
"path": "/api/hosting/v1/onboardings",
|
|
8144
8144
|
"inputSchema": {
|
|
8145
8145
|
"type": "object",
|
|
8146
8146
|
"properties": {
|
|
8147
|
+
"order_id": {
|
|
8148
|
+
"type": "integer",
|
|
8149
|
+
"description": "Order ID"
|
|
8150
|
+
},
|
|
8151
|
+
"subscription_id": {
|
|
8152
|
+
"type": "string",
|
|
8153
|
+
"description": "Filter by hosting order subscription ID"
|
|
8154
|
+
},
|
|
8147
8155
|
"domain": {
|
|
8148
8156
|
"type": "string",
|
|
8149
8157
|
"description": "Filter by domain name (exact match)"
|
|
@@ -8158,6 +8166,90 @@ export default [
|
|
|
8158
8166
|
],
|
|
8159
8167
|
"group": "hosting"
|
|
8160
8168
|
},
|
|
8169
|
+
{
|
|
8170
|
+
"name": "hosting_websites_start-setup",
|
|
8171
|
+
"title": "Start website setup",
|
|
8172
|
+
"annotations": {
|
|
8173
|
+
"title": "Start website setup",
|
|
8174
|
+
"readOnlyHint": false,
|
|
8175
|
+
"destructiveHint": false
|
|
8176
|
+
},
|
|
8177
|
+
"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.",
|
|
8178
|
+
"method": "POST",
|
|
8179
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8180
|
+
"inputSchema": {
|
|
8181
|
+
"type": "object",
|
|
8182
|
+
"properties": {
|
|
8183
|
+
"order_id": {
|
|
8184
|
+
"type": "integer",
|
|
8185
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
8186
|
+
},
|
|
8187
|
+
"type": {
|
|
8188
|
+
"type": "string",
|
|
8189
|
+
"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.",
|
|
8190
|
+
"enum": [
|
|
8191
|
+
"wordpress",
|
|
8192
|
+
"headless_wordpress",
|
|
8193
|
+
"headless_ecommerce",
|
|
8194
|
+
"headless_pocketbase"
|
|
8195
|
+
]
|
|
8196
|
+
},
|
|
8197
|
+
"domain": {
|
|
8198
|
+
"type": "string",
|
|
8199
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
8200
|
+
},
|
|
8201
|
+
"wordpress": {
|
|
8202
|
+
"type": "object",
|
|
8203
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
8204
|
+
"properties": {
|
|
8205
|
+
"language": {
|
|
8206
|
+
"type": "string",
|
|
8207
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
8208
|
+
},
|
|
8209
|
+
"is_ai_builder": {
|
|
8210
|
+
"type": "boolean",
|
|
8211
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
8212
|
+
},
|
|
8213
|
+
"admin": {
|
|
8214
|
+
"type": "object",
|
|
8215
|
+
"description": "WordPress administrator account",
|
|
8216
|
+
"properties": {
|
|
8217
|
+
"user": {
|
|
8218
|
+
"type": "string",
|
|
8219
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
8220
|
+
},
|
|
8221
|
+
"password": {
|
|
8222
|
+
"type": "string",
|
|
8223
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
8224
|
+
},
|
|
8225
|
+
"email": {
|
|
8226
|
+
"type": "string",
|
|
8227
|
+
"description": "WordPress admin email address"
|
|
8228
|
+
}
|
|
8229
|
+
},
|
|
8230
|
+
"required": [
|
|
8231
|
+
"user",
|
|
8232
|
+
"password",
|
|
8233
|
+
"email"
|
|
8234
|
+
]
|
|
8235
|
+
}
|
|
8236
|
+
},
|
|
8237
|
+
"required": [
|
|
8238
|
+
"admin"
|
|
8239
|
+
]
|
|
8240
|
+
}
|
|
8241
|
+
},
|
|
8242
|
+
"required": [
|
|
8243
|
+
"order_id"
|
|
8244
|
+
]
|
|
8245
|
+
},
|
|
8246
|
+
"security": [
|
|
8247
|
+
{
|
|
8248
|
+
"apiToken": []
|
|
8249
|
+
}
|
|
8250
|
+
],
|
|
8251
|
+
"group": "hosting"
|
|
8252
|
+
},
|
|
8161
8253
|
{
|
|
8162
8254
|
"name": "hosting_orders_list",
|
|
8163
8255
|
"title": "List orders",
|
|
@@ -15472,7 +15564,7 @@ export default [
|
|
|
15472
15564
|
"readOnlyHint": false,
|
|
15473
15565
|
"destructiveHint": false
|
|
15474
15566
|
},
|
|
15475
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.",
|
|
15567
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
15476
15568
|
"method": "POST",
|
|
15477
15569
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
15478
15570
|
"inputSchema": {
|
|
@@ -15540,7 +15632,7 @@ export default [
|
|
|
15540
15632
|
},
|
|
15541
15633
|
"database": {
|
|
15542
15634
|
"type": "object",
|
|
15543
|
-
"description": "Optional. If the named database already exists, it
|
|
15635
|
+
"description": "Optional. If the named database already exists on the account, it is used for this WordPress install. Otherwise a new database is created with this name, or with a generated name when database is omitted or null. A new database gets a random database user and counts toward the plan's database limit.",
|
|
15544
15636
|
"properties": {
|
|
15545
15637
|
"name": {
|
|
15546
15638
|
"type": "string",
|
|
@@ -15548,7 +15640,7 @@ export default [
|
|
|
15548
15640
|
},
|
|
15549
15641
|
"password": {
|
|
15550
15642
|
"type": "string",
|
|
15551
|
-
"description": "
|
|
15643
|
+
"description": "Password for a new database. Random when omitted or null. Ignored when the named database already exists."
|
|
15552
15644
|
}
|
|
15553
15645
|
}
|
|
15554
15646
|
}
|
package/src/core/tools/all.ts
CHANGED
|
@@ -8152,12 +8152,20 @@ const tools: OpenApiTool[] = [
|
|
|
8152
8152
|
"readOnlyHint": true,
|
|
8153
8153
|
"destructiveHint": false
|
|
8154
8154
|
},
|
|
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
|
|
8155
|
+
"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
8156
|
"method": "GET",
|
|
8157
8157
|
"path": "/api/hosting/v1/onboardings",
|
|
8158
8158
|
"inputSchema": {
|
|
8159
8159
|
"type": "object",
|
|
8160
8160
|
"properties": {
|
|
8161
|
+
"order_id": {
|
|
8162
|
+
"type": "integer",
|
|
8163
|
+
"description": "Order ID"
|
|
8164
|
+
},
|
|
8165
|
+
"subscription_id": {
|
|
8166
|
+
"type": "string",
|
|
8167
|
+
"description": "Filter by hosting order subscription ID"
|
|
8168
|
+
},
|
|
8161
8169
|
"domain": {
|
|
8162
8170
|
"type": "string",
|
|
8163
8171
|
"description": "Filter by domain name (exact match)"
|
|
@@ -8172,6 +8180,90 @@ const tools: OpenApiTool[] = [
|
|
|
8172
8180
|
],
|
|
8173
8181
|
"group": "hosting"
|
|
8174
8182
|
},
|
|
8183
|
+
{
|
|
8184
|
+
"name": "hosting_websites_start-setup",
|
|
8185
|
+
"title": "Start website setup",
|
|
8186
|
+
"annotations": {
|
|
8187
|
+
"title": "Start website setup",
|
|
8188
|
+
"readOnlyHint": false,
|
|
8189
|
+
"destructiveHint": false
|
|
8190
|
+
},
|
|
8191
|
+
"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.",
|
|
8192
|
+
"method": "POST",
|
|
8193
|
+
"path": "/api/hosting/v1/orders/{order_id}/onboardings",
|
|
8194
|
+
"inputSchema": {
|
|
8195
|
+
"type": "object",
|
|
8196
|
+
"properties": {
|
|
8197
|
+
"order_id": {
|
|
8198
|
+
"type": "integer",
|
|
8199
|
+
"description": "Hosting order ID. List orders to find available IDs."
|
|
8200
|
+
},
|
|
8201
|
+
"type": {
|
|
8202
|
+
"type": "string",
|
|
8203
|
+
"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.",
|
|
8204
|
+
"enum": [
|
|
8205
|
+
"wordpress",
|
|
8206
|
+
"headless_wordpress",
|
|
8207
|
+
"headless_ecommerce",
|
|
8208
|
+
"headless_pocketbase"
|
|
8209
|
+
]
|
|
8210
|
+
},
|
|
8211
|
+
"domain": {
|
|
8212
|
+
"type": "string",
|
|
8213
|
+
"description": "Customer-owned domain. Cannot start with \"www.\". Omit or `null` to set the website up on a generated temporary free subdomain."
|
|
8214
|
+
},
|
|
8215
|
+
"wordpress": {
|
|
8216
|
+
"type": "object",
|
|
8217
|
+
"description": "WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.",
|
|
8218
|
+
"properties": {
|
|
8219
|
+
"language": {
|
|
8220
|
+
"type": "string",
|
|
8221
|
+
"description": "WordPress locale, for example `en_US` or `lt_LT`. Defaults to `en_US` when omitted."
|
|
8222
|
+
},
|
|
8223
|
+
"is_ai_builder": {
|
|
8224
|
+
"type": "boolean",
|
|
8225
|
+
"description": "When `true`, installs the Hostinger AI theme (`hostinger-ai-theme`). Defaults to `false` when omitted."
|
|
8226
|
+
},
|
|
8227
|
+
"admin": {
|
|
8228
|
+
"type": "object",
|
|
8229
|
+
"description": "WordPress administrator account",
|
|
8230
|
+
"properties": {
|
|
8231
|
+
"user": {
|
|
8232
|
+
"type": "string",
|
|
8233
|
+
"description": "WordPress admin username (letters, numbers, and underscore)"
|
|
8234
|
+
},
|
|
8235
|
+
"password": {
|
|
8236
|
+
"type": "string",
|
|
8237
|
+
"description": "WordPress admin password (8-50 characters, mixed case, a digit, and not compromised)"
|
|
8238
|
+
},
|
|
8239
|
+
"email": {
|
|
8240
|
+
"type": "string",
|
|
8241
|
+
"description": "WordPress admin email address"
|
|
8242
|
+
}
|
|
8243
|
+
},
|
|
8244
|
+
"required": [
|
|
8245
|
+
"user",
|
|
8246
|
+
"password",
|
|
8247
|
+
"email"
|
|
8248
|
+
]
|
|
8249
|
+
}
|
|
8250
|
+
},
|
|
8251
|
+
"required": [
|
|
8252
|
+
"admin"
|
|
8253
|
+
]
|
|
8254
|
+
}
|
|
8255
|
+
},
|
|
8256
|
+
"required": [
|
|
8257
|
+
"order_id"
|
|
8258
|
+
]
|
|
8259
|
+
},
|
|
8260
|
+
"security": [
|
|
8261
|
+
{
|
|
8262
|
+
"apiToken": []
|
|
8263
|
+
}
|
|
8264
|
+
],
|
|
8265
|
+
"group": "hosting"
|
|
8266
|
+
},
|
|
8175
8267
|
{
|
|
8176
8268
|
"name": "hosting_orders_list",
|
|
8177
8269
|
"title": "List orders",
|
|
@@ -15486,7 +15578,7 @@ const tools: OpenApiTool[] = [
|
|
|
15486
15578
|
"readOnlyHint": false,
|
|
15487
15579
|
"destructiveHint": false
|
|
15488
15580
|
},
|
|
15489
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.",
|
|
15581
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
15490
15582
|
"method": "POST",
|
|
15491
15583
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
15492
15584
|
"inputSchema": {
|
|
@@ -15554,7 +15646,7 @@ const tools: OpenApiTool[] = [
|
|
|
15554
15646
|
},
|
|
15555
15647
|
"database": {
|
|
15556
15648
|
"type": "object",
|
|
15557
|
-
"description": "Optional. If the named database already exists, it
|
|
15649
|
+
"description": "Optional. If the named database already exists on the account, it is used for this WordPress install. Otherwise a new database is created with this name, or with a generated name when database is omitted or null. A new database gets a random database user and counts toward the plan's database limit.",
|
|
15558
15650
|
"properties": {
|
|
15559
15651
|
"name": {
|
|
15560
15652
|
"type": "string",
|
|
@@ -15562,7 +15654,7 @@ const tools: OpenApiTool[] = [
|
|
|
15562
15654
|
},
|
|
15563
15655
|
"password": {
|
|
15564
15656
|
"type": "string",
|
|
15565
|
-
"description": "
|
|
15657
|
+
"description": "Password for a new database. Random when omitted or null. Ignored when the named database already exists."
|
|
15566
15658
|
}
|
|
15567
15659
|
}
|
|
15568
15660
|
}
|
|
@@ -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",
|
|
@@ -255,7 +255,7 @@ export default [
|
|
|
255
255
|
"readOnlyHint": false,
|
|
256
256
|
"destructiveHint": false
|
|
257
257
|
},
|
|
258
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.",
|
|
258
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
259
259
|
"method": "POST",
|
|
260
260
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
261
261
|
"inputSchema": {
|
|
@@ -323,7 +323,7 @@ export default [
|
|
|
323
323
|
},
|
|
324
324
|
"database": {
|
|
325
325
|
"type": "object",
|
|
326
|
-
"description": "Optional. If the named database already exists, it
|
|
326
|
+
"description": "Optional. If the named database already exists on the account, it is used for this WordPress install. Otherwise a new database is created with this name, or with a generated name when database is omitted or null. A new database gets a random database user and counts toward the plan's database limit.",
|
|
327
327
|
"properties": {
|
|
328
328
|
"name": {
|
|
329
329
|
"type": "string",
|
|
@@ -331,7 +331,7 @@ export default [
|
|
|
331
331
|
},
|
|
332
332
|
"password": {
|
|
333
333
|
"type": "string",
|
|
334
|
-
"description": "
|
|
334
|
+
"description": "Password for a new database. Random when omitted or null. Ignored when the named database already exists."
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
}
|
|
@@ -269,7 +269,7 @@ const tools: OpenApiTool[] = [
|
|
|
269
269
|
"readOnlyHint": false,
|
|
270
270
|
"destructiveHint": false
|
|
271
271
|
},
|
|
272
|
-
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.",
|
|
272
|
+
"description": "Install WordPress on an existing website.\n\nThe website must already exist before calling this endpoint. To create a new\nwebsite first, use POST /api/hosting/v1/websites and poll\nGET /api/hosting/v1/websites until it appears.\n\nCall GET /api/hosting/v1/wordpress/installations filtered by username and\ndomain before proceeding to check whether WordPress is already installed on\nthe target domain/path. If WordPress already exists and `overwrite` is false\n(the default), the async job will fail.\n\nThis operation is asynchronous: a successful response only means the install\njob has been queued, not that WordPress is ready. Installation typically\ntakes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered\nby username and domain to track progress. When the installation appears in\nthat list, WordPress is ready.\n\nReturns 422 when the account already uses all the databases its plan allows,\nunless `database.name` is an existing database on the account.",
|
|
273
273
|
"method": "POST",
|
|
274
274
|
"path": "/api/hosting/v1/accounts/{username}/wordpress/installations",
|
|
275
275
|
"inputSchema": {
|
|
@@ -337,7 +337,7 @@ const tools: OpenApiTool[] = [
|
|
|
337
337
|
},
|
|
338
338
|
"database": {
|
|
339
339
|
"type": "object",
|
|
340
|
-
"description": "Optional. If the named database already exists, it
|
|
340
|
+
"description": "Optional. If the named database already exists on the account, it is used for this WordPress install. Otherwise a new database is created with this name, or with a generated name when database is omitted or null. A new database gets a random database user and counts toward the plan's database limit.",
|
|
341
341
|
"properties": {
|
|
342
342
|
"name": {
|
|
343
343
|
"type": "string",
|
|
@@ -345,7 +345,7 @@ const tools: OpenApiTool[] = [
|
|
|
345
345
|
},
|
|
346
346
|
"password": {
|
|
347
347
|
"type": "string",
|
|
348
|
-
"description": "
|
|
348
|
+
"description": "Password for a new database. Random when omitted or null. Ignored when the named database already exists."
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
351
|
}
|
|
@@ -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.8.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.8.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.8.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.8.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.8.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.8.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
|
@@ -4717,18 +4717,30 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
4717
4717
|
|
|
4718
4718
|
/**
|
|
4719
4719
|
* 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
|
-
`
|
|
4720
|
+
accessible to the authenticated client, newest first. Narrow the list with the
|
|
4721
|
+
`order_id`, `subscription_id` or `domain` filters.
|
|
4722
|
+
|
|
4723
|
+
Meant for polling right after creating a website or starting a website setup: the
|
|
4724
|
+
website shows up in the websites list before its server-side setup has finished, and
|
|
4725
|
+
while the setup is `running` endpoints that operate on that website may respond with
|
|
4726
|
+
`404` or `409`. Poll this endpoint with the `domain` filter every 10 to 15 seconds and
|
|
4727
|
+
wait for `status: completed` before uploading files, deploying or creating databases.
|
|
4727
4728
|
`failed` means the setup stopped before finishing or has not reported progress for
|
|
4728
4729
|
over an hour. Setups older than 24 hours are not listed.
|
|
4730
|
+
|
|
4731
|
+
`type` is the website type the setup was started with (`wordpress`, `headless_wordpress`,
|
|
4732
|
+
`headless_ecommerce`, `headless_pocketbase`), or `null` for an empty website.
|
|
4729
4733
|
*/
|
|
4730
4734
|
"hosting_websites_list-setups": {
|
|
4731
4735
|
params: {
|
|
4736
|
+
/**
|
|
4737
|
+
* Order ID
|
|
4738
|
+
*/
|
|
4739
|
+
order_id?: number;
|
|
4740
|
+
/**
|
|
4741
|
+
* Filter by hosting order subscription ID
|
|
4742
|
+
*/
|
|
4743
|
+
subscription_id?: string;
|
|
4732
4744
|
/**
|
|
4733
4745
|
* Filter by domain name (exact match)
|
|
4734
4746
|
*/
|
|
@@ -4737,6 +4749,49 @@ over an hour. Setups older than 24 hours are not listed.
|
|
|
4737
4749
|
response: any; // Response structure will depend on the API
|
|
4738
4750
|
};
|
|
4739
4751
|
|
|
4752
|
+
/**
|
|
4753
|
+
* Starts a website setup on a Web or Cloud hosting order and returns the created setup
|
|
4754
|
+
right away; the website itself is provisioned asynchronously. Poll the list website
|
|
4755
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
4756
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
4757
|
+
|
|
4758
|
+
Omit `type` for an empty website. `type: wordpress` installs WordPress in the website
|
|
4759
|
+
root with the admin user, email and password from `wordpress`, the domain as the site
|
|
4760
|
+
title, and `en_US` when `wordpress.language` is omitted. The headless types
|
|
4761
|
+
(`headless_wordpress`, `headless_ecommerce`, `headless_pocketbase`) create a headless
|
|
4762
|
+
website; `headless_wordpress` additionally installs WordPress into the `cms` directory
|
|
4763
|
+
of the website root with generated credentials.
|
|
4764
|
+
|
|
4765
|
+
Omit `domain` to set the website up on a generated temporary free subdomain.
|
|
4766
|
+
|
|
4767
|
+
The order must already have a hosting account: to create the first website on a new
|
|
4768
|
+
hosting plan use the create website endpoint, which takes the `datacenter_code`.
|
|
4769
|
+
Returns 404 when the order does not exist or is not accessible to the authenticated
|
|
4770
|
+
client, and 409 with a `Retry-After` header while a setup for the same domain is still
|
|
4771
|
+
running.
|
|
4772
|
+
*/
|
|
4773
|
+
"hosting_websites_start-setup": {
|
|
4774
|
+
params: {
|
|
4775
|
+
/**
|
|
4776
|
+
* Hosting order ID. List orders to find available IDs.
|
|
4777
|
+
*/
|
|
4778
|
+
order_id: number;
|
|
4779
|
+
/**
|
|
4780
|
+
* 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.
|
|
4781
|
+
*/
|
|
4782
|
+
type?: string;
|
|
4783
|
+
/**
|
|
4784
|
+
* Customer-owned domain. Cannot start with "www.". Omit or `null` to set the website up on a generated temporary free subdomain.
|
|
4785
|
+
*/
|
|
4786
|
+
domain?: string;
|
|
4787
|
+
/**
|
|
4788
|
+
* WordPress install settings. Required when `type` is `wordpress`, not allowed otherwise. The site title is the domain.
|
|
4789
|
+
*/
|
|
4790
|
+
wordpress?: object;
|
|
4791
|
+
};
|
|
4792
|
+
response: any; // Response structure will depend on the API
|
|
4793
|
+
};
|
|
4794
|
+
|
|
4740
4795
|
/**
|
|
4741
4796
|
* Retrieve a paginated list of orders accessible to the authenticated client.
|
|
4742
4797
|
|
|
@@ -9045,6 +9100,9 @@ job has been queued, not that WordPress is ready. Installation typically
|
|
|
9045
9100
|
takes 1-2 minutes. Poll GET /api/hosting/v1/wordpress/installations filtered
|
|
9046
9101
|
by username and domain to track progress. When the installation appears in
|
|
9047
9102
|
that list, WordPress is ready.
|
|
9103
|
+
|
|
9104
|
+
Returns 422 when the account already uses all the databases its plan allows,
|
|
9105
|
+
unless `database.name` is an existing database on the account.
|
|
9048
9106
|
*/
|
|
9049
9107
|
"wordpress_installations_install": {
|
|
9050
9108
|
params: {
|
|
@@ -9085,7 +9143,7 @@ that list, WordPress is ready.
|
|
|
9085
9143
|
*/
|
|
9086
9144
|
credentials: object;
|
|
9087
9145
|
/**
|
|
9088
|
-
* Optional. If the named database already exists, it
|
|
9146
|
+
* Optional. If the named database already exists on the account, it is used for this WordPress install. Otherwise a new database is created with this name, or with a generated name when database is omitted or null. A new database gets a random database user and counts toward the plan's database limit.
|
|
9089
9147
|
*/
|
|
9090
9148
|
database?: object;
|
|
9091
9149
|
};
|