browser-devtools-mcp 0.0.1 → 0.0.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.
Files changed (47) hide show
  1. package/README.md +177 -50
  2. package/dist/browser.js +162 -22
  3. package/dist/browser.js.map +1 -1
  4. package/dist/config.js +46 -1
  5. package/dist/config.js.map +1 -1
  6. package/dist/context.js +72 -12
  7. package/dist/context.js.map +1 -1
  8. package/dist/index.js +77 -42
  9. package/dist/index.js.map +1 -1
  10. package/dist/otel/otel-controller.js +319 -0
  11. package/dist/otel/otel-controller.js.map +1 -0
  12. package/dist/otel/otel-initializer.bundle.js +2 -0
  13. package/dist/otel/otel-initializer.bundle.js.map +7 -0
  14. package/dist/otel/otel-proxy.js +407 -0
  15. package/dist/otel/otel-proxy.js.map +1 -0
  16. package/dist/server-info.js +48 -10
  17. package/dist/server-info.js.map +1 -1
  18. package/dist/server.js +47 -32
  19. package/dist/server.js.map +1 -1
  20. package/dist/tools/a11y/index.js +7 -0
  21. package/dist/tools/a11y/index.js.map +1 -0
  22. package/dist/tools/{content → a11y}/take-aria-snapshot.js +6 -1
  23. package/dist/tools/a11y/take-aria-snapshot.js.map +1 -0
  24. package/dist/tools/a11y/take-ax-tree-snapshot.js +850 -0
  25. package/dist/tools/a11y/take-ax-tree-snapshot.js.map +1 -0
  26. package/dist/tools/content/index.js +0 -2
  27. package/dist/tools/content/index.js.map +1 -1
  28. package/dist/tools/content/save-as-pdf.js +9 -36
  29. package/dist/tools/content/save-as-pdf.js.map +1 -1
  30. package/dist/tools/content/take-screenshot.js +14 -37
  31. package/dist/tools/content/take-screenshot.js.map +1 -1
  32. package/dist/tools/index.js +2 -0
  33. package/dist/tools/index.js.map +1 -1
  34. package/dist/tools/monitoring/get-trace-id.js +30 -0
  35. package/dist/tools/monitoring/get-trace-id.js.map +1 -0
  36. package/dist/tools/monitoring/index.js +10 -1
  37. package/dist/tools/monitoring/index.js.map +1 -1
  38. package/dist/tools/monitoring/new-trace-id.js +32 -0
  39. package/dist/tools/monitoring/new-trace-id.js.map +1 -0
  40. package/dist/tools/monitoring/set-trace-id.js +28 -0
  41. package/dist/tools/monitoring/set-trace-id.js.map +1 -0
  42. package/dist/tools/tool-executor.js +26 -4
  43. package/dist/tools/tool-executor.js.map +1 -1
  44. package/dist/utils.js +38 -0
  45. package/dist/utils.js.map +1 -1
  46. package/package.json +7 -2
  47. package/dist/tools/content/take-aria-snapshot.js.map +0 -1
package/dist/context.js CHANGED
@@ -34,25 +34,37 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.McpSessionContext = void 0;
37
+ const browser_1 = require("./browser");
37
38
  const config_1 = require("./config");
38
39
  const logger = __importStar(require("./logger"));
40
+ const otel_controller_1 = require("./otel/otel-controller");
39
41
  const types_1 = require("./types");
