@kryptosai/mcp-observatory 0.23.0 → 0.24.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 -7
- package/dist/src/commands/init-ci.d.ts +3 -0
- package/dist/src/commands/init-ci.js +24 -12
- package/dist/src/commands/init-ci.js.map +1 -1
- package/dist/src/reporters/pr-comment.js +6 -2
- package/dist/src/reporters/pr-comment.js.map +1 -1
- package/docs/certification-campaign-template.md +2 -2
- package/docs/mcp-safety-report-latest.md +12 -7
- package/docs/mcp-server-safety-index.md +56 -80
- package/docs/methodology.md +90 -0
- package/docs/metrics-dashboard.md +105 -0
- package/docs/paid-pilot-offer.md +21 -5
- package/docs/project-case-study.md +12 -8
- package/docs/proof.md +28 -15
- package/docs/public-post-drafts.md +18 -6
- package/docs/publish-readiness.md +1 -5
- package/docs/reference-evaluations.md +1 -1
- package/docs/safety-index/artifacts/antv-chart-server.json +2765 -0
- package/docs/safety-index/artifacts/antv-chart-server.md +156 -0
- package/docs/safety-index/artifacts/browsermcp-server.json +416 -0
- package/docs/safety-index/artifacts/browsermcp-server.md +163 -0
- package/docs/safety-index/artifacts/context7-server.json +286 -0
- package/docs/safety-index/artifacts/context7-server.md +163 -0
- package/docs/safety-index/artifacts/everything-server.json +482 -0
- package/docs/safety-index/artifacts/everything-server.md +163 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.json +955 -0
- package/docs/safety-index/artifacts/executeautomation-playwright-server.md +163 -0
- package/docs/safety-index/artifacts/filesystem-server.json +583 -0
- package/docs/safety-index/artifacts/filesystem-server.md +156 -0
- package/docs/safety-index/artifacts/memory-server.json +469 -0
- package/docs/safety-index/artifacts/memory-server.md +156 -0
- package/docs/safety-index/artifacts/opentofu-server.json +387 -0
- package/docs/safety-index/artifacts/opentofu-server.md +163 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.json +919 -0
- package/docs/safety-index/artifacts/playwright-mcp-server.md +156 -0
- package/docs/safety-index/artifacts/promptopia-server.json +442 -0
- package/docs/safety-index/artifacts/promptopia-server.md +156 -0
- package/docs/safety-index/artifacts/puppeteer-server.json +377 -0
- package/docs/safety-index/artifacts/puppeteer-server.md +163 -0
- package/docs/safety-index/artifacts/ref-tools-server.json +262 -0
- package/docs/safety-index/artifacts/ref-tools-server.md +156 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.json +286 -0
- package/docs/safety-index/artifacts/sequential-thinking-server.md +156 -0
- package/docs/safety-index/maintainer-note-template.md +25 -0
- package/docs/safety-index/targets.json +192 -0
- package/package.json +12 -9
|
@@ -0,0 +1,955 @@
|
|
|
1
|
+
{
|
|
2
|
+
"artifactType": "run",
|
|
3
|
+
"schemaVersion": "1.0.0",
|
|
4
|
+
"gate": "fail",
|
|
5
|
+
"runId": "run_2026-06-24T020744894Z_ce4e4a75",
|
|
6
|
+
"createdAt": "2026-06-24T02:07:44.894Z",
|
|
7
|
+
"toolVersion": "0.24.0",
|
|
8
|
+
"target": {
|
|
9
|
+
"targetId": "executeautomation-playwright-server",
|
|
10
|
+
"adapter": "local-process",
|
|
11
|
+
"command": "npx",
|
|
12
|
+
"args": [
|
|
13
|
+
"-y",
|
|
14
|
+
"@executeautomation/playwright-mcp-server"
|
|
15
|
+
],
|
|
16
|
+
"cwd": ".",
|
|
17
|
+
"metadata": {
|
|
18
|
+
"package": "@executeautomation/playwright-mcp-server",
|
|
19
|
+
"purpose": "mcp-safety-index",
|
|
20
|
+
"riskClass": "Browser control",
|
|
21
|
+
"failureClass": "Startup/listing reproducibility",
|
|
22
|
+
"whyItMatters": "A public browser automation package that fails basic listing checks shows why reproducible readiness evidence matters."
|
|
23
|
+
},
|
|
24
|
+
"serverName": "playwright-mcp",
|
|
25
|
+
"serverVersion": "1.0.11"
|
|
26
|
+
},
|
|
27
|
+
"environment": {
|
|
28
|
+
"platform": "darwin 25.5.0",
|
|
29
|
+
"nodeVersion": "v22.22.1"
|
|
30
|
+
},
|
|
31
|
+
"summary": {
|
|
32
|
+
"total": 7,
|
|
33
|
+
"pass": 3,
|
|
34
|
+
"fail": 2,
|
|
35
|
+
"partial": 1,
|
|
36
|
+
"unsupported": 1,
|
|
37
|
+
"flaky": 0,
|
|
38
|
+
"skipped": 0,
|
|
39
|
+
"gate": "fail"
|
|
40
|
+
},
|
|
41
|
+
"checks": [
|
|
42
|
+
{
|
|
43
|
+
"id": "tools",
|
|
44
|
+
"capability": "tools",
|
|
45
|
+
"status": "pass",
|
|
46
|
+
"durationMs": 3.1655419999988226,
|
|
47
|
+
"message": "Advertised capability responded with the minimal expected shape (33 items).",
|
|
48
|
+
"evidence": [
|
|
49
|
+
{
|
|
50
|
+
"endpoint": "tools/list",
|
|
51
|
+
"advertised": true,
|
|
52
|
+
"responded": true,
|
|
53
|
+
"minimalShapePresent": true,
|
|
54
|
+
"itemCount": 33,
|
|
55
|
+
"identifiers": [
|
|
56
|
+
"start_codegen_session",
|
|
57
|
+
"end_codegen_session",
|
|
58
|
+
"get_codegen_session",
|
|
59
|
+
"clear_codegen_session",
|
|
60
|
+
"playwright_navigate",
|
|
61
|
+
"playwright_screenshot",
|
|
62
|
+
"playwright_click",
|
|
63
|
+
"playwright_iframe_click",
|
|
64
|
+
"playwright_iframe_fill",
|
|
65
|
+
"playwright_fill",
|
|
66
|
+
"playwright_select",
|
|
67
|
+
"playwright_hover",
|
|
68
|
+
"playwright_upload_file",
|
|
69
|
+
"playwright_evaluate",
|
|
70
|
+
"playwright_console_logs",
|
|
71
|
+
"playwright_resize",
|
|
72
|
+
"playwright_close",
|
|
73
|
+
"playwright_get",
|
|
74
|
+
"playwright_post",
|
|
75
|
+
"playwright_put",
|
|
76
|
+
"playwright_patch",
|
|
77
|
+
"playwright_delete",
|
|
78
|
+
"playwright_expect_response",
|
|
79
|
+
"playwright_assert_response",
|
|
80
|
+
"playwright_custom_user_agent",
|
|
81
|
+
"playwright_get_visible_text",
|
|
82
|
+
"playwright_get_visible_html",
|
|
83
|
+
"playwright_go_back",
|
|
84
|
+
"playwright_go_forward",
|
|
85
|
+
"playwright_drag",
|
|
86
|
+
"playwright_press_key",
|
|
87
|
+
"playwright_save_as_pdf",
|
|
88
|
+
"playwright_click_and_switch_tab"
|
|
89
|
+
],
|
|
90
|
+
"diagnostics": [],
|
|
91
|
+
"schemas": {
|
|
92
|
+
"start_codegen_session": {
|
|
93
|
+
"type": "object",
|
|
94
|
+
"properties": {
|
|
95
|
+
"options": {
|
|
96
|
+
"type": "object",
|
|
97
|
+
"description": "Code generation options",
|
|
98
|
+
"properties": {
|
|
99
|
+
"outputPath": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"description": "Directory path where generated tests will be saved (use absolute path)"
|
|
102
|
+
},
|
|
103
|
+
"testNamePrefix": {
|
|
104
|
+
"type": "string",
|
|
105
|
+
"description": "Prefix to use for generated test names (default: 'GeneratedTest')"
|
|
106
|
+
},
|
|
107
|
+
"includeComments": {
|
|
108
|
+
"type": "boolean",
|
|
109
|
+
"description": "Whether to include descriptive comments in generated tests"
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"required": [
|
|
113
|
+
"outputPath"
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"required": [
|
|
118
|
+
"options"
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
"end_codegen_session": {
|
|
122
|
+
"type": "object",
|
|
123
|
+
"properties": {
|
|
124
|
+
"sessionId": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"description": "ID of the session to end"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"required": [
|
|
130
|
+
"sessionId"
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
"get_codegen_session": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"properties": {
|
|
136
|
+
"sessionId": {
|
|
137
|
+
"type": "string",
|
|
138
|
+
"description": "ID of the session to retrieve"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
"required": [
|
|
142
|
+
"sessionId"
|
|
143
|
+
]
|
|
144
|
+
},
|
|
145
|
+
"clear_codegen_session": {
|
|
146
|
+
"type": "object",
|
|
147
|
+
"properties": {
|
|
148
|
+
"sessionId": {
|
|
149
|
+
"type": "string",
|
|
150
|
+
"description": "ID of the session to clear"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"sessionId"
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"playwright_navigate": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"properties": {
|
|
160
|
+
"url": {
|
|
161
|
+
"type": "string",
|
|
162
|
+
"description": "URL to navigate to the website specified"
|
|
163
|
+
},
|
|
164
|
+
"browserType": {
|
|
165
|
+
"type": "string",
|
|
166
|
+
"description": "Browser type to use (chromium, firefox, webkit). Defaults to chromium",
|
|
167
|
+
"enum": [
|
|
168
|
+
"chromium",
|
|
169
|
+
"firefox",
|
|
170
|
+
"webkit"
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
"width": {
|
|
174
|
+
"type": "number",
|
|
175
|
+
"description": "Viewport width in pixels (default: 1280)"
|
|
176
|
+
},
|
|
177
|
+
"height": {
|
|
178
|
+
"type": "number",
|
|
179
|
+
"description": "Viewport height in pixels (default: 720)"
|
|
180
|
+
},
|
|
181
|
+
"timeout": {
|
|
182
|
+
"type": "number",
|
|
183
|
+
"description": "Navigation timeout in milliseconds"
|
|
184
|
+
},
|
|
185
|
+
"waitUntil": {
|
|
186
|
+
"type": "string",
|
|
187
|
+
"description": "Navigation wait condition"
|
|
188
|
+
},
|
|
189
|
+
"headless": {
|
|
190
|
+
"type": "boolean",
|
|
191
|
+
"description": "Run browser in headless mode (default: false)"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"required": [
|
|
195
|
+
"url"
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
"playwright_screenshot": {
|
|
199
|
+
"type": "object",
|
|
200
|
+
"properties": {
|
|
201
|
+
"name": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "Name for the screenshot"
|
|
204
|
+
},
|
|
205
|
+
"selector": {
|
|
206
|
+
"type": "string",
|
|
207
|
+
"description": "CSS selector for element to screenshot"
|
|
208
|
+
},
|
|
209
|
+
"width": {
|
|
210
|
+
"type": "number",
|
|
211
|
+
"description": "Width in pixels (default: 800)"
|
|
212
|
+
},
|
|
213
|
+
"height": {
|
|
214
|
+
"type": "number",
|
|
215
|
+
"description": "Height in pixels (default: 600)"
|
|
216
|
+
},
|
|
217
|
+
"storeBase64": {
|
|
218
|
+
"type": "boolean",
|
|
219
|
+
"description": "Store screenshot in base64 format (default: true)"
|
|
220
|
+
},
|
|
221
|
+
"fullPage": {
|
|
222
|
+
"type": "boolean",
|
|
223
|
+
"description": "Store screenshot of the entire page (default: false)"
|
|
224
|
+
},
|
|
225
|
+
"savePng": {
|
|
226
|
+
"type": "boolean",
|
|
227
|
+
"description": "Save screenshot as PNG file (default: false)"
|
|
228
|
+
},
|
|
229
|
+
"downloadsDir": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"description": "Custom downloads directory path (default: user's Downloads folder)"
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"required": [
|
|
235
|
+
"name"
|
|
236
|
+
]
|
|
237
|
+
},
|
|
238
|
+
"playwright_click": {
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"selector": {
|
|
242
|
+
"type": "string",
|
|
243
|
+
"description": "CSS selector for the element to click"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"required": [
|
|
247
|
+
"selector"
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
"playwright_iframe_click": {
|
|
251
|
+
"type": "object",
|
|
252
|
+
"properties": {
|
|
253
|
+
"iframeSelector": {
|
|
254
|
+
"type": "string",
|
|
255
|
+
"description": "CSS selector for the iframe containing the element to click"
|
|
256
|
+
},
|
|
257
|
+
"selector": {
|
|
258
|
+
"type": "string",
|
|
259
|
+
"description": "CSS selector for the element to click"
|
|
260
|
+
}
|
|
261
|
+
},
|
|
262
|
+
"required": [
|
|
263
|
+
"iframeSelector",
|
|
264
|
+
"selector"
|
|
265
|
+
]
|
|
266
|
+
},
|
|
267
|
+
"playwright_iframe_fill": {
|
|
268
|
+
"type": "object",
|
|
269
|
+
"properties": {
|
|
270
|
+
"iframeSelector": {
|
|
271
|
+
"type": "string",
|
|
272
|
+
"description": "CSS selector for the iframe containing the element to fill"
|
|
273
|
+
},
|
|
274
|
+
"selector": {
|
|
275
|
+
"type": "string",
|
|
276
|
+
"description": "CSS selector for the element to fill"
|
|
277
|
+
},
|
|
278
|
+
"value": {
|
|
279
|
+
"type": "string",
|
|
280
|
+
"description": "Value to fill"
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"required": [
|
|
284
|
+
"iframeSelector",
|
|
285
|
+
"selector",
|
|
286
|
+
"value"
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"playwright_fill": {
|
|
290
|
+
"type": "object",
|
|
291
|
+
"properties": {
|
|
292
|
+
"selector": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "CSS selector for input field"
|
|
295
|
+
},
|
|
296
|
+
"value": {
|
|
297
|
+
"type": "string",
|
|
298
|
+
"description": "Value to fill"
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"required": [
|
|
302
|
+
"selector",
|
|
303
|
+
"value"
|
|
304
|
+
]
|
|
305
|
+
},
|
|
306
|
+
"playwright_select": {
|
|
307
|
+
"type": "object",
|
|
308
|
+
"properties": {
|
|
309
|
+
"selector": {
|
|
310
|
+
"type": "string",
|
|
311
|
+
"description": "CSS selector for element to select"
|
|
312
|
+
},
|
|
313
|
+
"value": {
|
|
314
|
+
"type": "string",
|
|
315
|
+
"description": "Value to select"
|
|
316
|
+
}
|
|
317
|
+
},
|
|
318
|
+
"required": [
|
|
319
|
+
"selector",
|
|
320
|
+
"value"
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
"playwright_hover": {
|
|
324
|
+
"type": "object",
|
|
325
|
+
"properties": {
|
|
326
|
+
"selector": {
|
|
327
|
+
"type": "string",
|
|
328
|
+
"description": "CSS selector for element to hover"
|
|
329
|
+
}
|
|
330
|
+
},
|
|
331
|
+
"required": [
|
|
332
|
+
"selector"
|
|
333
|
+
]
|
|
334
|
+
},
|
|
335
|
+
"playwright_upload_file": {
|
|
336
|
+
"type": "object",
|
|
337
|
+
"properties": {
|
|
338
|
+
"selector": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"description": "CSS selector for the file input element"
|
|
341
|
+
},
|
|
342
|
+
"filePath": {
|
|
343
|
+
"type": "string",
|
|
344
|
+
"description": "Absolute path to the file to upload"
|
|
345
|
+
}
|
|
346
|
+
},
|
|
347
|
+
"required": [
|
|
348
|
+
"selector",
|
|
349
|
+
"filePath"
|
|
350
|
+
]
|
|
351
|
+
},
|
|
352
|
+
"playwright_evaluate": {
|
|
353
|
+
"type": "object",
|
|
354
|
+
"properties": {
|
|
355
|
+
"script": {
|
|
356
|
+
"type": "string",
|
|
357
|
+
"description": "JavaScript code to execute"
|
|
358
|
+
}
|
|
359
|
+
},
|
|
360
|
+
"required": [
|
|
361
|
+
"script"
|
|
362
|
+
]
|
|
363
|
+
},
|
|
364
|
+
"playwright_console_logs": {
|
|
365
|
+
"type": "object",
|
|
366
|
+
"properties": {
|
|
367
|
+
"type": {
|
|
368
|
+
"type": "string",
|
|
369
|
+
"description": "Type of logs to retrieve (all, error, warning, log, info, debug, exception)",
|
|
370
|
+
"enum": [
|
|
371
|
+
"all",
|
|
372
|
+
"error",
|
|
373
|
+
"warning",
|
|
374
|
+
"log",
|
|
375
|
+
"info",
|
|
376
|
+
"debug",
|
|
377
|
+
"exception"
|
|
378
|
+
]
|
|
379
|
+
},
|
|
380
|
+
"search": {
|
|
381
|
+
"type": "string",
|
|
382
|
+
"description": "Text to search for in logs (handles text with square brackets)"
|
|
383
|
+
},
|
|
384
|
+
"limit": {
|
|
385
|
+
"type": "number",
|
|
386
|
+
"description": "Maximum number of logs to return"
|
|
387
|
+
},
|
|
388
|
+
"clear": {
|
|
389
|
+
"type": "boolean",
|
|
390
|
+
"description": "Whether to clear logs after retrieval (default: false)"
|
|
391
|
+
}
|
|
392
|
+
},
|
|
393
|
+
"required": []
|
|
394
|
+
},
|
|
395
|
+
"playwright_resize": {
|
|
396
|
+
"type": "object",
|
|
397
|
+
"properties": {
|
|
398
|
+
"device": {
|
|
399
|
+
"type": "string",
|
|
400
|
+
"description": "Device preset name (e.g., 'iPhone 13', 'iPad Pro 11', 'Pixel 7', 'Galaxy S24', 'Desktop Chrome'). Automatically configures viewport, user-agent, and device capabilities. Use playwright.devices to see all available devices."
|
|
401
|
+
},
|
|
402
|
+
"width": {
|
|
403
|
+
"type": "number",
|
|
404
|
+
"description": "Viewport width in pixels (for manual resize without device preset)"
|
|
405
|
+
},
|
|
406
|
+
"height": {
|
|
407
|
+
"type": "number",
|
|
408
|
+
"description": "Viewport height in pixels (for manual resize without device preset)"
|
|
409
|
+
},
|
|
410
|
+
"orientation": {
|
|
411
|
+
"type": "string",
|
|
412
|
+
"description": "Device orientation: 'portrait' or 'landscape' (only applies when using device preset)",
|
|
413
|
+
"enum": [
|
|
414
|
+
"portrait",
|
|
415
|
+
"landscape"
|
|
416
|
+
]
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
"required": []
|
|
420
|
+
},
|
|
421
|
+
"playwright_close": {
|
|
422
|
+
"type": "object",
|
|
423
|
+
"properties": {},
|
|
424
|
+
"required": []
|
|
425
|
+
},
|
|
426
|
+
"playwright_get": {
|
|
427
|
+
"type": "object",
|
|
428
|
+
"properties": {
|
|
429
|
+
"url": {
|
|
430
|
+
"type": "string",
|
|
431
|
+
"description": "URL to perform GET operation"
|
|
432
|
+
},
|
|
433
|
+
"token": {
|
|
434
|
+
"type": "string",
|
|
435
|
+
"description": "Bearer token for authorization"
|
|
436
|
+
},
|
|
437
|
+
"headers": {
|
|
438
|
+
"type": "object",
|
|
439
|
+
"description": "Additional headers to include in the request",
|
|
440
|
+
"additionalProperties": {
|
|
441
|
+
"type": "string"
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"required": [
|
|
446
|
+
"url"
|
|
447
|
+
]
|
|
448
|
+
},
|
|
449
|
+
"playwright_post": {
|
|
450
|
+
"type": "object",
|
|
451
|
+
"properties": {
|
|
452
|
+
"url": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"description": "URL to perform POST operation"
|
|
455
|
+
},
|
|
456
|
+
"value": {
|
|
457
|
+
"type": "string",
|
|
458
|
+
"description": "Data to post in the body"
|
|
459
|
+
},
|
|
460
|
+
"token": {
|
|
461
|
+
"type": "string",
|
|
462
|
+
"description": "Bearer token for authorization"
|
|
463
|
+
},
|
|
464
|
+
"headers": {
|
|
465
|
+
"type": "object",
|
|
466
|
+
"description": "Additional headers to include in the request",
|
|
467
|
+
"additionalProperties": {
|
|
468
|
+
"type": "string"
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
},
|
|
472
|
+
"required": [
|
|
473
|
+
"url",
|
|
474
|
+
"value"
|
|
475
|
+
]
|
|
476
|
+
},
|
|
477
|
+
"playwright_put": {
|
|
478
|
+
"type": "object",
|
|
479
|
+
"properties": {
|
|
480
|
+
"url": {
|
|
481
|
+
"type": "string",
|
|
482
|
+
"description": "URL to perform PUT operation"
|
|
483
|
+
},
|
|
484
|
+
"value": {
|
|
485
|
+
"type": "string",
|
|
486
|
+
"description": "Data to PUT in the body"
|
|
487
|
+
},
|
|
488
|
+
"token": {
|
|
489
|
+
"type": "string",
|
|
490
|
+
"description": "Bearer token for authorization"
|
|
491
|
+
},
|
|
492
|
+
"headers": {
|
|
493
|
+
"type": "object",
|
|
494
|
+
"description": "Additional headers to include in the request",
|
|
495
|
+
"additionalProperties": {
|
|
496
|
+
"type": "string"
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
},
|
|
500
|
+
"required": [
|
|
501
|
+
"url",
|
|
502
|
+
"value"
|
|
503
|
+
]
|
|
504
|
+
},
|
|
505
|
+
"playwright_patch": {
|
|
506
|
+
"type": "object",
|
|
507
|
+
"properties": {
|
|
508
|
+
"url": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"description": "URL to perform PATCH operation"
|
|
511
|
+
},
|
|
512
|
+
"value": {
|
|
513
|
+
"type": "string",
|
|
514
|
+
"description": "Data to PATCH in the body"
|
|
515
|
+
},
|
|
516
|
+
"token": {
|
|
517
|
+
"type": "string",
|
|
518
|
+
"description": "Bearer token for authorization"
|
|
519
|
+
},
|
|
520
|
+
"headers": {
|
|
521
|
+
"type": "object",
|
|
522
|
+
"description": "Additional headers to include in the request",
|
|
523
|
+
"additionalProperties": {
|
|
524
|
+
"type": "string"
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
},
|
|
528
|
+
"required": [
|
|
529
|
+
"url",
|
|
530
|
+
"value"
|
|
531
|
+
]
|
|
532
|
+
},
|
|
533
|
+
"playwright_delete": {
|
|
534
|
+
"type": "object",
|
|
535
|
+
"properties": {
|
|
536
|
+
"url": {
|
|
537
|
+
"type": "string",
|
|
538
|
+
"description": "URL to perform DELETE operation"
|
|
539
|
+
},
|
|
540
|
+
"token": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"description": "Bearer token for authorization"
|
|
543
|
+
},
|
|
544
|
+
"headers": {
|
|
545
|
+
"type": "object",
|
|
546
|
+
"description": "Additional headers to include in the request",
|
|
547
|
+
"additionalProperties": {
|
|
548
|
+
"type": "string"
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
"required": [
|
|
553
|
+
"url"
|
|
554
|
+
]
|
|
555
|
+
},
|
|
556
|
+
"playwright_expect_response": {
|
|
557
|
+
"type": "object",
|
|
558
|
+
"properties": {
|
|
559
|
+
"id": {
|
|
560
|
+
"type": "string",
|
|
561
|
+
"description": "Unique & arbitrary identifier to be used for retrieving this response later with `Playwright_assert_response`."
|
|
562
|
+
},
|
|
563
|
+
"url": {
|
|
564
|
+
"type": "string",
|
|
565
|
+
"description": "URL pattern to match in the response."
|
|
566
|
+
}
|
|
567
|
+
},
|
|
568
|
+
"required": [
|
|
569
|
+
"id",
|
|
570
|
+
"url"
|
|
571
|
+
]
|
|
572
|
+
},
|
|
573
|
+
"playwright_assert_response": {
|
|
574
|
+
"type": "object",
|
|
575
|
+
"properties": {
|
|
576
|
+
"id": {
|
|
577
|
+
"type": "string",
|
|
578
|
+
"description": "Identifier of the HTTP response initially expected using `Playwright_expect_response`."
|
|
579
|
+
},
|
|
580
|
+
"value": {
|
|
581
|
+
"type": "string",
|
|
582
|
+
"description": "Data to expect in the body of the HTTP response. If provided, the assertion will fail if this value is not found in the response body."
|
|
583
|
+
}
|
|
584
|
+
},
|
|
585
|
+
"required": [
|
|
586
|
+
"id"
|
|
587
|
+
]
|
|
588
|
+
},
|
|
589
|
+
"playwright_custom_user_agent": {
|
|
590
|
+
"type": "object",
|
|
591
|
+
"properties": {
|
|
592
|
+
"userAgent": {
|
|
593
|
+
"type": "string",
|
|
594
|
+
"description": "Custom User Agent for the Playwright browser instance"
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
"required": [
|
|
598
|
+
"userAgent"
|
|
599
|
+
]
|
|
600
|
+
},
|
|
601
|
+
"playwright_get_visible_text": {
|
|
602
|
+
"type": "object",
|
|
603
|
+
"properties": {},
|
|
604
|
+
"required": []
|
|
605
|
+
},
|
|
606
|
+
"playwright_get_visible_html": {
|
|
607
|
+
"type": "object",
|
|
608
|
+
"properties": {
|
|
609
|
+
"selector": {
|
|
610
|
+
"type": "string",
|
|
611
|
+
"description": "CSS selector to limit the HTML to a specific container"
|
|
612
|
+
},
|
|
613
|
+
"removeScripts": {
|
|
614
|
+
"type": "boolean",
|
|
615
|
+
"description": "Remove all script tags from the HTML (default: true)"
|
|
616
|
+
},
|
|
617
|
+
"removeComments": {
|
|
618
|
+
"type": "boolean",
|
|
619
|
+
"description": "Remove all HTML comments (default: false)"
|
|
620
|
+
},
|
|
621
|
+
"removeStyles": {
|
|
622
|
+
"type": "boolean",
|
|
623
|
+
"description": "Remove all style tags from the HTML (default: false)"
|
|
624
|
+
},
|
|
625
|
+
"removeMeta": {
|
|
626
|
+
"type": "boolean",
|
|
627
|
+
"description": "Remove all meta tags from the HTML (default: false)"
|
|
628
|
+
},
|
|
629
|
+
"cleanHtml": {
|
|
630
|
+
"type": "boolean",
|
|
631
|
+
"description": "Perform comprehensive HTML cleaning (default: false)"
|
|
632
|
+
},
|
|
633
|
+
"minify": {
|
|
634
|
+
"type": "boolean",
|
|
635
|
+
"description": "Minify the HTML output (default: false)"
|
|
636
|
+
},
|
|
637
|
+
"maxLength": {
|
|
638
|
+
"type": "number",
|
|
639
|
+
"description": "Maximum number of characters to return (default: 20000)"
|
|
640
|
+
}
|
|
641
|
+
},
|
|
642
|
+
"required": []
|
|
643
|
+
},
|
|
644
|
+
"playwright_go_back": {
|
|
645
|
+
"type": "object",
|
|
646
|
+
"properties": {},
|
|
647
|
+
"required": []
|
|
648
|
+
},
|
|
649
|
+
"playwright_go_forward": {
|
|
650
|
+
"type": "object",
|
|
651
|
+
"properties": {},
|
|
652
|
+
"required": []
|
|
653
|
+
},
|
|
654
|
+
"playwright_drag": {
|
|
655
|
+
"type": "object",
|
|
656
|
+
"properties": {
|
|
657
|
+
"sourceSelector": {
|
|
658
|
+
"type": "string",
|
|
659
|
+
"description": "CSS selector for the element to drag"
|
|
660
|
+
},
|
|
661
|
+
"targetSelector": {
|
|
662
|
+
"type": "string",
|
|
663
|
+
"description": "CSS selector for the target location"
|
|
664
|
+
}
|
|
665
|
+
},
|
|
666
|
+
"required": [
|
|
667
|
+
"sourceSelector",
|
|
668
|
+
"targetSelector"
|
|
669
|
+
]
|
|
670
|
+
},
|
|
671
|
+
"playwright_press_key": {
|
|
672
|
+
"type": "object",
|
|
673
|
+
"properties": {
|
|
674
|
+
"key": {
|
|
675
|
+
"type": "string",
|
|
676
|
+
"description": "Key to press (e.g. 'Enter', 'ArrowDown', 'a')"
|
|
677
|
+
},
|
|
678
|
+
"selector": {
|
|
679
|
+
"type": "string",
|
|
680
|
+
"description": "Optional CSS selector to focus before pressing key"
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
"required": [
|
|
684
|
+
"key"
|
|
685
|
+
]
|
|
686
|
+
},
|
|
687
|
+
"playwright_save_as_pdf": {
|
|
688
|
+
"type": "object",
|
|
689
|
+
"properties": {
|
|
690
|
+
"outputPath": {
|
|
691
|
+
"type": "string",
|
|
692
|
+
"description": "Directory path where PDF will be saved"
|
|
693
|
+
},
|
|
694
|
+
"filename": {
|
|
695
|
+
"type": "string",
|
|
696
|
+
"description": "Name of the PDF file (default: page.pdf)"
|
|
697
|
+
},
|
|
698
|
+
"format": {
|
|
699
|
+
"type": "string",
|
|
700
|
+
"description": "Page format (e.g. 'A4', 'Letter')"
|
|
701
|
+
},
|
|
702
|
+
"printBackground": {
|
|
703
|
+
"type": "boolean",
|
|
704
|
+
"description": "Whether to print background graphics"
|
|
705
|
+
},
|
|
706
|
+
"margin": {
|
|
707
|
+
"type": "object",
|
|
708
|
+
"description": "Page margins",
|
|
709
|
+
"properties": {
|
|
710
|
+
"top": {
|
|
711
|
+
"type": "string"
|
|
712
|
+
},
|
|
713
|
+
"right": {
|
|
714
|
+
"type": "string"
|
|
715
|
+
},
|
|
716
|
+
"bottom": {
|
|
717
|
+
"type": "string"
|
|
718
|
+
},
|
|
719
|
+
"left": {
|
|
720
|
+
"type": "string"
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
}
|
|
724
|
+
},
|
|
725
|
+
"required": [
|
|
726
|
+
"outputPath"
|
|
727
|
+
]
|
|
728
|
+
},
|
|
729
|
+
"playwright_click_and_switch_tab": {
|
|
730
|
+
"type": "object",
|
|
731
|
+
"properties": {
|
|
732
|
+
"selector": {
|
|
733
|
+
"type": "string",
|
|
734
|
+
"description": "CSS selector for the link to click"
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
"required": [
|
|
738
|
+
"selector"
|
|
739
|
+
]
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
}
|
|
743
|
+
]
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
"id": "prompts",
|
|
747
|
+
"capability": "prompts",
|
|
748
|
+
"status": "unsupported",
|
|
749
|
+
"durationMs": 0.002541000001656357,
|
|
750
|
+
"message": "Prompts are not advertised by the target.",
|
|
751
|
+
"evidence": [
|
|
752
|
+
{
|
|
753
|
+
"endpoint": "prompts/list",
|
|
754
|
+
"advertised": false,
|
|
755
|
+
"responded": false,
|
|
756
|
+
"minimalShapePresent": false,
|
|
757
|
+
"diagnostics": []
|
|
758
|
+
}
|
|
759
|
+
]
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
"id": "resources",
|
|
763
|
+
"capability": "resources",
|
|
764
|
+
"status": "pass",
|
|
765
|
+
"durationMs": 1.6509159999986878,
|
|
766
|
+
"message": "Advertised capability responded with the minimal expected shape, but one optional resource endpoint appears unsupported.",
|
|
767
|
+
"evidence": [
|
|
768
|
+
{
|
|
769
|
+
"endpoint": "resources/list",
|
|
770
|
+
"advertised": true,
|
|
771
|
+
"responded": true,
|
|
772
|
+
"minimalShapePresent": true,
|
|
773
|
+
"itemCount": 1,
|
|
774
|
+
"identifiers": [
|
|
775
|
+
"console://logs"
|
|
776
|
+
],
|
|
777
|
+
"diagnostics": []
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
"endpoint": "resources/templates/list",
|
|
781
|
+
"advertised": true,
|
|
782
|
+
"responded": false,
|
|
783
|
+
"minimalShapePresent": false,
|
|
784
|
+
"diagnostics": [
|
|
785
|
+
"MCP error -32601: Method not found"
|
|
786
|
+
]
|
|
787
|
+
}
|
|
788
|
+
]
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"id": "security-lite",
|
|
792
|
+
"capability": "security-lite",
|
|
793
|
+
"status": "fail",
|
|
794
|
+
"durationMs": 0.48133299999972223,
|
|
795
|
+
"message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
|
|
796
|
+
"evidence": [
|
|
797
|
+
{
|
|
798
|
+
"endpoint": "security/scan-lite",
|
|
799
|
+
"advertised": true,
|
|
800
|
+
"responded": true,
|
|
801
|
+
"minimalShapePresent": true,
|
|
802
|
+
"itemCount": 1,
|
|
803
|
+
"identifiers": [
|
|
804
|
+
"playwright_evaluate"
|
|
805
|
+
],
|
|
806
|
+
"diagnostics": [
|
|
807
|
+
"[high] Tool \"playwright_evaluate\" has parameter \"script\" which may allow arbitrary command execution."
|
|
808
|
+
],
|
|
809
|
+
"findings": [
|
|
810
|
+
{
|
|
811
|
+
"ruleId": "shell-injection",
|
|
812
|
+
"severity": "high",
|
|
813
|
+
"toolName": "playwright_evaluate",
|
|
814
|
+
"message": "Tool \"playwright_evaluate\" has parameter \"script\" which may allow arbitrary command execution."
|
|
815
|
+
}
|
|
816
|
+
]
|
|
817
|
+
}
|
|
818
|
+
]
|
|
819
|
+
},
|
|
820
|
+
{
|
|
821
|
+
"id": "conformance",
|
|
822
|
+
"capability": "conformance",
|
|
823
|
+
"status": "pass",
|
|
824
|
+
"durationMs": 7.248041000002559,
|
|
825
|
+
"message": "All 7 conformance checks passed.",
|
|
826
|
+
"evidence": [
|
|
827
|
+
{
|
|
828
|
+
"endpoint": "conformance/check",
|
|
829
|
+
"advertised": true,
|
|
830
|
+
"responded": true,
|
|
831
|
+
"minimalShapePresent": true,
|
|
832
|
+
"itemCount": 7,
|
|
833
|
+
"identifiers": [],
|
|
834
|
+
"diagnostics": [
|
|
835
|
+
"[pass] capabilities-present: Server returned capabilities object.",
|
|
836
|
+
"[pass] server-info: Server provided initialization info.",
|
|
837
|
+
"[pass] tools-capability-match: tools/list returned 33 tool(s).",
|
|
838
|
+
"[pass] prompts-capability-match: Prompts not advertised — endpoint check skipped.",
|
|
839
|
+
"[pass] resources-capability-match: resources/list returned 1 resource(s).",
|
|
840
|
+
"[pass] tool-response-content: Tool \"playwright_console_logs\" response has valid content array.",
|
|
841
|
+
"[pass] error-handling: Server returned proper error code -32601 for unknown method."
|
|
842
|
+
]
|
|
843
|
+
}
|
|
844
|
+
]
|
|
845
|
+
},
|
|
846
|
+
{
|
|
847
|
+
"id": "schema-quality",
|
|
848
|
+
"capability": "schema-quality",
|
|
849
|
+
"status": "partial",
|
|
850
|
+
"durationMs": 1.8633340000014869,
|
|
851
|
+
"message": "Found 1 quality finding(s) across 34 item(s): 1 warnings, 0 info.",
|
|
852
|
+
"evidence": [
|
|
853
|
+
{
|
|
854
|
+
"endpoint": "schema-quality/scan",
|
|
855
|
+
"advertised": true,
|
|
856
|
+
"responded": true,
|
|
857
|
+
"minimalShapePresent": true,
|
|
858
|
+
"itemCount": 1,
|
|
859
|
+
"identifiers": [
|
|
860
|
+
"Browser console logs"
|
|
861
|
+
],
|
|
862
|
+
"diagnostics": [
|
|
863
|
+
"[warning] resource \"Browser console logs\": Missing description"
|
|
864
|
+
]
|
|
865
|
+
}
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
{
|
|
869
|
+
"id": "security",
|
|
870
|
+
"capability": "security",
|
|
871
|
+
"status": "fail",
|
|
872
|
+
"durationMs": 0.8668330000000424,
|
|
873
|
+
"message": "Found 1 security finding(s): 1 high, 0 medium, 0 low.",
|
|
874
|
+
"evidence": [
|
|
875
|
+
{
|
|
876
|
+
"endpoint": "security/scan",
|
|
877
|
+
"advertised": true,
|
|
878
|
+
"responded": true,
|
|
879
|
+
"minimalShapePresent": true,
|
|
880
|
+
"itemCount": 1,
|
|
881
|
+
"identifiers": [
|
|
882
|
+
"playwright_evaluate"
|
|
883
|
+
],
|
|
884
|
+
"diagnostics": [
|
|
885
|
+
"[high] Tool \"playwright_evaluate\" has parameter \"script\" which may allow arbitrary command execution."
|
|
886
|
+
],
|
|
887
|
+
"findings": [
|
|
888
|
+
{
|
|
889
|
+
"ruleId": "shell-injection",
|
|
890
|
+
"severity": "high",
|
|
891
|
+
"toolName": "playwright_evaluate",
|
|
892
|
+
"message": "Tool \"playwright_evaluate\" has parameter \"script\" which may allow arbitrary command execution."
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
}
|
|
896
|
+
]
|
|
897
|
+
}
|
|
898
|
+
],
|
|
899
|
+
"healthScore": {
|
|
900
|
+
"overall": 69,
|
|
901
|
+
"grade": "D",
|
|
902
|
+
"dimensions": [
|
|
903
|
+
{
|
|
904
|
+
"name": "Protocol Compliance",
|
|
905
|
+
"weight": 0.3,
|
|
906
|
+
"score": 100,
|
|
907
|
+
"details": [
|
|
908
|
+
"conformance: pass (100/100)"
|
|
909
|
+
]
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
"name": "Schema Quality",
|
|
913
|
+
"weight": 0.2,
|
|
914
|
+
"score": 60,
|
|
915
|
+
"details": [
|
|
916
|
+
"schema-quality: partial (60/100)"
|
|
917
|
+
]
|
|
918
|
+
},
|
|
919
|
+
{
|
|
920
|
+
"name": "Security",
|
|
921
|
+
"weight": 0.2,
|
|
922
|
+
"score": 0,
|
|
923
|
+
"details": [
|
|
924
|
+
"security-lite: fail (0/100)",
|
|
925
|
+
"security: fail (0/100)"
|
|
926
|
+
]
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
"name": "Reliability",
|
|
930
|
+
"weight": 0.2,
|
|
931
|
+
"score": 83,
|
|
932
|
+
"details": [
|
|
933
|
+
"tools: pass (100/100)",
|
|
934
|
+
"prompts: unsupported (50/100)",
|
|
935
|
+
"resources: pass (100/100)"
|
|
936
|
+
]
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"name": "Performance",
|
|
940
|
+
"weight": 0.1,
|
|
941
|
+
"score": 100,
|
|
942
|
+
"details": [
|
|
943
|
+
"Connect: 2061ms",
|
|
944
|
+
"p95 latency: 3ms (3 operations)"
|
|
945
|
+
]
|
|
946
|
+
}
|
|
947
|
+
]
|
|
948
|
+
},
|
|
949
|
+
"performanceMetrics": {
|
|
950
|
+
"connectMs": 2060.7668749999975,
|
|
951
|
+
"toolsListMs": 3.1655419999988226,
|
|
952
|
+
"promptsListMs": 0.002541000001656357,
|
|
953
|
+
"resourcesListMs": 1.6509159999986878
|
|
954
|
+
}
|
|
955
|
+
}
|