hostinger-api-mcp 1.34.0 → 1.35.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/README.md CHANGED
@@ -69,14 +69,14 @@ pnpm update -g hostinger-api-mcp
69
69
 
70
70
  This package installs the following MCP server commands:
71
71
 
72
- - `hostinger-api-mcp` — unified server with every tool (314 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (318 total)
73
73
  - `hostinger-agency-hosting-mcp` — 27 tools for agency-hosting
74
74
  - `hostinger-billing-mcp` — 9 tools for billing
75
75
  - `hostinger-dns-mcp` — 8 tools for dns
76
- - `hostinger-domains-mcp` — 38 tools for domains
76
+ - `hostinger-domains-mcp` — 40 tools for domains
77
77
  - `hostinger-ecommerce-mcp` — 12 tools for ecommerce
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
- - `hostinger-hosting-mcp` — 48 tools for hosting
79
+ - `hostinger-hosting-mcp` — 50 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
81
  - `hostinger-reach-mcp` — 35 tools for reach
82
82
  - `hostinger-vps-mcp` — 62 tools for vps
@@ -684,6 +684,32 @@ Retrieve a list of pending and completed domain verifications.
684
684
  - **Method**: `GET`
685
685
  - **Path**: `/api/v2/direct/verifications/active`
686
686
 
687
+ #### domains_suggestDomainNamesFromADescriptionV1
688
+
689
+ Suggest available domain names based on a free-text description of your project.
690
+
691
+ Suggestions are generated by an AI model, so they differ between calls.
692
+
693
+ Endpoint has rate limit of 90 requests per minute.
694
+
695
+ Use this endpoint to find a domain name when you only know what the website is about.
696
+
697
+ - **Method**: `POST`
698
+ - **Path**: `/api/domains/v1/availability/alternatives-from-description`
699
+
700
+ #### domains_suggestDomainNamesFromADomainV1
701
+
702
+ Suggest available domain names based on a domain name you already have in mind.
703
+
704
+ Suggestions are generated by an AI model, so they differ between calls.
705
+
706
+ Endpoint has rate limit of 90 requests per minute.
707
+
708
+ Use this endpoint when the domain you wanted is taken and you need close alternatives.
709
+
710
+ - **Method**: `POST`
711
+ - **Path**: `/api/domains/v1/availability/alternatives-from-domain`
712
+
687
713
  #### domains_checkDomainAvailabilityV1
688
714
 
689
715
  Check availability of domain names across multiple TLDs.
@@ -692,7 +718,7 @@ Multiple TLDs can be checked at once.
692
718
  If you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.
693
719
  TLDs should be provided without leading dot (e.g. `com`, `net`, `org`).
694
720
 
695
- Endpoint has rate limit of 10 requests per minute.
721
+ Endpoint has rate limit of 90 requests per minute.
696
722
 
697
723
  Use this endpoint to verify domain availability before purchase.
698
724
 
@@ -1570,6 +1596,26 @@ Skip this verification when using Hostinger's free subdomains (*.hostingersite.c
1570
1596
  - **Method**: `POST`
1571
1597
  - **Path**: `/api/hosting/v1/domains/verify-ownership`
1572
1598
 
1599
+ #### hosting_listWebsiteFilesAndDirectoriesV1
1600
+
1601
+ List files and directories under a website's document root.
1602
+
1603
+ Use `directory` to browse a subdirectory relative to the document root. Symlinked entries
1604
+ are listed but never traversed into or resolved.
1605
+
1606
+ - **Method**: `GET`
1607
+ - **Path**: `/api/hosting/v1/accounts/{username}/domains/{domain}/files`
1608
+
1609
+ #### hosting_getWebsiteFileContentV1
1610
+
1611
+ Get a single file's content, relative to a website's document root.
1612
+
1613
+ Read-only; refuses symlinks, oversized files, non-text file types, and files identified as
1614
+ containing secrets (e.g. credential files) — none of these are returned by this endpoint.
1615
+
1616
+ - **Method**: `GET`
1617
+ - **Path**: `/api/hosting/v1/accounts/{username}/domains/{domain}/files/content`
1618
+
1573
1619
  #### hosting_listNodeJSBuildsV1
1574
1620
 
1575
1621
  Retrieve a paginated list of Node.js build processes for a specific website.
@@ -1779,15 +1825,13 @@ websites list endpoint to see when your new website becomes available.
1779
1825
 
1780
1826
  #### hosting_deleteWebsiteV1
1781
1827
 
1782
- Permanently deletes a website and all of its data. This action is destructive
1783
- and cannot be undone. Always ask the user for explicit confirmation before
1784
- calling this endpoint.
1828
+ This endpoint permanently removes a website and all of its data. This action
1829
+ cannot be undone. Before calling it, make sure the user understands the
1830
+ consequences and explicitly confirms that they want to proceed.
1785
1831
 
1786
1832
  All website files, databases and related configuration will be removed.
1787
1833
  The hosting plan itself is kept, so a new website can be created on it afterwards.
1788
1834
 
1789
- The confirm field must be boolean true, otherwise the request is rejected.
1790
-
1791
1835
  Supported websites: main and addon domain websites on web hosting plans, and
1792
1836
  Website Builder websites. Parked domains and subdomains cannot be deleted with
1793
1837
  this endpoint. The domain must be the exact website domain, not a preview
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.34.0",
3
+ "version": "1.35.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": "1.34.0",
3
+ "version": "1.35.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": "1.34.0",
9
+ "version": "1.35.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.34.0",
14
+ "version": "1.35.1",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  },
@@ -29,7 +29,7 @@ const SECURITY_SCHEMES = {
29
29
 
30
30
  /**
31
31
  * MCP Server for Hostinger API
32
- * Generated from OpenAPI spec version 1.30.1
32
+ * Generated from OpenAPI spec version 1.32.1
33
33
  */
34
34
  class MCPServer {
35
35
  constructor({ name, version, tools }) {
@@ -52,7 +52,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
52
52
 
53
53
  /**
54
54
  * MCP Server for Hostinger API
55
- * Generated from OpenAPI spec version 1.30.1
55
+ * Generated from OpenAPI spec version 1.32.1
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -1791,9 +1791,67 @@ export default [
1791
1791
  ],
1792
1792
  "group": "domains"
1793
1793
  },
1794
+ {
1795
+ "name": "domains_suggestDomainNamesFromADescriptionV1",
1796
+ "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.",
1797
+ "method": "POST",
1798
+ "path": "/api/domains/v1/availability/alternatives-from-description",
1799
+ "inputSchema": {
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "description": {
1803
+ "type": "string",
1804
+ "description": "Free-text description of the project the domain is needed for"
1805
+ },
1806
+ "limit": {
1807
+ "type": "integer",
1808
+ "description": "Amount of domain names to suggest"
1809
+ }
1810
+ },
1811
+ "required": [
1812
+ "description",
1813
+ "limit"
1814
+ ]
1815
+ },
1816
+ "security": [
1817
+ {
1818
+ "apiToken": []
1819
+ }
1820
+ ],
1821
+ "group": "domains"
1822
+ },
1823
+ {
1824
+ "name": "domains_suggestDomainNamesFromADomainV1",
1825
+ "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.",
1826
+ "method": "POST",
1827
+ "path": "/api/domains/v1/availability/alternatives-from-domain",
1828
+ "inputSchema": {
1829
+ "type": "object",
1830
+ "properties": {
1831
+ "domain": {
1832
+ "type": "string",
1833
+ "description": "Domain name to base the suggestions on"
1834
+ },
1835
+ "limit": {
1836
+ "type": "integer",
1837
+ "description": "Amount of domain names to suggest"
1838
+ }
1839
+ },
1840
+ "required": [
1841
+ "domain",
1842
+ "limit"
1843
+ ]
1844
+ },
1845
+ "security": [
1846
+ {
1847
+ "apiToken": []
1848
+ }
1849
+ ],
1850
+ "group": "domains"
1851
+ },
1794
1852
  {
1795
1853
  "name": "domains_checkDomainAvailabilityV1",
1796
- "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
1854
+ "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
1797
1855
  "method": "POST",
1798
1856
  "path": "/api/domains/v1/availability",
1799
1857
  "inputSchema": {
@@ -4140,6 +4198,97 @@ export default [
4140
4198
  ],
4141
4199
  "group": "hosting"
4142
4200
  },
4201
+ {
4202
+ "name": "hosting_listWebsiteFilesAndDirectoriesV1",
4203
+ "description": "List files and directories under a website's document root.\n\nUse `directory` to browse a subdirectory relative to the document root. Symlinked entries\nare listed but never traversed into or resolved.",
4204
+ "method": "GET",
4205
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files",
4206
+ "inputSchema": {
4207
+ "type": "object",
4208
+ "properties": {
4209
+ "username": {
4210
+ "type": "string",
4211
+ "description": "username parameter"
4212
+ },
4213
+ "domain": {
4214
+ "type": "string",
4215
+ "description": "Domain name"
4216
+ },
4217
+ "directory": {
4218
+ "type": "string",
4219
+ "description": "Directory path to check"
4220
+ },
4221
+ "max_depth": {
4222
+ "type": "integer",
4223
+ "description": "How many directory levels deep to recurse."
4224
+ },
4225
+ "max_items": {
4226
+ "type": "integer",
4227
+ "description": "Max number of entries to return in this page."
4228
+ },
4229
+ "offset": {
4230
+ "type": "integer",
4231
+ "description": "Number of entries to skip. Page with offset + item count until reaching total_items."
4232
+ },
4233
+ "file_types": {
4234
+ "type": "string",
4235
+ "description": "Filter by entry type, e.g. file,directory. Array or comma-separated. Omit for all types."
4236
+ }
4237
+ },
4238
+ "required": [
4239
+ "username",
4240
+ "domain"
4241
+ ]
4242
+ },
4243
+ "security": [
4244
+ {
4245
+ "apiToken": []
4246
+ }
4247
+ ],
4248
+ "group": "hosting"
4249
+ },
4250
+ {
4251
+ "name": "hosting_getWebsiteFileContentV1",
4252
+ "description": "Get a single file's content, relative to a website's document root.\n\nRead-only; refuses symlinks, oversized files, non-text file types, and files identified as\ncontaining secrets (e.g. credential files) — none of these are returned by this endpoint.",
4253
+ "method": "GET",
4254
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files/content",
4255
+ "inputSchema": {
4256
+ "type": "object",
4257
+ "properties": {
4258
+ "username": {
4259
+ "type": "string",
4260
+ "description": "username parameter"
4261
+ },
4262
+ "domain": {
4263
+ "type": "string",
4264
+ "description": "Domain name"
4265
+ },
4266
+ "path": {
4267
+ "type": "string",
4268
+ "description": "File path, relative to the document root."
4269
+ },
4270
+ "from_line": {
4271
+ "type": "integer",
4272
+ "description": "Line offset to start reading from."
4273
+ },
4274
+ "max_lines": {
4275
+ "type": "integer",
4276
+ "description": "Max number of lines to return."
4277
+ }
4278
+ },
4279
+ "required": [
4280
+ "username",
4281
+ "domain",
4282
+ "path"
4283
+ ]
4284
+ },
4285
+ "security": [
4286
+ {
4287
+ "apiToken": []
4288
+ }
4289
+ ],
4290
+ "group": "hosting"
4291
+ },
4143
4292
  {
4144
4293
  "name": "hosting_listNodeJSBuildsV1",
4145
4294
  "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.",
@@ -4750,7 +4899,7 @@ export default [
4750
4899
  },
4751
4900
  {
4752
4901
  "name": "hosting_deleteWebsiteV1",
4753
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4902
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4754
4903
  "method": "DELETE",
4755
4904
  "path": "/api/hosting/v1/websites/{domain}",
4756
4905
  "inputSchema": {
@@ -1805,9 +1805,67 @@ const tools: OpenApiTool[] = [
1805
1805
  ],
1806
1806
  "group": "domains"
1807
1807
  },
1808
+ {
1809
+ "name": "domains_suggestDomainNamesFromADescriptionV1",
1810
+ "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.",
1811
+ "method": "POST",
1812
+ "path": "/api/domains/v1/availability/alternatives-from-description",
1813
+ "inputSchema": {
1814
+ "type": "object",
1815
+ "properties": {
1816
+ "description": {
1817
+ "type": "string",
1818
+ "description": "Free-text description of the project the domain is needed for"
1819
+ },
1820
+ "limit": {
1821
+ "type": "integer",
1822
+ "description": "Amount of domain names to suggest"
1823
+ }
1824
+ },
1825
+ "required": [
1826
+ "description",
1827
+ "limit"
1828
+ ]
1829
+ },
1830
+ "security": [
1831
+ {
1832
+ "apiToken": []
1833
+ }
1834
+ ],
1835
+ "group": "domains"
1836
+ },
1837
+ {
1838
+ "name": "domains_suggestDomainNamesFromADomainV1",
1839
+ "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.",
1840
+ "method": "POST",
1841
+ "path": "/api/domains/v1/availability/alternatives-from-domain",
1842
+ "inputSchema": {
1843
+ "type": "object",
1844
+ "properties": {
1845
+ "domain": {
1846
+ "type": "string",
1847
+ "description": "Domain name to base the suggestions on"
1848
+ },
1849
+ "limit": {
1850
+ "type": "integer",
1851
+ "description": "Amount of domain names to suggest"
1852
+ }
1853
+ },
1854
+ "required": [
1855
+ "domain",
1856
+ "limit"
1857
+ ]
1858
+ },
1859
+ "security": [
1860
+ {
1861
+ "apiToken": []
1862
+ }
1863
+ ],
1864
+ "group": "domains"
1865
+ },
1808
1866
  {
1809
1867
  "name": "domains_checkDomainAvailabilityV1",
1810
- "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
1868
+ "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
1811
1869
  "method": "POST",
1812
1870
  "path": "/api/domains/v1/availability",
1813
1871
  "inputSchema": {
@@ -4154,6 +4212,97 @@ const tools: OpenApiTool[] = [
4154
4212
  ],
4155
4213
  "group": "hosting"
4156
4214
  },
4215
+ {
4216
+ "name": "hosting_listWebsiteFilesAndDirectoriesV1",
4217
+ "description": "List files and directories under a website's document root.\n\nUse `directory` to browse a subdirectory relative to the document root. Symlinked entries\nare listed but never traversed into or resolved.",
4218
+ "method": "GET",
4219
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files",
4220
+ "inputSchema": {
4221
+ "type": "object",
4222
+ "properties": {
4223
+ "username": {
4224
+ "type": "string",
4225
+ "description": "username parameter"
4226
+ },
4227
+ "domain": {
4228
+ "type": "string",
4229
+ "description": "Domain name"
4230
+ },
4231
+ "directory": {
4232
+ "type": "string",
4233
+ "description": "Directory path to check"
4234
+ },
4235
+ "max_depth": {
4236
+ "type": "integer",
4237
+ "description": "How many directory levels deep to recurse."
4238
+ },
4239
+ "max_items": {
4240
+ "type": "integer",
4241
+ "description": "Max number of entries to return in this page."
4242
+ },
4243
+ "offset": {
4244
+ "type": "integer",
4245
+ "description": "Number of entries to skip. Page with offset + item count until reaching total_items."
4246
+ },
4247
+ "file_types": {
4248
+ "type": "string",
4249
+ "description": "Filter by entry type, e.g. file,directory. Array or comma-separated. Omit for all types."
4250
+ }
4251
+ },
4252
+ "required": [
4253
+ "username",
4254
+ "domain"
4255
+ ]
4256
+ },
4257
+ "security": [
4258
+ {
4259
+ "apiToken": []
4260
+ }
4261
+ ],
4262
+ "group": "hosting"
4263
+ },
4264
+ {
4265
+ "name": "hosting_getWebsiteFileContentV1",
4266
+ "description": "Get a single file's content, relative to a website's document root.\n\nRead-only; refuses symlinks, oversized files, non-text file types, and files identified as\ncontaining secrets (e.g. credential files) — none of these are returned by this endpoint.",
4267
+ "method": "GET",
4268
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files/content",
4269
+ "inputSchema": {
4270
+ "type": "object",
4271
+ "properties": {
4272
+ "username": {
4273
+ "type": "string",
4274
+ "description": "username parameter"
4275
+ },
4276
+ "domain": {
4277
+ "type": "string",
4278
+ "description": "Domain name"
4279
+ },
4280
+ "path": {
4281
+ "type": "string",
4282
+ "description": "File path, relative to the document root."
4283
+ },
4284
+ "from_line": {
4285
+ "type": "integer",
4286
+ "description": "Line offset to start reading from."
4287
+ },
4288
+ "max_lines": {
4289
+ "type": "integer",
4290
+ "description": "Max number of lines to return."
4291
+ }
4292
+ },
4293
+ "required": [
4294
+ "username",
4295
+ "domain",
4296
+ "path"
4297
+ ]
4298
+ },
4299
+ "security": [
4300
+ {
4301
+ "apiToken": []
4302
+ }
4303
+ ],
4304
+ "group": "hosting"
4305
+ },
4157
4306
  {
4158
4307
  "name": "hosting_listNodeJSBuildsV1",
4159
4308
  "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.",
@@ -4764,7 +4913,7 @@ const tools: OpenApiTool[] = [
4764
4913
  },
4765
4914
  {
4766
4915
  "name": "hosting_deleteWebsiteV1",
4767
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4916
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
4768
4917
  "method": "DELETE",
4769
4918
  "path": "/api/hosting/v1/websites/{domain}",
4770
4919
  "inputSchema": {
@@ -17,9 +17,67 @@ export default [
17
17
  ],
18
18
  "group": "domains"
19
19
  },
20
+ {
21
+ "name": "domains_suggestDomainNamesFromADescriptionV1",
22
+ "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.",
23
+ "method": "POST",
24
+ "path": "/api/domains/v1/availability/alternatives-from-description",
25
+ "inputSchema": {
26
+ "type": "object",
27
+ "properties": {
28
+ "description": {
29
+ "type": "string",
30
+ "description": "Free-text description of the project the domain is needed for"
31
+ },
32
+ "limit": {
33
+ "type": "integer",
34
+ "description": "Amount of domain names to suggest"
35
+ }
36
+ },
37
+ "required": [
38
+ "description",
39
+ "limit"
40
+ ]
41
+ },
42
+ "security": [
43
+ {
44
+ "apiToken": []
45
+ }
46
+ ],
47
+ "group": "domains"
48
+ },
49
+ {
50
+ "name": "domains_suggestDomainNamesFromADomainV1",
51
+ "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.",
52
+ "method": "POST",
53
+ "path": "/api/domains/v1/availability/alternatives-from-domain",
54
+ "inputSchema": {
55
+ "type": "object",
56
+ "properties": {
57
+ "domain": {
58
+ "type": "string",
59
+ "description": "Domain name to base the suggestions on"
60
+ },
61
+ "limit": {
62
+ "type": "integer",
63
+ "description": "Amount of domain names to suggest"
64
+ }
65
+ },
66
+ "required": [
67
+ "domain",
68
+ "limit"
69
+ ]
70
+ },
71
+ "security": [
72
+ {
73
+ "apiToken": []
74
+ }
75
+ ],
76
+ "group": "domains"
77
+ },
20
78
  {
21
79
  "name": "domains_checkDomainAvailabilityV1",
22
- "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
80
+ "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
23
81
  "method": "POST",
24
82
  "path": "/api/domains/v1/availability",
25
83
  "inputSchema": {
@@ -31,9 +31,67 @@ const tools: OpenApiTool[] = [
31
31
  ],
32
32
  "group": "domains"
33
33
  },
34
+ {
35
+ "name": "domains_suggestDomainNamesFromADescriptionV1",
36
+ "description": "Suggest available domain names based on a free-text description of your project.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to find a domain name when you only know what the website is about.",
37
+ "method": "POST",
38
+ "path": "/api/domains/v1/availability/alternatives-from-description",
39
+ "inputSchema": {
40
+ "type": "object",
41
+ "properties": {
42
+ "description": {
43
+ "type": "string",
44
+ "description": "Free-text description of the project the domain is needed for"
45
+ },
46
+ "limit": {
47
+ "type": "integer",
48
+ "description": "Amount of domain names to suggest"
49
+ }
50
+ },
51
+ "required": [
52
+ "description",
53
+ "limit"
54
+ ]
55
+ },
56
+ "security": [
57
+ {
58
+ "apiToken": []
59
+ }
60
+ ],
61
+ "group": "domains"
62
+ },
63
+ {
64
+ "name": "domains_suggestDomainNamesFromADomainV1",
65
+ "description": "Suggest available domain names based on a domain name you already have in mind.\n\nSuggestions are generated by an AI model, so they differ between calls.\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint when the domain you wanted is taken and you need close alternatives.",
66
+ "method": "POST",
67
+ "path": "/api/domains/v1/availability/alternatives-from-domain",
68
+ "inputSchema": {
69
+ "type": "object",
70
+ "properties": {
71
+ "domain": {
72
+ "type": "string",
73
+ "description": "Domain name to base the suggestions on"
74
+ },
75
+ "limit": {
76
+ "type": "integer",
77
+ "description": "Amount of domain names to suggest"
78
+ }
79
+ },
80
+ "required": [
81
+ "domain",
82
+ "limit"
83
+ ]
84
+ },
85
+ "security": [
86
+ {
87
+ "apiToken": []
88
+ }
89
+ ],
90
+ "group": "domains"
91
+ },
34
92
  {
35
93
  "name": "domains_checkDomainAvailabilityV1",
36
- "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 10 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
94
+ "description": "Check availability of domain names across multiple TLDs.\n\nMultiple TLDs can be checked at once.\nIf you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.\nTLDs should be provided without leading dot (e.g. `com`, `net`, `org`).\n\nEndpoint has rate limit of 90 requests per minute.\n\nUse this endpoint to verify domain availability before purchase.",
37
95
  "method": "POST",
38
96
  "path": "/api/domains/v1/availability",
39
97
  "inputSchema": {
@@ -1046,6 +1046,97 @@ export default [
1046
1046
  ],
1047
1047
  "group": "hosting"
1048
1048
  },
1049
+ {
1050
+ "name": "hosting_listWebsiteFilesAndDirectoriesV1",
1051
+ "description": "List files and directories under a website's document root.\n\nUse `directory` to browse a subdirectory relative to the document root. Symlinked entries\nare listed but never traversed into or resolved.",
1052
+ "method": "GET",
1053
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files",
1054
+ "inputSchema": {
1055
+ "type": "object",
1056
+ "properties": {
1057
+ "username": {
1058
+ "type": "string",
1059
+ "description": "username parameter"
1060
+ },
1061
+ "domain": {
1062
+ "type": "string",
1063
+ "description": "Domain name"
1064
+ },
1065
+ "directory": {
1066
+ "type": "string",
1067
+ "description": "Directory path to check"
1068
+ },
1069
+ "max_depth": {
1070
+ "type": "integer",
1071
+ "description": "How many directory levels deep to recurse."
1072
+ },
1073
+ "max_items": {
1074
+ "type": "integer",
1075
+ "description": "Max number of entries to return in this page."
1076
+ },
1077
+ "offset": {
1078
+ "type": "integer",
1079
+ "description": "Number of entries to skip. Page with offset + item count until reaching total_items."
1080
+ },
1081
+ "file_types": {
1082
+ "type": "string",
1083
+ "description": "Filter by entry type, e.g. file,directory. Array or comma-separated. Omit for all types."
1084
+ }
1085
+ },
1086
+ "required": [
1087
+ "username",
1088
+ "domain"
1089
+ ]
1090
+ },
1091
+ "security": [
1092
+ {
1093
+ "apiToken": []
1094
+ }
1095
+ ],
1096
+ "group": "hosting"
1097
+ },
1098
+ {
1099
+ "name": "hosting_getWebsiteFileContentV1",
1100
+ "description": "Get a single file's content, relative to a website's document root.\n\nRead-only; refuses symlinks, oversized files, non-text file types, and files identified as\ncontaining secrets (e.g. credential files) — none of these are returned by this endpoint.",
1101
+ "method": "GET",
1102
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files/content",
1103
+ "inputSchema": {
1104
+ "type": "object",
1105
+ "properties": {
1106
+ "username": {
1107
+ "type": "string",
1108
+ "description": "username parameter"
1109
+ },
1110
+ "domain": {
1111
+ "type": "string",
1112
+ "description": "Domain name"
1113
+ },
1114
+ "path": {
1115
+ "type": "string",
1116
+ "description": "File path, relative to the document root."
1117
+ },
1118
+ "from_line": {
1119
+ "type": "integer",
1120
+ "description": "Line offset to start reading from."
1121
+ },
1122
+ "max_lines": {
1123
+ "type": "integer",
1124
+ "description": "Max number of lines to return."
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "username",
1129
+ "domain",
1130
+ "path"
1131
+ ]
1132
+ },
1133
+ "security": [
1134
+ {
1135
+ "apiToken": []
1136
+ }
1137
+ ],
1138
+ "group": "hosting"
1139
+ },
1049
1140
  {
1050
1141
  "name": "hosting_listNodeJSBuildsV1",
1051
1142
  "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.",
@@ -1656,7 +1747,7 @@ export default [
1656
1747
  },
1657
1748
  {
1658
1749
  "name": "hosting_deleteWebsiteV1",
1659
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1750
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1660
1751
  "method": "DELETE",
1661
1752
  "path": "/api/hosting/v1/websites/{domain}",
1662
1753
  "inputSchema": {
@@ -1060,6 +1060,97 @@ const tools: OpenApiTool[] = [
1060
1060
  ],
1061
1061
  "group": "hosting"
1062
1062
  },
1063
+ {
1064
+ "name": "hosting_listWebsiteFilesAndDirectoriesV1",
1065
+ "description": "List files and directories under a website's document root.\n\nUse `directory` to browse a subdirectory relative to the document root. Symlinked entries\nare listed but never traversed into or resolved.",
1066
+ "method": "GET",
1067
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files",
1068
+ "inputSchema": {
1069
+ "type": "object",
1070
+ "properties": {
1071
+ "username": {
1072
+ "type": "string",
1073
+ "description": "username parameter"
1074
+ },
1075
+ "domain": {
1076
+ "type": "string",
1077
+ "description": "Domain name"
1078
+ },
1079
+ "directory": {
1080
+ "type": "string",
1081
+ "description": "Directory path to check"
1082
+ },
1083
+ "max_depth": {
1084
+ "type": "integer",
1085
+ "description": "How many directory levels deep to recurse."
1086
+ },
1087
+ "max_items": {
1088
+ "type": "integer",
1089
+ "description": "Max number of entries to return in this page."
1090
+ },
1091
+ "offset": {
1092
+ "type": "integer",
1093
+ "description": "Number of entries to skip. Page with offset + item count until reaching total_items."
1094
+ },
1095
+ "file_types": {
1096
+ "type": "string",
1097
+ "description": "Filter by entry type, e.g. file,directory. Array or comma-separated. Omit for all types."
1098
+ }
1099
+ },
1100
+ "required": [
1101
+ "username",
1102
+ "domain"
1103
+ ]
1104
+ },
1105
+ "security": [
1106
+ {
1107
+ "apiToken": []
1108
+ }
1109
+ ],
1110
+ "group": "hosting"
1111
+ },
1112
+ {
1113
+ "name": "hosting_getWebsiteFileContentV1",
1114
+ "description": "Get a single file's content, relative to a website's document root.\n\nRead-only; refuses symlinks, oversized files, non-text file types, and files identified as\ncontaining secrets (e.g. credential files) — none of these are returned by this endpoint.",
1115
+ "method": "GET",
1116
+ "path": "/api/hosting/v1/accounts/{username}/domains/{domain}/files/content",
1117
+ "inputSchema": {
1118
+ "type": "object",
1119
+ "properties": {
1120
+ "username": {
1121
+ "type": "string",
1122
+ "description": "username parameter"
1123
+ },
1124
+ "domain": {
1125
+ "type": "string",
1126
+ "description": "Domain name"
1127
+ },
1128
+ "path": {
1129
+ "type": "string",
1130
+ "description": "File path, relative to the document root."
1131
+ },
1132
+ "from_line": {
1133
+ "type": "integer",
1134
+ "description": "Line offset to start reading from."
1135
+ },
1136
+ "max_lines": {
1137
+ "type": "integer",
1138
+ "description": "Max number of lines to return."
1139
+ }
1140
+ },
1141
+ "required": [
1142
+ "username",
1143
+ "domain",
1144
+ "path"
1145
+ ]
1146
+ },
1147
+ "security": [
1148
+ {
1149
+ "apiToken": []
1150
+ }
1151
+ ],
1152
+ "group": "hosting"
1153
+ },
1063
1154
  {
1064
1155
  "name": "hosting_listNodeJSBuildsV1",
1065
1156
  "description": "Retrieve a paginated list of Node.js build processes for a specific website.\n\nEach build represents a single run of the Node.js build pipeline. Use the `states`\nquery parameter to filter results by build state (pending, running, completed, failed).\nUse the `uuid` from a build to poll its output via the `Get Node.js Build Logs` endpoint.",
@@ -1670,7 +1761,7 @@ const tools: OpenApiTool[] = [
1670
1761
  },
1671
1762
  {
1672
1763
  "name": "hosting_deleteWebsiteV1",
1673
- "description": "Permanently deletes a website and all of its data. This action is destructive\nand cannot be undone. Always ask the user for explicit confirmation before\ncalling this endpoint.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nThe confirm field must be boolean true, otherwise the request is rejected.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1764
+ "description": "This endpoint permanently removes a website and all of its data. This action\ncannot be undone. Before calling it, make sure the user understands the\nconsequences and explicitly confirms that they want to proceed.\n\nAll website files, databases and related configuration will be removed.\nThe hosting plan itself is kept, so a new website can be created on it afterwards.\n\nSupported websites: main and addon domain websites on web hosting plans, and\nWebsite Builder websites. Parked domains and subdomains cannot be deleted with\nthis endpoint. The domain must be the exact website domain, not a preview\ndomain or an alias.\n\nReturns 404 when the domain does not exist or does not belong to the\nauthenticated client.\n\nWebsite removal is processed asynchronously and can take a few minutes to\ncomplete. The response returns before the removal finishes.",
1674
1765
  "method": "DELETE",
1675
1766
  "path": "/api/hosting/v1/websites/{domain}",
1676
1767
  "inputSchema": {
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/agency-hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.35.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.35.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/all.js';
5
5
 
6
- startServer({ name: 'hostinger-api-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.35.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.35.1', tools });
@@ -3,4 +3,4 @@
3
3
  import { startServer } from '../core/runtime.js';
4
4
  import tools from '../core/tools/hosting.js';
5
5
 
6
- startServer({ name: 'hostinger-hosting-mcp', version: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.35.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: '1.34.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.35.1', tools });
package/types.d.ts CHANGED
@@ -1094,6 +1094,52 @@ If no matching RRs are found, they are created.
1094
1094
  response: any; // Response structure will depend on the API
1095
1095
  };
1096
1096
 
1097
+ /**
1098
+ * Suggest available domain names based on a free-text description of your project.
1099
+
1100
+ Suggestions are generated by an AI model, so they differ between calls.
1101
+
1102
+ Endpoint has rate limit of 90 requests per minute.
1103
+
1104
+ Use this endpoint to find a domain name when you only know what the website is about.
1105
+ */
1106
+ "domains_suggestDomainNamesFromADescriptionV1": {
1107
+ params: {
1108
+ /**
1109
+ * Free-text description of the project the domain is needed for
1110
+ */
1111
+ description: string;
1112
+ /**
1113
+ * Amount of domain names to suggest
1114
+ */
1115
+ limit: number;
1116
+ };
1117
+ response: any; // Response structure will depend on the API
1118
+ };
1119
+
1120
+ /**
1121
+ * Suggest available domain names based on a domain name you already have in mind.
1122
+
1123
+ Suggestions are generated by an AI model, so they differ between calls.
1124
+
1125
+ Endpoint has rate limit of 90 requests per minute.
1126
+
1127
+ Use this endpoint when the domain you wanted is taken and you need close alternatives.
1128
+ */
1129
+ "domains_suggestDomainNamesFromADomainV1": {
1130
+ params: {
1131
+ /**
1132
+ * Domain name to base the suggestions on
1133
+ */
1134
+ domain: string;
1135
+ /**
1136
+ * Amount of domain names to suggest
1137
+ */
1138
+ limit: number;
1139
+ };
1140
+ response: any; // Response structure will depend on the API
1141
+ };
1142
+
1097
1143
  /**
1098
1144
  * Check availability of domain names across multiple TLDs.
1099
1145
 
@@ -1101,7 +1147,7 @@ Multiple TLDs can be checked at once.
1101
1147
  If you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`.
1102
1148
  TLDs should be provided without leading dot (e.g. `com`, `net`, `org`).
1103
1149
 
1104
- Endpoint has rate limit of 10 requests per minute.
1150
+ Endpoint has rate limit of 90 requests per minute.
1105
1151
 
1106
1152
  Use this endpoint to verify domain availability before purchase.
1107
1153
  */
@@ -2734,6 +2780,78 @@ Skip this verification when using Hostinger's free subdomains (*.hostingersite.c
2734
2780
  response: any; // Response structure will depend on the API
2735
2781
  };
2736
2782
 
2783
+ /**
2784
+ * List files and directories under a website's document root.
2785
+
2786
+ Use `directory` to browse a subdirectory relative to the document root. Symlinked entries
2787
+ are listed but never traversed into or resolved.
2788
+ */
2789
+ "hosting_listWebsiteFilesAndDirectoriesV1": {
2790
+ params: {
2791
+ /**
2792
+ * username parameter
2793
+ */
2794
+ username: string;
2795
+ /**
2796
+ * Domain name
2797
+ */
2798
+ domain: string;
2799
+ /**
2800
+ * Directory path to check
2801
+ */
2802
+ directory?: string;
2803
+ /**
2804
+ * How many directory levels deep to recurse.
2805
+ */
2806
+ max_depth?: number;
2807
+ /**
2808
+ * Max number of entries to return in this page.
2809
+ */
2810
+ max_items?: number;
2811
+ /**
2812
+ * Number of entries to skip. Page with offset + item count until reaching total_items.
2813
+ */
2814
+ offset?: number;
2815
+ /**
2816
+ * Filter by entry type, e.g. file,directory. Array or comma-separated. Omit for all types.
2817
+ */
2818
+ file_types?: string;
2819
+ };
2820
+ response: any; // Response structure will depend on the API
2821
+ };
2822
+
2823
+ /**
2824
+ * Get a single file's content, relative to a website's document root.
2825
+
2826
+ Read-only; refuses symlinks, oversized files, non-text file types, and files identified as
2827
+ containing secrets (e.g. credential files) — none of these are returned by this endpoint.
2828
+ */
2829
+ "hosting_getWebsiteFileContentV1": {
2830
+ params: {
2831
+ /**
2832
+ * username parameter
2833
+ */
2834
+ username: string;
2835
+ /**
2836
+ * Domain name
2837
+ */
2838
+ domain: string;
2839
+ /**
2840
+ * File path, relative to the document root.
2841
+ */
2842
+ path: string;
2843
+ /**
2844
+ * Line offset to start reading from.
2845
+ */
2846
+ from_line?: number;
2847
+ /**
2848
+ * Max number of lines to return.
2849
+ */
2850
+ max_lines?: number;
2851
+ };
2852
+ response: any; // Response structure will depend on the API
2853
+ };
2854
+
2737
2855
  /**
2738
2856
  * Retrieve a paginated list of Node.js build processes for a specific website.
2739
2857
 
@@ -3196,15 +3314,13 @@ websites list endpoint to see when your new website becomes available.
3196
3314
  };
3197
3315
 
3198
3316
  /**
3199
- * Permanently deletes a website and all of its data. This action is destructive
3200
- and cannot be undone. Always ask the user for explicit confirmation before
3201
- calling this endpoint.
3317
+ * This endpoint permanently removes a website and all of its data. This action
3318
+ cannot be undone. Before calling it, make sure the user understands the
3319
+ consequences and explicitly confirms that they want to proceed.
3202
3320
 
3203
3321
  All website files, databases and related configuration will be removed.
3204
3322
  The hosting plan itself is kept, so a new website can be created on it afterwards.
3205
3323
 
3206
- The confirm field must be boolean true, otherwise the request is rejected.
3207
-
3208
3324
  Supported websites: main and addon domain websites on web hosting plans, and
3209
3325
  Website Builder websites. Parked domains and subdomains cannot be deleted with
3210
3326
  this endpoint. The domain must be the exact website domain, not a preview