hostinger-api-mcp 2.6.0 → 2.7.1

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 CHANGED
@@ -4,6 +4,29 @@ 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.7.1 — 2026-10-05
8
+
9
+ ### Operations
10
+
11
+ - Added `hosting_git_deploy-website-repository` — Deploy website Git repository
12
+ - Added `hosting_git_list-website-repositories` — List website Git repositories
13
+ - Added `hosting_git_ssh-public-key` — Get Git SSH public key
14
+ - Added `hosting_git_generate-ssh-key` — Generate Git SSH key
15
+
16
+ ### Also in this release
17
+
18
+ - Documentation: `README.md`
19
+ - Dependencies: `package-lock.json`
20
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
21
+ - Build and packaging: `types.d.ts`
22
+
23
+ ## v2.7.0 — 2026-10-01
24
+
25
+ ### Also in this release
26
+
27
+ - Dependencies: `package-lock.json`
28
+ - Request handling and authentication: `src/core/runtime.js`, `src/core/runtime.ts`
29
+
7
30
  ## v2.6.0 — 2026-09-30
8
31
 
9
32
  ### 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 (403 total)
72
+ - `hostinger-api-mcp` — unified server over every operation (407 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` — 75 operations for hosting
79
+ - `hostinger-hosting-mcp` — 79 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
@@ -2227,6 +2227,54 @@ installation does not belong to the customer. Limited to 10 calls per minute per
2227
2227
  - **Method**: `GET`
2228
2228
  - **Path**: `/api/hosting/v1/git/installations/{uuid}/repositories`
2229
2229
 
2230
+ #### hosting_git_deploy-website-repository
2231
+
2232
+ Clones a Git repository into a directory of the website, or pulls it again. An empty or missing
2233
+ directory gets a clone of the branch. A directory that already holds this repository and branch is
2234
+ reset to its last commit and pulled: changes made on the server to files the repository tracks are
2235
+ discarded, files it does not track stay. A directory that holds other files, including another
2236
+ repository or another branch of this one, is rejected. `composer install` runs after the clone or
2237
+ pull when the repository has a `composer.json`.
2238
+
2239
+ The call waits for the deployment and returns its log. `is_success` false means Git or composer
2240
+ failed and the log says why. A second call for the same directory is rejected while the first is
2241
+ still waiting for the server. If the request times out, the deployment may still finish on the
2242
+ server; calling again later with the same repository and branch pulls.
2243
+
2244
+ Private repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,
2245
+ added to the repository as a deploy key.
2246
+
2247
+ - **Method**: `POST`
2248
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories/deploy`
2249
+
2250
+ #### hosting_git_list-website-repositories
2251
+
2252
+ Lists the Git repositories linked to directories of the website, with
2253
+ `Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of
2254
+ each one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub
2255
+ and GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.
2256
+
2257
+ - **Method**: `GET`
2258
+ - **Path**: `/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories`
2259
+
2260
+ #### hosting_git_ssh-public-key
2261
+
2262
+ Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to
2263
+ clone and pull over SSH, so a private repository works once the key is added to it as a deploy key
2264
+ on the Git host. `public_key` is null when the account has no key yet.
2265
+
2266
+ - **Method**: `GET`
2267
+ - **Path**: `/api/hosting/v1/accounts/{username}/git/ssh-key`
2268
+
2269
+ #### hosting_git_generate-ssh-key
2270
+
2271
+ Creates the SSH key pair of the hosting account and returns the public key. When the account already
2272
+ has a key, returns that key unchanged. One key serves every website of the account; add the public
2273
+ key to a private repository as a deploy key before deploying it.
2274
+
2275
+ - **Method**: `POST`
2276
+ - **Path**: `/api/hosting/v1/accounts/{username}/git/ssh-key`
2277
+
2230
2278
  #### hosting_nodejs_list-builds
2231
2279
 
2232
2280
  Retrieve a paginated list of Node.js build processes for a specific website.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "2.6.0",
3
+ "version": "2.7.1",
4
4
  "description": "Hostinger API — manage domains, DNS, hosting, VPS, billing and more from Gemini CLI.",
5
5
  "mcpServers": {
6
6
  "hostinger": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "2.6.0",
3
+ "version": "2.7.1",
4
4
  "mcpName": "io.github.hostinger/hostinger-api-mcp",
5
5
  "description": "MCP server for Hostinger API",
6
6
  "repository": {
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.6.0",
9
+ "version": "2.7.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "@hostinger/mcp",
14
- "version": "2.6.0",
14
+ "version": "2.7.1",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -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.57.0
67
+ * Generated from OpenAPI spec version 1.58.1
68
68
  */
69
69
  class MCPServer {
70
70
  constructor({ name, version, tools, instructions, skills = [] }) {
@@ -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.57.0
97
+ * Generated from OpenAPI spec version 1.58.1
98
98
  */
99
99
  class MCPServer {
100
100
  private readonly name: string;
@@ -7169,6 +7169,150 @@ export default [
7169
7169
  ],
7170
7170
  "group": "hosting"
7171
7171
  },
7172
+ {
7173
+ "name": "hosting_git_deploy-website-repository",
7174
+ "title": "Deploy website Git repository",
7175
+ "annotations": {
7176
+ "title": "Deploy website Git repository",
7177
+ "readOnlyHint": false,
7178
+ "destructiveHint": true
7179
+ },
7180
+ "description": "Clones a Git repository into a directory of the website, or pulls it again. An empty or missing\ndirectory gets a clone of the branch. A directory that already holds this repository and branch is\nreset to its last commit and pulled: changes made on the server to files the repository tracks are\ndiscarded, files it does not track stay. A directory that holds other files, including another\nrepository or another branch of this one, is rejected. `composer install` runs after the clone or\npull when the repository has a `composer.json`.\n\nThe call waits for the deployment and returns its log. `is_success` false means Git or composer\nfailed and the log says why. A second call for the same directory is rejected while the first is\nstill waiting for the server. If the request times out, the deployment may still finish on the\nserver; calling again later with the same repository and branch pulls.\n\nPrivate repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,\nadded to the repository as a deploy key.",
7181
+ "method": "POST",
7182
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories/deploy",
7183
+ "inputSchema": {
7184
+ "type": "object",
7185
+ "properties": {
7186
+ "username": {
7187
+ "type": "string",
7188
+ "description": "username parameter"
7189
+ },
7190
+ "domain": {
7191
+ "type": "string",
7192
+ "description": "Domain name"
7193
+ },
7194
+ "repository_url": {
7195
+ "type": "string",
7196
+ "description": "Clone URL of the repository on any Git host, SSH or HTTPS. Private repositories need an SSH URL\nand the account's Git SSH key added to the repository as a deploy key. An HTTP or HTTPS URL with\na username or token, or any URL with a password, is rejected."
7197
+ },
7198
+ "branch": {
7199
+ "type": "string",
7200
+ "description": "Branch to clone and pull"
7201
+ },
7202
+ "directory": {
7203
+ "type": "string",
7204
+ "description": "Directory under the website document root, exactly as `List website Git repositories` returns\nit for an existing repository. Empty, null or omitted means the document root."
7205
+ }
7206
+ },
7207
+ "required": [
7208
+ "username",
7209
+ "domain",
7210
+ "repository_url",
7211
+ "branch"
7212
+ ]
7213
+ },
7214
+ "security": [
7215
+ {
7216
+ "apiToken": []
7217
+ }
7218
+ ],
7219
+ "group": "hosting"
7220
+ },
7221
+ {
7222
+ "name": "hosting_git_list-website-repositories",
7223
+ "title": "List website Git repositories",
7224
+ "annotations": {
7225
+ "title": "List website Git repositories",
7226
+ "readOnlyHint": true,
7227
+ "destructiveHint": false
7228
+ },
7229
+ "description": "Lists the Git repositories linked to directories of the website, with\n`Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of\neach one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub\nand GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.",
7230
+ "method": "GET",
7231
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories",
7232
+ "inputSchema": {
7233
+ "type": "object",
7234
+ "properties": {
7235
+ "username": {
7236
+ "type": "string",
7237
+ "description": "username parameter"
7238
+ },
7239
+ "domain": {
7240
+ "type": "string",
7241
+ "description": "Domain name"
7242
+ }
7243
+ },
7244
+ "required": [
7245
+ "username",
7246
+ "domain"
7247
+ ]
7248
+ },
7249
+ "security": [
7250
+ {
7251
+ "apiToken": []
7252
+ }
7253
+ ],
7254
+ "group": "hosting"
7255
+ },
7256
+ {
7257
+ "name": "hosting_git_ssh-public-key",
7258
+ "title": "Get Git SSH public key",
7259
+ "annotations": {
7260
+ "title": "Get Git SSH public key",
7261
+ "readOnlyHint": true,
7262
+ "destructiveHint": false
7263
+ },
7264
+ "description": "Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to\nclone and pull over SSH, so a private repository works once the key is added to it as a deploy key\non the Git host. `public_key` is null when the account has no key yet.",
7265
+ "method": "GET",
7266
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
7267
+ "inputSchema": {
7268
+ "type": "object",
7269
+ "properties": {
7270
+ "username": {
7271
+ "type": "string",
7272
+ "description": "username parameter"
7273
+ }
7274
+ },
7275
+ "required": [
7276
+ "username"
7277
+ ]
7278
+ },
7279
+ "security": [
7280
+ {
7281
+ "apiToken": []
7282
+ }
7283
+ ],
7284
+ "group": "hosting"
7285
+ },
7286
+ {
7287
+ "name": "hosting_git_generate-ssh-key",
7288
+ "title": "Generate Git SSH key",
7289
+ "annotations": {
7290
+ "title": "Generate Git SSH key",
7291
+ "readOnlyHint": false,
7292
+ "destructiveHint": false
7293
+ },
7294
+ "description": "Creates the SSH key pair of the hosting account and returns the public key. When the account already\nhas a key, returns that key unchanged. One key serves every website of the account; add the public\nkey to a private repository as a deploy key before deploying it.",
7295
+ "method": "POST",
7296
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
7297
+ "inputSchema": {
7298
+ "type": "object",
7299
+ "properties": {
7300
+ "username": {
7301
+ "type": "string",
7302
+ "description": "username parameter"
7303
+ }
7304
+ },
7305
+ "required": [
7306
+ "username"
7307
+ ]
7308
+ },
7309
+ "security": [
7310
+ {
7311
+ "apiToken": []
7312
+ }
7313
+ ],
7314
+ "group": "hosting"
7315
+ },
7172
7316
  {
7173
7317
  "name": "hosting_nodejs_list-builds",
7174
7318
  "title": "List NodeJS builds",
@@ -7183,6 +7183,150 @@ const tools: OpenApiTool[] = [
7183
7183
  ],
7184
7184
  "group": "hosting"
7185
7185
  },