42
+ const utils_1 = require("./utils");
40
43
  class McpSessionContext {
44
+ _sessionId;
45
+ options;
46
+ otelController;
41
47
  consoleMessages = [];
42
48
  httpRequests = [];
43
- sessionIdProvider;
49
+ initialized = false;
44
50
  closed = false;
45
- browser;
51
+ traceId;
46
52
  browserContext;
47
53
  page;
48
- constructor(sessionIdProvider, browser, browserContext, page) {
49
- this.sessionIdProvider = sessionIdProvider;
50
- this.browser = browser;
54
+ constructor(sessionId, browserContext, page, options) {
55
+ this._sessionId = sessionId;
51
56
  this.browserContext = browserContext;
52
57
  this.page = page;
53
- this._init();
58
+ this.options = options;
59
+ this.otelController = new otel_controller_1.OTELController(this.browserContext);
54
60
  }
55
- _init() {
61
+ async init() {
62
+ if (this.closed) {
63
+ throw new Error('Session context is already closed');
64
+ }
65
+ if (this.initialized) {
66
+ throw new Error('Session context is already initialized');
67
+ }
56
68
  const me = this;
57
69
  let consoleMessageSequenceNumber = 0;
58
70
  this.page.on('console', (msg) => {
@@ -80,6 +92,13 @@ class McpSessionContext {
80
92
  me.httpRequests.splice(0, me.httpRequests.length - config_1.HTTP_REQUESTS_BUFFER_SIZE);
81
93
  }
82
94
  });
95
+ if (this.options.otelEnable) {
96
+ this.traceId = (0, utils_1.newTraceId)();
97
+ await this.otelController.init({
98
+ traceId: this.traceId,
99
+ });
100
+ }
101
+ this.initialized = true;
83
102
  }
84
103
  _toConsoleMessageLevelName(type) {
85
104
  switch (type) {
@@ -155,6 +174,35 @@ class McpSessionContext {
155
174
  sequenceNumber,
156
175
  };
157
176
  }
177
+ _isBodyLikelyPresent(status, method) {
178
+ if (method === 'HEAD' || method === 'OPTIONS') {
179
+ return false;
180
+ }
181
+ if (status === 204 || status === 304) {
182
+ return false;
183
+ }
184
+ if (status >= 300 && status < 400) {
185
+ // redirects
186
+ return false;
187
+ }
188
+ return true;
189
+ }
190
+ async _safeReadResponseBody(res) {
191
+ try {
192
+ const req = res.request();
193
+ const method = req.method();
194
+ const status = res.status();
195
+ if (!this._isBodyLikelyPresent(status, method)) {
196
+ return undefined;
197
+ }
198
+ const buf = await res.body(); // may throw
199
+ return buf.toString('utf-8');
200
+ }
201
+ catch {
202
+ // This is the important part: CDP can't always provide body.
203
+ return undefined;
204
+ }
205
+ }
158
206
  async _toHttpRequest(req, sequenceNumber) {
159
207
  const res = await req.response();
160
208
  return {
@@ -170,7 +218,7 @@ class McpSessionContext {
170
218
  status: res.status(),
171
219
  statusText: res.statusText(),
172
220
  headers: res.headers(),
173
- body: (await res.body()).toString(),
221
+ body: await this._safeReadResponseBody(res),
174
222
  }
175
223
  : undefined,
176
224
  ok: res ? res.ok() : false,
@@ -179,7 +227,17 @@ class McpSessionContext {
179
227
  };
180
228
  }
181
229
  sessionId() {
182
- return this.sessionIdProvider();
230
+ return this._sessionId;
231
+ }
232
+ async getTraceId() {
233
+ return this.traceId;
234
+ }
235
+ async setTraceId(traceId) {
236
+ if (!this.options.otelEnable) {
237
+ throw new Error('OTEL is not enabled');
238
+ }
239
+ this.traceId = traceId;
240
+ await this.otelController.setTraceId(this.page, traceId);
183
241
  }
184
242
  getConsoleMessages() {
185
243
  return this.consoleMessages;
@@ -191,13 +249,15 @@ class McpSessionContext {
191
249
  if (this.closed) {
192
250
  return false;
193
251
  }
252
+ logger.debug(`Closing OTEL controller of the MCP session with id ${this._sessionId} ...`);
253
+ await this.otelController.close();
194
254
  // Page(s) owned by browser context are already closed by the browser context itself
195
255
  try {
196
- logger.debug(`Closing browser context of the MCP session with id ${this.sessionIdProvider()} ...`);
197
- await this.browserContext.close();
256
+ logger.debug(`Closing browser context of the MCP session with id ${this._sessionId} ...`);
257
+ await (0, browser_1.closeBrowserContext)(this.browserContext);
198
258
  }
199
259
  catch (err) {
200
- logger.debug(`Error occurred while closing browser context of the MCP session with id ${this.sessionIdProvider()} ...`, err);
260
+ logger.debug(`Error occurred while closing browser context of the MCP session with id ${this._sessionId} ...`, err);
201
261
  }
202
262
  this.consoleMessages.length = 0;
203
263
  this.httpRequests.length = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -96,20 +96,42 @@ function _getConfig() {
96
96
  return {};
97
97
  }
98
98
  async function _startStdioServer() {
99
- await (0, server_1.createSession)(_getConfig(), new stdio_js_1.StdioServerTransport());
99
+ const transport = new stdio_js_1.StdioServerTransport();
100
+ await (0, server_1.createServer)(transport, {
101
+ config: _getConfig(),
102
+ });
103
+ }
104
+ function _createSession(ctx, transport, server) {
105
+ // Create MCP session with MCP server
106
+ const session = (0, server_1.createSession)(transport, server);
107
+ // Register hook to close the associated MCP session on socket close
108
+ const socket = ctx.env.incoming.socket;
109
+ if (!socket._mcpRegistered) {
110
+ socket._mcpRegistered = true;
111
+ socket.on('close', async () => {
112
+ logger.debug(`Socket, which is for MCP session with id ${transport.sessionId}, has been closed`);
113
+ if (config.SESSION_CLOSE_ON_SOCKET_CLOSE) {
114
+ await transport.close();
115
+ }
116
+ });
117
+ }
118
+ // Register MCP session close hook to gracefully close it
119
+ _registerMCPSessionClose(transport, session.server);
120
+ logger.debug(`Created MCP server session with id ${transport.sessionId}`);
121
+ return session;
100
122
  }
101
- async function _createMCPServerSession(ctx) {
102
- let session;
123
+ async function _createTransport(ctx) {
103
124
  // Get MCP server config
104
125
  const serverConfig = _getConfig();
126
+ const holder = {};
105
127
  // Create new instances of MCP Server and Transport for each incoming request
106
128
  const transport = new mcp_1.StreamableHTTPTransport({
107
129
  // Change to `false` if you want to enable SSE in responses.
108
130
  enableJsonResponse: true,
109
131
  sessionIdGenerator: () => crypto_1.default.randomUUID(),
110
132
  onsessioninitialized: async (sessionId) => {
133
+ const session = _createSession(ctx, transport, holder.server);
111
134
  sessions.set(sessionId, session);
112
- session.initialized = true;
113
135
  logger.debug(`MCP session initialized with id ${sessionId}`);
114
136
  },
115
137
  onsessionclosed: async (sessionId) => {
@@ -118,40 +140,38 @@ async function _createMCPServerSession(ctx) {
118
140
  logger.debug(`MCP session closed with id ${sessionId}`);
119
141
  },
120
142
  });
121
- // Create MCP session with MCP server
122
- session = await (0, server_1.createSession)(serverConfig, transport);
123
- // Register hook to close the associated MCP session on socket close
124
- const socket = ctx.env.incoming.socket;
125
- if (!socket._mcpRegistered) {
126
- socket._mcpRegistered = true;
127
- socket.on('close', async () => {
128
- logger.debug(`Socket, which is for MCP session with id ${transport.sessionId}, has been closed`);
129
- if (config.SESSION_CLOSE_ON_SOCKET_CLOSE) {
130
- await transport.close();
131
- }
132
- });
133
- }
134
- // Register MCP session close hook to gracefully close it
135
- _registerMCPSessionClose(transport, session.server);
136
- logger.debug(`Created MCP server session with id ${transport.sessionId}`);
137
- return session;
143
+ holder.server = await (0, server_1.createServer)(transport, {
144
+ config: serverConfig,
145
+ });
146
+ return transport;
138
147
  }
139
- async function _getMCPServerSession(sessionId) {
140
- return sessions.get(sessionId);
148
+ async function _getTransport(ctx) {
149
+ const sessionId = ctx.req.header('mcp-session-id');
150
+ if (sessionId) {
151
+ const session = sessions.get(sessionId);
152
+ if (session) {
153
+ logger.debug(`Reusing MCP session with id ${sessionId}`);
154
+ return session
155
+ .transport;
156
+ }
157
+ }
158
+ return undefined;
141
159
  }
142
- async function _getOrCreateMCPServerSession(ctx) {
160
+ async function _getOrCreateTransport(ctx) {
143
161
  const sessionId = ctx.req.header('mcp-session-id');
144
162
  if (sessionId) {
145
163
  const session = sessions.get(sessionId);
146
164
  if (session) {
147
165
  logger.debug(`Reusing MCP session with id ${sessionId}`);
166
+ return session
167
+ .transport;
148
168
  }
149
169
  else {
150
170
  logger.debug(`No MCP session could be found with id ${sessionId}`);
171
+ return undefined;
151
172
  }
152
- return session;
153
173
  }
154
- return await _createMCPServerSession(ctx);
174
+ return await _createTransport(ctx);
155
175
  }
156
176
  function _registerMCPSessionClose(transport, mcpServer) {
157
177
  let closed = false;
@@ -173,11 +193,14 @@ function _registerMCPSessionClose(transport, mcpServer) {
173
193
  const session = sessions.get(transport.sessionId);
174
194
  if (session) {
175
195
  session.closed = true;
176
- try {
177
- await session.context.close();
178
- }
179
- catch (err) {
180
- logger.error('Error occurred while closing MCP session context', err);
196
+ if (session.context) {
197
+ try {
198
+ await session.context.close();
199
+ logger.debug('Closed MCP session context');
200
+ }
201
+ catch (err) {
202
+ logger.error('Error occurred while closing MCP session context', err);
203
+ }
181
204
  }
182
205
  }
183
206
  sessions.delete(transport.sessionId);
@@ -206,6 +229,19 @@ function _scheduleIdleSessionCheck() {
206
229
  };
207
230
  setInterval(sessionCheck, config.SESSION_IDLE_CHECK_SECONDS * 1000);
208
231
  }
232
+ async function _logRequest(ctx) {
233
+ const reqClone = ctx.req.raw.clone();
234
+ logger.debug(`Got request: ${await reqClone.json()}`);
235
+ }
236
+ function _markSessionAsActive(ctx) {
237
+ const sessionId = ctx.req.header('mcp-session-id');
238
+ if (sessionId) {
239
+ const session = sessions.get(sessionId);
240
+ if (session) {
241
+ session.lastActiveAt = Date.now();
242
+ }
243
+ }
244
+ }
209
245
  const app = new hono_1.Hono();
210
246
  async function _startStreamableHTTPServer(port) {
211
247
  // Global CORS
@@ -231,12 +267,15 @@ async function _startStreamableHTTPServer(port) {
231
267
  // MCP Post message
232
268
  app.post('/mcp', async (ctx) => {
233
269
  try {
234
- const mcpSession = await _getOrCreateMCPServerSession(ctx);
235
- if (!mcpSession) {
270
+ if (logger.isDebugEnabled()) {
271
+ await _logRequest(ctx);
272
+ }
273
+ const transport = await _getOrCreateTransport(ctx);
274
+ if (!transport) {
236
275
  return ctx.json(MCP_ERRORS.sessionNotFound, 400);
237
276
  }
238
- mcpSession.lastActiveAt = Date.now();
239
- return await mcpSession.transport.handleRequest(ctx);
277
+ _markSessionAsActive(ctx);
278
+ return await transport.handleRequest(ctx);
240
279
  }
241
280
  catch (err) {
242
281
  logger.error('Error occurred while handling MCP request', err);
@@ -246,15 +285,11 @@ async function _startStreamableHTTPServer(port) {
246
285
  // MCP Delete session
247
286
  app.delete('/mcp', async (ctx) => {
248
287
  try {
249
- const sessionId = ctx.req.header('mcp-session-id');
250
- if (!sessionId) {
288
+ const transport = await _getTransport(ctx);
289
+ if (!transport) {
251
290
  return ctx.json(MCP_ERRORS.sessionNotFound, 400);
252
291
  }
253
- const mcpSession = await _getMCPServerSession(sessionId);
254
- if (!mcpSession) {
255
- return ctx.json(MCP_ERRORS.sessionNotFound, 400);
256
- }
257
- await mcpSession.transport.close();
292
+ await transport.close();
258
293
  return ctx.json({ ok: true }, 200);
259
294
  }
260
295
  catch (err) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}