cloakbrowser-mcp 1.2.7 → 1.3.0
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 +8 -1
- package/dist/cli/doctor.d.ts +31 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +157 -0
- package/dist/cli/doctor.js.map +1 -0
- package/dist/cli/options.d.ts +7 -1
- package/dist/cli/options.d.ts.map +1 -1
- package/dist/cli/options.js +27 -3
- package/dist/cli/options.js.map +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/http/options.d.ts +1 -0
- package/dist/http/options.d.ts.map +1 -1
- package/dist/http/options.js +1 -0
- package/dist/http/options.js.map +1 -1
- package/dist/http/server.d.ts +1 -1
- package/dist/http/server.d.ts.map +1 -1
- package/dist/http/server.js +67 -0
- package/dist/http/server.js.map +1 -1
- package/package.json +14 -13
- package/server.json +5 -5
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ The server is intentionally thin:
|
|
|
36
36
|
|
|
37
37
|
| cloakbrowser-mcp | @playwright/mcp | Playwright MCP Docker base | CloakBrowser | Node.js | Transport | Platform | Parity |
|
|
38
38
|
| --- | --- | --- | --- | --- | --- | --- | --- |
|
|
39
|
+
| `1.3.0` | `^0.0.75` | `mcr.microsoft.com/playwright/mcp:v0.0.75` | `^0.3.31` | `>=20` | stdio, Streamable HTTP | `linux/amd64` Docker, Node.js local | Upstream default tools compared in CI. |
|
|
39
40
|
| `1.2.7` | `^0.0.75` | `mcr.microsoft.com/playwright/mcp:v0.0.75` | `^0.3.30` | `>=20` | stdio, Streamable HTTP | `linux/amd64` Docker, Node.js local | Upstream default tools compared in CI. |
|
|
40
41
|
| `1.2.6` | `^0.0.75` | `mcr.microsoft.com/playwright/mcp:v0.0.75` | `^0.3.30` | `>=20` | stdio, Streamable HTTP | `linux/amd64` Docker, Node.js local | Upstream default tools compared in CI. |
|
|
41
42
|
| `1.2.5` | `^0.0.75` | `mcr.microsoft.com/playwright/mcp:v0.0.75` | `^0.3.30` | `>=20` | stdio, Streamable HTTP | `linux/amd64` Docker, Node.js local | Upstream default tools compared in CI. |
|
|
@@ -66,12 +67,15 @@ Use `npm run registry:check:strict` only when GitHub MCP listing visibility shou
|
|
|
66
67
|
|
|
67
68
|
```bash
|
|
68
69
|
npx -y cloakbrowser-mcp@latest --help
|
|
70
|
+
npx -y cloakbrowser-mcp@latest doctor
|
|
71
|
+
npx -y cloakbrowser-mcp@latest doctor --json
|
|
69
72
|
npx -y cloakbrowser-mcp@latest
|
|
70
73
|
npx -y cloakbrowser-mcp@latest --transport streamable-http --http-port 3000
|
|
71
74
|
```
|
|
72
75
|
|
|
73
76
|
Requires Node.js 20 or newer. The first real browser action may download the CloakBrowser binary unless it is already cached.
|
|
74
|
-
|
|
77
|
+
Use `doctor` for local diagnostics before connecting an MCP client. It checks the Node.js engine, project metadata, upstream Playwright MCP resolution, and CloakBrowser binary metadata without starting the bridge or downloading a browser.
|
|
78
|
+
The default transport is stdio. Streamable HTTP binds to `127.0.0.1` by default, serves MCP at `/mcp`, and exposes fixed `GET /healthz` and `GET /readyz` probes. If `--http-auth-token` is set, the probes require the same `Authorization: Bearer ...` header as MCP requests.
|
|
75
79
|
For the complete generated CLI flag reference, see the published [CLI Reference](https://swimmwatch.github.io/cloakbrowser-mcp/generated/cli/).
|
|
76
80
|
|
|
77
81
|
## Run from Docker
|
|
@@ -86,6 +90,9 @@ docker run --rm --init -p 127.0.0.1:3000:3000 \
|
|
|
86
90
|
-v "$PWD/artifacts:/data" \
|
|
87
91
|
swimmwatch/cloakbrowser-mcp:latest \
|
|
88
92
|
--transport streamable-http --http-host 0.0.0.0 --http-port 3000
|
|
93
|
+
|
|
94
|
+
curl http://127.0.0.1:3000/healthz
|
|
95
|
+
curl http://127.0.0.1:3000/readyz
|
|
89
96
|
```
|
|
90
97
|
|
|
91
98
|
The Docker image is based on the pinned official Playwright MCP image, installs the bridge under `/opt/cloakbrowser-mcp`, and writes artifacts to `/data` by default.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { getCurrentCloakBinaryInfo } from '../bridge/config.js';
|
|
2
|
+
export type DoctorStatus = 'ok' | 'warning' | 'error';
|
|
3
|
+
export interface DoctorCheck {
|
|
4
|
+
name: string;
|
|
5
|
+
status: DoctorStatus;
|
|
6
|
+
message: string;
|
|
7
|
+
details?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export interface DoctorReport {
|
|
10
|
+
status: DoctorStatus;
|
|
11
|
+
project: {
|
|
12
|
+
packageName: string;
|
|
13
|
+
mcpName: string;
|
|
14
|
+
version: string;
|
|
15
|
+
nodeEngine: string;
|
|
16
|
+
};
|
|
17
|
+
node: {
|
|
18
|
+
version: string;
|
|
19
|
+
supported: boolean;
|
|
20
|
+
};
|
|
21
|
+
upstream: {
|
|
22
|
+
package: string;
|
|
23
|
+
version: string;
|
|
24
|
+
cliPath: string | null;
|
|
25
|
+
};
|
|
26
|
+
cloakbrowser: ReturnType<typeof getCurrentCloakBinaryInfo> | null;
|
|
27
|
+
checks: DoctorCheck[];
|
|
28
|
+
}
|
|
29
|
+
export declare function createDoctorReport(): DoctorReport;
|
|
30
|
+
export declare function renderDoctorReport(report: DoctorReport): string;
|
|
31
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAIhE,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,YAAY,EAAE,UAAU,CAAC,OAAO,yBAAyB,CAAC,GAAG,IAAI,CAAC;IAClE,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AA6BD,wBAAgB,kBAAkB,IAAI,YAAY,CAoFjD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAU/D"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import process from 'node:process';
|
|
3
|
+
import { getCurrentCloakBinaryInfo } from '../bridge/config.js';
|
|
4
|
+
import { resolvePlaywrightMcpCliPath } from '../bridge/paths.js';
|
|
5
|
+
import { PLAYWRIGHT_MCP_PACKAGE, PLAYWRIGHT_MCP_VERSION, PROJECT_METADATA } from '../project/metadata.js';
|
|
6
|
+
const packageMetadata = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf8'));
|
|
7
|
+
const doctorReportTemplate = `CloakBrowser MCP doctor
|
|
8
|
+
Status: {{status}}
|
|
9
|
+
Project: {{project}}
|
|
10
|
+
Node.js: {{node}}
|
|
11
|
+
Upstream: {{upstream}}
|
|
12
|
+
Upstream CLI: {{upstreamCli}}
|
|
13
|
+
CloakBrowser: {{cloakbrowser}}
|
|
14
|
+
|
|
15
|
+
Checks:
|
|
16
|
+
{{checks}}
|
|
17
|
+
`;
|
|
18
|
+
export function createDoctorReport() {
|
|
19
|
+
const checks = [];
|
|
20
|
+
const nodeEngine = packageMetadata.engines?.node ?? 'unknown';
|
|
21
|
+
const nodeSupported = isNodeVersionSupported(process.versions.node, nodeEngine);
|
|
22
|
+
checks.push({
|
|
23
|
+
name: 'node',
|
|
24
|
+
status: nodeSupported ? 'ok' : 'error',
|
|
25
|
+
message: nodeSupported
|
|
26
|
+
? `Node.js ${process.version} satisfies ${nodeEngine}`
|
|
27
|
+
: `Node.js ${process.version} does not satisfy ${nodeEngine}`,
|
|
28
|
+
details: {
|
|
29
|
+
version: process.version,
|
|
30
|
+
required: nodeEngine,
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
let playwrightMcpCliPath = null;
|
|
34
|
+
try {
|
|
35
|
+
playwrightMcpCliPath = resolvePlaywrightMcpCliPath();
|
|
36
|
+
checks.push({
|
|
37
|
+
name: 'playwright-mcp-cli',
|
|
38
|
+
status: existsSync(playwrightMcpCliPath) ? 'ok' : 'error',
|
|
39
|
+
message: existsSync(playwrightMcpCliPath)
|
|
40
|
+
? `Resolved ${PLAYWRIGHT_MCP_PACKAGE} CLI`
|
|
41
|
+
: `Resolved ${PLAYWRIGHT_MCP_PACKAGE} CLI path does not exist`,
|
|
42
|
+
details: {
|
|
43
|
+
package: PLAYWRIGHT_MCP_PACKAGE,
|
|
44
|
+
version: PLAYWRIGHT_MCP_VERSION,
|
|
45
|
+
cliPath: playwrightMcpCliPath,
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
checks.push({
|
|
51
|
+
name: 'playwright-mcp-cli',
|
|
52
|
+
status: 'error',
|
|
53
|
+
message: error instanceof Error ? error.message : 'Failed to resolve Playwright MCP CLI',
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
let cloakbrowser = null;
|
|
57
|
+
try {
|
|
58
|
+
cloakbrowser = getCurrentCloakBinaryInfo();
|
|
59
|
+
checks.push({
|
|
60
|
+
name: 'cloakbrowser-binary',
|
|
61
|
+
status: cloakbrowser.installed ? 'ok' : 'warning',
|
|
62
|
+
message: cloakbrowser.installed
|
|
63
|
+
? 'CloakBrowser binary is installed'
|
|
64
|
+
: 'CloakBrowser binary is not installed; the first browser action may download it',
|
|
65
|
+
details: {
|
|
66
|
+
version: cloakbrowser.version,
|
|
67
|
+
platform: cloakbrowser.platform,
|
|
68
|
+
binaryPath: cloakbrowser.binaryPath,
|
|
69
|
+
cacheDir: cloakbrowser.cacheDir,
|
|
70
|
+
installed: cloakbrowser.installed,
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
checks.push({
|
|
76
|
+
name: 'cloakbrowser-binary',
|
|
77
|
+
status: 'error',
|
|
78
|
+
message: error instanceof Error ? error.message : 'Failed to read CloakBrowser binary metadata',
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
status: summarizeStatus(checks),
|
|
83
|
+
project: {
|
|
84
|
+
packageName: PROJECT_METADATA.packageName,
|
|
85
|
+
mcpName: PROJECT_METADATA.mcpName,
|
|
86
|
+
version: PROJECT_METADATA.version,
|
|
87
|
+
nodeEngine,
|
|
88
|
+
},
|
|
89
|
+
node: {
|
|
90
|
+
version: process.version,
|
|
91
|
+
supported: nodeSupported,
|
|
92
|
+
},
|
|
93
|
+
upstream: {
|
|
94
|
+
package: PLAYWRIGHT_MCP_PACKAGE,
|
|
95
|
+
version: PLAYWRIGHT_MCP_VERSION,
|
|
96
|
+
cliPath: playwrightMcpCliPath,
|
|
97
|
+
},
|
|
98
|
+
cloakbrowser,
|
|
99
|
+
checks,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export function renderDoctorReport(report) {
|
|
103
|
+
return formatDoctorReportTemplate({
|
|
104
|
+
status: report.status,
|
|
105
|
+
project: `${report.project.packageName} ${report.project.version} (${report.project.mcpName})`,
|
|
106
|
+
node: `${report.node.version} (requires ${report.project.nodeEngine})`,
|
|
107
|
+
upstream: `${report.upstream.package} ${report.upstream.version}`,
|
|
108
|
+
upstreamCli: report.upstream.cliPath ?? 'unresolved',
|
|
109
|
+
cloakbrowser: formatCloakbrowserSummary(report),
|
|
110
|
+
checks: report.checks.map((check) => `- [${check.status}] ${check.name}: ${check.message}`).join('\n'),
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function formatCloakbrowserSummary(report) {
|
|
114
|
+
if (!report.cloakbrowser)
|
|
115
|
+
return 'unavailable';
|
|
116
|
+
const installed = report.cloakbrowser.installed ? 'installed' : 'not installed';
|
|
117
|
+
return `${report.cloakbrowser.version} (${report.cloakbrowser.platform}, ${installed})`;
|
|
118
|
+
}
|
|
119
|
+
function formatDoctorReportTemplate(values) {
|
|
120
|
+
let output = doctorReportTemplate;
|
|
121
|
+
for (const [key, value] of Object.entries(values)) {
|
|
122
|
+
output = output.replaceAll(`{{${key}}}`, value);
|
|
123
|
+
}
|
|
124
|
+
return output;
|
|
125
|
+
}
|
|
126
|
+
function summarizeStatus(checks) {
|
|
127
|
+
if (checks.some((check) => check.status === 'error'))
|
|
128
|
+
return 'error';
|
|
129
|
+
if (checks.some((check) => check.status === 'warning'))
|
|
130
|
+
return 'warning';
|
|
131
|
+
return 'ok';
|
|
132
|
+
}
|
|
133
|
+
function isNodeVersionSupported(version, range) {
|
|
134
|
+
const minimum = parseMinimumNodeVersion(range);
|
|
135
|
+
if (!minimum)
|
|
136
|
+
return true;
|
|
137
|
+
return compareVersions(parseVersion(version), minimum) >= 0;
|
|
138
|
+
}
|
|
139
|
+
function parseMinimumNodeVersion(range) {
|
|
140
|
+
const match = /^>=\s*(\d+)(?:\.(\d+))?(?:\.(\d+))?$/.exec(range);
|
|
141
|
+
if (!match)
|
|
142
|
+
return undefined;
|
|
143
|
+
return [Number(match[1]), Number(match[2] ?? 0), Number(match[3] ?? 0)];
|
|
144
|
+
}
|
|
145
|
+
function parseVersion(version) {
|
|
146
|
+
const [major = '0', minor = '0', patch = '0'] = version.replace(/^v/, '').split('.');
|
|
147
|
+
return [Number(major), Number(minor), Number(patch)];
|
|
148
|
+
}
|
|
149
|
+
function compareVersions(actual, expected) {
|
|
150
|
+
for (const index of [0, 1, 2]) {
|
|
151
|
+
const difference = actual[index] - expected[index];
|
|
152
|
+
if (difference !== 0)
|
|
153
|
+
return difference;
|
|
154
|
+
}
|
|
155
|
+
return 0;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/options.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ interface CommanderCliOptions {
|
|
|
11
11
|
httpSessionIdleTtlMs: number;
|
|
12
12
|
httpSessionMax: number;
|
|
13
13
|
}
|
|
14
|
+
interface DoctorCliOptions {
|
|
15
|
+
json?: boolean;
|
|
16
|
+
}
|
|
17
|
+
interface CreateCliCommandOptions {
|
|
18
|
+
doctorAction?: (options: DoctorCliOptions) => Promise<void> | void;
|
|
19
|
+
}
|
|
14
20
|
type CliOptionValue = string | number;
|
|
15
21
|
interface CliOptionDefinition {
|
|
16
22
|
name: keyof CommanderCliOptions;
|
|
@@ -23,7 +29,7 @@ interface CliOptionDefinition {
|
|
|
23
29
|
parser?: (value: string) => CliOptionValue;
|
|
24
30
|
}
|
|
25
31
|
export declare const cliOptionDefinitions: readonly CliOptionDefinition[];
|
|
26
|
-
export declare function createCliCommand(version: string): Command;
|
|
32
|
+
export declare function createCliCommand(version: string, options?: CreateCliCommandOptions): Command;
|
|
27
33
|
export declare function parseCliOptions(args: readonly string[]): CliOptions;
|
|
28
34
|
export declare function readCliOptions(command: Command): CliOptions;
|
|
29
35
|
export declare function renderCliReferenceMarkdown(version: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;AAClE,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,cAAc,kDAAkD,CAAC;AAE9E,UAAU,mBAAmB;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,mBAAmB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAwE9D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAgC,MAAM,WAAW,CAAC;AAClE,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAE5B,eAAO,MAAM,cAAc,kDAAkD,CAAC;AAE9E,UAAU,mBAAmB;IAC3B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,uBAAuB;IAC/B,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACpE;AAED,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,mBAAmB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,cAAc,CAAC;CAC5C;AAED,eAAO,MAAM,oBAAoB,EAAE,SAAS,mBAAmB,EAwE9D,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAiBhG;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CASnE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,CAE3D;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAwBlE"}
|
package/dist/cli/options.js
CHANGED
|
@@ -32,7 +32,7 @@ export const cliOptionDefinitions = [
|
|
|
32
32
|
{
|
|
33
33
|
name: 'httpEndpoint',
|
|
34
34
|
flags: '--http-endpoint <path>',
|
|
35
|
-
description: 'Streamable HTTP endpoint path.',
|
|
35
|
+
description: 'Streamable HTTP endpoint path. Reserved probe paths: /healthz, /readyz.',
|
|
36
36
|
env: 'CLOAK_PLAYWRIGHT_MCP_HTTP_ENDPOINT',
|
|
37
37
|
group: 'Streamable HTTP',
|
|
38
38
|
defaultValue: defaultStreamableHttpOptions.endpoint,
|
|
@@ -74,17 +74,19 @@ export const cliOptionDefinitions = [
|
|
|
74
74
|
parser: parsePositiveInteger('HTTP session max'),
|
|
75
75
|
},
|
|
76
76
|
];
|
|
77
|
-
export function createCliCommand(version) {
|
|
77
|
+
export function createCliCommand(version, options = {}) {
|
|
78
78
|
const command = new Command()
|
|
79
79
|
.name('cloakbrowser-mcp')
|
|
80
80
|
.description(cliDescription)
|
|
81
81
|
.version(version)
|
|
82
82
|
.showHelpAfterError()
|
|
83
83
|
.showSuggestionAfterError()
|
|
84
|
-
.allowExcessArguments(false)
|
|
84
|
+
.allowExcessArguments(false)
|
|
85
|
+
.action(() => undefined);
|
|
85
86
|
for (const definition of cliOptionDefinitions) {
|
|
86
87
|
command.addOption(createCommanderOption(definition));
|
|
87
88
|
}
|
|
89
|
+
command.addCommand(createDoctorCommand(options.doctorAction));
|
|
88
90
|
return command;
|
|
89
91
|
}
|
|
90
92
|
export function parseCliOptions(args) {
|
|
@@ -112,11 +114,30 @@ This page is generated from the Commander.js CLI definition during MkDocs builds
|
|
|
112
114
|
${command.helpInformation().trimEnd()}
|
|
113
115
|
\`\`\`
|
|
114
116
|
|
|
117
|
+
## Commands
|
|
118
|
+
|
|
119
|
+
### \`doctor\`
|
|
120
|
+
|
|
121
|
+
\`\`\`text
|
|
122
|
+
${createDoctorCommand().helpInformation().trimEnd()}
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
115
125
|
## Options
|
|
116
126
|
|
|
117
127
|
${renderOptionsTable()}
|
|
118
128
|
`;
|
|
119
129
|
}
|
|
130
|
+
function createDoctorCommand(action) {
|
|
131
|
+
const command = new Command('doctor')
|
|
132
|
+
.description('Run local diagnostics without starting the MCP bridge.')
|
|
133
|
+
.option('--json', 'Output diagnostics as JSON.');
|
|
134
|
+
if (action) {
|
|
135
|
+
command.action(async (options) => {
|
|
136
|
+
await action(options);
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
return command;
|
|
140
|
+
}
|
|
120
141
|
function createCommanderOption(definition) {
|
|
121
142
|
const option = new Option(definition.flags, definition.description)
|
|
122
143
|
.env(definition.env)
|
|
@@ -207,6 +228,9 @@ function parseHttpEndpoint(value) {
|
|
|
207
228
|
if (!value.startsWith('/') || value.includes('?') || value.includes('#')) {
|
|
208
229
|
throw new InvalidArgumentError('HTTP endpoint must be an absolute path such as "/mcp"');
|
|
209
230
|
}
|
|
231
|
+
if (value === '/healthz' || value === '/readyz') {
|
|
232
|
+
throw new InvalidArgumentError('HTTP endpoint must not use reserved probe paths "/healthz" or "/readyz"');
|
|
233
|
+
}
|
|
210
234
|
if (value.length > 1 && value.endsWith('/')) {
|
|
211
235
|
throw new InvalidArgumentError('HTTP endpoint must not end with "/"');
|
|
212
236
|
}
|
package/dist/cli/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,mBAAmB,GAIpB,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,cAAc,GAAG,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/cli/options.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { readFileSync } from 'node:fs';
|
|
3
3
|
import process from 'node:process';
|
|
4
|
+
import { createDoctorReport, renderDoctorReport } from './cli/doctor.js';
|
|
4
5
|
import { createCliCommand, readCliOptions } from './cli/options.js';
|
|
5
6
|
import { startStreamableHttpBridge } from './http/server.js';
|
|
6
7
|
import { PROJECT_METADATA } from './project/metadata.js';
|
|
7
8
|
import { startBridge } from './server.js';
|
|
8
9
|
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
9
10
|
async function main() {
|
|
10
|
-
const command = createCliCommand(pkg.version
|
|
11
|
+
const command = createCliCommand(pkg.version, {
|
|
12
|
+
doctorAction: (options) => {
|
|
13
|
+
const report = createDoctorReport();
|
|
14
|
+
process.stdout.write(options.json ? `${JSON.stringify(report, null, 2)}\n` : renderDoctorReport(report));
|
|
15
|
+
if (report.status === 'error')
|
|
16
|
+
process.exitCode = 1;
|
|
17
|
+
},
|
|
18
|
+
});
|
|
11
19
|
command.action(async () => {
|
|
12
20
|
const options = readCliOptions(command);
|
|
13
21
|
const serverInfo = {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAEvF,CAAC;AAEF,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/http/options.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export type BridgeTransportMode = 'stdio' | 'streamable-http';
|
|
|
2
2
|
export type HttpSessionBackend = 'memory';
|
|
3
3
|
export declare const bridgeTransportModes: readonly ["stdio", "streamable-http"];
|
|
4
4
|
export declare const httpSessionBackends: readonly ["memory"];
|
|
5
|
+
export declare const streamableHttpProbePaths: readonly ["/healthz", "/readyz"];
|
|
5
6
|
export interface StreamableHttpOptions {
|
|
6
7
|
host: string;
|
|
7
8
|
port: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/http/options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE1C,eAAO,MAAM,oBAAoB,uCAGkB,CAAC;AACpD,eAAO,MAAM,mBAAmB,qBAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/http/options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,iBAAiB,CAAC;AAC9D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE1C,eAAO,MAAM,oBAAoB,uCAGkB,CAAC;AACpD,eAAO,MAAM,mBAAmB,qBAA8D,CAAC;AAC/F,eAAO,MAAM,wBAAwB,kCAAmC,CAAC;AAEzE,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,kBAAkB,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAED,eAAO,MAAM,4BAA4B,EAAE,qBAQ1C,CAAC"}
|
package/dist/http/options.js
CHANGED
package/dist/http/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/http/options.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO;IACP,iBAAiB;CACgC,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/http/options.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,OAAO;IACP,iBAAiB;CACgC,CAAC;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,CAAkD,CAAC;AAC/F,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU,CAAC;AAkBzE,MAAM,CAAC,MAAM,4BAA4B,GAA0B;IACjE,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,MAAM;IAChB,cAAc,EAAE,QAAQ;IACxB,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,EAAE;IACd,cAAc,EAAE,SAAS;CAC1B,CAAC"}
|
package/dist/http/server.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type IncomingMessage } from 'node:http';
|
|
|
2
2
|
import type { AddressInfo } from 'node:net';
|
|
3
3
|
import { type Implementation } from '@modelcontextprotocol/sdk/types.js';
|
|
4
4
|
import { type SessionStore } from './sessionStore.js';
|
|
5
|
-
import type
|
|
5
|
+
import { type HttpSessionBackend, type StreamableHttpOptions } from './options.js';
|
|
6
6
|
export interface StartStreamableHttpBridgeOptions extends StreamableHttpOptions {
|
|
7
7
|
serverInfo?: Partial<Implementation>;
|
|
8
8
|
sessionStore?: SessionStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,eAAe,EAAoC,MAAM,WAAW,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,eAAe,EAAoC,MAAM,WAAW,CAAC;AACjG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAE9F,OAAO,EAA8C,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAA4B,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAQ7G,MAAM,WAAW,gCAAiC,SAAQ,qBAAqB;IAC7E,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAQD,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,0BAA0B,CAAC,CAGrC;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAUhG;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAIvG;AAgcD,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/http/server.js
CHANGED
|
@@ -4,9 +4,11 @@ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/
|
|
|
4
4
|
import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { createBridgeServer } from '../server.js';
|
|
6
6
|
import { createSessionStore } from './sessionStore.js';
|
|
7
|
+
import { streamableHttpProbePaths } from './options.js';
|
|
7
8
|
import { HttpStatus, JsonRpcErrorCode } from './status.js';
|
|
8
9
|
const mcpSessionIdHeader = 'mcp-session-id';
|
|
9
10
|
const jsonRpcContentType = 'application/json';
|
|
11
|
+
const [healthzPath, readyzPath] = streamableHttpProbePaths;
|
|
10
12
|
const allowedMethods = 'GET, POST, DELETE';
|
|
11
13
|
export async function startStreamableHttpBridge(options) {
|
|
12
14
|
const controller = new StreamableHttpBridgeController(options);
|
|
@@ -36,6 +38,7 @@ class StreamableHttpBridgeController {
|
|
|
36
38
|
#closing = new Map();
|
|
37
39
|
#httpServer;
|
|
38
40
|
#cleanupTimer;
|
|
41
|
+
#startedAt = Date.now();
|
|
39
42
|
#pendingSessionInitializations = 0;
|
|
40
43
|
constructor(options) {
|
|
41
44
|
this.#options = options;
|
|
@@ -67,6 +70,14 @@ class StreamableHttpBridgeController {
|
|
|
67
70
|
}
|
|
68
71
|
async #handleRequest(req, res) {
|
|
69
72
|
try {
|
|
73
|
+
if (isEndpointRequest(req, healthzPath, this.#options.host)) {
|
|
74
|
+
this.#handleHealthProbe(req, res);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (isEndpointRequest(req, readyzPath, this.#options.host)) {
|
|
78
|
+
await this.#handleReadinessProbe(req, res);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
70
81
|
if (!isEndpointRequest(req, this.#options.endpoint, this.#options.host)) {
|
|
71
82
|
writeJsonRpcError(res, HttpStatus.NotFound, JsonRpcErrorCode.ServerError, 'Not found');
|
|
72
83
|
return;
|
|
@@ -224,6 +235,55 @@ class StreamableHttpBridgeController {
|
|
|
224
235
|
return;
|
|
225
236
|
await session.bridge.dispose();
|
|
226
237
|
}
|
|
238
|
+
#handleHealthProbe(req, res) {
|
|
239
|
+
if (!this.#authorizeProbeRequest(req, res))
|
|
240
|
+
return;
|
|
241
|
+
if (req.method !== 'GET') {
|
|
242
|
+
writeJsonResponse(res, HttpStatus.MethodNotAllowed, { status: 'method_not_allowed' }, { Allow: 'GET' });
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
writeJsonResponse(res, HttpStatus.Ok, {
|
|
246
|
+
status: 'ok',
|
|
247
|
+
version: this.#options.serverInfo?.version ?? 'unknown',
|
|
248
|
+
transport: 'streamable-http',
|
|
249
|
+
uptimeMs: this.#uptimeMs(),
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
async #handleReadinessProbe(req, res) {
|
|
253
|
+
if (!this.#authorizeProbeRequest(req, res))
|
|
254
|
+
return;
|
|
255
|
+
if (req.method !== 'GET') {
|
|
256
|
+
writeJsonResponse(res, HttpStatus.MethodNotAllowed, { status: 'method_not_allowed' }, { Allow: 'GET' });
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
await this.#closeExpiredSessions();
|
|
260
|
+
const active = this.#sessions.size;
|
|
261
|
+
const pending = this.#pendingSessionInitializations;
|
|
262
|
+
const max = this.#options.sessionMax;
|
|
263
|
+
const available = Math.max(max - active - pending, 0);
|
|
264
|
+
const ready = available > 0;
|
|
265
|
+
writeJsonResponse(res, ready ? HttpStatus.Ok : HttpStatus.ServiceUnavailable, {
|
|
266
|
+
status: ready ? 'ready' : 'not_ready',
|
|
267
|
+
version: this.#options.serverInfo?.version ?? 'unknown',
|
|
268
|
+
transport: 'streamable-http',
|
|
269
|
+
uptimeMs: this.#uptimeMs(),
|
|
270
|
+
sessions: {
|
|
271
|
+
active,
|
|
272
|
+
pending,
|
|
273
|
+
max,
|
|
274
|
+
available,
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
#authorizeProbeRequest(req, res) {
|
|
279
|
+
if (isAuthorizedRequest(req, this.#options.authToken))
|
|
280
|
+
return true;
|
|
281
|
+
writeJsonResponse(res, HttpStatus.Unauthorized, { status: 'unauthorized' }, { 'WWW-Authenticate': 'Bearer' });
|
|
282
|
+
return false;
|
|
283
|
+
}
|
|
284
|
+
#uptimeMs() {
|
|
285
|
+
return Math.max(Date.now() - this.#startedAt, 0);
|
|
286
|
+
}
|
|
227
287
|
}
|
|
228
288
|
function hasJsonContentType(req) {
|
|
229
289
|
const contentType = getSingleHeader(req, 'content-type');
|
|
@@ -269,6 +329,13 @@ function writeJsonRpcError(res, status, code, message, headers = {}, data) {
|
|
|
269
329
|
id: null,
|
|
270
330
|
}));
|
|
271
331
|
}
|
|
332
|
+
function writeJsonResponse(res, status, body, headers = {}) {
|
|
333
|
+
res.writeHead(status, {
|
|
334
|
+
'Content-Type': jsonRpcContentType,
|
|
335
|
+
...headers,
|
|
336
|
+
});
|
|
337
|
+
res.end(JSON.stringify(body));
|
|
338
|
+
}
|
|
272
339
|
function formatHost(host) {
|
|
273
340
|
if (host.startsWith('[') && host.endsWith(']'))
|
|
274
341
|
return host;
|
package/dist/http/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/http/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloakbrowser-mcp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Playwright MCP-compatible browser automation bridge for CloakBrowser Chromium.",
|
|
5
5
|
"mcpName": "io.github.swimmwatch/cloakbrowser-mcp",
|
|
6
6
|
"type": "module",
|
|
@@ -64,22 +64,23 @@
|
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@modelcontextprotocol/sdk": "^1.18.0",
|
|
66
66
|
"@playwright/mcp": "^0.0.75",
|
|
67
|
-
"cloakbrowser": "^0.3.
|
|
67
|
+
"cloakbrowser": "^0.3.31",
|
|
68
68
|
"commander": "^14.0.3"
|
|
69
69
|
},
|
|
70
70
|
"devDependencies": {
|
|
71
|
-
"@eslint/js": "^
|
|
72
|
-
"@types/node": "^
|
|
73
|
-
"@vitest/coverage-v8": "^
|
|
74
|
-
"ajv": "^8.
|
|
71
|
+
"@eslint/js": "^10.0.1",
|
|
72
|
+
"@types/node": "^25.9.2",
|
|
73
|
+
"@vitest/coverage-v8": "^4.1.8",
|
|
74
|
+
"ajv": "^8.20.0",
|
|
75
75
|
"ajv-formats": "^3.0.1",
|
|
76
|
-
"eslint": "^
|
|
77
|
-
"eslint-config-prettier": "^
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"typescript
|
|
82
|
-
"
|
|
76
|
+
"eslint": "^10.4.1",
|
|
77
|
+
"eslint-config-prettier": "^10.1.8",
|
|
78
|
+
"fast-check": "^4.8.0",
|
|
79
|
+
"prettier": "^3.8.3",
|
|
80
|
+
"tsx": "^4.22.4",
|
|
81
|
+
"typescript": "^6.0.3",
|
|
82
|
+
"typescript-eslint": "^8.60.1",
|
|
83
|
+
"vitest": "^4.1.8"
|
|
83
84
|
},
|
|
84
85
|
"overrides": {
|
|
85
86
|
"vite": "6.4.2"
|
package/server.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "io.github.swimmwatch/cloakbrowser-mcp",
|
|
4
4
|
"title": "CloakBrowser MCP",
|
|
5
5
|
"description": "Playwright MCP-compatible browser automation bridge for CloakBrowser Chromium.",
|
|
6
|
-
"version": "1.
|
|
6
|
+
"version": "1.3.0",
|
|
7
7
|
"websiteUrl": "https://swimmwatch.github.io/cloakbrowser-mcp/",
|
|
8
8
|
"repository": {
|
|
9
9
|
"url": "https://github.com/swimmwatch/cloakbrowser-mcp",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"registryType": "npm",
|
|
22
22
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
23
23
|
"identifier": "cloakbrowser-mcp",
|
|
24
|
-
"version": "1.
|
|
24
|
+
"version": "1.3.0",
|
|
25
25
|
"transport": {
|
|
26
26
|
"type": "stdio"
|
|
27
27
|
},
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"registryType": "npm",
|
|
68
68
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
69
69
|
"identifier": "cloakbrowser-mcp",
|
|
70
|
-
"version": "1.
|
|
70
|
+
"version": "1.3.0",
|
|
71
71
|
"packageArguments": [
|
|
72
72
|
{
|
|
73
73
|
"type": "named",
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
"registryType": "oci",
|
|
164
|
-
"identifier": "ghcr.io/swimmwatch/cloakbrowser-mcp:1.
|
|
164
|
+
"identifier": "ghcr.io/swimmwatch/cloakbrowser-mcp:1.3.0",
|
|
165
165
|
"transport": {
|
|
166
166
|
"type": "stdio"
|
|
167
167
|
},
|
|
@@ -205,7 +205,7 @@
|
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"registryType": "oci",
|
|
208
|
-
"identifier": "docker.io/swimmwatch/cloakbrowser-mcp:1.
|
|
208
|
+
"identifier": "docker.io/swimmwatch/cloakbrowser-mcp:1.3.0",
|
|
209
209
|
"transport": {
|
|
210
210
|
"type": "stdio"
|
|
211
211
|
},
|