hostinger-api-mcp 0.1.21 → 0.1.23
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 +59 -2
- package/package.json +1 -2
- package/server.js +251 -13
- package/server.ts +251 -13
- package/types.d.ts +81 -5
- package/server.json +0 -29
package/README.md
CHANGED
|
@@ -919,9 +919,66 @@ The contact will be automatically subscribed to email communications.
|
|
|
919
919
|
- `email`: email parameter (required)
|
|
920
920
|
- `name`: name parameter
|
|
921
921
|
- `surname`: surname parameter
|
|
922
|
-
- `group_uuids`: group_uuids parameter
|
|
923
922
|
- `note`: note parameter
|
|
924
923
|
|
|
924
|
+
### reach_filterSegmentContactsV1
|
|
925
|
+
|
|
926
|
+
Filter and retrieve contacts based on segmentation criteria.
|
|
927
|
+
|
|
928
|
+
This endpoint allows filtering contacts using specified conditions and returns a paginated list of matching contacts.
|
|
929
|
+
The results can be filtered using various attributes like email, name, subscription status, etc.
|
|
930
|
+
|
|
931
|
+
- **Method**: `POST`
|
|
932
|
+
- **Path**: `/api/reach/v1/segmentation/filters/contacts`
|
|
933
|
+
|
|
934
|
+
**Parameters**:
|
|
935
|
+
|
|
936
|
+
- `conditions`: conditions parameter (required)
|
|
937
|
+
- `logic`: logic parameter (required)
|
|
938
|
+
- `page`: page parameter
|
|
939
|
+
- `per_page`: per_page parameter
|
|
940
|
+
|
|
941
|
+
### reach_listContactSegmentsV1
|
|
942
|
+
|
|
943
|
+
Get a list of all contact segments.
|
|
944
|
+
|
|
945
|
+
This endpoint returns a list of contact segments that can be used to organize contacts.
|
|
946
|
+
|
|
947
|
+
- **Method**: `GET`
|
|
948
|
+
- **Path**: `/api/reach/v1/segmentation/segments`
|
|
949
|
+
|
|
950
|
+
|
|
951
|
+
|
|
952
|
+
### reach_createANewContactSegmentV1
|
|
953
|
+
|
|
954
|
+
Create a new contact segment.
|
|
955
|
+
|
|
956
|
+
This endpoint allows creating a new contact segment that can be used to organize contacts.
|
|
957
|
+
The segment can be configured with specific criteria like email, name, subscription status, etc.
|
|
958
|
+
|
|
959
|
+
- **Method**: `POST`
|
|
960
|
+
- **Path**: `/api/reach/v1/segmentation/segments`
|
|
961
|
+
|
|
962
|
+
**Parameters**:
|
|
963
|
+
|
|
964
|
+
- `name`: name parameter (required)
|
|
965
|
+
- `conditions`: conditions parameter (required)
|
|
966
|
+
- `logic`: logic parameter (required)
|
|
967
|
+
|
|
968
|
+
### reach_getSegmentDetailsV1
|
|
969
|
+
|
|
970
|
+
Get details of a specific segment.
|
|
971
|
+
|
|
972
|
+
This endpoint retrieves information about a single segment identified by UUID.
|
|
973
|
+
Segments are used to organize and group contacts based on specific criteria.
|
|
974
|
+
|
|
975
|
+
- **Method**: `GET`
|
|
976
|
+
- **Path**: `/api/reach/v1/segmentation/segments/{segmentUuid}`
|
|
977
|
+
|
|
978
|
+
**Parameters**:
|
|
979
|
+
|
|
980
|
+
- `segmentUuid`: Segment uuid parameter (required)
|
|
981
|
+
|
|
925
982
|
### VPS_getDataCenterListV1
|
|
926
983
|
|
|
927
984
|
Retrieve all available data centers.
|
|
@@ -1743,7 +1800,7 @@ Snapshots, if there are any, will be deleted.
|
|
|
1743
1800
|
## Password Requirements
|
|
1744
1801
|
Password will be checked against leaked password databases.
|
|
1745
1802
|
Requirements for the password are:
|
|
1746
|
-
- At least
|
|
1803
|
+
- At least 12 characters long
|
|
1747
1804
|
- At least one uppercase letter
|
|
1748
1805
|
- At least one lowercase letter
|
|
1749
1806
|
- At least one number
|
package/package.json
CHANGED
package/server.js
CHANGED
|
@@ -1619,21 +1619,261 @@ const TOOLS = [
|
|
|
1619
1619
|
"type": "string",
|
|
1620
1620
|
"description": "surname parameter"
|
|
1621
1621
|
},
|
|
1622
|
-
"
|
|
1622
|
+
"note": {
|
|
1623
|
+
"type": "string",
|
|
1624
|
+
"description": "note parameter"
|
|
1625
|
+
}
|
|
1626
|
+
},
|
|
1627
|
+
"required": [
|
|
1628
|
+
"email"
|
|
1629
|
+
]
|
|
1630
|
+
},
|
|
1631
|
+
"security": [
|
|
1632
|
+
{
|
|
1633
|
+
"apiToken": []
|
|
1634
|
+
}
|
|
1635
|
+
]
|
|
1636
|
+
},
|
|
1637
|
+
{
|
|
1638
|
+
"name": "reach_filterSegmentContactsV1",
|
|
1639
|
+
"description": "Filter and retrieve contacts based on segmentation criteria.\n\nThis endpoint allows filtering contacts using specified conditions and returns a paginated list of matching contacts.\nThe results can be filtered using various attributes like email, name, subscription status, etc.",
|
|
1640
|
+
"method": "POST",
|
|
1641
|
+
"path": "/api/reach/v1/segmentation/filters/contacts",
|
|
1642
|
+
"inputSchema": {
|
|
1643
|
+
"type": "object",
|
|
1644
|
+
"properties": {
|
|
1645
|
+
"conditions": {
|
|
1623
1646
|
"type": "array",
|
|
1624
|
-
"description": "
|
|
1647
|
+
"description": "conditions parameter",
|
|
1625
1648
|
"items": {
|
|
1626
|
-
"type": "
|
|
1627
|
-
"description": "
|
|
1649
|
+
"type": "object",
|
|
1650
|
+
"description": "conditions parameter",
|
|
1651
|
+
"properties": {
|
|
1652
|
+
"operator": {
|
|
1653
|
+
"type": "string",
|
|
1654
|
+
"description": "operator parameter",
|
|
1655
|
+
"enum": [
|
|
1656
|
+
"equals",
|
|
1657
|
+
"not_equals",
|
|
1658
|
+
"contains",
|
|
1659
|
+
"not_contains",
|
|
1660
|
+
"gte",
|
|
1661
|
+
"lte",
|
|
1662
|
+
"exists",
|
|
1663
|
+
"within_last_days",
|
|
1664
|
+
"not_within_last_days",
|
|
1665
|
+
"older_than_days",
|
|
1666
|
+
"processed",
|
|
1667
|
+
"not_processed",
|
|
1668
|
+
"delivered",
|
|
1669
|
+
"not_delivered",
|
|
1670
|
+
"dropped",
|
|
1671
|
+
"not_dropped",
|
|
1672
|
+
"bounced",
|
|
1673
|
+
"not_bounced",
|
|
1674
|
+
"opened",
|
|
1675
|
+
"not_opened",
|
|
1676
|
+
"clicked",
|
|
1677
|
+
"not_clicked",
|
|
1678
|
+
"unsubscribed",
|
|
1679
|
+
"not_unsubscribed"
|
|
1680
|
+
]
|
|
1681
|
+
},
|
|
1682
|
+
"value": {
|
|
1683
|
+
"type": "string",
|
|
1684
|
+
"description": "value parameter"
|
|
1685
|
+
},
|
|
1686
|
+
"attribute": {
|
|
1687
|
+
"type": "string",
|
|
1688
|
+
"description": "attribute parameter",
|
|
1689
|
+
"enum": [
|
|
1690
|
+
"note",
|
|
1691
|
+
"comment",
|
|
1692
|
+
"domain",
|
|
1693
|
+
"integration",
|
|
1694
|
+
"source",
|
|
1695
|
+
"name",
|
|
1696
|
+
"surname",
|
|
1697
|
+
"email",
|
|
1698
|
+
"subscribed_at",
|
|
1699
|
+
"unsubscribed_at",
|
|
1700
|
+
"subscription_status",
|
|
1701
|
+
"processed",
|
|
1702
|
+
"opened",
|
|
1703
|
+
"clicked",
|
|
1704
|
+
"delivered",
|
|
1705
|
+
"bounced",
|
|
1706
|
+
"unsubscribed",
|
|
1707
|
+
"dropped",
|
|
1708
|
+
"tag",
|
|
1709
|
+
"campaigns"
|
|
1710
|
+
]
|
|
1711
|
+
}
|
|
1712
|
+
}
|
|
1628
1713
|
}
|
|
1629
1714
|
},
|
|
1630
|
-
"
|
|
1715
|
+
"logic": {
|
|
1631
1716
|
"type": "string",
|
|
1632
|
-
"description": "
|
|
1717
|
+
"description": "logic parameter",
|
|
1718
|
+
"enum": [
|
|
1719
|
+
"AND",
|
|
1720
|
+
"OR"
|
|
1721
|
+
]
|
|
1722
|
+
},
|
|
1723
|
+
"page": {
|
|
1724
|
+
"type": "integer",
|
|
1725
|
+
"description": "page parameter"
|
|
1726
|
+
},
|
|
1727
|
+
"per_page": {
|
|
1728
|
+
"type": "integer",
|
|
1729
|
+
"description": "per_page parameter"
|
|
1633
1730
|
}
|
|
1634
1731
|
},
|
|
1635
1732
|
"required": [
|
|
1636
|
-
"
|
|
1733
|
+
"conditions",
|
|
1734
|
+
"logic"
|
|
1735
|
+
]
|
|
1736
|
+
},
|
|
1737
|
+
"security": [
|
|
1738
|
+
{
|
|
1739
|
+
"apiToken": []
|
|
1740
|
+
}
|
|
1741
|
+
]
|
|
1742
|
+
},
|
|
1743
|
+
{
|
|
1744
|
+
"name": "reach_listContactSegmentsV1",
|
|
1745
|
+
"description": "Get a list of all contact segments.\n\nThis endpoint returns a list of contact segments that can be used to organize contacts.",
|
|
1746
|
+
"method": "GET",
|
|
1747
|
+
"path": "/api/reach/v1/segmentation/segments",
|
|
1748
|
+
"inputSchema": {
|
|
1749
|
+
"type": "object",
|
|
1750
|
+
"properties": {},
|
|
1751
|
+
"required": []
|
|
1752
|
+
},
|
|
1753
|
+
"security": [
|
|
1754
|
+
{
|
|
1755
|
+
"apiToken": []
|
|
1756
|
+
}
|
|
1757
|
+
]
|
|
1758
|
+
},
|
|
1759
|
+
{
|
|
1760
|
+
"name": "reach_createANewContactSegmentV1",
|
|
1761
|
+
"description": "Create a new contact segment.\n\nThis endpoint allows creating a new contact segment that can be used to organize contacts.\nThe segment can be configured with specific criteria like email, name, subscription status, etc.",
|
|
1762
|
+
"method": "POST",
|
|
1763
|
+
"path": "/api/reach/v1/segmentation/segments",
|
|
1764
|
+
"inputSchema": {
|
|
1765
|
+
"type": "object",
|
|
1766
|
+
"properties": {
|
|
1767
|
+
"name": {
|
|
1768
|
+
"type": "string",
|
|
1769
|
+
"description": "name parameter"
|
|
1770
|
+
},
|
|
1771
|
+
"conditions": {
|
|
1772
|
+
"type": "array",
|
|
1773
|
+
"description": "conditions parameter",
|
|
1774
|
+
"items": {
|
|
1775
|
+
"type": "object",
|
|
1776
|
+
"description": "conditions parameter",
|
|
1777
|
+
"properties": {
|
|
1778
|
+
"operator": {
|
|
1779
|
+
"type": "string",
|
|
1780
|
+
"description": "operator parameter",
|
|
1781
|
+
"enum": [
|
|
1782
|
+
"equals",
|
|
1783
|
+
"not_equals",
|
|
1784
|
+
"contains",
|
|
1785
|
+
"not_contains",
|
|
1786
|
+
"gte",
|
|
1787
|
+
"lte",
|
|
1788
|
+
"exists",
|
|
1789
|
+
"within_last_days",
|
|
1790
|
+
"not_within_last_days",
|
|
1791
|
+
"older_than_days",
|
|
1792
|
+
"processed",
|
|
1793
|
+
"not_processed",
|
|
1794
|
+
"delivered",
|
|
1795
|
+
"not_delivered",
|
|
1796
|
+
"dropped",
|
|
1797
|
+
"not_dropped",
|
|
1798
|
+
"bounced",
|
|
1799
|
+
"not_bounced",
|
|
1800
|
+
"opened",
|
|
1801
|
+
"not_opened",
|
|
1802
|
+
"clicked",
|
|
1803
|
+
"not_clicked",
|
|
1804
|
+
"unsubscribed",
|
|
1805
|
+
"not_unsubscribed"
|
|
1806
|
+
]
|
|
1807
|
+
},
|
|
1808
|
+
"value": {
|
|
1809
|
+
"type": "string",
|
|
1810
|
+
"description": "value parameter"
|
|
1811
|
+
},
|
|
1812
|
+
"attribute": {
|
|
1813
|
+
"type": "string",
|
|
1814
|
+
"description": "attribute parameter",
|
|
1815
|
+
"enum": [
|
|
1816
|
+
"note",
|
|
1817
|
+
"comment",
|
|
1818
|
+
"domain",
|
|
1819
|
+
"integration",
|
|
1820
|
+
"source",
|
|
1821
|
+
"name",
|
|
1822
|
+
"surname",
|
|
1823
|
+
"email",
|
|
1824
|
+
"subscribed_at",
|
|
1825
|
+
"unsubscribed_at",
|
|
1826
|
+
"subscription_status",
|
|
1827
|
+
"processed",
|
|
1828
|
+
"opened",
|
|
1829
|
+
"clicked",
|
|
1830
|
+
"delivered",
|
|
1831
|
+
"bounced",
|
|
1832
|
+
"unsubscribed",
|
|
1833
|
+
"dropped",
|
|
1834
|
+
"tag",
|
|
1835
|
+
"campaigns"
|
|
1836
|
+
]
|
|
1837
|
+
}
|
|
1838
|
+
}
|
|
1839
|
+
}
|
|
1840
|
+
},
|
|
1841
|
+
"logic": {
|
|
1842
|
+
"type": "string",
|
|
1843
|
+
"description": "logic parameter",
|
|
1844
|
+
"enum": [
|
|
1845
|
+
"AND",
|
|
1846
|
+
"OR"
|
|
1847
|
+
]
|
|
1848
|
+
}
|
|
1849
|
+
},
|
|
1850
|
+
"required": [
|
|
1851
|
+
"name",
|
|
1852
|
+
"conditions",
|
|
1853
|
+
"logic"
|
|
1854
|
+
]
|
|
1855
|
+
},
|
|
1856
|
+
"security": [
|
|
1857
|
+
{
|
|
1858
|
+
"apiToken": []
|
|
1859
|
+
}
|
|
1860
|
+
]
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
"name": "reach_getSegmentDetailsV1",
|
|
1864
|
+
"description": "Get details of a specific segment.\n\nThis endpoint retrieves information about a single segment identified by UUID.\nSegments are used to organize and group contacts based on specific criteria.",
|
|
1865
|
+
"method": "GET",
|
|
1866
|
+
"path": "/api/reach/v1/segmentation/segments/{segmentUuid}",
|
|
1867
|
+
"inputSchema": {
|
|
1868
|
+
"type": "object",
|
|
1869
|
+
"properties": {
|
|
1870
|
+
"segmentUuid": {
|
|
1871
|
+
"type": "string",
|
|
1872
|
+
"description": "Segment uuid parameter"
|
|
1873
|
+
}
|
|
1874
|
+
},
|
|
1875
|
+
"required": [
|
|
1876
|
+
"segmentUuid"
|
|
1637
1877
|
]
|
|
1638
1878
|
},
|
|
1639
1879
|
"security": [
|
|
@@ -3091,7 +3331,7 @@ const TOOLS = [
|
|
|
3091
3331
|
},
|
|
3092
3332
|
{
|
|
3093
3333
|
"name": "VPS_recreateVirtualMachineV1",
|
|
3094
|
-
"description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least
|
|
3334
|
+
"description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation.",
|
|
3095
3335
|
"method": "POST",
|
|
3096
3336
|
"path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recreate",
|
|
3097
3337
|
"inputSchema": {
|
|
@@ -3404,7 +3644,7 @@ const SECURITY_SCHEMES = {
|
|
|
3404
3644
|
|
|
3405
3645
|
/**
|
|
3406
3646
|
* MCP Server for Hostinger API
|
|
3407
|
-
* Generated from OpenAPI spec version 0.
|
|
3647
|
+
* Generated from OpenAPI spec version 0.10.0
|
|
3408
3648
|
*/
|
|
3409
3649
|
class MCPServer {
|
|
3410
3650
|
constructor() {
|
|
@@ -3422,7 +3662,7 @@ class MCPServer {
|
|
|
3422
3662
|
this.server = new Server(
|
|
3423
3663
|
{
|
|
3424
3664
|
name: "hostinger-api-mcp",
|
|
3425
|
-
version: "0.1.
|
|
3665
|
+
version: "0.1.23",
|
|
3426
3666
|
},
|
|
3427
3667
|
{
|
|
3428
3668
|
capabilities: {
|
|
@@ -3447,7 +3687,7 @@ class MCPServer {
|
|
|
3447
3687
|
});
|
|
3448
3688
|
}
|
|
3449
3689
|
|
|
3450
|
-
headers['User-Agent'] = 'hostinger-mcp-server/0.1.
|
|
3690
|
+
headers['User-Agent'] = 'hostinger-mcp-server/0.1.23';
|
|
3451
3691
|
|
|
3452
3692
|
return headers;
|
|
3453
3693
|
}
|
|
@@ -4639,8 +4879,6 @@ class MCPServer {
|
|
|
4639
4879
|
const buildData = {
|
|
4640
4880
|
...buildSettings,
|
|
4641
4881
|
node_version: buildSettings?.node_version || 20,
|
|
4642
|
-
output_directory: buildSettings?.output_directory || 'dist',
|
|
4643
|
-
build_script: buildSettings?.build_script || 'build',
|
|
4644
4882
|
source_type: 'archive',
|
|
4645
4883
|
source_options: {
|
|
4646
4884
|
archive_path: archiveBasename
|
package/server.ts
CHANGED
|
@@ -1637,21 +1637,261 @@ const TOOLS: OpenApiTool[] = [
|
|
|
1637
1637
|
"type": "string",
|
|
1638
1638
|
"description": "surname parameter"
|
|
1639
1639
|
},
|
|
1640
|
-
"
|
|
1640
|
+
"note": {
|
|
1641
|
+
"type": "string",
|
|
1642
|
+
"description": "note parameter"
|
|
1643
|
+
}
|
|
1644
|
+
},
|
|
1645
|
+
"required": [
|
|
1646
|
+
"email"
|
|
1647
|
+
]
|
|
1648
|
+
},
|
|
1649
|
+
"security": [
|
|
1650
|
+
{
|
|
1651
|
+
"apiToken": []
|
|
1652
|
+
}
|
|
1653
|
+
]
|
|
1654
|
+
},
|
|
1655
|
+
{
|
|
1656
|
+
"name": "reach_filterSegmentContactsV1",
|
|
1657
|
+
"description": "Filter and retrieve contacts based on segmentation criteria.\n\nThis endpoint allows filtering contacts using specified conditions and returns a paginated list of matching contacts.\nThe results can be filtered using various attributes like email, name, subscription status, etc.",
|
|
1658
|
+
"method": "POST",
|
|
1659
|
+
"path": "/api/reach/v1/segmentation/filters/contacts",
|
|
1660
|
+
"inputSchema": {
|
|
1661
|
+
"type": "object",
|
|
1662
|
+
"properties": {
|
|
1663
|
+
"conditions": {
|
|
1641
1664
|
"type": "array",
|
|
1642
|
-
"description": "
|
|
1665
|
+
"description": "conditions parameter",
|
|
1643
1666
|
"items": {
|
|
1644
|
-
"type": "
|
|
1645
|
-
"description": "
|
|
1667
|
+
"type": "object",
|
|
1668
|
+
"description": "conditions parameter",
|
|
1669
|
+
"properties": {
|
|
1670
|
+
"operator": {
|
|
1671
|
+
"type": "string",
|
|
1672
|
+
"description": "operator parameter",
|
|
1673
|
+
"enum": [
|
|
1674
|
+
"equals",
|
|
1675
|
+
"not_equals",
|
|
1676
|
+
"contains",
|
|
1677
|
+
"not_contains",
|
|
1678
|
+
"gte",
|
|
1679
|
+
"lte",
|
|
1680
|
+
"exists",
|
|
1681
|
+
"within_last_days",
|
|
1682
|
+
"not_within_last_days",
|
|
1683
|
+
"older_than_days",
|
|
1684
|
+
"processed",
|
|
1685
|
+
"not_processed",
|
|
1686
|
+
"delivered",
|
|
1687
|
+
"not_delivered",
|
|
1688
|
+
"dropped",
|
|
1689
|
+
"not_dropped",
|
|
1690
|
+
"bounced",
|
|
1691
|
+
"not_bounced",
|
|
1692
|
+
"opened",
|
|
1693
|
+
"not_opened",
|
|
1694
|
+
"clicked",
|
|
1695
|
+
"not_clicked",
|
|
1696
|
+
"unsubscribed",
|
|
1697
|
+
"not_unsubscribed"
|
|
1698
|
+
]
|
|
1699
|
+
},
|
|
1700
|
+
"value": {
|
|
1701
|
+
"type": "string",
|
|
1702
|
+
"description": "value parameter"
|
|
1703
|
+
},
|
|
1704
|
+
"attribute": {
|
|
1705
|
+
"type": "string",
|
|
1706
|
+
"description": "attribute parameter",
|
|
1707
|
+
"enum": [
|
|
1708
|
+
"note",
|
|
1709
|
+
"comment",
|
|
1710
|
+
"domain",
|
|
1711
|
+
"integration",
|
|
1712
|
+
"source",
|
|
1713
|
+
"name",
|
|
1714
|
+
"surname",
|
|
1715
|
+
"email",
|
|
1716
|
+
"subscribed_at",
|
|
1717
|
+
"unsubscribed_at",
|
|
1718
|
+
"subscription_status",
|
|
1719
|
+
"processed",
|
|
1720
|
+
"opened",
|
|
1721
|
+
"clicked",
|
|
1722
|
+
"delivered",
|
|
1723
|
+
"bounced",
|
|
1724
|
+
"unsubscribed",
|
|
1725
|
+
"dropped",
|
|
1726
|
+
"tag",
|
|
1727
|
+
"campaigns"
|
|
1728
|
+
]
|
|
1729
|
+
}
|
|
1730
|
+
}
|
|
1646
1731
|
}
|
|
1647
1732
|
},
|
|
1648
|
-
"
|
|
1733
|
+
"logic": {
|
|
1649
1734
|
"type": "string",
|
|
1650
|
-
"description": "
|
|
1735
|
+
"description": "logic parameter",
|
|
1736
|
+
"enum": [
|
|
1737
|
+
"AND",
|
|
1738
|
+
"OR"
|
|
1739
|
+
]
|
|
1740
|
+
},
|
|
1741
|
+
"page": {
|
|
1742
|
+
"type": "integer",
|
|
1743
|
+
"description": "page parameter"
|
|
1744
|
+
},
|
|
1745
|
+
"per_page": {
|
|
1746
|
+
"type": "integer",
|
|
1747
|
+
"description": "per_page parameter"
|
|
1651
1748
|
}
|
|
1652
1749
|
},
|
|
1653
1750
|
"required": [
|
|
1654
|
-
"
|
|
1751
|
+
"conditions",
|
|
1752
|
+
"logic"
|
|
1753
|
+
]
|
|
1754
|
+
},
|
|
1755
|
+
"security": [
|
|
1756
|
+
{
|
|
1757
|
+
"apiToken": []
|
|
1758
|
+
}
|
|
1759
|
+
]
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"name": "reach_listContactSegmentsV1",
|
|
1763
|
+
"description": "Get a list of all contact segments.\n\nThis endpoint returns a list of contact segments that can be used to organize contacts.",
|
|
1764
|
+
"method": "GET",
|
|
1765
|
+
"path": "/api/reach/v1/segmentation/segments",
|
|
1766
|
+
"inputSchema": {
|
|
1767
|
+
"type": "object",
|
|
1768
|
+
"properties": {},
|
|
1769
|
+
"required": []
|
|
1770
|
+
},
|
|
1771
|
+
"security": [
|
|
1772
|
+
{
|
|
1773
|
+
"apiToken": []
|
|
1774
|
+
}
|
|
1775
|
+
]
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
"name": "reach_createANewContactSegmentV1",
|
|
1779
|
+
"description": "Create a new contact segment.\n\nThis endpoint allows creating a new contact segment that can be used to organize contacts.\nThe segment can be configured with specific criteria like email, name, subscription status, etc.",
|
|
1780
|
+
"method": "POST",
|
|
1781
|
+
"path": "/api/reach/v1/segmentation/segments",
|
|
1782
|
+
"inputSchema": {
|
|
1783
|
+
"type": "object",
|
|
1784
|
+
"properties": {
|
|
1785
|
+
"name": {
|
|
1786
|
+
"type": "string",
|
|
1787
|
+
"description": "name parameter"
|
|
1788
|
+
},
|
|
1789
|
+
"conditions": {
|
|
1790
|
+
"type": "array",
|
|
1791
|
+
"description": "conditions parameter",
|
|
1792
|
+
"items": {
|
|
1793
|
+
"type": "object",
|
|
1794
|
+
"description": "conditions parameter",
|
|
1795
|
+
"properties": {
|
|
1796
|
+
"operator": {
|
|
1797
|
+
"type": "string",
|
|
1798
|
+
"description": "operator parameter",
|
|
1799
|
+
"enum": [
|
|
1800
|
+
"equals",
|
|
1801
|
+
"not_equals",
|
|
1802
|
+
"contains",
|
|
1803
|
+
"not_contains",
|
|
1804
|
+
"gte",
|
|
1805
|
+
"lte",
|
|
1806
|
+
"exists",
|
|
1807
|
+
"within_last_days",
|
|
1808
|
+
"not_within_last_days",
|
|
1809
|
+
"older_than_days",
|
|
1810
|
+
"processed",
|
|
1811
|
+
"not_processed",
|
|
1812
|
+
"delivered",
|
|
1813
|
+
"not_delivered",
|
|
1814
|
+
"dropped",
|
|
1815
|
+
"not_dropped",
|
|
1816
|
+
"bounced",
|
|
1817
|
+
"not_bounced",
|
|
1818
|
+
"opened",
|
|
1819
|
+
"not_opened",
|
|
1820
|
+
"clicked",
|
|
1821
|
+
"not_clicked",
|
|
1822
|
+
"unsubscribed",
|
|
1823
|
+
"not_unsubscribed"
|
|
1824
|
+
]
|
|
1825
|
+
},
|
|
1826
|
+
"value": {
|
|
1827
|
+
"type": "string",
|
|
1828
|
+
"description": "value parameter"
|
|
1829
|
+
},
|
|
1830
|
+
"attribute": {
|
|
1831
|
+
"type": "string",
|
|
1832
|
+
"description": "attribute parameter",
|
|
1833
|
+
"enum": [
|
|
1834
|
+
"note",
|
|
1835
|
+
"comment",
|
|
1836
|
+
"domain",
|
|
1837
|
+
"integration",
|
|
1838
|
+
"source",
|
|
1839
|
+
"name",
|
|
1840
|
+
"surname",
|
|
1841
|
+
"email",
|
|
1842
|
+
"subscribed_at",
|
|
1843
|
+
"unsubscribed_at",
|
|
1844
|
+
"subscription_status",
|
|
1845
|
+
"processed",
|
|
1846
|
+
"opened",
|
|
1847
|
+
"clicked",
|
|
1848
|
+
"delivered",
|
|
1849
|
+
"bounced",
|
|
1850
|
+
"unsubscribed",
|
|
1851
|
+
"dropped",
|
|
1852
|
+
"tag",
|
|
1853
|
+
"campaigns"
|
|
1854
|
+
]
|
|
1855
|
+
}
|
|
1856
|
+
}
|
|
1857
|
+
}
|
|
1858
|
+
},
|
|
1859
|
+
"logic": {
|
|
1860
|
+
"type": "string",
|
|
1861
|
+
"description": "logic parameter",
|
|
1862
|
+
"enum": [
|
|
1863
|
+
"AND",
|
|
1864
|
+
"OR"
|
|
1865
|
+
]
|
|
1866
|
+
}
|
|
1867
|
+
},
|
|
1868
|
+
"required": [
|
|
1869
|
+
"name",
|
|
1870
|
+
"conditions",
|
|
1871
|
+
"logic"
|
|
1872
|
+
]
|
|
1873
|
+
},
|
|
1874
|
+
"security": [
|
|
1875
|
+
{
|
|
1876
|
+
"apiToken": []
|
|
1877
|
+
}
|
|
1878
|
+
]
|
|
1879
|
+
},
|
|
1880
|
+
{
|
|
1881
|
+
"name": "reach_getSegmentDetailsV1",
|
|
1882
|
+
"description": "Get details of a specific segment.\n\nThis endpoint retrieves information about a single segment identified by UUID.\nSegments are used to organize and group contacts based on specific criteria.",
|
|
1883
|
+
"method": "GET",
|
|
1884
|
+
"path": "/api/reach/v1/segmentation/segments/{segmentUuid}",
|
|
1885
|
+
"inputSchema": {
|
|
1886
|
+
"type": "object",
|
|
1887
|
+
"properties": {
|
|
1888
|
+
"segmentUuid": {
|
|
1889
|
+
"type": "string",
|
|
1890
|
+
"description": "Segment uuid parameter"
|
|
1891
|
+
}
|
|
1892
|
+
},
|
|
1893
|
+
"required": [
|
|
1894
|
+
"segmentUuid"
|
|
1655
1895
|
]
|
|
1656
1896
|
},
|
|
1657
1897
|
"security": [
|
|
@@ -3109,7 +3349,7 @@ const TOOLS: OpenApiTool[] = [
|
|
|
3109
3349
|
},
|
|
3110
3350
|
{
|
|
3111
3351
|
"name": "VPS_recreateVirtualMachineV1",
|
|
3112
|
-
"description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least
|
|
3352
|
+
"description": "Recreate a virtual machine from scratch.\n\nThe recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state.\nSnapshots, if there are any, will be deleted.\n\n## Password Requirements\nPassword will be checked against leaked password databases. \nRequirements for the password are:\n- At least 12 characters long\n- At least one uppercase letter\n- At least one lowercase letter\n- At least one number\n- Is not leaked publicly\n\n**This operation is irreversible and will result in the loss of all data stored on the virtual machine!**\n\nUse this endpoint to completely rebuild VPS instances with fresh OS installation.",
|
|
3113
3353
|
"method": "POST",
|
|
3114
3354
|
"path": "/api/vps/v1/virtual-machines/{virtualMachineId}/recreate",
|
|
3115
3355
|
"inputSchema": {
|
|
@@ -3422,7 +3662,7 @@ const SECURITY_SCHEMES: Record<string, SecurityScheme> = {
|
|
|
3422
3662
|
|
|
3423
3663
|
/**
|
|
3424
3664
|
* MCP Server for Hostinger API
|
|
3425
|
-
* Generated from OpenAPI spec version 0.
|
|
3665
|
+
* Generated from OpenAPI spec version 0.10.0
|
|
3426
3666
|
*/
|
|
3427
3667
|
class MCPServer {
|
|
3428
3668
|
private server: Server;
|
|
@@ -3444,7 +3684,7 @@ class MCPServer {
|
|
|
3444
3684
|
this.server = new Server(
|
|
3445
3685
|
{
|
|
3446
3686
|
name: "hostinger-api-mcp",
|
|
3447
|
-
version: "0.1.
|
|
3687
|
+
version: "0.1.23",
|
|
3448
3688
|
},
|
|
3449
3689
|
{
|
|
3450
3690
|
capabilities: {
|
|
@@ -3469,7 +3709,7 @@ class MCPServer {
|
|
|
3469
3709
|
});
|
|
3470
3710
|
}
|
|
3471
3711
|
|
|
3472
|
-
headers['User-Agent'] = 'hostinger-mcp-server/0.1.
|
|
3712
|
+
headers['User-Agent'] = 'hostinger-mcp-server/0.1.23';
|
|
3473
3713
|
|
|
3474
3714
|
return headers;
|
|
3475
3715
|
}
|
|
@@ -4666,8 +4906,6 @@ class MCPServer {
|
|
|
4666
4906
|
const buildData = {
|
|
4667
4907
|
...buildSettings,
|
|
4668
4908
|
node_version: buildSettings?.node_version || 20,
|
|
4669
|
-
output_directory: buildSettings?.output_directory || 'dist',
|
|
4670
|
-
build_script: buildSettings?.build_script || 'build',
|
|
4671
4909
|
source_type: 'archive',
|
|
4672
4910
|
source_options: {
|
|
4673
4911
|
archive_path: archiveBasename
|
package/types.d.ts
CHANGED
|
@@ -1051,10 +1051,6 @@ The contact will be automatically subscribed to email communications.
|
|
|
1051
1051
|
* surname parameter
|
|
1052
1052
|
*/
|
|
1053
1053
|
surname?: string;
|
|
1054
|
-
/**
|
|
1055
|
-
* group_uuids parameter
|
|
1056
|
-
*/
|
|
1057
|
-
group_uuids?: array;
|
|
1058
1054
|
/**
|
|
1059
1055
|
* note parameter
|
|
1060
1056
|
*/
|
|
@@ -1063,6 +1059,86 @@ The contact will be automatically subscribed to email communications.
|
|
|
1063
1059
|
response: any; // Response structure will depend on the API
|
|
1064
1060
|
};
|
|
1065
1061
|
|
|
1062
|
+
/**
|
|
1063
|
+
* Filter and retrieve contacts based on segmentation criteria.
|
|
1064
|
+
|
|
1065
|
+
This endpoint allows filtering contacts using specified conditions and returns a paginated list of matching contacts.
|
|
1066
|
+
The results can be filtered using various attributes like email, name, subscription status, etc.
|
|
1067
|
+
*/
|
|
1068
|
+
"reach_filterSegmentContactsV1": {
|
|
1069
|
+
params: {
|
|
1070
|
+
/**
|
|
1071
|
+
* conditions parameter
|
|
1072
|
+
*/
|
|
1073
|
+
conditions: array;
|
|
1074
|
+
/**
|
|
1075
|
+
* logic parameter
|
|
1076
|
+
*/
|
|
1077
|
+
logic: string;
|
|
1078
|
+
/**
|
|
1079
|
+
* page parameter
|
|
1080
|
+
*/
|
|
1081
|
+
page?: number;
|
|
1082
|
+
/**
|
|
1083
|
+
* per_page parameter
|
|
1084
|
+
*/
|
|
1085
|
+
per_page?: number;
|
|
1086
|
+
};
|
|
1087
|
+
response: any; // Response structure will depend on the API
|
|
1088
|
+
};
|
|
1089
|
+
|
|
1090
|
+
/**
|
|
1091
|
+
* Get a list of all contact segments.
|
|
1092
|
+
|
|
1093
|
+
This endpoint returns a list of contact segments that can be used to organize contacts.
|
|
1094
|
+
*/
|
|
1095
|
+
"reach_listContactSegmentsV1": {
|
|
1096
|
+
params: {
|
|
1097
|
+
|
|
1098
|
+
};
|
|
1099
|
+
response: any; // Response structure will depend on the API
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* Create a new contact segment.
|
|
1104
|
+
|
|
1105
|
+
This endpoint allows creating a new contact segment that can be used to organize contacts.
|
|
1106
|
+
The segment can be configured with specific criteria like email, name, subscription status, etc.
|
|
1107
|
+
*/
|
|
1108
|
+
"reach_createANewContactSegmentV1": {
|
|
1109
|
+
params: {
|
|
1110
|
+
/**
|
|
1111
|
+
* name parameter
|
|
1112
|
+
*/
|
|
1113
|
+
name: string;
|
|
1114
|
+
/**
|
|
1115
|
+
* conditions parameter
|
|
1116
|
+
*/
|
|
1117
|
+
conditions: array;
|
|
1118
|
+
/**
|
|
1119
|
+
* logic parameter
|
|
1120
|
+
*/
|
|
1121
|
+
logic: string;
|
|
1122
|
+
};
|
|
1123
|
+
response: any; // Response structure will depend on the API
|
|
1124
|
+
};
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* Get details of a specific segment.
|
|
1128
|
+
|
|
1129
|
+
This endpoint retrieves information about a single segment identified by UUID.
|
|
1130
|
+
Segments are used to organize and group contacts based on specific criteria.
|
|
1131
|
+
*/
|
|
1132
|
+
"reach_getSegmentDetailsV1": {
|
|
1133
|
+
params: {
|
|
1134
|
+
/**
|
|
1135
|
+
* Segment uuid parameter
|
|
1136
|
+
*/
|
|
1137
|
+
segmentUuid: string;
|
|
1138
|
+
};
|
|
1139
|
+
response: any; // Response structure will depend on the API
|
|
1140
|
+
};
|
|
1141
|
+
|
|
1066
1142
|
/**
|
|
1067
1143
|
* Retrieve all available data centers.
|
|
1068
1144
|
|
|
@@ -2128,7 +2204,7 @@ Snapshots, if there are any, will be deleted.
|
|
|
2128
2204
|
## Password Requirements
|
|
2129
2205
|
Password will be checked against leaked password databases.
|
|
2130
2206
|
Requirements for the password are:
|
|
2131
|
-
- At least
|
|
2207
|
+
- At least 12 characters long
|
|
2132
2208
|
- At least one uppercase letter
|
|
2133
2209
|
- At least one lowercase letter
|
|
2134
2210
|
- At least one number
|
package/server.json
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
|
|
3
|
-
"name": "io.github.hostinger/hostinger-api-mcp",
|
|
4
|
-
"description": "MCP server for Hostinger API",
|
|
5
|
-
"repository": {
|
|
6
|
-
"url": "https://github.com/hostinger/api-mcp-server",
|
|
7
|
-
"source": "github"
|
|
8
|
-
},
|
|
9
|
-
"version": "0.1.21",
|
|
10
|
-
"packages": [
|
|
11
|
-
{
|
|
12
|
-
"registryType": "npm",
|
|
13
|
-
"identifier": "hostinger-api-mcp",
|
|
14
|
-
"version": "0.1.21",
|
|
15
|
-
"transport": {
|
|
16
|
-
"type": "stdio"
|
|
17
|
-
},
|
|
18
|
-
"environmentVariables": [
|
|
19
|
-
{
|
|
20
|
-
"name": "API_TOKEN",
|
|
21
|
-
"description": "Hostinger API token",
|
|
22
|
-
"isRequired": true,
|
|
23
|
-
"isSecret": true,
|
|
24
|
-
"format": "string"
|
|
25
|
-
}
|
|
26
|
-
]
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
}
|