mcp-accessibility-scanner 3.1.0 → 3.2.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 +40 -12
- package/index.d.ts +1 -1
- package/lib/browserContextFactory.js +548 -81
- package/lib/browserContextFactory.js.map +1 -1
- package/lib/browserServerBackend.js +192 -21
- package/lib/browserServerBackend.js.map +1 -1
- package/lib/browserSessions.js +172 -0
- package/lib/browserSessions.js.map +1 -0
- package/lib/config.js +48 -7
- package/lib/config.js.map +1 -1
- package/lib/context.js +143 -10
- package/lib/context.js.map +1 -1
- package/lib/extension/cdpRelay.js +5 -0
- package/lib/extension/cdpRelay.js.map +1 -1
- package/lib/extension/extensionContextFactory.js +9 -1
- package/lib/extension/extensionContextFactory.js.map +1 -1
- package/lib/index.js +5 -1
- package/lib/index.js.map +1 -1
- package/lib/mcp/http.js +194 -44
- package/lib/mcp/http.js.map +1 -1
- package/lib/mcp/inProcessTransport.js.map +1 -1
- package/lib/mcp/mdb.js +7 -9
- package/lib/mcp/mdb.js.map +1 -1
- package/lib/mcp/proxyBackend.js +75 -18
- package/lib/mcp/proxyBackend.js.map +1 -1
- package/lib/mcp/server.js +70 -41
- package/lib/mcp/server.js.map +1 -1
- package/lib/mcp/sharedClientSlot.js +134 -0
- package/lib/mcp/sharedClientSlot.js.map +1 -0
- package/lib/mcp/tool.js +3 -0
- package/lib/mcp/tool.js.map +1 -1
- package/lib/program.js +70 -9
- package/lib/program.js.map +1 -1
- package/lib/response.js +8 -0
- package/lib/response.js.map +1 -1
- package/lib/sessionLog.js +36 -6
- package/lib/sessionLog.js.map +1 -1
- package/lib/tab.js +32 -2
- package/lib/tab.js.map +1 -1
- package/lib/tools/auditKeyboard.js +1 -4
- package/lib/tools/auditKeyboard.js.map +1 -1
- package/lib/tools/auditScreenReader.js +1 -4
- package/lib/tools/auditScreenReader.js.map +1 -1
- package/lib/tools/auditSite.js +1 -4
- package/lib/tools/auditSite.js.map +1 -1
- package/lib/tools/network.js +13 -102
- package/lib/tools/network.js.map +1 -1
- package/lib/tools/pdf.js +5 -2
- package/lib/tools/pdf.js.map +1 -1
- package/lib/tools/scanPageMatrix.js +1 -4
- package/lib/tools/scanPageMatrix.js.map +1 -1
- package/lib/tools/screenshot.js +6 -2
- package/lib/tools/screenshot.js.map +1 -1
- package/lib/tools/session.js +53 -0
- package/lib/tools/session.js.map +1 -0
- package/lib/tools/snapshot.js +1 -4
- package/lib/tools/snapshot.js.map +1 -1
- package/lib/tools.js +6 -0
- package/lib/tools.js.map +1 -1
- package/lib/utils/fileUtils.js +35 -0
- package/lib/utils/fileUtils.js.map +1 -1
- package/lib/utils/guid.js +8 -0
- package/lib/utils/guid.js.map +1 -1
- package/lib/vscode/browserContextFactory.js +4 -0
- package/lib/vscode/browserContextFactory.js.map +1 -1
- package/lib/vscode/host.js +173 -32
- package/lib/vscode/host.js.map +1 -1
- package/lib/vscode/main.js +2 -2
- package/lib/vscode/main.js.map +1 -1
- package/package.json +8 -6
package/lib/mcp/http.js
CHANGED
|
@@ -18,9 +18,9 @@ import net from 'node:net';
|
|
|
18
18
|
import http from 'node:http';
|
|
19
19
|
import crypto from 'node:crypto';
|
|
20
20
|
import debug from 'debug';
|
|
21
|
-
import {
|
|
21
|
+
import { createMcpHandler, isInitializeRequest, isLegacyRequest, STDIO_DEFAULT_MAX_BUFFER_SIZE } from '@modelcontextprotocol/server';
|
|
22
|
+
import { NodeStreamableHTTPServerTransport, toNodeHandler, toWebRequest } from '@modelcontextprotocol/node';
|
|
22
23
|
import * as mcpServer from './server.js';
|
|
23
|
-
import { ManualPromise } from './manualPromise.js';
|
|
24
24
|
const testDebug = debug('pw:mcp:test');
|
|
25
25
|
const allowedLoopbackHostnamePattern = /^127(?:\.\d{1,3}){3}$/;
|
|
26
26
|
export async function startHttpServer(config, abortSignal) {
|
|
@@ -50,73 +50,226 @@ export function httpAddressToString(address) {
|
|
|
50
50
|
return `http://${resolvedHost}:${resolvedPort}`;
|
|
51
51
|
}
|
|
52
52
|
export async function installHttpTransport(httpServer, serverBackendFactory) {
|
|
53
|
-
const
|
|
53
|
+
const sessions = new SessionStore(serverBackendFactory);
|
|
54
54
|
httpServer.on('request', async (req, res) => {
|
|
55
|
-
const validationError = validateRequestHeaders(httpServer, req);
|
|
55
|
+
const validationError = validateRequestHeaders(httpServer, req) ?? validateRequestRouting(req);
|
|
56
56
|
if (validationError) {
|
|
57
57
|
res.statusCode = validationError.statusCode;
|
|
58
58
|
res.end(validationError.message);
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
62
|
-
if (routingError) {
|
|
63
|
-
res.statusCode = routingError.statusCode;
|
|
64
|
-
res.end(routingError.message);
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
await handleStreamable(serverBackendFactory, req, res, streamableSessions);
|
|
61
|
+
await sessions.handleRequest(req, res);
|
|
68
62
|
});
|
|
69
63
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
64
|
+
// ─── Sessionful 2025-era serving ─────────────────────────────────────────────
|
|
65
|
+
// The Streamable HTTP transport (2025-era protocol revisions) keys
|
|
66
|
+
// connections on the `Mcp-Session-Id` header and requires one MCP server per
|
|
67
|
+
// session; the MCP 2026-07-28 revision removes that header and per-connection
|
|
68
|
+
// sessions. The v2 SDK serves 2025-era HTTP traffic natively only in the
|
|
69
|
+
// stateless per-request idiom (`createMcpHandler`'s `legacy: 'stateless'` —
|
|
70
|
+
// no sessions, GET/DELETE answer 405), so this class remains as the minimal
|
|
71
|
+
// user-land session map the SDK's sessionful transport requires: it keeps
|
|
72
|
+
// stateful clients — heartbeat, standalone GET stream, server-initiated
|
|
73
|
+
// notifications — working exactly as before. Refs #166.
|
|
74
|
+
//
|
|
75
|
+
// Sessionless POSTs are routed with the SDK's own era classifier
|
|
76
|
+
// (`isLegacyRequest` — the exact predicate `createMcpHandler` routes on):
|
|
77
|
+
//
|
|
78
|
+
// - Requests carrying the 2026-07-28 per-request `_meta` envelope go to a
|
|
79
|
+
// modern `createMcpHandler` endpoint (`legacy: 'reject'` — this store owns
|
|
80
|
+
// all 2025 serving). That is the SDK's native 2026-07-28 serving: it
|
|
81
|
+
// answers `server/discover`, stamps `resultType` and the SEP-2549
|
|
82
|
+
// `ttlMs`/`cacheScope` cache fields, and validates the SEP-2243 standard
|
|
83
|
+
// headers (`MCP-Protocol-Version`/`Mcp-Method`/`Mcp-Name`) — none of which
|
|
84
|
+
// the 2025-era `Server` + transport pair provides. Refs #165, #166.
|
|
85
|
+
// - Envelope-less 2025-era requests keep the pre-existing body routing: an
|
|
86
|
+
// `initialize` request gets the stateful session wire behavior; anything
|
|
87
|
+
// else (a handshake-free 2025 client) is dispatched through the SDK's
|
|
88
|
+
// stateless mode.
|
|
89
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
90
|
+
class SessionStore {
|
|
91
|
+
_serverBackendFactory;
|
|
92
|
+
_sessions = new Map();
|
|
93
|
+
// The modern (2026-07-28) endpoint: one handler for the server lifetime,
|
|
94
|
+
// serving each enveloped request with a fresh server + backend from the
|
|
95
|
+
// factory — the same per-request idiom as the legacy stateless path, so the
|
|
96
|
+
// factory's shared browser-session registry carries state across requests.
|
|
97
|
+
// The SDK closes the per-request server once its exchange finishes, which
|
|
98
|
+
// runs backend.serverClosed() and disposes any default context it created.
|
|
99
|
+
// No heartbeat: the modern era has no server-initiated request channel.
|
|
100
|
+
_modernHandler;
|
|
101
|
+
constructor(_serverBackendFactory) {
|
|
102
|
+
this._serverBackendFactory = _serverBackendFactory;
|
|
103
|
+
const handler = createMcpHandler(() => this._createStatelessServer(), { legacy: 'reject', onerror: error => testDebug(error) });
|
|
104
|
+
this._modernHandler = toNodeHandler(handler, { onerror: error => testDebug(error) });
|
|
105
|
+
}
|
|
106
|
+
// Builds the per-request server for both stateless paths (modern envelope
|
|
107
|
+
// and handshake-free 2025 requests). The backend comes from the factory's
|
|
108
|
+
// stateless variant when it provides one: a per-request backend is torn
|
|
109
|
+
// down with the response, so e.g. its default browser context can run in a
|
|
110
|
+
// disposable profile instead of contending for the stable persistent one.
|
|
111
|
+
_createStatelessServer() {
|
|
112
|
+
const backend = (this._serverBackendFactory.createStateless ?? this._serverBackendFactory.create)();
|
|
113
|
+
return mcpServer.createServer(this._serverBackendFactory.name, this._serverBackendFactory.version, backend, false, this._serverBackendFactory);
|
|
114
|
+
}
|
|
115
|
+
async handleRequest(req, res) {
|
|
116
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
117
|
+
if (sessionId) {
|
|
118
|
+
await this._handleSessionRequest(sessionId, req, res);
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (req.method === 'POST') {
|
|
122
|
+
await this._handleSessionlessPost(req, res);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
// Sessionless GET/DELETE are 2025-era session operations that a
|
|
126
|
+
// stateless endpoint does not serve. Mirror the SDK's own stateless mode
|
|
127
|
+
// (`createLegacyStatelessFallback`), which answers every non-POST with
|
|
128
|
+
// this 405 JSON-RPC error body and no Allow header.
|
|
129
|
+
res.statusCode = 405;
|
|
130
|
+
res.setHeader('Content-Type', 'application/json');
|
|
131
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', error: { code: -32000, message: 'Method not allowed.' }, id: null }));
|
|
76
132
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
if (!sessionInfo) {
|
|
133
|
+
async _handleSessionRequest(sessionId, req, res) {
|
|
134
|
+
const transport = this._sessions.get(sessionId);
|
|
135
|
+
if (!transport) {
|
|
81
136
|
res.statusCode = 404;
|
|
82
137
|
res.end('Session not found');
|
|
83
138
|
return;
|
|
84
139
|
}
|
|
85
|
-
|
|
86
|
-
|
|
140
|
+
await transport.handleRequest(req, res);
|
|
141
|
+
}
|
|
142
|
+
// Peeks at the JSON-RPC body once to route it: modern envelope → the
|
|
143
|
+
// 2026-07-28 handler; `initialize` (also inside a batch) → stateful
|
|
144
|
+
// session; anything else → stateless dispatch. The already-parsed body is
|
|
145
|
+
// handed to the chosen handler so the consumed request stream is never
|
|
146
|
+
// read twice.
|
|
147
|
+
async _handleSessionlessPost(req, res) {
|
|
148
|
+
if (!hasJsonContentType(req)) {
|
|
149
|
+
// Don't consume the stream — the transport rejects the media type
|
|
150
|
+
// itself (415, after its Accept check), same as before this routing.
|
|
151
|
+
await this._handleStatelessRequest(req, res, undefined);
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
let body;
|
|
155
|
+
try {
|
|
156
|
+
body = await readJsonBody(req);
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
if (error instanceof BodyTooLargeError) {
|
|
160
|
+
// The cap tripped before the body was buffered; the request stream is
|
|
161
|
+
// already destroyed, so close the connection instead of draining the
|
|
162
|
+
// rest of the upload.
|
|
163
|
+
res.statusCode = 413;
|
|
164
|
+
res.setHeader('Content-Type', 'application/json');
|
|
165
|
+
res.setHeader('Connection', 'close');
|
|
166
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', error: { code: -32600, message: `Request body exceeded maximum size of ${maxJsonBodyBytes} bytes` }, id: null }));
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
// The stream is consumed, so the transport could no longer produce its
|
|
170
|
+
// own parse error; mirror the SDK's response exactly.
|
|
171
|
+
res.statusCode = 400;
|
|
172
|
+
res.setHeader('Content-Type', 'application/json');
|
|
173
|
+
res.end(JSON.stringify({ jsonrpc: '2.0', error: { code: -32700, message: 'Parse error: Invalid JSON' }, id: null }));
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// The parsed body is passed alongside the headers-only web request, so
|
|
177
|
+
// nothing further is read from the drained node stream.
|
|
178
|
+
if (!(await isLegacyRequest(await toWebRequest(req, body), body))) {
|
|
179
|
+
await this._modernHandler(req, res, body);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
const messages = Array.isArray(body) ? body : [body];
|
|
183
|
+
if (messages.some(message => isInitializeRequest(message)))
|
|
184
|
+
await this._createSession(req, res, body);
|
|
185
|
+
else
|
|
186
|
+
await this._handleStatelessRequest(req, res, body);
|
|
187
|
+
}
|
|
188
|
+
// Serves one request from a client that skips the initialize handshake. The
|
|
189
|
+
// SDK's stateless mode (`sessionIdGenerator: undefined`) performs no
|
|
190
|
+
// session validation but insists on a fresh transport per request, so each
|
|
191
|
+
// request gets its own transport, server and backend; the request then
|
|
192
|
+
// flows into the server's lazy ensureInitialized() path. A stateless tool
|
|
193
|
+
// call thus runs against a fresh default browser context — cross-request
|
|
194
|
+
// browser state travels via browser_session_open handles instead, whose
|
|
195
|
+
// registry the backend factory shares across the backends it creates. No
|
|
196
|
+
// heartbeat: the response stream ends with the request, so there is no
|
|
197
|
+
// long-lived connection to probe.
|
|
198
|
+
async _handleStatelessRequest(req, res, parsedBody) {
|
|
199
|
+
const transport = new NodeStreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
200
|
+
// Dispose the per-request server — and with it the backend's default
|
|
201
|
+
// context, if the request ever created one — once the response finishes
|
|
202
|
+
// or aborts. Shared state (the factory's browser-session registry and
|
|
203
|
+
// the contexts it holds) deliberately survives this close.
|
|
204
|
+
res.once('close', () => void transport.close().catch(e => testDebug(e)));
|
|
205
|
+
try {
|
|
206
|
+
await this._createStatelessServer().connect(transport);
|
|
207
|
+
await transport.handleRequest(req, res, parsedBody);
|
|
87
208
|
}
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
209
|
+
catch (error) {
|
|
210
|
+
// A failure before the response is written leaves the connection open,
|
|
211
|
+
// and res 'close' — the disposal path above — only fires once the
|
|
212
|
+
// client abandons it, which can be arbitrarily late. Close eagerly so
|
|
213
|
+
// the transport (and any backend state behind it) does not linger;
|
|
214
|
+
// close() is idempotent, so the 'close' listener firing later is fine.
|
|
215
|
+
await transport.close().catch(e => testDebug(e));
|
|
216
|
+
throw error;
|
|
91
217
|
}
|
|
92
|
-
return await sessionInfo.transport.handleRequest(req, res);
|
|
93
218
|
}
|
|
94
|
-
|
|
95
|
-
const transport = new
|
|
219
|
+
async _createSession(req, res, parsedBody) {
|
|
220
|
+
const transport = new NodeStreamableHTTPServerTransport({
|
|
96
221
|
sessionIdGenerator: () => crypto.randomUUID(),
|
|
97
222
|
onsessioninitialized: async (sessionId) => {
|
|
98
223
|
testDebug(`create http session: ${transport.sessionId}`);
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
await mcpServer.connect(serverBackendFactory, transport, sessionInfo.transportInitialized, true);
|
|
224
|
+
this._sessions.set(sessionId, transport);
|
|
225
|
+
await mcpServer.connect(this._serverBackendFactory, transport, true);
|
|
102
226
|
}
|
|
103
227
|
});
|
|
104
228
|
transport.onclose = () => {
|
|
105
229
|
if (!transport.sessionId)
|
|
106
230
|
return;
|
|
107
|
-
|
|
231
|
+
this._sessions.delete(transport.sessionId);
|
|
108
232
|
testDebug(`delete http session: ${transport.sessionId}`);
|
|
109
233
|
};
|
|
110
|
-
await transport.handleRequest(req, res);
|
|
111
|
-
return;
|
|
234
|
+
await transport.handleRequest(req, res, parsedBody);
|
|
112
235
|
}
|
|
113
|
-
res.statusCode = 400;
|
|
114
|
-
res.end('Invalid request');
|
|
115
236
|
}
|
|
116
|
-
function
|
|
117
|
-
const
|
|
118
|
-
|
|
237
|
+
function hasJsonContentType(req) {
|
|
238
|
+
const contentType = req.headers['content-type'];
|
|
239
|
+
if (!contentType)
|
|
240
|
+
return false;
|
|
241
|
+
// Media type only — parameters such as charset are irrelevant here.
|
|
242
|
+
return contentType.split(';')[0].trim().toLowerCase() === 'application/json';
|
|
243
|
+
}
|
|
244
|
+
// Sessionless JSON POSTs are buffered here in user land (the parsed body is
|
|
245
|
+
// handed to the SDK), so this reader owns the message-size cap the SDK
|
|
246
|
+
// transports apply to the streams they read themselves. The value matches the
|
|
247
|
+
// SDK's own per-message transport limit (10 MB).
|
|
248
|
+
const maxJsonBodyBytes = STDIO_DEFAULT_MAX_BUFFER_SIZE;
|
|
249
|
+
class BodyTooLargeError extends Error {
|
|
250
|
+
constructor() {
|
|
251
|
+
super(`Request body exceeded maximum size of ${maxJsonBodyBytes} bytes`);
|
|
252
|
+
}
|
|
119
253
|
}
|
|
254
|
+
async function readJsonBody(req) {
|
|
255
|
+
// A declared oversize is rejected before reading a single chunk.
|
|
256
|
+
if (Number(req.headers['content-length']) > maxJsonBodyBytes)
|
|
257
|
+
throw new BodyTooLargeError();
|
|
258
|
+
const chunks = [];
|
|
259
|
+
let totalBytes = 0;
|
|
260
|
+
for await (const chunk of req) {
|
|
261
|
+
const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
262
|
+
totalBytes += buffer.length;
|
|
263
|
+
// Thrown mid-iteration this destroys the request stream, so reading
|
|
264
|
+
// stops at the cap instead of draining an arbitrarily large upload;
|
|
265
|
+
// the 413 response still goes out on the not-yet-destroyed response.
|
|
266
|
+
if (totalBytes > maxJsonBodyBytes)
|
|
267
|
+
throw new BodyTooLargeError();
|
|
268
|
+
chunks.push(buffer);
|
|
269
|
+
}
|
|
270
|
+
return JSON.parse(Buffer.concat(chunks).toString('utf8'));
|
|
271
|
+
}
|
|
272
|
+
// ─── End of session compatibility layer ──────────────────────────────────────
|
|
120
273
|
function decorateServer(server) {
|
|
121
274
|
const sockets = new Set();
|
|
122
275
|
server.on('connection', socket => {
|
|
@@ -177,15 +330,12 @@ function allowedHostnamesForServer(httpServer) {
|
|
|
177
330
|
function isWildcardAddress(hostname) {
|
|
178
331
|
return hostname === '0.0.0.0' || hostname === '::';
|
|
179
332
|
}
|
|
180
|
-
function validateRequestRouting(req
|
|
333
|
+
function validateRequestRouting(req) {
|
|
181
334
|
const requestPath = parseRequestPath(req.url);
|
|
182
335
|
if (!requestPath)
|
|
183
336
|
return { statusCode: 400, message: 'Invalid request' };
|
|
184
337
|
if (requestPath !== '/mcp')
|
|
185
338
|
return { statusCode: 404, message: 'Not found' };
|
|
186
|
-
if (req.method === 'POST' || hasSessionId)
|
|
187
|
-
return;
|
|
188
|
-
return { statusCode: 400, message: 'Invalid request' };
|
|
189
339
|
}
|
|
190
340
|
function parseAuthority(authority) {
|
|
191
341
|
try {
|
package/lib/mcp/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inProcessTransport.js","sourceRoot":"","sources":["../../src/mcp/inProcessTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"inProcessTransport.js","sourceRoot":"","sources":["../../src/mcp/inProcessTransport.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,OAAO,kBAAkB;IACrB,OAAO,CAAS;IAChB,gBAAgB,CAA2B;IAC3C,UAAU,GAAY,KAAK,CAAC;IAEpC,YAAY,MAAc;QACxB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,UAAU;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEzD,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB,EAAE,OAA8B;QAChE,IAAI,CAAC,IAAI,CAAC,UAAU;YAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAG7C,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED,OAAO,CAA4B;IACnC,OAAO,CAAwC;IAC/C,SAAS,CAA6E;IACtF,SAAS,CAAsB;IAC/B,kBAAkB,CAA2C;IAE7D,kBAAkB,CAAC,OAAuB,EAAE,KAAwB;QAClE,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,wBAAwB;IACpB,gBAAgB,CAAqB;IAE7C,YAAY,eAAmC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,KAAK;IACX,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAuB,EAAE,OAA8B;QAChE,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,OAAO,CAA4B;IACnC,OAAO,CAAwC;IAC/C,SAAS,CAA6E;IACtF,SAAS,CAAsB;IAC/B,kBAAkB,CAA2C;IAC7D,kBAAkB,CAAC,OAAuB;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
package/lib/mcp/mdb.js
CHANGED
|
@@ -15,10 +15,8 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import debug from 'debug';
|
|
17
17
|
import { z } from 'zod';
|
|
18
|
-
import { Client } from '@modelcontextprotocol/
|
|
19
|
-
import {
|
|
20
|
-
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
21
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
18
|
+
import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/client';
|
|
19
|
+
import { StdioServerTransport } from '@modelcontextprotocol/server/stdio';
|
|
22
20
|
import { defineToolSchema } from './tool.js';
|
|
23
21
|
import * as mcpServer from './server.js';
|
|
24
22
|
import * as mcpHttp from './http.js';
|
|
@@ -98,7 +96,7 @@ export class MDBBackend {
|
|
|
98
96
|
async _pushClient(transport, introMessage) {
|
|
99
97
|
mdbDebug('pushing client to the stack');
|
|
100
98
|
const client = new Client({ name: 'Internal client', version: '0.0.0' });
|
|
101
|
-
client.setRequestHandler(
|
|
99
|
+
client.setRequestHandler('ping', () => ({}));
|
|
102
100
|
await client.connect(transport);
|
|
103
101
|
mdbDebug('connected to the new client');
|
|
104
102
|
const { tools } = await client.listTools();
|
|
@@ -137,7 +135,7 @@ export async function runMainBackend(backendFactory, options) {
|
|
|
137
135
|
if (options?.port !== undefined)
|
|
138
136
|
return url;
|
|
139
137
|
// Start stdio conditionally.
|
|
140
|
-
await mcpServer.connect(factory, new StdioServerTransport(),
|
|
138
|
+
await mcpServer.connect(factory, new StdioServerTransport(), false);
|
|
141
139
|
}
|
|
142
140
|
export async function runOnPauseBackendLoop(mdbUrl, backend, introMessage) {
|
|
143
141
|
const wrappedBackend = new OnceTimeServerBackendWrapper(backend);
|
|
@@ -151,7 +149,7 @@ export async function runOnPauseBackendLoop(mdbUrl, backend, introMessage) {
|
|
|
151
149
|
await mcpHttp.installHttpTransport(httpServer, factory);
|
|
152
150
|
const url = mcpHttp.httpAddressToString(httpServer.address());
|
|
153
151
|
const client = new Client({ name: 'Internal client', version: '0.0.0' });
|
|
154
|
-
client.setRequestHandler(
|
|
152
|
+
client.setRequestHandler('ping', () => ({}));
|
|
155
153
|
const transport = new StreamableHTTPClientTransport(new URL(mdbUrl));
|
|
156
154
|
await client.connect(transport);
|
|
157
155
|
const pushToolsResult = await client.callTool({
|
|
@@ -180,8 +178,8 @@ class OnceTimeServerBackendWrapper {
|
|
|
180
178
|
this._backend = backend;
|
|
181
179
|
this._backend.requestSelfDestruct = () => this._selfDestructPromise.resolve();
|
|
182
180
|
}
|
|
183
|
-
async initialize(context, clientVersion
|
|
184
|
-
await this._backend.initialize?.(context, clientVersion
|
|
181
|
+
async initialize(context, clientVersion) {
|
|
182
|
+
await this._backend.initialize?.(context, clientVersion);
|
|
185
183
|
}
|
|
186
184
|
async listTools() {
|
|
187
185
|
return this._backend.listTools();
|
package/lib/mcp/mdb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mdb.js","sourceRoot":"","sources":["../../src/mcp/mdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"mdb.js","sourceRoot":"","sources":["../../src/mcp/mdb.ts"],"names":[],"mappings":"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"}
|
package/lib/mcp/proxyBackend.js
CHANGED
|
@@ -15,23 +15,38 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import debug from 'debug';
|
|
17
17
|
import { z } from 'zod';
|
|
18
|
-
import { Client } from '@modelcontextprotocol/
|
|
19
|
-
import { ListRootsRequestSchema, PingRequestSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
18
|
+
import { Client } from '@modelcontextprotocol/client';
|
|
20
19
|
import { notifyToolListChanged } from './toolListChanged.js';
|
|
21
20
|
const errorsDebug = debug('pw:mcp:errors');
|
|
22
21
|
export class ProxyBackend {
|
|
23
22
|
_mcpProviders;
|
|
24
23
|
_currentClient;
|
|
24
|
+
// False when _currentClient is adopted from the shared slot: response
|
|
25
|
+
// cleanup (serverClosed) must not tear down a process-scoped client that
|
|
26
|
+
// later requests still route through.
|
|
27
|
+
_ownsCurrentClient = true;
|
|
25
28
|
_contextSwitchTool;
|
|
26
|
-
_roots = [];
|
|
27
29
|
_backendContext;
|
|
28
|
-
|
|
30
|
+
_sharedSelection;
|
|
31
|
+
constructor(mcpProviders, sharedSelection) {
|
|
29
32
|
this._mcpProviders = mcpProviders;
|
|
33
|
+
this._sharedSelection = sharedSelection;
|
|
30
34
|
this._contextSwitchTool = this._defineContextSwitchTool();
|
|
31
35
|
}
|
|
32
|
-
async initialize(context,
|
|
36
|
+
async initialize(context, _clientVersion) {
|
|
33
37
|
this._backendContext = context;
|
|
34
|
-
|
|
38
|
+
// A process-scoped browser_connect switch is in effect: adopt it instead
|
|
39
|
+
// of connecting the default provider, so the selection made in an earlier
|
|
40
|
+
// handshake-free request keeps governing this one. The adoption holds a
|
|
41
|
+
// lease on the shared client (released in serverClosed, or earlier when
|
|
42
|
+
// this request switches away), so a concurrent switch cannot close it
|
|
43
|
+
// under this request's in-flight calls.
|
|
44
|
+
const shared = this._sharedSelection?.slot.acquire();
|
|
45
|
+
if (shared) {
|
|
46
|
+
this._currentClient = shared;
|
|
47
|
+
this._ownsCurrentClient = false;
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
35
50
|
await this._setCurrentClient(this._mcpProviders[0], false);
|
|
36
51
|
}
|
|
37
52
|
async listTools() {
|
|
@@ -51,14 +66,19 @@ export class ProxyBackend {
|
|
|
51
66
|
name,
|
|
52
67
|
arguments: args,
|
|
53
68
|
_meta: requestContext?._meta,
|
|
54
|
-
},
|
|
69
|
+
}, progressToken === undefined ? undefined : {
|
|
55
70
|
onprogress: params => {
|
|
56
71
|
void this._forwardProgressNotification(requestContext, progressToken, params);
|
|
57
72
|
},
|
|
58
73
|
});
|
|
59
74
|
}
|
|
60
75
|
serverClosed() {
|
|
61
|
-
|
|
76
|
+
if (this._ownsCurrentClient)
|
|
77
|
+
void this._currentClient?.close().catch(errorsDebug);
|
|
78
|
+
else if (this._currentClient)
|
|
79
|
+
// Adopted from the shared slot: release the lease instead of closing —
|
|
80
|
+
// the slot closes the client once it is retired and fully drained.
|
|
81
|
+
void this._sharedSelection?.slot.release(this._currentClient);
|
|
62
82
|
}
|
|
63
83
|
async _callContextSwitchTool(params) {
|
|
64
84
|
try {
|
|
@@ -66,7 +86,10 @@ export class ProxyBackend {
|
|
|
66
86
|
if (!factory)
|
|
67
87
|
throw new Error('Unknown connection method: ' + params.name);
|
|
68
88
|
factory.validate?.();
|
|
69
|
-
|
|
89
|
+
if (this._sharedSelection)
|
|
90
|
+
await this._switchSharedClient(factory.name);
|
|
91
|
+
else
|
|
92
|
+
await this._setCurrentClient(factory, true);
|
|
70
93
|
return {
|
|
71
94
|
content: [{ type: 'text', text: '### Result\nSuccessfully changed connection method.\n' }],
|
|
72
95
|
};
|
|
@@ -78,6 +101,41 @@ export class ProxyBackend {
|
|
|
78
101
|
};
|
|
79
102
|
}
|
|
80
103
|
}
|
|
104
|
+
// Stateless serving: publish the switch through the process-scoped slot so
|
|
105
|
+
// later per-request backends adopt it. The slot closes the previously
|
|
106
|
+
// shared client itself (exactly once, after the swap, once every adopting
|
|
107
|
+
// request has released it); only a client this request owned — its
|
|
108
|
+
// per-request default — is closed here.
|
|
109
|
+
async _switchSharedClient(name) {
|
|
110
|
+
const { slot, providers } = this._sharedSelection;
|
|
111
|
+
// The stateful-flavored list mirrors this._mcpProviders name-for-name;
|
|
112
|
+
// the name was already resolved and validated against the latter.
|
|
113
|
+
const provider = providers.find(factory => factory.name === name);
|
|
114
|
+
if (!provider)
|
|
115
|
+
throw new Error('Unknown connection method: ' + name);
|
|
116
|
+
const previousTools = await this._getExposedTools(this._currentClient).catch(() => undefined);
|
|
117
|
+
const previousOwned = this._ownsCurrentClient ? this._currentClient : undefined;
|
|
118
|
+
const previousShared = this._ownsCurrentClient ? undefined : this._currentClient;
|
|
119
|
+
const shared = await slot.replace(provider === providers[0] ? undefined : () => this._connectClient(provider));
|
|
120
|
+
if (shared) {
|
|
121
|
+
this._currentClient = shared;
|
|
122
|
+
this._ownsCurrentClient = false;
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
// Back to the default provider, which stateless serving runs
|
|
126
|
+
// per-request: finish this exchange on an owned per-request client.
|
|
127
|
+
this._currentClient = await this._connectClient(this._mcpProviders[0]);
|
|
128
|
+
this._ownsCurrentClient = true;
|
|
129
|
+
}
|
|
130
|
+
// This request no longer routes through the shared client it adopted;
|
|
131
|
+
// when it was the retiring client's last adopter, this runs the close
|
|
132
|
+
// the replace deferred. Only on success — a failed replace threw above,
|
|
133
|
+
// and the request keeps using its adopted client.
|
|
134
|
+
if (previousShared)
|
|
135
|
+
await slot.release(previousShared);
|
|
136
|
+
await previousOwned?.close().catch(errorsDebug);
|
|
137
|
+
await notifyToolListChanged(this._backendContext, previousTools, await this._getExposedTools(this._currentClient));
|
|
138
|
+
}
|
|
81
139
|
async _forwardProgressNotification(requestContext, progressToken, params) {
|
|
82
140
|
try {
|
|
83
141
|
await requestContext?.sendNotification({
|
|
@@ -113,18 +171,17 @@ export class ProxyBackend {
|
|
|
113
171
|
const previousTools = notifyOnChange ? await this._getExposedTools(this._currentClient).catch(() => undefined) : undefined;
|
|
114
172
|
await this._currentClient?.close();
|
|
115
173
|
this._currentClient = undefined;
|
|
174
|
+
const client = await this._connectClient(factory);
|
|
175
|
+
this._currentClient = client;
|
|
176
|
+
this._ownsCurrentClient = true;
|
|
177
|
+
await notifyToolListChanged(this._backendContext, previousTools, await this._getExposedTools(client));
|
|
178
|
+
}
|
|
179
|
+
async _connectClient(factory) {
|
|
116
180
|
const client = new Client({ name: 'Playwright MCP Proxy', version: '0.0.0' });
|
|
117
|
-
client.
|
|
118
|
-
roots: {
|
|
119
|
-
listChanged: true,
|
|
120
|
-
},
|
|
121
|
-
});
|
|
122
|
-
client.setRequestHandler(ListRootsRequestSchema, () => ({ roots: this._roots }));
|
|
123
|
-
client.setRequestHandler(PingRequestSchema, () => ({}));
|
|
181
|
+
client.setRequestHandler('ping', () => ({}));
|
|
124
182
|
const transport = await factory.connect();
|
|
125
183
|
await client.connect(transport);
|
|
126
|
-
|
|
127
|
-
await notifyToolListChanged(this._backendContext, previousTools, await this._getExposedTools(client));
|
|
184
|
+
return client;
|
|
128
185
|
}
|
|
129
186
|
async _getExposedTools(client) {
|
|
130
187
|
if (!client)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxyBackend.js","sourceRoot":"","sources":["../../src/mcp/proxyBackend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"proxyBackend.js","sourceRoot":"","sources":["../../src/mcp/proxyBackend.ts"],"names":[],"mappings":"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"}
|