7186
+ {
7187
+ "name": "hosting_git_deploy-website-repository",
7188
+ "title": "Deploy website Git repository",
7189
+ "annotations": {
7190
+ "title": "Deploy website Git repository",
7191
+ "readOnlyHint": false,
7192
+ "destructiveHint": true
7193
+ },
7194
+ "description": "Clones a Git repository into a directory of the website, or pulls it again. An empty or missing\ndirectory gets a clone of the branch. A directory that already holds this repository and branch is\nreset to its last commit and pulled: changes made on the server to files the repository tracks are\ndiscarded, files it does not track stay. A directory that holds other files, including another\nrepository or another branch of this one, is rejected. `composer install` runs after the clone or\npull when the repository has a `composer.json`.\n\nThe call waits for the deployment and returns its log. `is_success` false means Git or composer\nfailed and the log says why. A second call for the same directory is rejected while the first is\nstill waiting for the server. If the request times out, the deployment may still finish on the\nserver; calling again later with the same repository and branch pulls.\n\nPrivate repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,\nadded to the repository as a deploy key.",
7195
+ "method": "POST",
7196
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories/deploy",
7197
+ "inputSchema": {
7198
+ "type": "object",
7199
+ "properties": {
7200
+ "username": {
7201
+ "type": "string",
7202
+ "description": "username parameter"
7203
+ },
7204
+ "domain": {
7205
+ "type": "string",
7206
+ "description": "Domain name"
7207
+ },
7208
+ "repository_url": {
7209
+ "type": "string",
7210
+ "description": "Clone URL of the repository on any Git host, SSH or HTTPS. Private repositories need an SSH URL\nand the account's Git SSH key added to the repository as a deploy key. An HTTP or HTTPS URL with\na username or token, or any URL with a password, is rejected."
7211
+ },
7212
+ "branch": {
7213
+ "type": "string",
7214
+ "description": "Branch to clone and pull"
7215
+ },
7216
+ "directory": {
7217
+ "type": "string",
7218
+ "description": "Directory under the website document root, exactly as `List website Git repositories` returns\nit for an existing repository. Empty, null or omitted means the document root."
7219
+ }
7220
+ },
7221
+ "required": [
7222
+ "username",
7223
+ "domain",
7224
+ "repository_url",
7225
+ "branch"
7226
+ ]
7227
+ },
7228
+ "security": [
7229
+ {
7230
+ "apiToken": []
7231
+ }
7232
+ ],
7233
+ "group": "hosting"
7234
+ },
7235
+ {
7236
+ "name": "hosting_git_list-website-repositories",
7237
+ "title": "List website Git repositories",
7238
+ "annotations": {
7239
+ "title": "List website Git repositories",
7240
+ "readOnlyHint": true,
7241
+ "destructiveHint": false
7242
+ },
7243
+ "description": "Lists the Git repositories linked to directories of the website, with\n`Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of\neach one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub\nand GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.",
7244
+ "method": "GET",
7245
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories",
7246
+ "inputSchema": {
7247
+ "type": "object",
7248
+ "properties": {
7249
+ "username": {
7250
+ "type": "string",
7251
+ "description": "username parameter"
7252
+ },
7253
+ "domain": {
7254
+ "type": "string",
7255
+ "description": "Domain name"
7256
+ }
7257
+ },
7258
+ "required": [
7259
+ "username",
7260
+ "domain"
7261
+ ]
7262
+ },
7263
+ "security": [
7264
+ {
7265
+ "apiToken": []
7266
+ }
7267
+ ],
7268
+ "group": "hosting"
7269
+ },
7270
+ {
7271
+ "name": "hosting_git_ssh-public-key",
7272
+ "title": "Get Git SSH public key",
7273
+ "annotations": {
7274
+ "title": "Get Git SSH public key",
7275
+ "readOnlyHint": true,
7276
+ "destructiveHint": false
7277
+ },
7278
+ "description": "Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to\nclone and pull over SSH, so a private repository works once the key is added to it as a deploy key\non the Git host. `public_key` is null when the account has no key yet.",
7279
+ "method": "GET",
7280
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
7281
+ "inputSchema": {
7282
+ "type": "object",
7283
+ "properties": {
7284
+ "username": {
7285
+ "type": "string",
7286
+ "description": "username parameter"
7287
+ }
7288
+ },
7289
+ "required": [
7290
+ "username"
7291
+ ]
7292
+ },
7293
+ "security": [
7294
+ {
7295
+ "apiToken": []
7296
+ }
7297
+ ],
7298
+ "group": "hosting"
7299
+ },
7300
+ {
7301
+ "name": "hosting_git_generate-ssh-key",
7302
+ "title": "Generate Git SSH key",
7303
+ "annotations": {
7304
+ "title": "Generate Git SSH key",
7305
+ "readOnlyHint": false,
7306
+ "destructiveHint": false
7307
+ },
7308
+ "description": "Creates the SSH key pair of the hosting account and returns the public key. When the account already\nhas a key, returns that key unchanged. One key serves every website of the account; add the public\nkey to a private repository as a deploy key before deploying it.",
7309
+ "method": "POST",
7310
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
7311
+ "inputSchema": {
7312
+ "type": "object",
7313
+ "properties": {
7314
+ "username": {
7315
+ "type": "string",
7316
+ "description": "username parameter"
7317
+ }
7318
+ },
7319
+ "required": [
7320
+ "username"
7321
+ ]
7322
+ },
7323
+ "security": [
7324
+ {
7325
+ "apiToken": []
7326
+ }
7327
+ ],
7328
+ "group": "hosting"
7329
+ },
7186
7330
  {
7187
7331
  "name": "hosting_nodejs_list-builds",
7188
7332
  "title": "List NodeJS builds",
@@ -1646,6 +1646,150 @@ export default [
1646
1646
  ],
1647
1647
  "group": "hosting"
1648
1648
  },
