@webmcp-bridge/local-mcp 0.4.2 → 0.4.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMtD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAmGF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAsD5G"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMtD,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,KAAK,WAAW,EAEjB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAmGF,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA0E5G"}
package/dist/bridge.js CHANGED
@@ -83,6 +83,18 @@ async function resolveRuntime(options) {
83
83
  export async function startLocalMcpBridge(options) {
84
84
  const runtime = await resolveRuntime(options);
85
85
  let server;
86
+ let closed = false;
87
+ const closeResources = async () => {
88
+ if (closed) {
89
+ return;
90
+ }
91
+ closed = true;
92
+ const results = await Promise.allSettled([server?.close(), runtime.close()]);
93
+ const firstFailure = results.find((result) => result.status === "rejected");
94
+ if (firstFailure) {
95
+ throw firstFailure.reason;
96
+ }
97
+ };
86
98
  try {
87
99
  const serverOptions = {
88
100
  gateway: runtime.gateway,
@@ -95,8 +107,7 @@ export async function startLocalMcpBridge(options) {
95
107
  }),
96
108
  openWindow: runtime.openWindow,
97
109
  closeBridge: async () => {
98
- await server?.close();
99
- await runtime.close();
110
+ await closeResources();
100
111
  },
101
112
  },
102
113
  serviceVersion: options.serviceVersion,
@@ -117,19 +128,27 @@ export async function startLocalMcpBridge(options) {
117
128
  await runtime.close();
118
129
  throw error;
119
130
  }
120
- let closed = false;
131
+ const input = options.input ?? process.stdin;
132
+ const handleInputEnded = () => {
133
+ void closeResources().catch((error) => {
134
+ options.onError?.(error);
135
+ });
136
+ };
137
+ const handleOwnerSessionEnded = () => {
138
+ void closeResources().catch((error) => {
139
+ options.onError?.(error);
140
+ });
141
+ };
142
+ input.once("end", handleInputEnded);
143
+ void runtime.ownerSessionEnded.then(handleOwnerSessionEnded);
121
144
  return {
122
145
  site: runtime.site,
123
146
  targetUrl: runtime.targetUrl,
124
147
  mode: runtime.mode,
125
148
  headless: runtime.headless,
126
149
  close: async () => {
127
- if (closed) {
128
- return;
129
- }
130
- closed = true;
131
- await server?.close();
132
- await runtime.close();
150
+ input.removeListener("end", handleInputEnded);
151
+ await closeResources();
133
152
  },
134
153
  };
135
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/runtime.d.ts CHANGED
@@ -24,11 +24,15 @@ export type LocalMcpRuntime = {
24
24
  headless: boolean;
25
25
  page: Page;
26
26
  gateway: LocalMcpGateway;
27
+ ownerSessionEnded: Promise<void>;
27
28
  openWindow: () => Promise<"focused" | "opened">;
28
29
  close: () => Promise<void>;
29
30
  };
30
31
  export declare function isUrlAllowed(url: string, hostPatterns: string[]): boolean;
31
32
  export declare function resolveTargetUrl(urlOverride: string | undefined, defaultUrl: string | undefined): string;
33
+ export declare function resolveRecoveryNavigationUrl(currentUrl: string | undefined, targetUrl: string, hostPatterns: string[]): string | undefined;
34
+ export declare function shouldEndOwnerSessionAfterPageClose(headless: boolean, openPageCount: number): boolean;
35
+ export declare function isRecoverableGatewayError(error: unknown): boolean;
32
36
  export declare function mapNavigationError(error: unknown, targetUrl: string, phase: "goto" | "reload"): Error;
33
37
  export declare function startLocalMcpRuntime(options: LocalMcpRuntimeOptions): Promise<LocalMcpRuntime>;
34
38
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAML,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAIjD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAyBF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAczE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMxG;AAmBD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAgBrG;AAiBD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAkKpG"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAOL,KAAK,IAAI,EACV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUjD,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,cAAc,GACtB,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,eAAe,GACf,QAAQ,GACR,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IAChD,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAyBF,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAczE;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMxG;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EAAE,GACrB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAErG;AAmBD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAGjE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAgBrG;AAiBD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CA0QpG"}
package/dist/runtime.js CHANGED
@@ -8,6 +8,12 @@ import { join } from "node:path";
8
8
  import { createWebMcpPageGateway, } from "@webmcp-bridge/playwright";
9
9
  import { chromium, firefox, webkit, } from "playwright";
10
10
  const NAVIGATION_TIMEOUT_MS = 5_000;
11
+ const GATEWAY_RECOVERABLE_ERROR_SNIPPETS = [
12
+ "Execution context was destroyed",
13
+ "Cannot find context with specified id",
14
+ "Target page, context or browser has been closed",
15
+ "WebMCP bridge invoke handler missing",
16
+ ];
11
17
  function normalizeHost(value) {
12
18
  return value.trim().toLowerCase();
13
19
  }
@@ -52,6 +58,15 @@ export function resolveTargetUrl(urlOverride, defaultUrl) {
52
58
  }
53
59
  return targetUrl;
54
60
  }
