browser-devtools-mcp 0.1.4 → 0.1.5

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 (56) hide show
  1. package/README.md +535 -7
  2. package/SECURITY.md +136 -0
  3. package/dist/cli.js +1847 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/config.js +5 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/context.js +7 -7
  8. package/dist/context.js.map +1 -1
  9. package/dist/daemon-server.js +338 -0
  10. package/dist/daemon-server.js.map +1 -0
  11. package/dist/index.js +3 -260
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server.js +401 -0
  14. package/dist/mcp-server.js.map +1 -0
  15. package/dist/tools/a11y/take-aria-snapshot.js.map +1 -1
  16. package/dist/tools/a11y/take-ax-tree-snapshot.js.map +1 -1
  17. package/dist/tools/content/get-as-html.js.map +1 -1
  18. package/dist/tools/content/get-as-text.js.map +1 -1
  19. package/dist/tools/content/save-as-pdf.js.map +1 -1
  20. package/dist/tools/content/take-screenshot.js.map +1 -1
  21. package/dist/tools/figma/compare-page-with-design.js.map +1 -1
  22. package/dist/tools/interaction/click.js.map +1 -1
  23. package/dist/tools/interaction/drag.js.map +1 -1
  24. package/dist/tools/interaction/fill.js.map +1 -1
  25. package/dist/tools/interaction/hover.js.map +1 -1
  26. package/dist/tools/interaction/press-key.js.map +1 -1
  27. package/dist/tools/interaction/resize-viewport.js.map +1 -1
  28. package/dist/tools/interaction/resize-window.js.map +1 -1
  29. package/dist/tools/interaction/scroll.js.map +1 -1
  30. package/dist/tools/interaction/select.js.map +1 -1
  31. package/dist/tools/navigation/go-back.js.map +1 -1
  32. package/dist/tools/navigation/go-forward.js.map +1 -1
  33. package/dist/tools/navigation/go-to.js.map +1 -1
  34. package/dist/tools/navigation/reload.js.map +1 -1
  35. package/dist/tools/o11y/get-console-messages.js.map +1 -1
  36. package/dist/tools/o11y/get-http-requests.js.map +1 -1
  37. package/dist/tools/o11y/get-trace-id.js.map +1 -1
  38. package/dist/tools/o11y/get-web-vitals.js.map +1 -1
  39. package/dist/tools/o11y/new-trace-id.js.map +1 -1
  40. package/dist/tools/o11y/set-trace-id.js.map +1 -1
  41. package/dist/tools/react/get-component-for-element.js.map +1 -1
  42. package/dist/tools/react/get-element-for-component.js.map +1 -1
  43. package/dist/tools/run/js-in-browser.js.map +1 -1
  44. package/dist/tools/run/js-in-sandbox.js.map +1 -1
  45. package/dist/tools/stub/clear.js.map +1 -1
  46. package/dist/tools/stub/intercept-http-request.js.map +1 -1
  47. package/dist/tools/stub/list.js.map +1 -1
  48. package/dist/tools/stub/mock-http-response.js.map +1 -1
  49. package/dist/tools/sync/wait-for-network-idle.js.map +1 -1
  50. package/dist/tools/tool-executor.js +1 -1
  51. package/dist/tools/tool-executor.js.map +1 -1
  52. package/dist/utils/cli-utils.js +253 -0
  53. package/dist/utils/cli-utils.js.map +1 -0
  54. package/package.json +6 -3
  55. package/dist/server.js +0 -154
  56. package/dist/server.js.map +0 -1
package/dist/server.js DELETED
@@ -1,154 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.createServer = createServer;
37
- exports.createAndConnectServer = createAndConnectServer;
38
- exports.createSession = createSession;
39
- const logger = __importStar(require("./logger"));
40
- const server_info_1 = require("./server-info");
41
- const tools_1 = require("./tools");
42
- const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
43
- function _getImage(response) {
44
- if ('image' in response &&
45
- response.image !== null &&
46
- typeof response.image === 'object' &&
47
- 'data' in response.image &&
48
- 'mimeType' in response.image &&
49
- Buffer.isBuffer(response.image.data) &&
50
- typeof response.image.mimeType === 'string') {
51
- const image = response.image;
52
- delete response.image;
53
- return image;
54
- }
55
- }
56
- function _toResponse(response) {
57
- const image = _getImage(response);
58
- const contents = [];
59
- contents.push({
60
- type: 'text',
61
- text: JSON.stringify(response, null, 2),
62
- });
63
- if (image) {
64
- if (image.mimeType === 'image/svg+xml') {
65
- contents.push({
66
- type: 'text',
67
- text: image.data.toString(),
68
- mimeType: image.mimeType,
69
- });
70
- }
71
- else {
72
- contents.push({
73
- type: 'image',
74
- data: image.data.toString('base64'),
75
- mimeType: image.mimeType,
76
- });
77
- }
78
- }
79
- return {
80
- content: contents,
81
- structuredContent: response,
82
- isError: false,
83
- };
84
- }
85
- function createServer(opts) {
86
- const server = new mcp_js_1.McpServer({
87
- name: server_info_1.SERVER_NAME,
88
- version: server_info_1.SERVER_VERSION,
89
- }, {
90
- capabilities: {
91
- resources: {},
92
- tools: {},
93
- },
94
- instructions: (0, server_info_1.getServerInstructions)(),
95
- });
96
- const messages = [];
97
- messages.push({
98
- role: 'user',
99
- content: {
100
- type: 'text',
101
- text: server_info_1.UI_DEBUGGING_POLICY,
102
- },
103
- });
104
- server.registerPrompt('default_system', {
105
- title: 'Default System Prompt',
106
- description: 'General behavior for the AI assistant',
107
- }, async () => ({
108
- description: "Defines the assistant's general reasoning and tool usage rules.",
109
- messages,
110
- }));
111
- const toolExecutor = new tools_1.ToolExecutor(() => opts.sessionIdProvider ? opts.sessionIdProvider() : '');
112
- const createToolCallback = (tool) => {
113
- return async (args) => {
114
- try {
115
- const response = await toolExecutor.executeTool(tool, args);
116
- return _toResponse(response);
117
- }
118
- catch (error) {
119
- return {
120
- content: [
121
- { type: 'text', text: `Error: ${error.message}` },
122
- ],
123
- isError: true,
124
- };
125
- }
126
- };
127
- };
128
- tools_1.tools.forEach((t) => {
129
- logger.debug(`Registering tool ${t.name()} ...`);
130
- server.registerTool(t.name(), {
131
- description: t.description(),
132
- inputSchema: t.inputSchema(),
133
- outputSchema: t.outputSchema(),
134
- }, createToolCallback(t));
135
- });
136
- return server;
137
- }
138
- async function createAndConnectServer(transport, opts) {
139
- const server = createServer({
140
- config: opts.config,
141
- sessionIdProvider: () => transport.sessionId,
142
- });
143
- await server.connect(transport);
144
- return server;
145
- }
146
- function createSession(transport, server) {
147
- return {
148
- transport,
149
- server,
150
- closed: false,
151
- lastActiveAt: Date.now(),
152
- };
153
- }
154
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}