1649
+ {
1650
+ "name": "hosting_git_deploy-website-repository",
1651
+ "title": "Deploy website Git repository",
1652
+ "annotations": {
1653
+ "title": "Deploy website Git repository",
1654
+ "readOnlyHint": false,
1655
+ "destructiveHint": true
1656
+ },
1657
+ "description": "Clones a Git repository into a directory of the website, or pulls it again. An empty or missing\ndirectory gets a clone of the branch. A directory that already holds this repository and branch is\nreset to its last commit and pulled: changes made on the server to files the repository tracks are\ndiscarded, files it does not track stay. A directory that holds other files, including another\nrepository or another branch of this one, is rejected. `composer install` runs after the clone or\npull when the repository has a `composer.json`.\n\nThe call waits for the deployment and returns its log. `is_success` false means Git or composer\nfailed and the log says why. A second call for the same directory is rejected while the first is\nstill waiting for the server. If the request times out, the deployment may still finish on the\nserver; calling again later with the same repository and branch pulls.\n\nPrivate repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,\nadded to the repository as a deploy key.",
1658
+ "method": "POST",
1659
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories/deploy",
1660
+ "inputSchema": {
1661
+ "type": "object",
1662
+ "properties": {
1663
+ "username": {
1664
+ "type": "string",
1665
+ "description": "username parameter"
1666
+ },
1667
+ "domain": {
1668
+ "type": "string",
1669
+ "description": "Domain name"
1670
+ },
1671
+ "repository_url": {
1672
+ "type": "string",
1673
+ "description": "Clone URL of the repository on any Git host, SSH or HTTPS. Private repositories need an SSH URL\nand the account's Git SSH key added to the repository as a deploy key. An HTTP or HTTPS URL with\na username or token, or any URL with a password, is rejected."
1674
+ },
1675
+ "branch": {
1676
+ "type": "string",
1677
+ "description": "Branch to clone and pull"
1678
+ },
1679
+ "directory": {
1680
+ "type": "string",
1681
+ "description": "Directory under the website document root, exactly as `List website Git repositories` returns\nit for an existing repository. Empty, null or omitted means the document root."
1682
+ }
1683
+ },
1684
+ "required": [
1685
+ "username",
1686
+ "domain",
1687
+ "repository_url",
1688
+ "branch"
1689
+ ]
1690
+ },
1691
+ "security": [
1692
+ {
1693
+ "apiToken": []
1694
+ }
1695
+ ],
1696
+ "group": "hosting"
1697
+ },
1698
+ {
1699
+ "name": "hosting_git_list-website-repositories",
1700
+ "title": "List website Git repositories",
1701
+ "annotations": {
1702
+ "title": "List website Git repositories",
1703
+ "readOnlyHint": true,
1704
+ "destructiveHint": false
1705
+ },
1706
+ "description": "Lists the Git repositories linked to directories of the website, with\n`Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of\neach one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub\nand GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.",
1707
+ "method": "GET",
1708
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories",
1709
+ "inputSchema": {
1710
+ "type": "object",
1711
+ "properties": {
1712
+ "username": {
1713
+ "type": "string",
1714
+ "description": "username parameter"
1715
+ },
1716
+ "domain": {
1717
+ "type": "string",
1718
+ "description": "Domain name"
1719
+ }
1720
+ },
1721
+ "required": [
1722
+ "username",
1723
+ "domain"
1724
+ ]
1725
+ },
1726
+ "security": [
1727
+ {
1728
+ "apiToken": []
1729
+ }
1730
+ ],
1731
+ "group": "hosting"
1732
+ },
1733
+ {
1734
+ "name": "hosting_git_ssh-public-key",
1735
+ "title": "Get Git SSH public key",
1736
+ "annotations": {
1737
+ "title": "Get Git SSH public key",
1738
+ "readOnlyHint": true,
1739
+ "destructiveHint": false
1740
+ },
1741
+ "description": "Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to\nclone and pull over SSH, so a private repository works once the key is added to it as a deploy key\non the Git host. `public_key` is null when the account has no key yet.",
1742
+ "method": "GET",
1743
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
1744
+ "inputSchema": {
1745
+ "type": "object",
1746
+ "properties": {
1747
+ "username": {
1748
+ "type": "string",
1749
+ "description": "username parameter"
1750
+ }
1751
+ },
1752
+ "required": [
1753
+ "username"
1754
+ ]
1755
+ },
1756
+ "security": [
1757
+ {
1758
+ "apiToken": []
1759
+ }
1760
+ ],
1761
+ "group": "hosting"
1762
+ },
1763
+ {
1764
+ "name": "hosting_git_generate-ssh-key",
1765
+ "title": "Generate Git SSH key",
1766
+ "annotations": {
1767
+ "title": "Generate Git SSH key",
1768
+ "readOnlyHint": false,
1769
+ "destructiveHint": false
1770
+ },
1771
+ "description": "Creates the SSH key pair of the hosting account and returns the public key. When the account already\nhas a key, returns that key unchanged. One key serves every website of the account; add the public\nkey to a private repository as a deploy key before deploying it.",
1772
+ "method": "POST",
1773
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
1774
+ "inputSchema": {
1775
+ "type": "object",
1776
+ "properties": {
1777
+ "username": {
1778
+ "type": "string",
1779
+ "description": "username parameter"
1780
+ }
1781
+ },
1782
+ "required": [
1783
+ "username"
1784
+ ]
1785
+ },
1786
+ "security": [
1787
+ {
1788
+ "apiToken": []
1789
+ }
1790
+ ],
1791
+ "group": "hosting"
1792
+ },
1649
1793
  {
1650
1794
  "name": "hosting_nodejs_list-builds",
1651
1795
  "title": "List NodeJS builds",
@@ -1660,6 +1660,150 @@ const tools: OpenApiTool[] = [
1660
1660
  ],
1661
1661
  "group": "hosting"
1662
1662
  },
