hostinger-api-mcp 1.37.0 → 1.38.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,7 +69,7 @@ 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 (326 total)
72
+ - `hostinger-api-mcp` — unified server with every tool (330 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
@@ -78,7 +78,7 @@ This package installs the following MCP server commands:
78
78
  - `hostinger-horizons-mcp` — 2 tools for horizons
79
79
  - `hostinger-hosting-mcp` — 50 tools for hosting
80
80
  - `hostinger-mail-mcp` — 38 tools for mail
81
- - `hostinger-reach-mcp` — 41 tools for reach
81
+ - `hostinger-reach-mcp` — 45 tools for reach
82
82
  - `hostinger-vps-mcp` — 62 tools for vps
83
83
  - `hostinger-wordpress-mcp` — 35 tools for wordpress
84
84
 
@@ -2640,6 +2640,38 @@ was created now or already existed.
2640
2640
  - **Method**: `POST`
2641
2641
  - **Path**: `/api/reach/v1/profiles/{profileUuid}/tags`
2642
2642
 
2643
+ #### reach_getFormDetailsV1
2644
+
2645
+ Get a single form with the URL of its hosted template and the tags it applies to the contacts
2646
+ it captures.
2647
+
2648
+ There is no ready-made embed snippet in the response - either serve the template HTML yourself
2649
+ or build your own embed around the form uuid.
2650
+
2651
+ - **Method**: `GET`
2652
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}`
2653
+
2654
+ #### reach_deleteFormV1
2655
+
2656
+ Permanently delete a form together with its template.
2657
+
2658
+ A form that has already captured submissions cannot be deleted, so that the contacts it collected
2659
+ are never silently discarded - pause the form instead to stop it collecting new ones. Views alone
2660
+ do not block deletion.
2661
+
2662
+ - **Method**: `DELETE`
2663
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}`
2664
+
2665
+ #### reach_listFormsV1
2666
+
2667
+ Get a paginated list of the signup forms in a profile.
2668
+
2669
+ Each form carries a reference to the template that renders it. Get the form details for a
2670
+ directly usable template URL and for the tags the form puts on the contacts it captures.
2671
+
2672
+ - **Method**: `GET`
2673
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/forms`
2674
+
2643
2675
  #### reach_getProfileDomainDNSStatusV1
2644
2676
 
2645
2677
  Retrieve the DNS configuration status for a profile's domain.
@@ -2650,6 +2682,19 @@ actual records found and the suggested records required for correct email delive
2650
2682
  - **Method**: `GET`
2651
2683
  - **Path**: `/api/reach/v1/profiles/{profileUuid}/domains/dns-status`
2652
2684
 
2685
+ #### reach_getRemainingPlanLimitsV1
2686
+
2687
+ Get how much of the plan is left for the current period.
2688
+
2689
+ Two things to keep in mind before you build alerting on this. The period is a calendar month
2690
+ rather than a billing anniversary, so the counters reset on the 1st no matter when the
2691
+ subscription started. And usage is tracked per order, so every profile on the same order shares
2692
+ one pool and reports the same numbers here. Only the current period is available, past usage is
2693
+ not kept.
2694
+
2695
+ - **Method**: `GET`
2696
+ - **Path**: `/api/reach/v1/profiles/{profileUuid}/limits`
2697
+
2653
2698
  #### reach_listProfilesV1
2654
2699
 
2655
2700
  This endpoint returns all profiles available to the client, including their basic information.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hostinger-api-mcp",
3
- "version": "1.37.0",
3
+ "version": "1.38.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.37.0",
3
+ "version": "1.38.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.37.0",
9
+ "version": "1.38.1",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "hostinger-api-mcp",
14
- "version": "1.37.0",
14
+ "version": "1.38.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.34.0
32
+ * Generated from OpenAPI spec version 1.35.0
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.34.0
55
+ * Generated from OpenAPI spec version 1.35.0
56
56
  */
57
57
  class MCPServer {
58
58
  private readonly name: string;
@@ -7998,6 +7998,96 @@ export default [
7998
7998
  ],
7999
7999
  "group": "reach"
8000
8000
  },
8001
+ {
8002
+ "name": "reach_getFormDetailsV1",
8003
+ "description": "Get a single form with the URL of its hosted template and the tags it applies to the contacts\nit captures.\n\nThere is no ready-made embed snippet in the response - either serve the template HTML yourself\nor build your own embed around the form uuid.",
8004
+ "method": "GET",
8005
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
8006
+ "inputSchema": {
8007
+ "type": "object",
8008
+ "properties": {
8009
+ "profileUuid": {
8010
+ "type": "string",
8011
+ "description": "Profile uuid parameter"
8012
+ },
8013
+ "formUuid": {
8014
+ "type": "string",
8015
+ "description": "Form uuid parameter"
8016
+ }
8017
+ },
8018
+ "required": [
8019
+ "profileUuid",
8020
+ "formUuid"
8021
+ ]
8022
+ },
8023
+ "security": [
8024
+ {
8025
+ "apiToken": []
8026
+ }
8027
+ ],
8028
+ "group": "reach"
8029
+ },
8030
+ {
8031
+ "name": "reach_deleteFormV1",
8032
+ "description": "Permanently delete a form together with its template.\n\nA form that has already captured submissions cannot be deleted, so that the contacts it collected\nare never silently discarded - pause the form instead to stop it collecting new ones. Views alone\ndo not block deletion.",
8033
+ "method": "DELETE",
8034
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
8035
+ "inputSchema": {
8036
+ "type": "object",
8037
+ "properties": {
8038
+ "profileUuid": {
8039
+ "type": "string",
8040
+ "description": "Profile uuid parameter"
8041
+ },
8042
+ "formUuid": {
8043
+ "type": "string",
8044
+ "description": "Form uuid parameter"
8045
+ }
8046
+ },
8047
+ "required": [
8048
+ "profileUuid",
8049
+ "formUuid"
8050
+ ]
8051
+ },
8052
+ "security": [
8053
+ {
8054
+ "apiToken": []
8055
+ }
8056
+ ],
8057
+ "group": "reach"
8058
+ },
8059
+ {
8060
+ "name": "reach_listFormsV1",
8061
+ "description": "Get a paginated list of the signup forms in a profile.\n\nEach form carries a reference to the template that renders it. Get the form details for a\ndirectly usable template URL and for the tags the form puts on the contacts it captures.",
8062
+ "method": "GET",
8063
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms",
8064
+ "inputSchema": {
8065
+ "type": "object",
8066
+ "properties": {
8067
+ "profileUuid": {
8068
+ "type": "string",
8069
+ "description": "Profile uuid parameter"
8070
+ },
8071
+ "page": {
8072
+ "type": "integer",
8073
+ "description": "Page number"
8074
+ },
8075
+ "per_page": {
8076
+ "type": "integer",
8077
+ "description": "Number of items per page"
8078
+ }
8079
+ },
8080
+ "required": [
8081
+ "profileUuid"
8082
+ ]
8083
+ },
8084
+ "security": [
8085
+ {
8086
+ "apiToken": []
8087
+ }
8088
+ ],
8089
+ "group": "reach"
8090
+ },
8001
8091
  {
8002
8092
  "name": "reach_getProfileDomainDNSStatusV1",
8003
8093
  "description": "Retrieve the DNS configuration status for a profile's domain.\n\nThis endpoint reports the state of MX, SPF, DKIM and DMARC records, including the\nactual records found and the suggested records required for correct email delivery.",
@@ -8022,6 +8112,30 @@ export default [
8022
8112
  ],
8023
8113
  "group": "reach"
8024
8114
  },
8115
+ {
8116
+ "name": "reach_getRemainingPlanLimitsV1",
8117
+ "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",
8118
+ "method": "GET",
8119
+ "path": "/api/reach/v1/profiles/{profileUuid}/limits",
8120
+ "inputSchema": {
8121
+ "type": "object",
8122
+ "properties": {
8123
+ "profileUuid": {
8124
+ "type": "string",
8125
+ "description": "Profile uuid parameter"
8126
+ }
8127
+ },
8128
+ "required": [
8129
+ "profileUuid"
8130
+ ]
8131
+ },
8132
+ "security": [
8133
+ {
8134
+ "apiToken": []
8135
+ }
8136
+ ],
8137
+ "group": "reach"
8138
+ },
8025
8139
  {
8026
8140
  "name": "reach_listProfilesV1",
8027
8141
  "description": "This endpoint returns all profiles available to the client, including their basic information.",
@@ -8012,6 +8012,96 @@ const tools: OpenApiTool[] = [
8012
8012
  ],
8013
8013
  "group": "reach"
8014
8014
  },
8015
+ {
8016
+ "name": "reach_getFormDetailsV1",
8017
+ "description": "Get a single form with the URL of its hosted template and the tags it applies to the contacts\nit captures.\n\nThere is no ready-made embed snippet in the response - either serve the template HTML yourself\nor build your own embed around the form uuid.",
8018
+ "method": "GET",
8019
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
8020
+ "inputSchema": {
8021
+ "type": "object",
8022
+ "properties": {
8023
+ "profileUuid": {
8024
+ "type": "string",
8025
+ "description": "Profile uuid parameter"
8026
+ },
8027
+ "formUuid": {
8028
+ "type": "string",
8029
+ "description": "Form uuid parameter"
8030
+ }
8031
+ },
8032
+ "required": [
8033
+ "profileUuid",
8034
+ "formUuid"
8035
+ ]
8036
+ },
8037
+ "security": [
8038
+ {
8039
+ "apiToken": []
8040
+ }
8041
+ ],
8042
+ "group": "reach"
8043
+ },
8044
+ {
8045
+ "name": "reach_deleteFormV1",
8046
+ "description": "Permanently delete a form together with its template.\n\nA form that has already captured submissions cannot be deleted, so that the contacts it collected\nare never silently discarded - pause the form instead to stop it collecting new ones. Views alone\ndo not block deletion.",
8047
+ "method": "DELETE",
8048
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
8049
+ "inputSchema": {
8050
+ "type": "object",
8051
+ "properties": {
8052
+ "profileUuid": {
8053
+ "type": "string",
8054
+ "description": "Profile uuid parameter"
8055
+ },
8056
+ "formUuid": {
8057
+ "type": "string",
8058
+ "description": "Form uuid parameter"
8059
+ }
8060
+ },
8061
+ "required": [
8062
+ "profileUuid",
8063
+ "formUuid"
8064
+ ]
8065
+ },
8066
+ "security": [
8067
+ {
8068
+ "apiToken": []
8069
+ }
8070
+ ],
8071
+ "group": "reach"
8072
+ },
8073
+ {
8074
+ "name": "reach_listFormsV1",
8075
+ "description": "Get a paginated list of the signup forms in a profile.\n\nEach form carries a reference to the template that renders it. Get the form details for a\ndirectly usable template URL and for the tags the form puts on the contacts it captures.",
8076
+ "method": "GET",
8077
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms",
8078
+ "inputSchema": {
8079
+ "type": "object",
8080
+ "properties": {
8081
+ "profileUuid": {
8082
+ "type": "string",
8083
+ "description": "Profile uuid parameter"
8084
+ },
8085
+ "page": {
8086
+ "type": "integer",
8087
+ "description": "Page number"
8088
+ },
8089
+ "per_page": {
8090
+ "type": "integer",
8091
+ "description": "Number of items per page"
8092
+ }
8093
+ },
8094
+ "required": [
8095
+ "profileUuid"
8096
+ ]
8097
+ },
8098
+ "security": [
8099
+ {
8100
+ "apiToken": []
8101
+ }
8102
+ ],
8103
+ "group": "reach"
8104
+ },
8015
8105
  {
8016
8106
  "name": "reach_getProfileDomainDNSStatusV1",
8017
8107
  "description": "Retrieve the DNS configuration status for a profile's domain.\n\nThis endpoint reports the state of MX, SPF, DKIM and DMARC records, including the\nactual records found and the suggested records required for correct email delivery.",
@@ -8036,6 +8126,30 @@ const tools: OpenApiTool[] = [
8036
8126
  ],
8037
8127
  "group": "reach"
8038
8128
  },
8129
+ {
8130
+ "name": "reach_getRemainingPlanLimitsV1",
8131
+ "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",
8132
+ "method": "GET",
8133
+ "path": "/api/reach/v1/profiles/{profileUuid}/limits",
8134
+ "inputSchema": {
8135
+ "type": "object",
8136
+ "properties": {
8137
+ "profileUuid": {
8138
+ "type": "string",
8139
+ "description": "Profile uuid parameter"
8140
+ }
8141
+ },
8142
+ "required": [
8143
+ "profileUuid"
8144
+ ]
8145
+ },
8146
+ "security": [
8147
+ {
8148
+ "apiToken": []
8149
+ }
8150
+ ],
8151
+ "group": "reach"
8152
+ },
8039
8153
  {
8040
8154
  "name": "reach_listProfilesV1",
8041
8155
  "description": "This endpoint returns all profiles available to the client, including their basic information.",
@@ -1598,6 +1598,96 @@ export default [
1598
1598
  ],
1599
1599
  "group": "reach"
1600
1600
  },
1601
+ {
1602
+ "name": "reach_getFormDetailsV1",
1603
+ "description": "Get a single form with the URL of its hosted template and the tags it applies to the contacts\nit captures.\n\nThere is no ready-made embed snippet in the response - either serve the template HTML yourself\nor build your own embed around the form uuid.",
1604
+ "method": "GET",
1605
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
1606
+ "inputSchema": {
1607
+ "type": "object",
1608
+ "properties": {
1609
+ "profileUuid": {
1610
+ "type": "string",
1611
+ "description": "Profile uuid parameter"
1612
+ },
1613
+ "formUuid": {
1614
+ "type": "string",
1615
+ "description": "Form uuid parameter"
1616
+ }
1617
+ },
1618
+ "required": [
1619
+ "profileUuid",
1620
+ "formUuid"
1621
+ ]
1622
+ },
1623
+ "security": [
1624
+ {
1625
+ "apiToken": []
1626
+ }
1627
+ ],
1628
+ "group": "reach"
1629
+ },
1630
+ {
1631
+ "name": "reach_deleteFormV1",
1632
+ "description": "Permanently delete a form together with its template.\n\nA form that has already captured submissions cannot be deleted, so that the contacts it collected\nare never silently discarded - pause the form instead to stop it collecting new ones. Views alone\ndo not block deletion.",
1633
+ "method": "DELETE",
1634
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
1635
+ "inputSchema": {
1636
+ "type": "object",
1637
+ "properties": {
1638
+ "profileUuid": {
1639
+ "type": "string",
1640
+ "description": "Profile uuid parameter"
1641
+ },
1642
+ "formUuid": {
1643
+ "type": "string",
1644
+ "description": "Form uuid parameter"
1645
+ }
1646
+ },
1647
+ "required": [
1648
+ "profileUuid",
1649
+ "formUuid"
1650
+ ]
1651
+ },
1652
+ "security": [
1653
+ {
1654
+ "apiToken": []
1655
+ }
1656
+ ],
1657
+ "group": "reach"
1658
+ },
1659
+ {
1660
+ "name": "reach_listFormsV1",
1661
+ "description": "Get a paginated list of the signup forms in a profile.\n\nEach form carries a reference to the template that renders it. Get the form details for a\ndirectly usable template URL and for the tags the form puts on the contacts it captures.",
1662
+ "method": "GET",
1663
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms",
1664
+ "inputSchema": {
1665
+ "type": "object",
1666
+ "properties": {
1667
+ "profileUuid": {
1668
+ "type": "string",
1669
+ "description": "Profile uuid parameter"
1670
+ },
1671
+ "page": {
1672
+ "type": "integer",
1673
+ "description": "Page number"
1674
+ },
1675
+ "per_page": {
1676
+ "type": "integer",
1677
+ "description": "Number of items per page"
1678
+ }
1679
+ },
1680
+ "required": [
1681
+ "profileUuid"
1682
+ ]
1683
+ },
1684
+ "security": [
1685
+ {
1686
+ "apiToken": []
1687
+ }
1688
+ ],
1689
+ "group": "reach"
1690
+ },
1601
1691
  {
1602
1692
  "name": "reach_getProfileDomainDNSStatusV1",
1603
1693
  "description": "Retrieve the DNS configuration status for a profile's domain.\n\nThis endpoint reports the state of MX, SPF, DKIM and DMARC records, including the\nactual records found and the suggested records required for correct email delivery.",
@@ -1622,6 +1712,30 @@ export default [
1622
1712
  ],
1623
1713
  "group": "reach"
1624
1714
  },
1715
+ {
1716
+ "name": "reach_getRemainingPlanLimitsV1",
1717
+ "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",
1718
+ "method": "GET",
1719
+ "path": "/api/reach/v1/profiles/{profileUuid}/limits",
1720
+ "inputSchema": {
1721
+ "type": "object",
1722
+ "properties": {
1723
+ "profileUuid": {
1724
+ "type": "string",
1725
+ "description": "Profile uuid parameter"
1726
+ }
1727
+ },
1728
+ "required": [
1729
+ "profileUuid"
1730
+ ]
1731
+ },
1732
+ "security": [
1733
+ {
1734
+ "apiToken": []
1735
+ }
1736
+ ],
1737
+ "group": "reach"
1738
+ },
1625
1739
  {
1626
1740
  "name": "reach_listProfilesV1",
1627
1741
  "description": "This endpoint returns all profiles available to the client, including their basic information.",
@@ -1612,6 +1612,96 @@ const tools: OpenApiTool[] = [
1612
1612
  ],
1613
1613
  "group": "reach"
1614
1614
  },
1615
+ {
1616
+ "name": "reach_getFormDetailsV1",
1617
+ "description": "Get a single form with the URL of its hosted template and the tags it applies to the contacts\nit captures.\n\nThere is no ready-made embed snippet in the response - either serve the template HTML yourself\nor build your own embed around the form uuid.",
1618
+ "method": "GET",
1619
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
1620
+ "inputSchema": {
1621
+ "type": "object",
1622
+ "properties": {
1623
+ "profileUuid": {
1624
+ "type": "string",
1625
+ "description": "Profile uuid parameter"
1626
+ },
1627
+ "formUuid": {
1628
+ "type": "string",
1629
+ "description": "Form uuid parameter"
1630
+ }
1631
+ },
1632
+ "required": [
1633
+ "profileUuid",
1634
+ "formUuid"
1635
+ ]
1636
+ },
1637
+ "security": [
1638
+ {
1639
+ "apiToken": []
1640
+ }
1641
+ ],
1642
+ "group": "reach"
1643
+ },
1644
+ {
1645
+ "name": "reach_deleteFormV1",
1646
+ "description": "Permanently delete a form together with its template.\n\nA form that has already captured submissions cannot be deleted, so that the contacts it collected\nare never silently discarded - pause the form instead to stop it collecting new ones. Views alone\ndo not block deletion.",
1647
+ "method": "DELETE",
1648
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms/{formUuid}",
1649
+ "inputSchema": {
1650
+ "type": "object",
1651
+ "properties": {
1652
+ "profileUuid": {
1653
+ "type": "string",
1654
+ "description": "Profile uuid parameter"
1655
+ },
1656
+ "formUuid": {
1657
+ "type": "string",
1658
+ "description": "Form uuid parameter"
1659
+ }
1660
+ },
1661
+ "required": [
1662
+ "profileUuid",
1663
+ "formUuid"
1664
+ ]
1665
+ },
1666
+ "security": [
1667
+ {
1668
+ "apiToken": []
1669
+ }
1670
+ ],
1671
+ "group": "reach"
1672
+ },
1673
+ {
1674
+ "name": "reach_listFormsV1",
1675
+ "description": "Get a paginated list of the signup forms in a profile.\n\nEach form carries a reference to the template that renders it. Get the form details for a\ndirectly usable template URL and for the tags the form puts on the contacts it captures.",
1676
+ "method": "GET",
1677
+ "path": "/api/reach/v1/profiles/{profileUuid}/forms",
1678
+ "inputSchema": {
1679
+ "type": "object",
1680
+ "properties": {
1681
+ "profileUuid": {
1682
+ "type": "string",
1683
+ "description": "Profile uuid parameter"
1684
+ },
1685
+ "page": {
1686
+ "type": "integer",
1687
+ "description": "Page number"
1688
+ },
1689
+ "per_page": {
1690
+ "type": "integer",
1691
+ "description": "Number of items per page"
1692
+ }
1693
+ },
1694
+ "required": [
1695
+ "profileUuid"
1696
+ ]
1697
+ },
1698
+ "security": [
1699
+ {
1700
+ "apiToken": []
1701
+ }
1702
+ ],
1703
+ "group": "reach"
1704
+ },
1615
1705
  {
1616
1706
  "name": "reach_getProfileDomainDNSStatusV1",
1617
1707
  "description": "Retrieve the DNS configuration status for a profile's domain.\n\nThis endpoint reports the state of MX, SPF, DKIM and DMARC records, including the\nactual records found and the suggested records required for correct email delivery.",
@@ -1636,6 +1726,30 @@ const tools: OpenApiTool[] = [
1636
1726
  ],
1637
1727
  "group": "reach"
1638
1728
  },
1729
+ {
1730
+ "name": "reach_getRemainingPlanLimitsV1",
1731
+ "description": "Get how much of the plan is left for the current period.\n\nTwo things to keep in mind before you build alerting on this. The period is a calendar month\nrather than a billing anniversary, so the counters reset on the 1st no matter when the\nsubscription started. And usage is tracked per order, so every profile on the same order shares\none pool and reports the same numbers here. Only the current period is available, past usage is\nnot kept.",
1732
+ "method": "GET",
1733
+ "path": "/api/reach/v1/profiles/{profileUuid}/limits",
1734
+ "inputSchema": {
1735
+ "type": "object",
1736
+ "properties": {
1737
+ "profileUuid": {
1738
+ "type": "string",
1739
+ "description": "Profile uuid parameter"
1740
+ }
1741
+ },
1742
+ "required": [
1743
+ "profileUuid"
1744
+ ]
1745
+ },
1746
+ "security": [
1747
+ {
1748
+ "apiToken": []
1749
+ }
1750
+ ],
1751
+ "group": "reach"
1752
+ },
1639
1753
  {
1640
1754
  "name": "reach_listProfilesV1",
1641
1755
  "description": "This endpoint returns all profiles available to the client, including their basic information.",
@@ -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.37.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-agency-hosting-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-api-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-billing-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-dns-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-domains-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-ecommerce-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-horizons-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-hosting-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-mail-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-reach-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-vps-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.38.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.37.0', tools });
6
+ startServer({ name: 'hostinger-wordpress-mcp', version: '1.38.1', tools });
package/types.d.ts CHANGED
@@ -5340,6 +5340,72 @@ was created now or already existed.
5340
5340
  response: any; // Response structure will depend on the API
5341
5341
  };
5342
5342
 
5343
+ /**
5344
+ * Get a single form with the URL of its hosted template and the tags it applies to the contacts
5345
+ it captures.
5346
+
5347
+ There is no ready-made embed snippet in the response - either serve the template HTML yourself
5348
+ or build your own embed around the form uuid.
5349
+ */
5350
+ "reach_getFormDetailsV1": {
5351
+ params: {
5352
+ /**
5353
+ * Profile uuid parameter
5354
+ */
5355
+ profileUuid: string;
5356
+ /**
5357
+ * Form uuid parameter
5358
+ */
5359
+ formUuid: string;
5360
+ };
5361
+ response: any; // Response structure will depend on the API
5362
+ };
5363
+
5364
+ /**
5365
+ * Permanently delete a form together with its template.
5366
+
5367
+ A form that has already captured submissions cannot be deleted, so that the contacts it collected
5368
+ are never silently discarded - pause the form instead to stop it collecting new ones. Views alone
5369
+ do not block deletion.
5370
+ */
5371
+ "reach_deleteFormV1": {
5372
+ params: {
5373
+ /**
5374
+ * Profile uuid parameter
5375
+ */
5376
+ profileUuid: string;
5377
+ /**
5378
+ * Form uuid parameter
5379
+ */
5380
+ formUuid: string;
5381
+ };
5382
+ response: any; // Response structure will depend on the API
5383
+ };
5384
+
5385
+ /**
5386
+ * Get a paginated list of the signup forms in a profile.
5387
+
5388
+ Each form carries a reference to the template that renders it. Get the form details for a
5389
+ directly usable template URL and for the tags the form puts on the contacts it captures.
5390
+ */
5391
+ "reach_listFormsV1": {
5392
+ params: {
5393
+ /**
5394
+ * Profile uuid parameter
5395
+ */
5396
+ profileUuid: string;
5397
+ /**
5398
+ * Page number
5399
+ */
5400
+ page?: number;
5401
+ /**
5402
+ * Number of items per page
5403
+ */
5404
+ per_page?: number;
5405
+ };
5406
+ response: any; // Response structure will depend on the API
5407
+ };
5408
+
5343
5409
  /**
5344
5410
  * Retrieve the DNS configuration status for a profile's domain.
5345
5411
 
@@ -5356,6 +5422,25 @@ actual records found and the suggested records required for correct email delive
5356
5422
  response: any; // Response structure will depend on the API
5357
5423
  };
5358
5424
 
5425
+ /**
5426
+ * Get how much of the plan is left for the current period.
5427
+
5428
+ Two things to keep in mind before you build alerting on this. The period is a calendar month
5429
+ rather than a billing anniversary, so the counters reset on the 1st no matter when the
5430
+ subscription started. And usage is tracked per order, so every profile on the same order shares
5431
+ one pool and reports the same numbers here. Only the current period is available, past usage is
5432
+ not kept.
5433
+ */
5434
+ "reach_getRemainingPlanLimitsV1": {
5435
+ params: {
5436
+ /**
5437
+ * Profile uuid parameter
5438
+ */
5439
+ profileUuid: string;
5440
+ };
5441
+ response: any; // Response structure will depend on the API
5442
+ };
5443
+
5359
5444
  /**
5360
5445
  * This endpoint returns all profiles available to the client, including their basic information.
5361
5446
  */