hostinger-api-mcp 3.28.0 → 3.28.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/skills/headless/VERSION +2 -2
- package/skills/headless/connect/SKILL.md +51 -3
- package/skills/headless/connect/tools/antigravity.md +21 -19
- package/skills/headless/connect/tools/claude-code.md +24 -14
- package/skills/headless/connect/tools/codex.md +21 -15
- package/skills/headless/connect/tools/cursor.md +20 -14
- package/skills/headless/connect/tools/devin.md +23 -18
- package/skills/headless/connect/tools/vscode.md +24 -14
- package/skills/headless/steps/03-provision/ecommerce/SKILL.md +10 -17
- package/skills/headless/steps/04-content-model/ecommerce/SKILL.md +3 -3
- package/skills/headless/steps/08-deploy/SKILL.md +30 -8
- package/src/core/skills.js +30 -30
- package/src/core/skills.ts +30 -30
- package/src/servers/agency-hosting.js +1 -1
- package/src/servers/agency-hosting.ts +1 -1
- package/src/servers/agent-readiness.js +1 -1
- package/src/servers/agent-readiness.ts +1 -1
- package/src/servers/all.js +1 -1
- package/src/servers/all.ts +1 -1
- package/src/servers/billing.js +1 -1
- package/src/servers/billing.ts +1 -1
- package/src/servers/dns.js +1 -1
- package/src/servers/dns.ts +1 -1
- package/src/servers/domains.js +1 -1
- package/src/servers/domains.ts +1 -1
- package/src/servers/ecommerce.js +1 -1
- package/src/servers/ecommerce.ts +1 -1
- package/src/servers/gpu.js +1 -1
- package/src/servers/gpu.ts +1 -1
- package/src/servers/horizons.js +1 -1
- package/src/servers/horizons.ts +1 -1
- package/src/servers/hosting.js +1 -1
- package/src/servers/hosting.ts +1 -1
- package/src/servers/mail.js +1 -1
- package/src/servers/mail.ts +1 -1
- package/src/servers/reach.js +1 -1
- package/src/servers/reach.ts +1 -1
- package/src/servers/vps.js +1 -1
- package/src/servers/vps.ts +1 -1
- package/src/servers/wordpress.js +1 -1
- package/src/servers/wordpress.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,20 @@ Generated at release time from the diff between the previous and current
|
|
|
4
4
|
build. Tool changes are listed individually; everything else is summarised
|
|
5
5
|
by area.
|
|
6
6
|
|
|
7
|
+
## v3.28.2 — 2026-11-04
|
|
8
|
+
|
|
9
|
+
### Also in this release
|
|
10
|
+
|
|
11
|
+
- Bundled agent skills: `skills/headless/VERSION`, `skills/headless/steps/08-deploy/SKILL.md`
|
|
12
|
+
- Other files: `src/core/skills.js`, `src/core/skills.ts`
|
|
13
|
+
|
|
14
|
+
## v3.28.1 — 2026-11-04
|
|
15
|
+
|
|
16
|
+
### Also in this release
|
|
17
|
+
|
|
18
|
+
- Bundled agent skills: 11 files
|
|
19
|
+
- Other files: `src/core/skills.js`, `src/core/skills.ts`
|
|
20
|
+
|
|
7
21
|
## v3.28.0 — 2026-11-04
|
|
8
22
|
|
|
9
23
|
### Also in this release
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
package/server.json
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"url": "https://github.com/hostinger/api-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "3.28.
|
|
9
|
+
"version": "3.28.2",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "3.28.
|
|
14
|
+
"version": "3.28.2",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/skills/headless/VERSION
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
version=3.28.
|
|
2
|
-
commit=
|
|
1
|
+
version=3.28.2
|
|
2
|
+
commit=96c74d42d44e
|
|
3
3
|
built=2026-11-04
|
|
@@ -72,10 +72,58 @@ npx --yes --package=@hostinger/mcp@latest hostinger-api-mcp --login
|
|
|
72
72
|
npx --yes --package=@hostinger/mcp@latest hostinger-api-mcp --logout
|
|
73
73
|
```
|
|
74
74
|
|
|
75
|
-
Credentials live in `~/.config/hostinger-mcp/credentials.json` (macOS/Linux) or `%APPDATA%\hostinger-mcp\credentials.json` (Windows) and are shared by every Hostinger MCP binary. OAuth works only
|
|
75
|
+
Credentials live in `~/.config/hostinger-mcp/credentials.json` (macOS/Linux) or `%APPDATA%\hostinger-mcp\credentials.json` (Windows) and are shared by every Hostinger MCP binary. OAuth works only when the tool runs the server over its default local (stdio) transport, which is what every registration below uses; `--http` needs `HOSTINGER_API_TOKEN`.
|
|
76
76
|
|
|
77
77
|
## Phase 2 - Route to the specific tool instructions
|
|
78
78
|
|
|
79
|
+
**Use the Hostinger connector only through your tool's native MCP tools** (`mcp__hostinger__*`,
|
|
80
|
+
`mcp__hostinger-*__*`, or however your tool names them). Never spawn the MCP server yourself and
|
|
81
|
+
never write a JSON-RPC client to talk to it: every connector call must be a visible MCP tool call
|
|
82
|
+
the user can follow and approve, not a script.
|
|
83
|
+
|
|
84
|
+
### Check both tool groups, not just "some Hostinger tools"
|
|
85
|
+
|
|
86
|
+
The build needs **two** groups of connector operations, and they come from different servers. Having
|
|
87
|
+
one group says nothing about the other:
|
|
88
|
+
|
|
89
|
+
| Group | Operations | Comes from | Needed by |
|
|
90
|
+
|---|---|---|---|
|
|
91
|
+
| **Hosting** | `hosting_*` (websites, deploy, build report), `wordpress_*` | `hostinger` (`npx -y @hostinger/mcp@latest`), or the scoped servers such as `hostinger-hosting` + `hostinger-wordpress` | every build |
|
|
92
|
+
| **Ecommerce** | `ecommerce_*` (stores, products, shipping, payments) | **only** `hostinger-ecommerce` (`npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp`), or the Ecommerce MCP in the Hostinger Connector. Neither `hostinger` nor the scoped hosting servers include it | Ecommerce backends (chosen later, in refine) |
|
|
93
|
+
|
|
94
|
+
Check each group on its own, right here at connect, before anything else:
|
|
95
|
+
|
|
96
|
+
- **Hosting:** a Hostinger search tool finds `hosting_websites_list` (e.g. search "list websites").
|
|
97
|
+
- **Ecommerce:** a tool from the `hostinger-ecommerce` server is in the session (Claude Code:
|
|
98
|
+
`mcp__hostinger-ecommerce__*`), and its search finds `ecommerce_stores_list` (e.g. search "list stores").
|
|
99
|
+
|
|
100
|
+
Only when **both** pass are the Hostinger tools "in this session". If either is missing, the tools
|
|
101
|
+
are **not** in this session: follow *register, restart, resume* below for the missing server(s) now,
|
|
102
|
+
even though other Hostinger tools respond. Don't wait for refine to choose a backend: the restart
|
|
103
|
+
costs the least before the user has been asked anything, and finding the gap at provision forces a
|
|
104
|
+
second restart in the middle of the build.
|
|
105
|
+
|
|
106
|
+
### When the Hostinger tools aren't in this session: register, restart, resume
|
|
107
|
+
|
|
108
|
+
Most coding tools load MCP servers only when they start, so a server registered mid-run isn't usable
|
|
109
|
+
until the tool restarts. When either tool group above is missing:
|
|
110
|
+
|
|
111
|
+
1. **Register the missing servers** in the tool's MCP config, as the tool route below shows: `hostinger`
|
|
112
|
+
(`npx -y @hostinger/mcp@latest`) if the hosting group is missing, and `hostinger-ecommerce`
|
|
113
|
+
(`npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp`) if the ecommerce group is missing.
|
|
114
|
+
Skip a server that is already registered under its name. When neither group is there, register
|
|
115
|
+
both: the backend isn't chosen until refine, and one restart then covers every backend.
|
|
116
|
+
2. **Pull the skills and write `connect.json`** (the route's skills step and Phase 3) before you stop,
|
|
117
|
+
so the next run starts from them.
|
|
118
|
+
3. **Send the first message and end your turn.** It follows *The first message* in
|
|
119
|
+
`headless/SKILL.md`: the sign-in link if one was needed, then one line saying Hostinger is set up
|
|
120
|
+
and asking the user to restart the tool (the route says how) and paste the same prompt again so the
|
|
121
|
+
build continues from there. This is a pause, not a run ending: no final report and no build report.
|
|
122
|
+
4. **On the next run** the tools are loaded, so connect skips registration and check-state resumes the
|
|
123
|
+
domain's workspace.
|
|
124
|
+
|
|
125
|
+
If a tool loads new servers without a restart (VS Code), use them right away and skip steps 3–4.
|
|
126
|
+
|
|
79
127
|
| Tool | Route |
|
|
80
128
|
|-------------|---------------------------------|
|
|
81
129
|
| Claude Code | `connect/tools/claude-code.md` |
|
|
@@ -85,8 +133,8 @@ Credentials live in `~/.config/hostinger-mcp/credentials.json` (macOS/Linux) or
|
|
|
85
133
|
| Antigravity | `connect/tools/antigravity.md` |
|
|
86
134
|
| Devin | `connect/tools/devin.md` |
|
|
87
135
|
|
|
88
|
-
If the user's tool isn't listed yet, connect it the generic way
|
|
89
|
-
|
|
136
|
+
If the user's tool isn't listed yet, connect it the generic way: register both Hostinger MCP servers
|
|
137
|
+
in that tool's MCP config (command `npx`, args as above), then follow *register, restart, resume*.
|
|
90
138
|
|
|
91
139
|
### Always pull the latest skills (never run a stale copy)
|
|
92
140
|
|
|
@@ -8,25 +8,18 @@ description: "Specific Antigravity Hostinger MCP Server connection instructions
|
|
|
8
8
|
- Make Hostinger MCP tools and Skills available in Google Antigravity.
|
|
9
9
|
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that. This entry stops at signed in and checking that Hostinger MCP and skills are reachable.
|
|
10
10
|
|
|
11
|
-
## Step 1 — Make the
|
|
12
|
-
|
|
13
|
-
The later stages drive the Hostinger connector
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
(`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`)
|
|
22
|
-
|
|
23
|
-
result is in `reply.result.content[0].text`. Write the little client yourself (~20 lines), keep one
|
|
24
|
-
process alive for the whole run, and use it wherever a stage calls the connector.
|
|
25
|
-
|
|
26
|
-
**To persist it for future Antigravity sessions** (optional), add the server to
|
|
27
|
-
`~/.gemini/antigravity/mcp_config.json` (Windows: `C:\Users\<USERNAME>\.gemini\antigravity\mcp_config.json`) —
|
|
28
|
-
reachable from the Agent panel's "..." → MCP Servers → Manage MCP Servers → View raw config — then fully
|
|
29
|
-
quit and reopen Antigravity once so it loads:
|
|
11
|
+
## Step 1 — Make the MCP tools available
|
|
12
|
+
|
|
13
|
+
The later stages drive the Hostinger connector through Antigravity's native MCP tools. Check **both** tool groups (hosting and ecommerce), as *Check both tool groups* in `connect/SKILL.md`
|
|
14
|
+
says: other Hostinger tools responding doesn't mean the `hostinger-ecommerce` ones are there. Both
|
|
15
|
+
respond → use them and move on.
|
|
16
|
+
|
|
17
|
+
If either is missing, add the missing server(s) to `~/.gemini/antigravity/mcp_config.json` (Windows:
|
|
18
|
+
`C:\Users\<USERNAME>\.gemini\antigravity\mcp_config.json`), which you can reach from the Agent panel's
|
|
19
|
+
"..." → MCP Servers → Manage MCP Servers → View raw config. Merge them into any existing
|
|
20
|
+
`mcpServers` rather than replacing the file. The bootstrap already signed you in, so they reuse the
|
|
21
|
+
cached sign-in (`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`) and there are
|
|
22
|
+
no tokens to handle:
|
|
30
23
|
|
|
31
24
|
```json
|
|
32
25
|
{
|
|
@@ -34,11 +27,20 @@ quit and reopen Antigravity once so it loads:
|
|
|
34
27
|
"hostinger": {
|
|
35
28
|
"command": "npx",
|
|
36
29
|
"args": ["-y", "@hostinger/mcp@latest"]
|
|
30
|
+
},
|
|
31
|
+
"hostinger-ecommerce": {
|
|
32
|
+
"command": "npx",
|
|
33
|
+
"args": ["--package=@hostinger/mcp@latest", "hostinger-ecommerce-mcp"]
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
```
|
|
41
38
|
|
|
39
|
+
Antigravity loads MCP servers only when the editor starts, so follow *register, restart, resume* in
|
|
40
|
+
`connect/SKILL.md`: finish Step 2 and `connect.json`, then ask the user to fully quit and reopen
|
|
41
|
+
Antigravity and paste the same prompt. Never spawn the server yourself or write a JSON-RPC client to
|
|
42
|
+
reach it.
|
|
43
|
+
|
|
42
44
|
## Step 2 — Install the skills and hand off
|
|
43
45
|
|
|
44
46
|
Download the Hostinger skills locally **at the start of every run** so your agent then reads the files
|
|
@@ -9,20 +9,30 @@ description: "Specific Claude Code Hostinger MCP Server connection instructions
|
|
|
9
9
|
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that. This entry stops at signed in and checking that Hostinger MCP and skills are available.
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
## Step 1 — Make the MCP
|
|
13
|
-
|
|
14
|
-
Stages 2–10 drive the Hostinger connector
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
12
|
+
## Step 1 — Make the MCP tools available
|
|
13
|
+
|
|
14
|
+
Stages 2–10 drive the Hostinger connector through Claude Code's native MCP tools. Check **both** tool
|
|
15
|
+
groups as *Check both tool groups* in `connect/SKILL.md` says:
|
|
16
|
+
|
|
17
|
+
- **Hosting:** `mcp__hostinger__*`, or the scoped `mcp__hostinger-hosting__*`.
|
|
18
|
+
- **Ecommerce:** `mcp__hostinger-ecommerce__*`. The scoped servers (`hostinger-hosting`,
|
|
19
|
+
`hostinger-wordpress`, `hostinger-domains`, …) never include it, so a session full of
|
|
20
|
+
`mcp__hostinger-*__*` tools can still be missing it.
|
|
21
|
+
|
|
22
|
+
Both present → use them and move on. Either missing → register the missing server(s) at user scope
|
|
23
|
+
now (`claude mcp list` shows what's already registered; skip those). The bootstrap already signed you
|
|
24
|
+
in, so they reuse the cached sign-in (`~/.config/hostinger-mcp/credentials.json`, or
|
|
25
|
+
`HOSTINGER_API_TOKEN`) and there are no tokens to handle:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
claude mcp add hostinger --scope user -- npx -y @hostinger/mcp@latest # hosting group missing
|
|
29
|
+
claude mcp add hostinger-ecommerce --scope user -- npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp # ecommerce group missing
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Claude Code loads MCP servers only at startup, so follow *register, restart, resume* in
|
|
33
|
+
`connect/SKILL.md`: finish Step 2 and `connect.json`, then ask the user to exit Claude Code, start it
|
|
34
|
+
again in the same folder (`claude`, or `claude --continue` to keep this conversation) and paste the
|
|
35
|
+
same prompt. Never spawn the server yourself or write a JSON-RPC client to reach it.
|
|
26
36
|
|
|
27
37
|
## Step 2 — Install the skills and hand off
|
|
28
38
|
|
|
@@ -8,31 +8,37 @@ description: "Specific Codex Hostinger MCP Server connection instructions for th
|
|
|
8
8
|
- Make Hostinger MCP tools and Skills available in Codex.
|
|
9
9
|
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that. This entry stops at signed in and checking that Hostinger MCP and skills are reachable.
|
|
10
10
|
|
|
11
|
-
## Step 1 — Make the
|
|
11
|
+
## Step 1 — Make the MCP tools available
|
|
12
12
|
|
|
13
|
-
The later stages drive the Hostinger connector
|
|
14
|
-
|
|
13
|
+
The later stages drive the Hostinger connector through Codex's native MCP tools. Check **both** tool groups (hosting and ecommerce), as *Check both tool groups* in `connect/SKILL.md`
|
|
14
|
+
says: other Hostinger tools responding doesn't mean the `hostinger-ecommerce` ones are there. Both
|
|
15
|
+
respond → use them and move on.
|
|
15
16
|
|
|
16
|
-
If
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
and speak newline-delimited JSON-RPC 2.0 over its stdin/stdout (`initialize` →
|
|
20
|
-
`notifications/initialized` → `tools/call`). It reuses your cached sign-in automatically
|
|
21
|
-
(`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`) — no tokens to handle. It
|
|
22
|
-
exposes `search`, `execute`, `multi-execute`; everything the stages need goes through `execute`, and a
|
|
23
|
-
result is in `reply.result.content[0].text`. Write the little client yourself (~20 lines), keep one
|
|
24
|
-
process alive for the whole run, and use it wherever a stage calls the connector.
|
|
17
|
+
If either is missing, register the missing server(s); skip one already registered. The bootstrap already signed you in, so they reuse the cached
|
|
18
|
+
sign-in (`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`) and there are no tokens
|
|
19
|
+
to handle:
|
|
25
20
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
```bash
|
|
22
|
+
codex mcp add hostinger -- npx -y @hostinger/mcp@latest
|
|
23
|
+
codex mcp add hostinger-ecommerce -- npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
or add them to `~/.codex/config.toml`:
|
|
29
27
|
|
|
30
28
|
```toml
|
|
31
29
|
[mcp_servers.hostinger]
|
|
32
30
|
command = "npx"
|
|
33
31
|
args = ["-y", "@hostinger/mcp@latest"]
|
|
32
|
+
|
|
33
|
+
[mcp_servers.hostinger-ecommerce]
|
|
34
|
+
command = "npx"
|
|
35
|
+
args = ["--package=@hostinger/mcp@latest", "hostinger-ecommerce-mcp"]
|
|
34
36
|
```
|
|
35
37
|
|
|
38
|
+
Codex loads MCP servers only when it starts, so follow *register, restart, resume* in
|
|
39
|
+
`connect/SKILL.md`: finish Step 2 and `connect.json`, then ask the user to restart Codex and paste the
|
|
40
|
+
same prompt. Never spawn the server yourself or write a JSON-RPC client to reach it.
|
|
41
|
+
|
|
36
42
|
## Step 2 — Install the skills and hand off
|
|
37
43
|
|
|
38
44
|
Download the Hostinger skills locally **at the start of every run** so your agent then reads the files
|
|
@@ -32,9 +32,17 @@ npm install -g @hostinger/mcp
|
|
|
32
32
|
hostinger-api-mcp --version
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
###
|
|
35
|
+
### Register the servers in Cursor
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Check **both** tool groups, as *Check both tool groups* in `connect/SKILL.md` says: hosting
|
|
38
|
+
(`mcp__hostinger__*` or `mcp__hostinger-hosting__*`) **and** ecommerce (`mcp__hostinger-ecommerce__*`).
|
|
39
|
+
The scoped `mcp__hostinger-*__*` servers never include ecommerce, so they alone don't count. Both
|
|
40
|
+
present → skip registration: go to Step 2 only if you still need sign-in, otherwise go to Step 3.
|
|
41
|
+
|
|
42
|
+
If either is missing, register the missing server(s) in `~/.cursor/mcp.json` (global, so every project and every
|
|
43
|
+
later run has them). Merge them into any existing `mcpServers` rather than replacing the file.
|
|
44
|
+
**Do not** put `HOSTINGER_API_TOKEN` in this file when you want OAuth: leave the token unset so
|
|
45
|
+
OAuth can run:
|
|
38
46
|
|
|
39
47
|
```json
|
|
40
48
|
{
|
|
@@ -42,12 +50,20 @@ Register the server in `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` (glo
|
|
|
42
50
|
"hostinger": {
|
|
43
51
|
"command": "npx",
|
|
44
52
|
"args": ["--yes", "--package=@hostinger/mcp@latest", "hostinger-api-mcp"]
|
|
53
|
+
},
|
|
54
|
+
"hostinger-ecommerce": {
|
|
55
|
+
"command": "npx",
|
|
56
|
+
"args": ["--yes", "--package=@hostinger/mcp@latest", "hostinger-ecommerce-mcp"]
|
|
45
57
|
}
|
|
46
58
|
}
|
|
47
59
|
}
|
|
48
60
|
```
|
|
49
61
|
|
|
50
|
-
|
|
62
|
+
Cursor loads MCP servers only when the editor starts, so after Step 2 and Step 3 follow
|
|
63
|
+
*register, restart, resume* in `connect/SKILL.md`: ask the user to fully quit and reopen Cursor
|
|
64
|
+
(and, if Cursor asks, enable the two Hostinger servers under Settings → MCP), then paste the same
|
|
65
|
+
prompt. Never spawn the server yourself or write a JSON-RPC client to reach it: every connector call
|
|
66
|
+
must be a native MCP tool call.
|
|
51
67
|
|
|
52
68
|
## Step 2 — Authenticate with OAuth (browser opens)
|
|
53
69
|
|
|
@@ -84,17 +100,7 @@ npx --yes --package=@hostinger/mcp@latest hostinger-api-mcp --logout
|
|
|
84
100
|
|
|
85
101
|
**API token (optional, CI / scripts):** set `HOSTINGER_API_TOKEN` in the environment before launching Cursor. When present it always wins and no OAuth code runs. Do not commit the token.
|
|
86
102
|
|
|
87
|
-
## Step 3 —
|
|
88
|
-
|
|
89
|
-
Cursor only loads registered MCP servers when the editor starts, so a mid-run `.cursor/mcp.json` change will not attach tools to **this** session. For the rest of this run, talk to the local stdio server directly: spawn
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
npx --yes --package=@hostinger/mcp@latest hostinger-api-mcp
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
and speak newline-delimited JSON-RPC 2.0 over its stdin/stdout (`initialize` → `notifications/initialized` → `tools/call`). It reuses the cached sign-in from Step 2 (or `HOSTINGER_API_TOKEN`) — no tokens to handle in chat. It exposes `search`, `execute`, and `multi-execute`; everything the stages need goes through `execute`, and a result is in `reply.result.content[0].text`. Keep one process alive for the whole run.
|
|
96
|
-
|
|
97
|
-
## Step 4 — Install the skills and hand off
|
|
103
|
+
## Step 3 — Install the skills and hand off
|
|
98
104
|
|
|
99
105
|
Download the Hostinger skills locally **at the start of every run** so your agent then reads the files
|
|
100
106
|
directly with no further network calls during the run. **Always pull the latest and overwrite any
|
|
@@ -8,32 +8,37 @@ description: "Specific Devin Hostinger MCP Server connection instructions for th
|
|
|
8
8
|
- Make Hostinger MCP tools and Skills available in Devin.
|
|
9
9
|
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that. This entry stops at signed in and checking that Hostinger MCP and skills are reachable.
|
|
10
10
|
|
|
11
|
-
## Step 1 — Make the
|
|
11
|
+
## Step 1 — Make the MCP tools available
|
|
12
12
|
|
|
13
|
-
The later stages drive the Hostinger connector
|
|
14
|
-
|
|
13
|
+
The later stages drive the Hostinger connector through Devin's native MCP tools. Check **both** tool groups (hosting and ecommerce), as *Check both tool groups* in `connect/SKILL.md`
|
|
14
|
+
says: other Hostinger tools responding doesn't mean the `hostinger-ecommerce` ones are there. Both
|
|
15
|
+
respond → use them and move on.
|
|
15
16
|
|
|
16
|
-
If
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
If either is missing, register the missing server(s) for Devin; skip one already registered. The bootstrap already signed you in, so they reuse the
|
|
18
|
+
cached sign-in (`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`) and there are no
|
|
19
|
+
tokens to handle.
|
|
19
20
|
|
|
20
|
-
- **Devin CLI:**
|
|
21
|
-
|
|
21
|
+
- **Devin CLI:**
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
devin mcp add hostinger -- npx -y @hostinger/mcp@latest
|
|
25
|
+
devin mcp add hostinger-ecommerce -- npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- **Devin app:** Settings → MCP Marketplace → **Add Your Own**, transport **STDIO**, once per server:
|
|
22
29
|
|
|
23
30
|
```json
|
|
24
|
-
{
|
|
25
|
-
"command": "npx",
|
|
26
|
-
"args": ["-y", "@hostinger/mcp@latest"]
|
|
27
|
-
}
|
|
31
|
+
{ "command": "npx", "args": ["-y", "@hostinger/mcp@latest"] }
|
|
28
32
|
```
|
|
29
33
|
|
|
30
|
-
|
|
34
|
+
```json
|
|
35
|
+
{ "command": "npx", "args": ["--package=@hostinger/mcp@latest", "hostinger-ecommerce-mcp"] }
|
|
36
|
+
```
|
|
31
37
|
|
|
32
|
-
If
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
`reply.result.content[0].text`.
|
|
38
|
+
If the tools still aren't in this session, follow *register, restart, resume* in `connect/SKILL.md`:
|
|
39
|
+
finish Step 2 and `connect.json`, then ask the user to restart the Devin session (on Devin Desktop,
|
|
40
|
+
fully quit and reopen the app) and paste the same prompt. Never spawn the server yourself or write a
|
|
41
|
+
JSON-RPC client to reach it.
|
|
37
42
|
|
|
38
43
|
## Step 2 — Install the skills and hand off
|
|
39
44
|
|
|
@@ -8,15 +8,16 @@ description: "Specific VS Code Hostinger MCP Server connection instructions for
|
|
|
8
8
|
- Make Hostinger MCP tools and Skills available in VS Code (GitHub Copilot / agent mode).
|
|
9
9
|
- Don't provision hosting, create stores, install WordPress, or deploy by hand here — the skill does all of that. This entry stops at signed in and checking that Hostinger MCP and skills are reachable.
|
|
10
10
|
|
|
11
|
-
## Step 1 — Make the
|
|
11
|
+
## Step 1 — Make the MCP tools available
|
|
12
12
|
|
|
13
|
-
The later stages drive the Hostinger connector
|
|
14
|
-
|
|
13
|
+
The later stages drive the Hostinger connector through VS Code's native MCP tools. Check **both** tool groups (hosting and ecommerce), as *Check both tool groups* in `connect/SKILL.md`
|
|
14
|
+
says: other Hostinger tools responding doesn't mean the `hostinger-ecommerce` ones are there. Both
|
|
15
|
+
respond → use them and move on.
|
|
15
16
|
|
|
16
|
-
If
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
If either is missing, register the missing server(s) for VS Code; skip one already registered. The bootstrap already signed you in, so they reuse
|
|
18
|
+
the cached sign-in (`~/.config/hostinger-mcp/credentials.json`, or `HOSTINGER_API_TOKEN`) and there are
|
|
19
|
+
no tokens to handle. Add them to `.vscode/mcp.json` (workspace) or your user `settings.json` under
|
|
20
|
+
`mcp`:
|
|
20
21
|
|
|
21
22
|
```json
|
|
22
23
|
// .vscode/mcp.json
|
|
@@ -26,21 +27,30 @@ process and the bootstrap already signed you in, so it reuses your cached sign-i
|
|
|
26
27
|
"type": "stdio",
|
|
27
28
|
"command": "npx",
|
|
28
29
|
"args": ["-y", "@hostinger/mcp@latest"]
|
|
30
|
+
},
|
|
31
|
+
"hostinger-ecommerce": {
|
|
32
|
+
"type": "stdio",
|
|
33
|
+
"command": "npx",
|
|
34
|
+
"args": ["--package=@hostinger/mcp@latest", "hostinger-ecommerce-mcp"]
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
}
|
|
32
38
|
```
|
|
33
39
|
|
|
34
|
-
Or add
|
|
35
|
-
|
|
40
|
+
Or add them in two commands:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
code --add-mcp '{"name":"hostinger","command":"npx","args":["-y","@hostinger/mcp@latest"]}'
|
|
44
|
+
code --add-mcp '{"name":"hostinger-ecommerce","command":"npx","args":["--package=@hostinger/mcp@latest","hostinger-ecommerce-mcp"]}'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
VS Code picks up new servers and their tools become available right away, with no editor restart.
|
|
36
48
|
(Alternatively, the official Hostinger Connector extension installs the same server:
|
|
37
49
|
`code --install-extension hostinger-official.hostinger-connector`.)
|
|
38
50
|
|
|
39
|
-
If
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`multi-execute`; everything the stages need goes through `execute`, and a result is in
|
|
43
|
-
`reply.result.content[0].text`.
|
|
51
|
+
If the tools still don't show up, follow *register, restart, resume* in `connect/SKILL.md`: finish
|
|
52
|
+
Step 2 and `connect.json`, then ask the user to run **Developer: Reload Window** and paste the same
|
|
53
|
+
prompt. Never spawn the server yourself or write a JSON-RPC client to reach it.
|
|
44
54
|
|
|
45
55
|
## Step 2 — Install the skills and hand off
|
|
46
56
|
|
|
@@ -17,26 +17,19 @@ Provision a **Hostinger Ecommerce** backend for `<domain>` and prove it is ready
|
|
|
17
17
|
|
|
18
18
|
> ## ⚠️ Prerequisite: the `hostinger-ecommerce` MCP server must be connected
|
|
19
19
|
> Store management is **not** in the `hosting`/`wordpress` MCP groups — it's the separate
|
|
20
|
-
> **`hostinger-ecommerce`** group (`ecommerce_*` ops, OAuth-backed, no API token needed).
|
|
21
|
-
>
|
|
20
|
+
> **`hostinger-ecommerce`** group (`ecommerce_*` ops, OAuth-backed, no API token needed). Connect
|
|
21
|
+
> registers it alongside `hostinger`, so its tools are normally already in the session. If they
|
|
22
|
+
> aren't (for example, a tool connected before connect registered both servers), register it now. The
|
|
23
|
+
> command for each tool is in its `connect/tools/<tool>.md`; for Claude Code:
|
|
22
24
|
> ```bash
|
|
23
|
-
> claude mcp add
|
|
25
|
+
> claude mcp add hostinger-ecommerce --scope user -- npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp
|
|
24
26
|
> ```
|
|
25
|
-
> (
|
|
26
|
-
>
|
|
27
|
+
> (Or enable the **Ecommerce** MCP in the Hostinger Connector.) A newly added MCP server only loads
|
|
28
|
+
> after a restart, so pause the run with *register, restart, resume* from `connect/SKILL.md`: save
|
|
29
|
+
> state, ask the user to restart the tool and paste the same prompt, and end your turn. Check-state then
|
|
30
|
+
> resumes at provision. Never spawn the server yourself or write a JSON-RPC client to reach it.
|
|
27
31
|
>
|
|
28
|
-
>
|
|
29
|
-
> can't reconnect itself, so instead of stopping, run the stdio server yourself and speak MCP to it:
|
|
30
|
-
> spawn `npx --package=@hostinger/mcp@latest hostinger-ecommerce-mcp` (same `USER_AGENT` as above) and
|
|
31
|
-
> send newline-delimited JSON-RPC over its stdin/stdout — `initialize` → the `notifications/initialized`
|
|
32
|
-
> notification → `tools/list` → `tools/call`, where the tools are `search` / `execute` / `multi-execute`
|
|
33
|
-
> (call ops exactly as in-session: `{ "name": "execute", "arguments": { "operation": "…", "params": {…} } }`).
|
|
34
|
-
> It self-authenticates with the same stored Hostinger OAuth creds as the other connected servers, so
|
|
35
|
-
> there is **no token to handle** (keep any secret off the command line). Your sandbox may ask the user
|
|
36
|
-
> to approve spawning it — ask once, then proceed. Only fall back to asking the user to restart if
|
|
37
|
-
> driving the server directly isn't permitted.
|
|
38
|
-
>
|
|
39
|
-
> Verify the tools work (in-session or via the direct drive) with a search — e.g. "list stores" →
|
|
32
|
+
> Verify the tools work in-session with a search — e.g. "list stores" →
|
|
40
33
|
> `ecommerce_stores_list` — before proceeding.
|
|
41
34
|
> The authoritative, always-current build guide is `ecommerce_miscellaneous_custom-storefront-setup-instructions` — read it once per build.
|
|
42
35
|
|
|
@@ -12,9 +12,9 @@ OAuth). Prices are **integers in minor units** (cents) and live on **variants**.
|
|
|
12
12
|
**In:** `content-model.md` (prepared catalog), `site.json` (`ecommerce.store_id`). **Out:** products +
|
|
13
13
|
images created in the store; ids recorded back into `content-model.md`.
|
|
14
14
|
|
|
15
|
-
> If the `hostinger-ecommerce` MCP tools aren't available,
|
|
16
|
-
> `../../03-provision/ecommerce/SKILL.md
|
|
17
|
-
> drive the
|
|
15
|
+
> If the `hostinger-ecommerce` MCP tools aren't available, follow the prerequisite in
|
|
16
|
+
> `../../03-provision/ecommerce/SKILL.md`: register the server, then pause with *register, restart,
|
|
17
|
+
> resume* from `connect/SKILL.md`. Never drive the server yourself over stdio.
|
|
18
18
|
|
|
19
19
|
## Step 1 — Create products (idempotent)
|
|
20
20
|
|
|
@@ -97,23 +97,45 @@ Zip the project **source** with `package.json` at the archive root. **Include**
|
|
|
97
97
|
`package.json`, `package-lock.json`, `.nvmrc`. **Exclude** `node_modules/`, the build output
|
|
98
98
|
(`.next/`, `dist/`, `out/`), `.git/`, and any `.htaccess` — the server installs and builds from source.
|
|
99
99
|
|
|
100
|
+
> ## ⚠️ Write the archive outside `~/.hostinger/` (the deploy refuses it there)
|
|
101
|
+
> `hosting_deploy` refuses any `path` under a hidden folder at the top of the home directory
|
|
102
|
+
> (`~/.hostinger`, `~/.config`, …) with *"it is, or contains, a home, system or credentials location"*:
|
|
103
|
+
> a deploy publishes what it reads, so the connector protects dotfolders that can hold tokens. That
|
|
104
|
+
> covers both `~/.hostinger/<domain>/app.zip` **and** the `~/.hostinger/<domain>/src/` directory
|
|
105
|
+
> itself, so neither can be passed as `path`. Keep the source in the workspace as usual, but write the
|
|
106
|
+
> archive to a fresh temp directory and pass that. Don't copy the archive somewhere else after a
|
|
107
|
+
> refusal, and don't move `src/` out of the workspace.
|
|
108
|
+
|
|
100
109
|
```bash
|
|
110
|
+
# macOS/Linux — the OS temp dir is outside the home directory
|
|
101
111
|
cd ~/.hostinger/<domain>/src
|
|
102
|
-
|
|
112
|
+
DEPLOY_DIR=$(mktemp -d)
|
|
113
|
+
zip -r -X "$DEPLOY_DIR/app.zip" . -x 'node_modules/*' '.next/*' 'dist/*' 'out/*' '.git/*' '**/.htaccess'
|
|
114
|
+
echo "$DEPLOY_DIR/app.zip" # the absolute path to pass as `path` in Step 3
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
```powershell
|
|
118
|
+
# Windows PowerShell — %TEMP% sits under AppData, which the deploy also refuses; use a plain folder in your
|
|
119
|
+
# profile, which only you can write to (never a folder under C:\, which every local account can write into)
|
|
120
|
+
cd $HOME\.hostinger\<domain>\src
|
|
121
|
+
$DeployDir = Join-Path $HOME "hostinger-deploy\<domain>"; New-Item -ItemType Directory -Force $DeployDir | Out-Null
|
|
122
|
+
tar -a -cf "$DeployDir\app.zip" --exclude=node_modules --exclude=.next --exclude=dist --exclude=out --exclude=.git --exclude=.htaccess .
|
|
123
|
+
"$DeployDir\app.zip" # the absolute path to pass as `path` in Step 3
|
|
103
124
|
```
|
|
104
125
|
|
|
126
|
+
Delete the temp directory once the build in Step 4 is `completed`.
|
|
127
|
+
|
|
105
128
|
## Step 3 — Deploy (one shot: settings + upload + build)
|
|
106
129
|
|
|
107
130
|
Pass the framework's build settings **inline** on the deploy call — there is no separate settings step.
|
|
108
|
-
`path` is the archive from Step 2
|
|
109
|
-
|
|
110
|
-
build output must already be absent).
|
|
131
|
+
`path` is the absolute path of the archive from Step 2, in its temp directory. Never pass a path under
|
|
132
|
+
`~/.hostinger/`, the `src/` directory included: the deploy refuses it (see Step 2).
|
|
111
133
|
|
|
112
134
|
```json
|
|
113
135
|
{ "operation": "hosting_deploy",
|
|
114
136
|
"params": {
|
|
115
137
|
"domain": "<domain>",
|
|
116
|
-
"path": "
|
|
138
|
+
"path": "<absolute path printed in Step 2, e.g. /var/folders/…/tmp.XXXX/app.zip>",
|
|
117
139
|
"type": "nodejs",
|
|
118
140
|
"appType": "<framework appType, e.g. next>",
|
|
119
141
|
"outputDirectory": "<framework output dir, e.g. .next>",
|
|
@@ -224,6 +246,6 @@ still deploys as `type: "nodejs"` with its `appType` — the framework's static
|
|
|
224
246
|
that way, and `/cms` is preserved. If a flow ever tells you to deploy a headless site as `type:
|
|
225
247
|
"static"`, you are on a stale/legacy skill copy — stop and re-pull the latest skills.
|
|
226
248
|
|
|
227
|
-
`hosting_deploy` on the local server is the only path: give its `path`
|
|
228
|
-
|
|
229
|
-
step to fall back to.
|
|
249
|
+
`hosting_deploy` on the local server is the only path: give its `path` a local **archive** (`zip`, `tar`,
|
|
250
|
+
`tar.gz`, `tgz`, `7z`) written outside `~/.hostinger/` as in Step 2. There is no separate upload or
|
|
251
|
+
build step to fall back to.
|