1663
+ {
1664
+ "name": "hosting_git_deploy-website-repository",
1665
+ "title": "Deploy website Git repository",
1666
+ "annotations": {
1667
+ "title": "Deploy website Git repository",
1668
+ "readOnlyHint": false,
1669
+ "destructiveHint": true
1670
+ },
1671
+ "description": "Clones a Git repository into a directory of the website, or pulls it again. An empty or missing\ndirectory gets a clone of the branch. A directory that already holds this repository and branch is\nreset to its last commit and pulled: changes made on the server to files the repository tracks are\ndiscarded, files it does not track stay. A directory that holds other files, including another\nrepository or another branch of this one, is rejected. `composer install` runs after the clone or\npull when the repository has a `composer.json`.\n\nThe call waits for the deployment and returns its log. `is_success` false means Git or composer\nfailed and the log says why. A second call for the same directory is rejected while the first is\nstill waiting for the server. If the request times out, the deployment may still finish on the\nserver; calling again later with the same repository and branch pulls.\n\nPrivate repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,\nadded to the repository as a deploy key.",
1672
+ "method": "POST",
1673
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories/deploy",
1674
+ "inputSchema": {
1675
+ "type": "object",
1676
+ "properties": {
1677
+ "username": {
1678
+ "type": "string",
1679
+ "description": "username parameter"
1680
+ },
1681
+ "domain": {
1682
+ "type": "string",
1683
+ "description": "Domain name"
1684
+ },
1685
+ "repository_url": {
1686
+ "type": "string",
1687
+ "description": "Clone URL of the repository on any Git host, SSH or HTTPS. Private repositories need an SSH URL\nand the account's Git SSH key added to the repository as a deploy key. An HTTP or HTTPS URL with\na username or token, or any URL with a password, is rejected."
1688
+ },
1689
+ "branch": {
1690
+ "type": "string",
1691
+ "description": "Branch to clone and pull"
1692
+ },
1693
+ "directory": {
1694
+ "type": "string",
1695
+ "description": "Directory under the website document root, exactly as `List website Git repositories` returns\nit for an existing repository. Empty, null or omitted means the document root."
1696
+ }
1697
+ },
1698
+ "required": [
1699
+ "username",
1700
+ "domain",
1701
+ "repository_url",
1702
+ "branch"
1703
+ ]
1704
+ },
1705
+ "security": [
1706
+ {
1707
+ "apiToken": []
1708
+ }
1709
+ ],
1710
+ "group": "hosting"
1711
+ },
1712
+ {
1713
+ "name": "hosting_git_list-website-repositories",
1714
+ "title": "List website Git repositories",
1715
+ "annotations": {
1716
+ "title": "List website Git repositories",
1717
+ "readOnlyHint": true,
1718
+ "destructiveHint": false
1719
+ },
1720
+ "description": "Lists the Git repositories linked to directories of the website, with\n`Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of\neach one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub\nand GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.",
1721
+ "method": "GET",
1722
+ "path": "/api/hosting/v1/accounts/{username}/websites/{domain}/git/repositories",
1723
+ "inputSchema": {
1724
+ "type": "object",
1725
+ "properties": {
1726
+ "username": {
1727
+ "type": "string",
1728
+ "description": "username parameter"
1729
+ },
1730
+ "domain": {
1731
+ "type": "string",
1732
+ "description": "Domain name"
1733
+ }
1734
+ },
1735
+ "required": [
1736
+ "username",
1737
+ "domain"
1738
+ ]
1739
+ },
1740
+ "security": [
1741
+ {
1742
+ "apiToken": []
1743
+ }
1744
+ ],
1745
+ "group": "hosting"
1746
+ },
1747
+ {
1748
+ "name": "hosting_git_ssh-public-key",
1749
+ "title": "Get Git SSH public key",
1750
+ "annotations": {
1751
+ "title": "Get Git SSH public key",
1752
+ "readOnlyHint": true,
1753
+ "destructiveHint": false
1754
+ },
1755
+ "description": "Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to\nclone and pull over SSH, so a private repository works once the key is added to it as a deploy key\non the Git host. `public_key` is null when the account has no key yet.",
1756
+ "method": "GET",
1757
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
1758
+ "inputSchema": {
1759
+ "type": "object",
1760
+ "properties": {
1761
+ "username": {
1762
+ "type": "string",
1763
+ "description": "username parameter"
1764
+ }
1765
+ },
1766
+ "required": [
1767
+ "username"
1768
+ ]
1769
+ },
1770
+ "security": [
1771
+ {
1772
+ "apiToken": []
1773
+ }
1774
+ ],
1775
+ "group": "hosting"
1776
+ },
1777
+ {
1778
+ "name": "hosting_git_generate-ssh-key",
1779
+ "title": "Generate Git SSH key",
1780
+ "annotations": {
1781
+ "title": "Generate Git SSH key",
1782
+ "readOnlyHint": false,
1783
+ "destructiveHint": false
1784
+ },
1785
+ "description": "Creates the SSH key pair of the hosting account and returns the public key. When the account already\nhas a key, returns that key unchanged. One key serves every website of the account; add the public\nkey to a private repository as a deploy key before deploying it.",
1786
+ "method": "POST",
1787
+ "path": "/api/hosting/v1/accounts/{username}/git/ssh-key",
1788
+ "inputSchema": {
1789
+ "type": "object",
1790
+ "properties": {
1791
+ "username": {
1792
+ "type": "string",
1793
+ "description": "username parameter"
1794
+ }
1795
+ },
1796
+ "required": [
1797
+ "username"
1798
+ ]
1799
+ },
1800
+ "security": [
1801
+ {
1802
+ "apiToken": []
1803
+ }
1804
+ ],
1805
+ "group": "hosting"
1806
+ },
1663
1807
  {
1664
1808
  "name": "hosting_nodejs_list-builds",
1665
1809
  "title": "List NodeJS builds",
@@ -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.6.0', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.7.1', 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.6.0', tools, instructions });
7
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '2.7.1', tools, instructions });
@@ -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.6.0', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '2.7.1', tools, instructions, skills });
@@ -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.6.0', tools, instructions, skills });
8
+ startServer({ name: 'hostinger-api-mcp', version: '2.7.1', tools, instructions, skills });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/billing.js';
5
5
 
