hostinger-api-mcp 2.2.0 → 2.3.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 +16 -0
- package/README.md +35 -5
- 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 +32 -4
- package/src/core/tools/all.ts +32 -4
- package/src/core/tools/hosting.js +32 -4
- package/src/core/tools/hosting.ts +32 -4
- 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 +39 -3
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ 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.3.0 — 2026-09-28
|
|
8
|
+
|
|
9
|
+
### Operations
|
|
10
|
+
|
|
11
|
+
- Added `hosting_websites_list-setups` — List website setups
|
|
12
|
+
- Changed the description of `hosting_databases_create-remote-connection`
|
|
13
|
+
- Changed the description of `hosting_files_generate-upload-url`
|
|
14
|
+
- Changed the description of `hosting_websites_list`
|
|
15
|
+
- Changed the description of `hosting_websites_create`
|
|
16
|
+
|
|
17
|
+
### Also in this release
|
|
18
|
+
|
|
19
|
+
- Documentation: `README.md`
|
|
20
|
+
- Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
|
|
21
|
+
- Build and packaging: `types.d.ts`
|
|
22
|
+
|
|
7
23
|
## v2.2.0 — 2026-09-28
|
|
8
24
|
|
|
9
25
|
### Also in this release
|
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 (402 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` — 41 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` — 75 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
|
|
@@ -1904,7 +1904,9 @@ The database name must be the full name returned by the list databases endpoint.
|
|
|
1904
1904
|
Allows a remote host to connect to the specified database.
|
|
1905
1905
|
|
|
1906
1906
|
Provide an IPv4/IPv6 address, or "%" to allow any host. The database name must be
|
|
1907
|
-
the full name returned by the list databases endpoint.
|
|
1907
|
+
the full name returned by the list databases endpoint. Database creation is synchronous,
|
|
1908
|
+
so a 404 here means no database with that name exists under the username, not that it
|
|
1909
|
+
is still being created.
|
|
1908
1910
|
|
|
1909
1911
|
- **Method**: `POST`
|
|
1910
1912
|
- **Path**: `/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections`
|
|
@@ -2072,6 +2074,10 @@ Skip this verification when using Hostinger's free subdomains (*.hostingersite.c
|
|
|
2072
2074
|
Generate a file browser upload URL with authentication credentials
|
|
2073
2075
|
for uploading files directly to a website's file storage.
|
|
2074
2076
|
|
|
2077
|
+
While the website is still being set up (`status: running` on the list website setups
|
|
2078
|
+
endpoint) this endpoint returns 409 with a `Retry-After` header: wait that many
|
|
2079
|
+
seconds and retry, or poll the website setups until the status is `completed`.
|
|
2080
|
+
|
|
2075
2081
|
Returns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the
|
|
2076
2082
|
website's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).
|
|
2077
2083
|
Send `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request
|
|
@@ -2433,6 +2439,22 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
2433
2439
|
- **Method**: `POST`
|
|
2434
2440
|
- **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/nodejs/vulnerabilities/patch`
|
|
2435
2441
|
|
|
2442
|
+
#### hosting_websites_list-setups
|
|
2443
|
+
|
|
2444
|
+
Returns the website setups started in the last 24 hours for the hosting accounts
|
|
2445
|
+
accessible to the authenticated client, newest first.
|
|
2446
|
+
|
|
2447
|
+
Meant for polling right after creating a website: the website shows up in the
|
|
2448
|
+
websites list before its server-side setup has finished, and while the setup is
|
|
2449
|
+
`running` endpoints that operate on that website may respond with `404` or `409`.
|
|
2450
|
+
Poll this endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
2451
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
2452
|
+
`failed` means the setup stopped before finishing or has not reported progress for
|
|
2453
|
+
over an hour. Setups older than 24 hours are not listed.
|
|
2454
|
+
|
|
2455
|
+
- **Method**: `GET`
|
|
2456
|
+
- **Path**: `/api/hosting/v1/onboardings`
|
|
2457
|
+
|
|
2436
2458
|
#### hosting_orders_list
|
|
2437
2459
|
|
|
2438
2460
|
Retrieve a paginated list of orders accessible to the authenticated client.
|
|
@@ -2602,6 +2624,11 @@ WordPress websites (`website_types=wordpress`) or only Node.js websites
|
|
|
2602
2624
|
filter by username, order ID, enabled status, or domain name for more targeted
|
|
2603
2625
|
results.
|
|
2604
2626
|
|
|
2627
|
+
A website appears in this list before its server-side setup has finished, and
|
|
2628
|
+
`is_enabled` reflects suspension, not readiness. To know when a newly created website
|
|
2629
|
+
is ready for file, deploy or database operations, poll the list website setups
|
|
2630
|
+
endpoint instead.
|
|
2631
|
+
|
|
2605
2632
|
- **Method**: `GET`
|
|
2606
2633
|
- **Path**: `/api/hosting/v1/websites`
|
|
2607
2634
|
|
|
@@ -2619,8 +2646,11 @@ in the selected datacenter.
|
|
|
2619
2646
|
|
|
2620
2647
|
Subsequent websites will be hosted on the same datacenter automatically.
|
|
2621
2648
|
|
|
2622
|
-
Website creation takes up to a few minutes
|
|
2623
|
-
|
|
2649
|
+
Website creation is asynchronous and takes up to a few minutes. Poll the list website
|
|
2650
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:
|
|
2651
|
+
completed` before uploading files, deploying or creating databases. While the setup is
|
|
2652
|
+
`running`, endpoints that operate on the website may respond with `404` or `409`.
|
|
2653
|
+
`is_enabled` on the websites list reflects suspension, not readiness.
|
|
2624
2654
|
|
|
2625
2655
|
- **Method**: `POST`
|
|
2626
2656
|
- **Path**: `/api/hosting/v1/websites`
|
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.3.0",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.3.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.55.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.55.0
|
|
98
98
|
*/
|
|
99
99
|
class MCPServer {
|
|
100
100
|
private readonly name: string;
|
package/src/core/tools/all.js
CHANGED
|
@@ -6208,7 +6208,7 @@ export default [
|
|
|
6208
6208
|
"readOnlyHint": false,
|
|
6209
6209
|
"destructiveHint": false
|
|
6210
6210
|
},
|
|
6211
|
-
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint.",
|
|
6211
|
+
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint. Database creation is synchronous,\nso a 404 here means no database with that name exists under the username, not that it\nis still being created.",
|
|
6212
6212
|
"method": "POST",
|
|
6213
6213
|
"path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections",
|
|
6214
6214
|
"inputSchema": {
|
|
@@ -6760,7 +6760,7 @@ export default [
|
|
|
6760
6760
|
"readOnlyHint": false,
|
|
6761
6761
|
"destructiveHint": false
|
|
6762
6762
|
},
|
|
6763
|
-
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
6763
|
+
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nWhile the website is still being set up (`status: running` on the list website setups\nendpoint) this endpoint returns 409 with a `Retry-After` header: wait that many\nseconds and retry, or poll the website setups until the status is `completed`.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
6764
6764
|
"method": "POST",
|
|
6765
6765
|
"path": "/api/hosting/v1/files/upload-urls",
|
|
6766
6766
|
"inputSchema": {
|
|
@@ -7924,6 +7924,34 @@ export default [
|
|
|
7924
7924
|
],
|
|
7925
7925
|
"group": "hosting"
|
|
7926
7926
|
},
|
|
7927
|
+
{
|
|
7928
|
+
"name": "hosting_websites_list-setups",
|
|
7929
|
+
"title": "List website setups",
|
|
7930
|
+
"annotations": {
|
|
7931
|
+
"title": "List website setups",
|
|
7932
|
+
"readOnlyHint": true,
|
|
7933
|
+
"destructiveHint": false
|
|
7934
|
+
},
|
|
7935
|
+
"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 website shows up in the\nwebsites list before its server-side setup has finished, and while the setup is\n`running` endpoints that operate on that website may respond with `404` or `409`.\nPoll this endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`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.",
|
|
7936
|
+
"method": "GET",
|
|
7937
|
+
"path": "/api/hosting/v1/onboardings",
|
|
7938
|
+
"inputSchema": {
|
|
7939
|
+
"type": "object",
|
|
7940
|
+
"properties": {
|
|
7941
|
+
"domain": {
|
|
7942
|
+
"type": "string",
|
|
7943
|
+
"description": "Filter by domain name (exact match)"
|
|
7944
|
+
}
|
|
7945
|
+
},
|
|
7946
|
+
"required": []
|
|
7947
|
+
},
|
|
7948
|
+
"security": [
|
|
7949
|
+
{
|
|
7950
|
+
"apiToken": []
|
|
7951
|
+
}
|
|
7952
|
+
],
|
|
7953
|
+
"group": "hosting"
|
|
7954
|
+
},
|
|
7927
7955
|
{
|
|
7928
7956
|
"name": "hosting_orders_list",
|
|
7929
7957
|
"title": "List orders",
|
|
@@ -8503,7 +8531,7 @@ export default [
|
|
|
8503
8531
|
"readOnlyHint": true,
|
|
8504
8532
|
"destructiveHint": false
|
|
8505
8533
|
},
|
|
8506
|
-
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.",
|
|
8534
|
+
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.\n\nA website appears in this list before its server-side setup has finished, and\n`is_enabled` reflects suspension, not readiness. To know when a newly created website\nis ready for file, deploy or database operations, poll the list website setups\nendpoint instead.",
|
|
8507
8535
|
"method": "GET",
|
|
8508
8536
|
"path": "/api/hosting/v1/websites",
|
|
8509
8537
|
"inputSchema": {
|
|
@@ -8566,7 +8594,7 @@ export default [
|
|
|
8566
8594
|
"readOnlyHint": false,
|
|
8567
8595
|
"destructiveHint": false
|
|
8568
8596
|
},
|
|
8569
|
-
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes
|
|
8597
|
+
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation is asynchronous and takes up to a few minutes. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:\ncompleted` before uploading files, deploying or creating databases. While the setup is\n`running`, endpoints that operate on the website may respond with `404` or `409`.\n`is_enabled` on the websites list reflects suspension, not readiness.",
|
|
8570
8598
|
"method": "POST",
|
|
8571
8599
|
"path": "/api/hosting/v1/websites",
|
|
8572
8600
|
"inputSchema": {
|
package/src/core/tools/all.ts
CHANGED
|
@@ -6222,7 +6222,7 @@ const tools: OpenApiTool[] = [
|
|
|
6222
6222
|
"readOnlyHint": false,
|
|
6223
6223
|
"destructiveHint": false
|
|
6224
6224
|
},
|
|
6225
|
-
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint.",
|
|
6225
|
+
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint. Database creation is synchronous,\nso a 404 here means no database with that name exists under the username, not that it\nis still being created.",
|
|
6226
6226
|
"method": "POST",
|
|
6227
6227
|
"path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections",
|
|
6228
6228
|
"inputSchema": {
|
|
@@ -6774,7 +6774,7 @@ const tools: OpenApiTool[] = [
|
|
|
6774
6774
|
"readOnlyHint": false,
|
|
6775
6775
|
"destructiveHint": false
|
|
6776
6776
|
},
|
|
6777
|
-
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
6777
|
+
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nWhile the website is still being set up (`status: running` on the list website setups\nendpoint) this endpoint returns 409 with a `Retry-After` header: wait that many\nseconds and retry, or poll the website setups until the status is `completed`.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
6778
6778
|
"method": "POST",
|
|
6779
6779
|
"path": "/api/hosting/v1/files/upload-urls",
|
|
6780
6780
|
"inputSchema": {
|
|
@@ -7938,6 +7938,34 @@ const tools: OpenApiTool[] = [
|
|
|
7938
7938
|
],
|
|
7939
7939
|
"group": "hosting"
|
|
7940
7940
|
},
|
|
7941
|
+
{
|
|
7942
|
+
"name": "hosting_websites_list-setups",
|
|
7943
|
+
"title": "List website setups",
|
|
7944
|
+
"annotations": {
|
|
7945
|
+
"title": "List website setups",
|
|
7946
|
+
"readOnlyHint": true,
|
|
7947
|
+
"destructiveHint": false
|
|
7948
|
+
},
|
|
7949
|
+
"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 website shows up in the\nwebsites list before its server-side setup has finished, and while the setup is\n`running` endpoints that operate on that website may respond with `404` or `409`.\nPoll this endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`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.",
|
|
7950
|
+
"method": "GET",
|
|
7951
|
+
"path": "/api/hosting/v1/onboardings",
|
|
7952
|
+
"inputSchema": {
|
|
7953
|
+
"type": "object",
|
|
7954
|
+
"properties": {
|
|
7955
|
+
"domain": {
|
|
7956
|
+
"type": "string",
|
|
7957
|
+
"description": "Filter by domain name (exact match)"
|
|
7958
|
+
}
|
|
7959
|
+
},
|
|
7960
|
+
"required": []
|
|
7961
|
+
},
|
|
7962
|
+
"security": [
|
|
7963
|
+
{
|
|
7964
|
+
"apiToken": []
|
|
7965
|
+
}
|
|
7966
|
+
],
|
|
7967
|
+
"group": "hosting"
|
|
7968
|
+
},
|
|
7941
7969
|
{
|
|
7942
7970
|
"name": "hosting_orders_list",
|
|
7943
7971
|
"title": "List orders",
|
|
@@ -8517,7 +8545,7 @@ const tools: OpenApiTool[] = [
|
|
|
8517
8545
|
"readOnlyHint": true,
|
|
8518
8546
|
"destructiveHint": false
|
|
8519
8547
|
},
|
|
8520
|
-
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.",
|
|
8548
|
+
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.\n\nA website appears in this list before its server-side setup has finished, and\n`is_enabled` reflects suspension, not readiness. To know when a newly created website\nis ready for file, deploy or database operations, poll the list website setups\nendpoint instead.",
|
|
8521
8549
|
"method": "GET",
|
|
8522
8550
|
"path": "/api/hosting/v1/websites",
|
|
8523
8551
|
"inputSchema": {
|
|
@@ -8580,7 +8608,7 @@ const tools: OpenApiTool[] = [
|
|
|
8580
8608
|
"readOnlyHint": false,
|
|
8581
8609
|
"destructiveHint": false
|
|
8582
8610
|
},
|
|
8583
|
-
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes
|
|
8611
|
+
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation is asynchronous and takes up to a few minutes. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:\ncompleted` before uploading files, deploying or creating databases. While the setup is\n`running`, endpoints that operate on the website may respond with `404` or `409`.\n`is_enabled` on the websites list reflects suspension, not readiness.",
|
|
8584
8612
|
"method": "POST",
|
|
8585
8613
|
"path": "/api/hosting/v1/websites",
|
|
8586
8614
|
"inputSchema": {
|
|
@@ -747,7 +747,7 @@ export default [
|
|
|
747
747
|
"readOnlyHint": false,
|
|
748
748
|
"destructiveHint": false
|
|
749
749
|
},
|
|
750
|
-
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint.",
|
|
750
|
+
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint. Database creation is synchronous,\nso a 404 here means no database with that name exists under the username, not that it\nis still being created.",
|
|
751
751
|
"method": "POST",
|
|
752
752
|
"path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections",
|
|
753
753
|
"inputSchema": {
|
|
@@ -1299,7 +1299,7 @@ export default [
|
|
|
1299
1299
|
"readOnlyHint": false,
|
|
1300
1300
|
"destructiveHint": false
|
|
1301
1301
|
},
|
|
1302
|
-
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
1302
|
+
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nWhile the website is still being set up (`status: running` on the list website setups\nendpoint) this endpoint returns 409 with a `Retry-After` header: wait that many\nseconds and retry, or poll the website setups until the status is `completed`.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
1303
1303
|
"method": "POST",
|
|
1304
1304
|
"path": "/api/hosting/v1/files/upload-urls",
|
|
1305
1305
|
"inputSchema": {
|
|
@@ -2463,6 +2463,34 @@ export default [
|
|
|
2463
2463
|
],
|
|
2464
2464
|
"group": "hosting"
|
|
2465
2465
|
},
|
|
2466
|
+
{
|
|
2467
|
+
"name": "hosting_websites_list-setups",
|
|
2468
|
+
"title": "List website setups",
|
|
2469
|
+
"annotations": {
|
|
2470
|
+
"title": "List website setups",
|
|
2471
|
+
"readOnlyHint": true,
|
|
2472
|
+
"destructiveHint": false
|
|
2473
|
+
},
|
|
2474
|
+
"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 website shows up in the\nwebsites list before its server-side setup has finished, and while the setup is\n`running` endpoints that operate on that website may respond with `404` or `409`.\nPoll this endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`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.",
|
|
2475
|
+
"method": "GET",
|
|
2476
|
+
"path": "/api/hosting/v1/onboardings",
|
|
2477
|
+
"inputSchema": {
|
|
2478
|
+
"type": "object",
|
|
2479
|
+
"properties": {
|
|
2480
|
+
"domain": {
|
|
2481
|
+
"type": "string",
|
|
2482
|
+
"description": "Filter by domain name (exact match)"
|
|
2483
|
+
}
|
|
2484
|
+
},
|
|
2485
|
+
"required": []
|
|
2486
|
+
},
|
|
2487
|
+
"security": [
|
|
2488
|
+
{
|
|
2489
|
+
"apiToken": []
|
|
2490
|
+
}
|
|
2491
|
+
],
|
|
2492
|
+
"group": "hosting"
|
|
2493
|
+
},
|
|
2466
2494
|
{
|
|
2467
2495
|
"name": "hosting_orders_list",
|
|
2468
2496
|
"title": "List orders",
|
|
@@ -3042,7 +3070,7 @@ export default [
|
|
|
3042
3070
|
"readOnlyHint": true,
|
|
3043
3071
|
"destructiveHint": false
|
|
3044
3072
|
},
|
|
3045
|
-
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.",
|
|
3073
|
+
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.\n\nA website appears in this list before its server-side setup has finished, and\n`is_enabled` reflects suspension, not readiness. To know when a newly created website\nis ready for file, deploy or database operations, poll the list website setups\nendpoint instead.",
|
|
3046
3074
|
"method": "GET",
|
|
3047
3075
|
"path": "/api/hosting/v1/websites",
|
|
3048
3076
|
"inputSchema": {
|
|
@@ -3105,7 +3133,7 @@ export default [
|
|
|
3105
3133
|
"readOnlyHint": false,
|
|
3106
3134
|
"destructiveHint": false
|
|
3107
3135
|
},
|
|
3108
|
-
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes
|
|
3136
|
+
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation is asynchronous and takes up to a few minutes. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:\ncompleted` before uploading files, deploying or creating databases. While the setup is\n`running`, endpoints that operate on the website may respond with `404` or `409`.\n`is_enabled` on the websites list reflects suspension, not readiness.",
|
|
3109
3137
|
"method": "POST",
|
|
3110
3138
|
"path": "/api/hosting/v1/websites",
|
|
3111
3139
|
"inputSchema": {
|
|
@@ -761,7 +761,7 @@ const tools: OpenApiTool[] = [
|
|
|
761
761
|
"readOnlyHint": false,
|
|
762
762
|
"destructiveHint": false
|
|
763
763
|
},
|
|
764
|
-
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint.",
|
|
764
|
+
"description": "Allows a remote host to connect to the specified database.\n\nProvide an IPv4/IPv6 address, or \"%\" to allow any host. The database name must be\nthe full name returned by the list databases endpoint. Database creation is synchronous,\nso a 404 here means no database with that name exists under the username, not that it\nis still being created.",
|
|
765
765
|
"method": "POST",
|
|
766
766
|
"path": "/api/hosting/v1/accounts/{username}/databases/{name}/remote-connections",
|
|
767
767
|
"inputSchema": {
|
|
@@ -1313,7 +1313,7 @@ const tools: OpenApiTool[] = [
|
|
|
1313
1313
|
"readOnlyHint": false,
|
|
1314
1314
|
"destructiveHint": false
|
|
1315
1315
|
},
|
|
1316
|
-
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
1316
|
+
"description": "Generate a file browser upload URL with authentication credentials\nfor uploading files directly to a website's file storage.\n\nWhile the website is still being set up (`status: running` on the list website setups\nendpoint) this endpoint returns 409 with a `Retry-After` header: wait that many\nseconds and retry, or poll the website setups until the status is `completed`.\n\nReturns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the\nwebsite's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).\nSend `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request\nbelow.\n\n1. Create the upload: `POST` to `{url}/{relative_file_path}?override=true` with headers\n `upload-length: {file size in bytes}` and `upload-offset: 0`. Expect `201 Created`.\n2. Upload the file: send the file bytes to the same location (any TUS 1.0.0 client, or\n `PATCH` requests with an `upload-offset` header tracking progress) until complete.\n\n`relative_file_path` is the destination path inside `public_html`, e.g. `app.zip`.\n\nInstead of a TUS client, plain `curl` also works:\n```\nFILE=app.zip\nSIZE=$(stat -f%z \"$FILE\") # stat -c%s on Linux\n\ncurl -i -X POST \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Upload-Length: ${SIZE}\" \\\n -H \"Upload-Offset: 0\"\n# -> 201 Created\n\ncurl -i -X PATCH \"{url}/${FILE}?override=true\" \\\n -H \"X-Auth: {auth_key}\" \\\n -H \"X-Auth-Rest: {rest_auth_key}\" \\\n -H \"Tus-Resumable: 1.0.0\" \\\n -H \"Content-Type: application/offset+octet-stream\" \\\n -H \"Upload-Offset: 0\" \\\n --data-binary \"@${FILE}\"\n# -> 204 No Content, Upload-Offset response header equals SIZE when done\n```",
|
|
1317
1317
|
"method": "POST",
|
|
1318
1318
|
"path": "/api/hosting/v1/files/upload-urls",
|
|
1319
1319
|
"inputSchema": {
|
|
@@ -2477,6 +2477,34 @@ const tools: OpenApiTool[] = [
|
|
|
2477
2477
|
],
|
|
2478
2478
|
"group": "hosting"
|
|
2479
2479
|
},
|
|
2480
|
+
{
|
|
2481
|
+
"name": "hosting_websites_list-setups",
|
|
2482
|
+
"title": "List website setups",
|
|
2483
|
+
"annotations": {
|
|
2484
|
+
"title": "List website setups",
|
|
2485
|
+
"readOnlyHint": true,
|
|
2486
|
+
"destructiveHint": false
|
|
2487
|
+
},
|
|
2488
|
+
"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 website shows up in the\nwebsites list before its server-side setup has finished, and while the setup is\n`running` endpoints that operate on that website may respond with `404` or `409`.\nPoll this endpoint with the `domain` filter every 10 to 15 seconds and wait for\n`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.",
|
|
2489
|
+
"method": "GET",
|
|
2490
|
+
"path": "/api/hosting/v1/onboardings",
|
|
2491
|
+
"inputSchema": {
|
|
2492
|
+
"type": "object",
|
|
2493
|
+
"properties": {
|
|
2494
|
+
"domain": {
|
|
2495
|
+
"type": "string",
|
|
2496
|
+
"description": "Filter by domain name (exact match)"
|
|
2497
|
+
}
|
|
2498
|
+
},
|
|
2499
|
+
"required": []
|
|
2500
|
+
},
|
|
2501
|
+
"security": [
|
|
2502
|
+
{
|
|
2503
|
+
"apiToken": []
|
|
2504
|
+
}
|
|
2505
|
+
],
|
|
2506
|
+
"group": "hosting"
|
|
2507
|
+
},
|
|
2480
2508
|
{
|
|
2481
2509
|
"name": "hosting_orders_list",
|
|
2482
2510
|
"title": "List orders",
|
|
@@ -3056,7 +3084,7 @@ const tools: OpenApiTool[] = [
|
|
|
3056
3084
|
"readOnlyHint": true,
|
|
3057
3085
|
"destructiveHint": false
|
|
3058
3086
|
},
|
|
3059
|
-
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.",
|
|
3087
|
+
"description": "Retrieve a paginated list of websites (CloudLinux, Builder, and Horizons) accessible to the\nauthenticated client.\n\nThis endpoint returns websites from your hosting accounts as well as\nwebsites from other client hosting accounts that have shared access\nwith you.\n\nEach website includes a `website_type` field describing the type of\nwebsite detected on the underlying platform (`wordpress`, `builder`,\n`horizons`, `nodejs`, or `other`). Some fields, such as\n`vhost_type`, `username`, and `root_directory`, only apply to\nCloudLinux websites and are null for other platforms.\n\nUse `website_types` to list only websites of a given detected type, e.g. only\nWordPress websites (`website_types=wordpress`) or only Node.js websites\n(`website_types=nodejs`). Combine with the other available query parameters to\nfilter by username, order ID, enabled status, or domain name for more targeted\nresults.\n\nA website appears in this list before its server-side setup has finished, and\n`is_enabled` reflects suspension, not readiness. To know when a newly created website\nis ready for file, deploy or database operations, poll the list website setups\nendpoint instead.",
|
|
3060
3088
|
"method": "GET",
|
|
3061
3089
|
"path": "/api/hosting/v1/websites",
|
|
3062
3090
|
"inputSchema": {
|
|
@@ -3119,7 +3147,7 @@ const tools: OpenApiTool[] = [
|
|
|
3119
3147
|
"readOnlyHint": false,
|
|
3120
3148
|
"destructiveHint": false
|
|
3121
3149
|
},
|
|
3122
|
-
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation takes up to a few minutes
|
|
3150
|
+
"description": "Create a new website for the authenticated client.\n\nYou must choose which hosting order to create this website on. Pass that\norder as `order_id` together with the domain name. List orders to see\navailable IDs; the website is provisioned on that order's hosting plan.\n\nThe datacenter_code parameter is required when creating the first website\non a new hosting plan - this will set up and configure new hosting account\nin the selected datacenter.\n\nSubsequent websites will be hosted on the same datacenter automatically.\n\nWebsite creation is asynchronous and takes up to a few minutes. Poll the list website\nsetups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:\ncompleted` before uploading files, deploying or creating databases. While the setup is\n`running`, endpoints that operate on the website may respond with `404` or `409`.\n`is_enabled` on the websites list reflects suspension, not readiness.",
|
|
3123
3151
|
"method": "POST",
|
|
3124
3152
|
"path": "/api/hosting/v1/websites",
|
|
3125
3153
|
"inputSchema": {
|
|
@@ -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.3.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.3.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.3.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.3.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.3.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.3.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
|
@@ -3446,7 +3446,9 @@ The database name must be the full name returned by the list databases endpoint.
|
|
|
3446
3446
|
* Allows a remote host to connect to the specified database.
|
|
3447
3447
|
|
|
3448
3448
|
Provide an IPv4/IPv6 address, or "%" to allow any host. The database name must be
|
|
3449
|
-
the full name returned by the list databases endpoint.
|
|
3449
|
+
the full name returned by the list databases endpoint. Database creation is synchronous,
|
|
3450
|
+
so a 404 here means no database with that name exists under the username, not that it
|
|
3451
|
+
is still being created.
|
|
3450
3452
|
*/
|
|
3451
3453
|
"hosting_databases_create-remote-connection": {
|
|
3452
3454
|
params: {
|
|
@@ -3797,6 +3799,10 @@ Skip this verification when using Hostinger's free subdomains (*.hostingersite.c
|
|
|
3797
3799
|
* Generate a file browser upload URL with authentication credentials
|
|
3798
3800
|
for uploading files directly to a website's file storage.
|
|
3799
3801
|
|
|
3802
|
+
While the website is still being set up (`status: running` on the list website setups
|
|
3803
|
+
endpoint) this endpoint returns 409 with a `Retry-After` header: wait that many
|
|
3804
|
+
seconds and retry, or poll the website setups until the status is `completed`.
|
|
3805
|
+
|
|
3800
3806
|
Returns `url`, `auth_key` and `rest_auth_key`. Use these to upload a file to the
|
|
3801
3807
|
website's `public_html` directory via the TUS resumable upload protocol (TUS 1.0.0).
|
|
3802
3808
|
Send `X-Auth: {auth_key}` and `X-Auth-Rest: {rest_auth_key}` headers on every request
|
|
@@ -4576,6 +4582,28 @@ close or merge it before patching again. Available on Business and Cloud Hosting
|
|
|
4576
4582
|
response: any; // Response structure will depend on the API
|
|
4577
4583
|
};
|
|
4578
4584
|
|
|
4585
|
+
/**
|
|
4586
|
+
* Returns the website setups started in the last 24 hours for the hosting accounts
|
|
4587
|
+
accessible to the authenticated client, newest first.
|
|
4588
|
+
|
|
4589
|
+
Meant for polling right after creating a website: the website shows up in the
|
|
4590
|
+
websites list before its server-side setup has finished, and while the setup is
|
|
4591
|
+
`running` endpoints that operate on that website may respond with `404` or `409`.
|
|
4592
|
+
Poll this endpoint with the `domain` filter every 10 to 15 seconds and wait for
|
|
4593
|
+
`status: completed` before uploading files, deploying or creating databases.
|
|
4594
|
+
`failed` means the setup stopped before finishing or has not reported progress for
|
|
4595
|
+
over an hour. Setups older than 24 hours are not listed.
|
|
4596
|
+
*/
|
|
4597
|
+
"hosting_websites_list-setups": {
|
|
4598
|
+
params: {
|
|
4599
|
+
/**
|
|
4600
|
+
* Filter by domain name (exact match)
|
|
4601
|
+
*/
|
|
4602
|
+
domain?: string;
|
|
4603
|
+
};
|
|
4604
|
+
response: any; // Response structure will depend on the API
|
|
4605
|
+
};
|
|
4606
|
+
|
|
4579
4607
|
/**
|
|
4580
4608
|
* Retrieve a paginated list of orders accessible to the authenticated client.
|
|
4581
4609
|
|
|
@@ -4931,6 +4959,11 @@ WordPress websites (`website_types=wordpress`) or only Node.js websites
|
|
|
4931
4959
|
(`website_types=nodejs`). Combine with the other available query parameters to
|
|
4932
4960
|
filter by username, order ID, enabled status, or domain name for more targeted
|
|
4933
4961
|
results.
|
|
4962
|
+
|
|
4963
|
+
A website appears in this list before its server-side setup has finished, and
|
|
4964
|
+
`is_enabled` reflects suspension, not readiness. To know when a newly created website
|
|
4965
|
+
is ready for file, deploy or database operations, poll the list website setups
|
|
4966
|
+
endpoint instead.
|
|
4934
4967
|
*/
|
|
4935
4968
|
"hosting_websites_list": {
|
|
4936
4969
|
params: {
|
|
@@ -4979,8 +5012,11 @@ in the selected datacenter.
|
|
|
4979
5012
|
|
|
4980
5013
|
Subsequent websites will be hosted on the same datacenter automatically.
|
|
4981
5014
|
|
|
4982
|
-
Website creation takes up to a few minutes
|
|
4983
|
-
|
|
5015
|
+
Website creation is asynchronous and takes up to a few minutes. Poll the list website
|
|
5016
|
+
setups endpoint with the `domain` filter every 10 to 15 seconds and wait for `status:
|
|
5017
|
+
completed` before uploading files, deploying or creating databases. While the setup is
|
|
5018
|
+
`running`, endpoints that operate on the website may respond with `404` or `409`.
|
|
5019
|
+
`is_enabled` on the websites list reflects suspension, not readiness.
|
|
4984
5020
|
*/
|
|
4985
5021
|
"hosting_websites_create": {
|
|
4986
5022
|
params: {
|