hostinger-api-mcp 3.20.3 → 3.20.4
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 +6 -0
- package/gemini-extension.json +1 -1
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/core/oauth.js +15 -7
- package/src/core/oauth.ts +15 -6
- 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/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,12 @@ 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.20.4 — 2026-10-28
|
|
8
|
+
|
|
9
|
+
### Also in this release
|
|
10
|
+
|
|
11
|
+
- OAuth sign-in flow: `src/core/oauth.js`, `src/core/oauth.ts`
|
|
12
|
+
|
|
7
13
|
## v3.20.3 — 2026-10-28
|
|
8
14
|
|
|
9
15
|
### Operations
|
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.20.
|
|
9
|
+
"version": "3.20.4",
|
|
10
10
|
"packages": [
|
|
11
11
|
{
|
|
12
12
|
"registryType": "npm",
|
|
13
13
|
"identifier": "@hostinger/mcp",
|
|
14
|
-
"version": "3.20.
|
|
14
|
+
"version": "3.20.4",
|
|
15
15
|
"transport": {
|
|
16
16
|
"type": "stdio"
|
|
17
17
|
},
|
package/src/core/oauth.js
CHANGED
|
@@ -85,6 +85,20 @@ function parseIssuer(raw) {
|
|
|
85
85
|
return u.origin;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
+
// No shell: the URL is a single argv entry, never parsed by sh or cmd.
|
|
89
|
+
// Windows resolves a bare program name from the working directory before PATH,
|
|
90
|
+
// so rundll32 is launched by absolute path to never pick up a planted copy.
|
|
91
|
+
export function browserCommand(platform, url, systemRoot = process.env.SystemRoot) {
|
|
92
|
+
if (platform === "darwin") return ["open", [url]];
|
|
93
|
+
if (platform === "win32") {
|
|
94
|
+
return [
|
|
95
|
+
path.win32.join(systemRoot || "C:\\Windows", "System32", "rundll32.exe"),
|
|
96
|
+
["url.dll,FileProtocolHandler", url],
|
|
97
|
+
];
|
|
98
|
+
}
|
|
99
|
+
return ["xdg-open", [url]];
|
|
100
|
+
}
|
|
101
|
+
|
|
88
102
|
export class OAuthProvider {
|
|
89
103
|
constructor(issuerBaseUrl) {
|
|
90
104
|
this.issuer = parseIssuer(
|
|
@@ -415,13 +429,7 @@ export class OAuthProvider {
|
|
|
415
429
|
process.stderr.write(
|
|
416
430
|
"[OAuth] If the browser does not open, copy the URL above into one manually.\n\n",
|
|
417
431
|
);
|
|
418
|
-
|
|
419
|
-
const [cmd, args] =
|
|
420
|
-
process.platform === "darwin"
|
|
421
|
-
? ["open", [url]]
|
|
422
|
-
: process.platform === "win32"
|
|
423
|
-
? ["rundll32", ["url.dll,FileProtocolHandler", url]]
|
|
424
|
-
: ["xdg-open", [url]];
|
|
432
|
+
const [cmd, args] = browserCommand(process.platform, url);
|
|
425
433
|
execFile(cmd, args, (err) => {
|
|
426
434
|
if (err) {
|
|
427
435
|
process.stderr.write(
|
package/src/core/oauth.ts
CHANGED
|
@@ -88,6 +88,20 @@ function parseIssuer(raw: string): string {
|
|
|
88
88
|
return u.origin;
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
+
// No shell: the URL is a single argv entry, never parsed by sh or cmd.
|
|
92
|
+
// Windows resolves a bare program name from the working directory before PATH,
|
|
93
|
+
// so rundll32 is launched by absolute path to never pick up a planted copy.
|
|
94
|
+
export function browserCommand(platform: string, url: string, systemRoot = process.env.SystemRoot): [string, string[]] {
|
|
95
|
+
if (platform === 'darwin') return ['open', [url]];
|
|
96
|
+
if (platform === 'win32') {
|
|
97
|
+
return [
|
|
98
|
+
path.win32.join(systemRoot || 'C:\\Windows', 'System32', 'rundll32.exe'),
|
|
99
|
+
['url.dll,FileProtocolHandler', url],
|
|
100
|
+
];
|
|
101
|
+
}
|
|
102
|
+
return ['xdg-open', [url]];
|
|
103
|
+
}
|
|
104
|
+
|
|
91
105
|
export class OAuthProvider {
|
|
92
106
|
private readonly issuer: string;
|
|
93
107
|
private _loginInProgress: Promise<string> | null = null;
|
|
@@ -377,12 +391,7 @@ export class OAuthProvider {
|
|
|
377
391
|
private _openBrowser(url: string): void {
|
|
378
392
|
process.stderr.write(`\n[OAuth] Opening browser for sign-in:\n ${url}\n`);
|
|
379
393
|
process.stderr.write('[OAuth] If the browser does not open, copy the URL above into one manually.\n\n');
|
|
380
|
-
|
|
381
|
-
const [cmd, args]: [string, string[]] = process.platform === 'darwin'
|
|
382
|
-
? ['open', [url]]
|
|
383
|
-
: process.platform === 'win32'
|
|
384
|
-
? ['rundll32', ['url.dll,FileProtocolHandler', url]]
|
|
385
|
-
: ['xdg-open', [url]];
|
|
394
|
+
const [cmd, args] = browserCommand(process.platform, url);
|
|
386
395
|
execFile(cmd, args, (err) => {
|
|
387
396
|
if (err) {
|
|
388
397
|
process.stderr.write(`[OAuth] Could not auto-launch browser: ${err.message}\n`);
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.20.
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.20.4', tools, instructions });
|
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/agency-hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.agency-hosting.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.20.
|
|
7
|
+
startServer({ name: 'hostinger-agency-hosting-mcp', version: '3.20.4', tools, instructions });
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agent-readiness.js';
|
|
5
5
|
|
|
6
|
-
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.20.
|
|
6
|
+
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.20.4', tools });
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
import { startServer } from '../core/runtime.js';
|
|
4
4
|
import tools from '../core/tools/agent-readiness.js';
|
|
5
5
|
|
|
6
|
-
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.20.
|
|
6
|
+
startServer({ name: 'hostinger-agent-readiness-mcp', version: '3.20.4', tools });
|
package/src/servers/all.js
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '3.20.
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '3.20.4', tools, instructions, skills });
|
package/src/servers/all.ts
CHANGED
|
@@ -5,4 +5,4 @@ import tools from '../core/tools/all.js';
|
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
import skills from '../core/skills.js';
|
|
7
7
|
|
|
8
|
-
startServer({ name: 'hostinger-api-mcp', version: '3.20.
|
|
8
|
+
startServer({ name: 'hostinger-api-mcp', version: '3.20.4', tools, instructions, skills });
|
package/src/servers/billing.js
CHANGED
package/src/servers/billing.ts
CHANGED
package/src/servers/dns.js
CHANGED
package/src/servers/dns.ts
CHANGED
package/src/servers/domains.js
CHANGED
package/src/servers/domains.ts
CHANGED
package/src/servers/ecommerce.js
CHANGED
package/src/servers/ecommerce.ts
CHANGED
package/src/servers/horizons.js
CHANGED
package/src/servers/horizons.ts
CHANGED
package/src/servers/hosting.js
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '3.20.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '3.20.4', tools, instructions });
|
package/src/servers/hosting.ts
CHANGED
|
@@ -4,4 +4,4 @@ import { startServer } from '../core/runtime.js';
|
|
|
4
4
|
import tools from '../core/tools/hosting.js';
|
|
5
5
|
import instructions from '../core/instructions.js';
|
|
6
6
|
|
|
7
|
-
startServer({ name: 'hostinger-hosting-mcp', version: '3.20.
|
|
7
|
+
startServer({ name: 'hostinger-hosting-mcp', version: '3.20.4', tools, instructions });
|
package/src/servers/mail.js
CHANGED
package/src/servers/mail.ts
CHANGED
package/src/servers/reach.js
CHANGED
package/src/servers/reach.ts
CHANGED
package/src/servers/vps.js
CHANGED
package/src/servers/vps.ts
CHANGED
package/src/servers/wordpress.js
CHANGED
package/src/servers/wordpress.ts
CHANGED