6
- startServer({ name: 'hostinger-billing-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/dns.js';
5
5
 
6
- startServer({ name: 'hostinger-dns-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/domains.js';
5
5
 
6
- startServer({ name: 'hostinger-domains-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/ecommerce.js';
5
5
 
6
- startServer({ name: 'hostinger-ecommerce-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/horizons.js';
5
5
 
6
- startServer({ name: 'hostinger-horizons-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '2.7.1', tools });
@@ -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.6.0', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '2.7.1', tools, instructions });
@@ -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.6.0', tools, instructions });
7
+ startServer({ name: 'hostinger-hosting-mcp', version: '2.7.1', tools, instructions });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/mail.js';
5
5
 
6
- startServer({ name: 'hostinger-mail-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/reach.js';
5
5
 
6
- startServer({ name: 'hostinger-reach-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/vps.js';
5
5
 
6
- startServer({ name: 'hostinger-vps-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '2.7.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/wordpress.js';
5
5
 
6
- startServer({ name: 'hostinger-wordpress-mcp', version: '2.6.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '2.7.1', tools });
package/types.d.ts CHANGED
@@ -4105,6 +4105,101 @@ installation does not belong to the customer. Limited to 10 calls per minute per
4105
4105
  response: any; // Response structure will depend on the API
4106
4106
  };
4107
4107
 
4108
+ /**
4109
+ * Clones a Git repository into a directory of the website, or pulls it again. An empty or missing
4110
+ directory gets a clone of the branch. A directory that already holds this repository and branch is
4111
+ reset to its last commit and pulled: changes made on the server to files the repository tracks are
4112
+ discarded, files it does not track stay. A directory that holds other files, including another
4113
+ repository or another branch of this one, is rejected. `composer install` runs after the clone or
4114
+ pull when the repository has a `composer.json`.
4115
+
4116
+ The call waits for the deployment and returns its log. `is_success` false means Git or composer
4117
+ failed and the log says why. A second call for the same directory is rejected while the first is
4118
+ still waiting for the server. If the request times out, the deployment may still finish on the
4119
+ server; calling again later with the same repository and branch pulls.
4120
+
4121
+ Private repositories need an SSH URL and the account's Git SSH key from `Generate Git SSH key`,
4122
+ added to the repository as a deploy key.
4123
+ */
4124
+ "hosting_git_deploy-website-repository": {
4125
+ params: {
4126
+ /**
4127
+ * username parameter
4128
+ */
4129
+ username: string;
4130
+ /**
4131
+ * Domain name
4132
+ */
4133
+ domain: string;
4134
+ /**
4135
+ * Clone URL of the repository on any Git host, SSH or HTTPS. Private repositories need an SSH URL
4136
+ and the account's Git SSH key added to the repository as a deploy key. An HTTP or HTTPS URL with
4137
+ a username or token, or any URL with a password, is rejected.
4138
+ */
4139
+ repository_url: string;
4140
+ /**
4141
+ * Branch to clone and pull
4142
+ */
4143
+ branch: string;
4144
+ /**
4145
+ * Directory under the website document root, exactly as `List website Git repositories` returns
4146
+ it for an existing repository. Empty, null or omitted means the document root.
4147
+ */
4148
+ directory?: string;
4149
+ };
4150
+ response: any; // Response structure will depend on the API
4151
+ };
4152
+
4153
+ /**
4154
+ * Lists the Git repositories linked to directories of the website, with
4155
+ `Deploy website Git repository` or in the Git section of hPanel: clone URL, branch and directory of
4156
+ each one. A repository whose clone failed stays listed; deploying it again retries the clone. GitHub
4157
+ and GitLab auto-deployments are not listed here; see `Get Git auto-deployment settings`.
4158
+ */
4159
+ "hosting_git_list-website-repositories": {
4160
+ params: {
4161
+ /**
4162
+ * username parameter
4163
+ */
4164
+ username: string;
4165
+ /**
4166
+ * Domain name
4167
+ */
4168
+ domain: string;
4169
+ };
4170
+ response: any; // Response structure will depend on the API
4171
+ };
4172
+
4173
+ /**
4174
+ * Returns the public SSH key of the hosting account. `Deploy website Git repository` uses this key to
4175
+ clone and pull over SSH, so a private repository works once the key is added to it as a deploy key
4176
+ on the Git host. `public_key` is null when the account has no key yet.
4177
+ */
4178
+ "hosting_git_ssh-public-key": {
4179
+ params: {
4180
+ /**
4181
+ * username parameter
4182
+ */
4183
+ username: string;
4184
+ };
4185
+ response: any; // Response structure will depend on the API
4186
+ };
4187
+
4188
+ /**
4189
+ * Creates the SSH key pair of the hosting account and returns the public key. When the account already
4190
+ has a key, returns that key unchanged. One key serves every website of the account; add the public
4191
+ key to a private repository as a deploy key before deploying it.
4192
+ */
4193
+ "hosting_git_generate-ssh-key": {
4194
+ params: {
4195
+ /**
4196
+ * username parameter
4197
+ */
4198
+ username: string;
4199
+ };
4200
+ response: any; // Response structure will depend on the API
4201
+ };
4202
+
4108
4203
  /**
4109
4204
  * Retrieve a paginated list of Node.js build processes for a specific website.
4110
4205