61
+ export function resolveRecoveryNavigationUrl(currentUrl, targetUrl, hostPatterns) {
62
+ if (!currentUrl || !currentUrl.trim()) {
63
+ return targetUrl;
64
+ }
65
+ return isUrlAllowed(currentUrl, hostPatterns) ? undefined : targetUrl;
66
+ }
67
+ export function shouldEndOwnerSessionAfterPageClose(headless, openPageCount) {
68
+ return !headless && openPageCount === 0;
69
+ }
55
70
  function resolveBrowserType(browser) {
56
71
  if (browser === "firefox") {
57
72
  return firefox;
@@ -67,6 +82,10 @@ function extractErrorMessage(error) {
67
82
  }
68
83
  return String(error);
69
84
  }
85
+ export function isRecoverableGatewayError(error) {
86
+ const message = extractErrorMessage(error);
87
+ return GATEWAY_RECOVERABLE_ERROR_SNIPPETS.some((snippet) => message.includes(snippet));
88
+ }
70
89
  export function mapNavigationError(error, targetUrl, phase) {
71
90
  const message = extractErrorMessage(error);
72
91
  const normalizedPhase = phase === "goto" ? "open" : "reload";
@@ -114,10 +133,26 @@ export async function startLocalMcpRuntime(options) {
114
133
  let currentPage;
115
134
  let currentGatewaySession;
116
135
  let currentMode = "native";
136
+ let gatewayStale = false;
137
+ let runtimeClosing = false;
138
+ let pageLifecycleCleanup;
139
+ let ownerSessionEndedResolved = false;
140
+ let resolveOwnerSessionEnded;
141
+ const ownerSessionEnded = new Promise((resolve) => {
142
+ resolveOwnerSessionEnded = resolve;
143
+ });
144
+ const signalOwnerSessionEnded = () => {
145
+ if (ownerSessionEndedResolved) {
146
+ return;
147
+ }
148
+ ownerSessionEndedResolved = true;
149
+ resolveOwnerSessionEnded();
150
+ };
117
151
  const cleanup = async () => {
118
152
  await currentGatewaySession?.close().catch(() => {
119
153
  // Cleanup should be best-effort when process is terminating.
120
154
  });
155
+ pageLifecycleCleanup?.();
121
156
  await context?.close().catch(() => {
122
157
  // Cleanup should be best-effort when process is terminating.
123
158
  });
@@ -134,7 +169,7 @@ export async function startLocalMcpRuntime(options) {
134
169
  if (fallbackAdapterFactory) {
135
170
  gatewayOptions.fallbackAdapter = fallbackAdapterFactory();
136
171
  }
137
- const initializePageSession = async () => {
172
+ const initializePageSession = async (navigate = true) => {
138
173
  if (!context) {
139
174
  throw new Error("SESSION_NOT_AVAILABLE: browser context is unavailable");
140
175
  }
@@ -144,17 +179,48 @@ export async function startLocalMcpRuntime(options) {
144
179
  currentGatewaySession = undefined;
145
180
  const reusablePage = context.pages().find((entry) => !entry.isClosed());
146
181
  currentPage = reusablePage ?? (await context.newPage());
147
- try {
148
- await currentPage.goto(targetUrl, {
149
- waitUntil: "domcontentloaded",
150
- timeout: NAVIGATION_TIMEOUT_MS,
182
+ pageLifecycleCleanup?.();
183
+ const pageForEvents = currentPage;
184
+ const markGatewayStale = () => {
185
+ gatewayStale = true;
186
+ };
187
+ const handlePageClose = () => {
188
+ markGatewayStale();
189
+ queueMicrotask(() => {
190
+ if (runtimeClosing) {
191
+ return;
192
+ }
193
+ const openPageCount = context?.pages().filter((entry) => !entry.isClosed()).length ?? 0;
194
+ if (shouldEndOwnerSessionAfterPageClose(headless, openPageCount)) {
195
+ signalOwnerSessionEnded();
196
+ }
151
197
  });
152
- }
153
- catch (error) {
154
- throw mapNavigationError(error, targetUrl, "goto");
198
+ };
199
+ const handleFrameNavigation = (frame) => {
200
+ if (frame === pageForEvents.mainFrame()) {
201
+ markGatewayStale();
202
+ }
203
+ };
204
+ pageForEvents.on("framenavigated", handleFrameNavigation);
205
+ pageForEvents.on("close", handlePageClose);
206
+ pageLifecycleCleanup = () => {
207
+ const pageEvents = pageForEvents;
208
+ pageEvents.removeListener?.("framenavigated", handleFrameNavigation);
209
+ pageEvents.removeListener?.("close", handlePageClose);
210
+ };
211
+ if (navigate) {
212
+ try {
213
+ await currentPage.goto(targetUrl, {
214
+ waitUntil: "domcontentloaded",
215
+ timeout: NAVIGATION_TIMEOUT_MS,
216
+ });
217
+ }
218
+ catch (error) {
219
+ throw mapNavigationError(error, targetUrl, "goto");
220
+ }
155
221
  }
156
222
  currentGatewaySession = await createWebMcpPageGateway(currentPage, gatewayOptions);
157
- if (currentGatewaySession.mode === "polyfill") {
223
+ if (navigate && currentGatewaySession.mode === "polyfill") {
158
224
  try {
159
225
  await currentPage.reload({
160
226
  waitUntil: "domcontentloaded",
@@ -166,7 +232,47 @@ export async function startLocalMcpRuntime(options) {
166
232
  }
167
233
  await waitForPolyfillTools(currentGatewaySession);
168
234
  }
235
+ else if (currentGatewaySession.mode === "polyfill") {
236
+ await waitForPolyfillTools(currentGatewaySession).catch(() => {
237
+ // Recovery should still retry the original operation once even if tools are not visible yet.
238
+ });
239
+ }
169
240
  currentMode = currentGatewaySession.mode;
241
+ gatewayStale = false;
242
+ };
243
+ const rebuildGatewaySession = async () => {
244
+ if (!currentPage || currentPage.isClosed()) {
245
+ await initializePageSession(true);
246
+ return;
247
+ }
248
+ const recoveryNavigationUrl = resolveRecoveryNavigationUrl(currentPage.url(), targetUrl, site.manifest.hostPatterns);
249
+ if (recoveryNavigationUrl) {
250
+ try {
251
+ await currentPage.goto(recoveryNavigationUrl, {
252
+ waitUntil: "domcontentloaded",
253
+ timeout: NAVIGATION_TIMEOUT_MS,
254
+ });
255
+ }
256
+ catch (error) {
257
+ throw mapNavigationError(error, recoveryNavigationUrl, "goto");
258
+ }
259
+ }
260
+ await initializePageSession(false);
261
+ };
262
+ const withGatewayRecovery = async (operation) => {
263
+ if (gatewayStale || !currentGatewaySession) {
264
+ await rebuildGatewaySession();
265
+ }
266
+ try {
267
+ return await operation();
268
+ }
269
+ catch (error) {
270
+ if (!isRecoverableGatewayError(error)) {
271
+ throw error;
272
+ }
273
+ await rebuildGatewaySession();
274
+ return await operation();
275
+ }
170
276
  };
171
277
  try {
172
278
  const launchOptions = {
@@ -184,6 +290,7 @@ export async function startLocalMcpRuntime(options) {
184
290
  return;
185
291
  }
186
292
  closed = true;
293
+ runtimeClosing = true;
187
294
  await cleanup();
188
295
  };
189
296
  const openWindow = async () => {
@@ -191,13 +298,16 @@ export async function startLocalMcpRuntime(options) {
191
298
  throw new Error("UNSUPPORTED_IN_HEADLESS_SESSION: bridge.open requires a headed local-mcp session. Start the bridge with --no-headless.");
192
299
  }
193
300
  if (!currentPage || currentPage.isClosed()) {
194
- await initializePageSession();
301
+ await initializePageSession(true);
195
302
  if (!currentPage || currentPage.isClosed()) {
196
303
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
197
304
  }
198
305
  await currentPage.bringToFront();
199
306
  return "opened";
200
307
  }
308
+ if (gatewayStale || !currentGatewaySession) {
309
+ await rebuildGatewaySession();
310
+ }
201
311
  await currentPage.bringToFront();
202
312
  return "focused";
203
313
  };
@@ -206,13 +316,13 @@ export async function startLocalMcpRuntime(options) {
206
316
  if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
207
317
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
208
318
  }
209
- return await currentGatewaySession.listTools();
319
+ return await withGatewayRecovery(async () => await currentGatewaySession.listTools());
210
320
  },
211
321
  callTool: async (name, input) => {
212
322
  if (!currentGatewaySession || !currentPage || currentPage.isClosed()) {
213
323
  throw new Error("SESSION_NOT_AVAILABLE: current page is closed");
214
324
  }
215
- return await currentGatewaySession.callTool(name, input);
325
+ return await withGatewayRecovery(async () => await currentGatewaySession.callTool(name, input));
216
326
  },
217
327
  };
218
328
  return {
@@ -231,11 +341,13 @@ export async function startLocalMcpRuntime(options) {
231
341
  return currentPage;
232
342
  },
233
343
  gateway,
344
+ ownerSessionEnded,
234
345
  openWindow,
235
346
  close,
236
347
  };
237
348
  }
238
349
  catch (error) {
350
+ runtimeClosing = true;
239
351
  await cleanup();
240
352
  throw error;
241
353
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@webmcp-bridge/local-mcp",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "type": "module",
5
+ "description": "Local stdio MCP server that bridges local agents to browser WebMCP through Playwright.",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
7
8
  "exports": {
@@ -20,14 +21,32 @@
20
21
  "files": [
21
22
  "dist"
22
23
  ],
24
+ "homepage": "https://github.com/holon-run/webmcp-bridge/tree/main/packages/local-mcp",
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/holon-run/webmcp-bridge.git",
28
+ "directory": "packages/local-mcp"
29
+ },
30
+ "bugs": {
31
+ "url": "https://github.com/holon-run/webmcp-bridge/issues"
32
+ },
33
+ "keywords": [
34
+ "webmcp",
35
+ "mcp",
36
+ "model-context-protocol",
37
+ "playwright",
38
+ "stdio",
39
+ "browser",
40
+ "ai-agent"
41
+ ],
23
42
  "dependencies": {
24
43
  "@modelcontextprotocol/sdk": "^1.27.1",
25
44
  "playwright": "^1.58.2",
26
45
  "zod": "^4.3.6",
27
- "@webmcp-bridge/adapter-fixture": "0.4.2",
28
- "@webmcp-bridge/adapter-x": "0.4.2",
29
- "@webmcp-bridge/core": "0.4.2",
30
- "@webmcp-bridge/playwright": "0.4.2"
46
+ "@webmcp-bridge/adapter-fixture": "0.4.3",
47
+ "@webmcp-bridge/core": "0.4.3",
48
+ "@webmcp-bridge/adapter-x": "0.4.3",
49
+ "@webmcp-bridge/playwright": "0.4.3"
31
50
  },
32
51
  "license": "MIT",
33
52
  "scripts": {