safari-devtools-mcp 1.3.0 → 1.5.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 +11 -0
- package/build/src/SafariDriver.d.ts +5 -0
- package/build/src/SafariDriver.d.ts.map +1 -1
- package/build/src/SafariDriver.js +38 -0
- package/build/src/SafariDriver.js.map +1 -1
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +6 -1
- package/build/src/index.js.map +1 -1
- package/build/src/prompts.d.ts +12 -0
- package/build/src/prompts.d.ts.map +1 -0
- package/build/src/prompts.js +60 -0
- package/build/src/prompts.js.map +1 -0
- package/build/src/tools/snapshot.d.ts.map +1 -1
- package/build/src/tools/snapshot.js +49 -6
- package/build/src/tools/snapshot.js.map +1 -1
- package/build/src/version.d.ts +2 -0
- package/build/src/version.d.ts.map +1 -0
- package/build/src/version.js +4 -0
- package/build/src/version.js.map +1 -0
- package/package.json +4 -3
- package/skills/a11y-debugging/SKILL.md +78 -0
- package/skills/performance-debugging/SKILL.md +172 -0
- package/skills/safari-devtools/SKILL.md +44 -0
- package/skills/safari-specific-debugging/SKILL.md +121 -0
package/README.md
CHANGED
|
@@ -197,6 +197,17 @@ Use `--slim` to reduce token usage with shorter tool descriptions. Useful when w
|
|
|
197
197
|
}
|
|
198
198
|
```
|
|
199
199
|
|
|
200
|
+
## Prompts (skills)
|
|
201
|
+
|
|
202
|
+
The server exposes guided debugging workflows as MCP prompts. Clients that support prompts (e.g. Claude Desktop, Claude Code) can invoke them by name:
|
|
203
|
+
|
|
204
|
+
| Prompt | Description |
|
|
205
|
+
| --------------------------- | -------------------------------------------------------------------------------- |
|
|
206
|
+
| `safari-devtools` | Getting started — tool overview, recommended workflow, and Safari-specific notes |
|
|
207
|
+
| `a11y-debugging` | Accessibility audit — a11y tree inspection, axe-core injection, WCAG checks |
|
|
208
|
+
| `safari-specific-debugging` | Debug WebKit quirks — CSS prefixes, JS feature gaps, ITP/CORS issues |
|
|
209
|
+
| `performance-debugging` | Performance analysis — Navigation Timing, Core Web Vitals, resource waterfall |
|
|
210
|
+
|
|
200
211
|
## Tools (41)
|
|
201
212
|
|
|
202
213
|
### Debugging
|
|
@@ -73,6 +73,11 @@ export declare class SafariDriver {
|
|
|
73
73
|
scrollToElement(uid: string): Promise<void>;
|
|
74
74
|
resizePage(width: number, height: number): Promise<void>;
|
|
75
75
|
waitForText(texts: string[], timeout?: number): Promise<string>;
|
|
76
|
+
waitForSelector(selector: string, options?: {
|
|
77
|
+
visible?: boolean;
|
|
78
|
+
timeout?: number;
|
|
79
|
+
}): Promise<void>;
|
|
80
|
+
waitForFunction(predicate: string, timeout?: number): Promise<void>;
|
|
76
81
|
listPages(): Promise<PageInfo[]>;
|
|
77
82
|
selectPage(pageId: number): Promise<void>;
|
|
78
83
|
newPage(url: string): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafariDriver.d.ts","sourceRoot":"","sources":["../../src/SafariDriver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SafariDriver.d.ts","sourceRoot":"","sources":["../../src/SafariDriver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,KAAK,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;AAKnE,OAAO,KAAK,EACV,eAAe,EACf,eAAe,EACf,QAAQ,EACR,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,eAAe,CAAqB;IAEtC,YAAY,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAwB1C,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIjC;;;OAGG;YACW,gBAAgB;IA2C9B;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBrC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAO1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAKhC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3B,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYjE,cAAc,CAAC,OAAO,CAAC,EAAE;QAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYjE,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAuB5D,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAKjC,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnD,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAUtD,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAc5D,kBAAkB,CACtB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC,IAAI,CAAC;IAgBV,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASxC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0EpC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY1D,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUxD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtC,YAAY,CAChB,GAAG,EAAE,MAAM,EACX,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAwBV,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYjC,cAAc,IAAI,OAAO,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAWI,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAOhC,YAAY,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAgBpE,WAAW,IAAI,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;IAiBzD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYxD,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU3C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAsB/D,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,GAC9C,OAAO,CAAC,IAAI,CAAC;IAiCV,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnE,SAAS,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAwDhC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IA0BjD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCxC,gBAAgB,CACpB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAAE,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAmBnC,UAAU,IAAI,OAAO,CACzB;QACE,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,EAAE,CACJ;IAYK,SAAS,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKX,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAY5C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
|
|
@@ -478,6 +478,44 @@ export class SafariDriver {
|
|
|
478
478
|
}
|
|
479
479
|
throw new Error(`Timeout waiting for text: ${JSON.stringify(texts)} after ${timeoutMs}ms`);
|
|
480
480
|
}
|
|
481
|
+
async waitForSelector(selector, options) {
|
|
482
|
+
const driver = await this.ensureDriver();
|
|
483
|
+
const timeoutMs = options?.timeout ?? 30000;
|
|
484
|
+
const checkVisible = options?.visible ?? false;
|
|
485
|
+
const startTime = Date.now();
|
|
486
|
+
const script = checkVisible
|
|
487
|
+
? `
|
|
488
|
+
const el = document.querySelector(${JSON.stringify(selector)});
|
|
489
|
+
if (!el) return false;
|
|
490
|
+
const style = window.getComputedStyle(el);
|
|
491
|
+
return style.display !== 'none'
|
|
492
|
+
&& style.visibility !== 'hidden'
|
|
493
|
+
&& style.opacity !== '0'
|
|
494
|
+
&& el.offsetWidth > 0
|
|
495
|
+
&& el.offsetHeight > 0;
|
|
496
|
+
`
|
|
497
|
+
: `return !!document.querySelector(${JSON.stringify(selector)});`;
|
|
498
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
499
|
+
const found = await driver.executeScript(checkVisible ? `return (function() { ${script} })();` : script);
|
|
500
|
+
if (found)
|
|
501
|
+
return;
|
|
502
|
+
await new Promise(r => setTimeout(r, 250));
|
|
503
|
+
}
|
|
504
|
+
const mode = checkVisible ? 'visible' : 'present';
|
|
505
|
+
throw new Error(`Timeout waiting for selector "${selector}" to be ${mode} after ${timeoutMs}ms`);
|
|
506
|
+
}
|
|
507
|
+
async waitForFunction(predicate, timeout) {
|
|
508
|
+
const driver = await this.ensureDriver();
|
|
509
|
+
const timeoutMs = timeout ?? 30000;
|
|
510
|
+
const startTime = Date.now();
|
|
511
|
+
while (Date.now() - startTime < timeoutMs) {
|
|
512
|
+
const result = await driver.executeScript(`try { return !!(${predicate}); } catch { return false; }`);
|
|
513
|
+
if (result)
|
|
514
|
+
return;
|
|
515
|
+
await new Promise(r => setTimeout(r, 250));
|
|
516
|
+
}
|
|
517
|
+
throw new Error(`Timeout waiting for predicate to be truthy after ${timeoutMs}ms`);
|
|
518
|
+
}
|
|
481
519
|
// ---- Tab management via AppleScript ----
|
|
482
520
|
async listPages() {
|
|
483
521
|
const { execSync } = await import('child_process');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SafariDriver.js","sourceRoot":"","sources":["../../src/SafariDriver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SafariDriver.js","sourceRoot":"","sources":["../../src/SafariDriver.ts"],"names":[],"mappings":"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"}
|
package/build/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAkC/C,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,aAAkB,GAAG;IAClE,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;CACtB,CA2CA"}
|
package/build/src/index.js
CHANGED
|
@@ -6,6 +6,8 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
8
|
import { SafariDriver } from './SafariDriver.js';
|
|
9
|
+
import { registerPrompts } from './prompts.js';
|
|
10
|
+
import { VERSION } from './version.js';
|
|
9
11
|
// Tool modules — each exports a `tools` array
|
|
10
12
|
import { tools as consoleTools } from './tools/console.js';
|
|
11
13
|
import { tools as networkTools } from './tools/network.js';
|
|
@@ -37,13 +39,16 @@ export function createSafariMcpServer(options = {}) {
|
|
|
37
39
|
const { slim = false } = options;
|
|
38
40
|
const server = new McpServer({
|
|
39
41
|
name: 'safari-devtools-mcp',
|
|
40
|
-
version:
|
|
42
|
+
version: VERSION,
|
|
41
43
|
}, {
|
|
42
44
|
capabilities: {
|
|
43
45
|
tools: {},
|
|
46
|
+
prompts: {},
|
|
44
47
|
},
|
|
45
48
|
});
|
|
46
49
|
const driver = new SafariDriver();
|
|
50
|
+
// Register guided debugging prompts (skills)
|
|
51
|
+
registerPrompts(server);
|
|
47
52
|
for (const tool of allTools) {
|
|
48
53
|
const description = slim && tool.slimDescription ? tool.slimDescription : tool.description;
|
|
49
54
|
server.tool(tool.name, description, tool.schema, async (params) => {
|
package/build/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP prompt (skill) definitions.
|
|
3
|
+
*
|
|
4
|
+
* Each prompt surfaces a guided debugging workflow that LLM clients can
|
|
5
|
+
* invoke via the MCP prompts/list and prompts/get protocol. The content
|
|
6
|
+
* is read from the matching SKILL.md when prompts are registered and
|
|
7
|
+
* returned as a single user message so the LLM receives the full
|
|
8
|
+
* playbook in context.
|
|
9
|
+
*/
|
|
10
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
11
|
+
export declare function registerPrompts(server: McpServer): void;
|
|
12
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAsDvE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAavD"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP prompt (skill) definitions.
|
|
3
|
+
*
|
|
4
|
+
* Each prompt surfaces a guided debugging workflow that LLM clients can
|
|
5
|
+
* invoke via the MCP prompts/list and prompts/get protocol. The content
|
|
6
|
+
* is read from the matching SKILL.md when prompts are registered and
|
|
7
|
+
* returned as a single user message so the LLM receives the full
|
|
8
|
+
* playbook in context.
|
|
9
|
+
*/
|
|
10
|
+
import { readFileSync } from 'fs';
|
|
11
|
+
import { dirname, join } from 'path';
|
|
12
|
+
import { fileURLToPath } from 'url';
|
|
13
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const SKILLS_DIR = join(__dirname, '..', '..', 'skills');
|
|
15
|
+
const skills = [
|
|
16
|
+
{
|
|
17
|
+
name: 'safari-devtools',
|
|
18
|
+
description: 'Getting started with Safari DevTools MCP — tool overview, workflows, and Safari-specific notes.',
|
|
19
|
+
dir: 'safari-devtools',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: 'a11y-debugging',
|
|
23
|
+
description: 'Accessibility auditing workflow — inspect the a11y tree, find WCAG issues, and run automated checks.',
|
|
24
|
+
dir: 'a11y-debugging',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'safari-specific-debugging',
|
|
28
|
+
description: 'Debug Safari/WebKit quirks — CSS prefixes, JS feature gaps, CORS/ITP issues, and cross-browser differences.',
|
|
29
|
+
dir: 'safari-specific-debugging',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'performance-debugging',
|
|
33
|
+
description: 'Performance analysis — Core Web Vitals, Navigation Timing, resource waterfalls, and Safari-specific optimizations.',
|
|
34
|
+
dir: 'performance-debugging',
|
|
35
|
+
},
|
|
36
|
+
];
|
|
37
|
+
function loadSkillContent(dir) {
|
|
38
|
+
const filePath = join(SKILLS_DIR, dir, 'SKILL.md');
|
|
39
|
+
try {
|
|
40
|
+
return readFileSync(filePath, 'utf-8');
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
throw new Error(`Failed to load skill content from "${filePath}". ` +
|
|
44
|
+
'Ensure the skills/ directory is present in the distribution and that the server is running from the expected location.', { cause: error });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export function registerPrompts(server) {
|
|
48
|
+
for (const skill of skills) {
|
|
49
|
+
const content = loadSkillContent(skill.dir);
|
|
50
|
+
server.prompt(skill.name, skill.description, () => ({
|
|
51
|
+
messages: [
|
|
52
|
+
{
|
|
53
|
+
role: 'user',
|
|
54
|
+
content: { type: 'text', text: content },
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAC,YAAY,EAAC,MAAM,IAAI,CAAC;AAChC,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,MAAM,CAAC;AACnC,OAAO,EAAC,aAAa,EAAC,MAAM,KAAK,CAAC;AAGlC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAWzD,MAAM,MAAM,GAAe;IACzB;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EACT,iGAAiG;QACnG,GAAG,EAAE,iBAAiB;KACvB;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,sGAAsG;QACxG,GAAG,EAAE,gBAAgB;KACtB;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EACT,6GAA6G;QAC/G,GAAG,EAAE,2BAA2B;KACjC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EACT,oHAAoH;QACtH,GAAG,EAAE,uBAAuB;KAC7B;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,GAAW;IACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACnD,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,sCAAsC,QAAQ,KAAK;YACjD,wHAAwH,EAC1H,EAAC,KAAK,EAAE,KAAK,EAAC,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAC;iBAChD;aACF;SACF,CAAC,CAAC,CAAC;IACN,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,eAAO,MAAM,KAAK,+
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,eAAO,MAAM,KAAK,+CA2IjB,CAAC"}
|
|
@@ -43,29 +43,72 @@ export const tools = [
|
|
|
43
43
|
}),
|
|
44
44
|
defineTool({
|
|
45
45
|
name: 'wait_for',
|
|
46
|
-
description: 'Wait for the
|
|
47
|
-
slimDescription: 'Wait for text
|
|
46
|
+
description: 'Wait for a condition on the page: text content, a CSS selector, or a JS predicate. Returns a snapshot once the condition is met. At least one condition (text, selector, or predicate) must be provided.',
|
|
47
|
+
slimDescription: 'Wait for text, selector, or JS condition.',
|
|
48
48
|
schema: {
|
|
49
49
|
text: z
|
|
50
50
|
.array(z.string())
|
|
51
51
|
.min(1)
|
|
52
|
-
.
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('List of texts. Resolves when any value appears in the page body.'),
|
|
54
|
+
selector: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('CSS selector. Resolves when a matching element exists in the DOM.'),
|
|
58
|
+
visible: z
|
|
59
|
+
.boolean()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('When true and selector is set, waits for the element to be visible (not just present in DOM). Default is false.'),
|
|
62
|
+
predicate: z
|
|
63
|
+
.string()
|
|
64
|
+
.optional()
|
|
65
|
+
.describe('A JavaScript expression that must return a truthy value. Example: "document.querySelectorAll(\'.item\').length >= 5"'),
|
|
53
66
|
timeout: z
|
|
54
67
|
.number()
|
|
55
68
|
.optional()
|
|
56
69
|
.describe('Timeout in milliseconds. Default is 30000.'),
|
|
57
70
|
},
|
|
58
71
|
handler: async (params, driver) => {
|
|
72
|
+
const hasText = params.text && params.text.length > 0;
|
|
73
|
+
const hasSelector = !!params.selector;
|
|
74
|
+
const hasPredicate = !!params.predicate;
|
|
75
|
+
if (!hasText && !hasSelector && !hasPredicate) {
|
|
76
|
+
return {
|
|
77
|
+
content: [
|
|
78
|
+
{
|
|
79
|
+
type: 'text',
|
|
80
|
+
text: 'At least one condition must be provided: text, selector, or predicate.',
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
isError: true,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
59
86
|
try {
|
|
60
|
-
|
|
61
|
-
|
|
87
|
+
let matched = '';
|
|
88
|
+
if (hasText) {
|
|
89
|
+
const found = await driver.waitForText(params.text, params.timeout);
|
|
90
|
+
matched = `Text "${found}" found.`;
|
|
91
|
+
}
|
|
92
|
+
else if (hasSelector) {
|
|
93
|
+
await driver.waitForSelector(params.selector, {
|
|
94
|
+
visible: params.visible,
|
|
95
|
+
timeout: params.timeout,
|
|
96
|
+
});
|
|
97
|
+
matched = params.visible
|
|
98
|
+
? `Selector "${params.selector}" is visible.`
|
|
99
|
+
: `Selector "${params.selector}" found.`;
|
|
100
|
+
}
|
|
101
|
+
else if (hasPredicate) {
|
|
102
|
+
await driver.waitForFunction(params.predicate, params.timeout);
|
|
103
|
+
matched = 'Predicate condition met.';
|
|
104
|
+
}
|
|
62
105
|
const tree = await driver.takeSnapshot();
|
|
63
106
|
const snapshotText = formatSnapshot(tree);
|
|
64
107
|
return {
|
|
65
108
|
content: [
|
|
66
109
|
{
|
|
67
110
|
type: 'text',
|
|
68
|
-
text:
|
|
111
|
+
text: `${matched}\n\n${snapshotText}`,
|
|
69
112
|
},
|
|
70
113
|
],
|
|
71
114
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/tools/snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,cAAc,EAAC,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAC,UAAU,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,UAAU,CAAC;QACT,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,2OAA2O;QAC7O,eAAe,EAAE,oDAAoD;QACrE,MAAM,EAAE;YACN,OAAO,EAAE,CAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CACP,uFAAuF,CACxF;YACH,QAAQ,EAAE,CAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0IAA0I,CAC3I;SACJ;QACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAChC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,eAAe;YACzD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE3C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,qBAAqB,MAAM,CAAC,QAAQ,GAAG;yBAC9C;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,MAAe,EAAE,IAAI,EAAC,CAAC;aACzC,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,UAAU,CAAC;QACT,IAAI,EAAE,UAAU;QAChB,WAAW,
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/tools/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAC/B,uBAAuB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "safari-devtools-mcp",
|
|
3
3
|
"mcpName": "io.github.HayoDev/safari-devtools-mcp",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.5.0",
|
|
5
5
|
"description": "Safari DevTools MCP — real browser debugging with network interception, DOM inspection, cookie/storage management, and CSS analysis for AI agents on macOS",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "build/src/index.js",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
},
|
|
11
11
|
"files": [
|
|
12
12
|
"build/src",
|
|
13
|
+
"skills",
|
|
13
14
|
"LICENSE",
|
|
14
15
|
"!*.tsbuildinfo"
|
|
15
16
|
],
|
|
@@ -23,8 +24,8 @@
|
|
|
23
24
|
"lint:fix": "oxlint --fix .",
|
|
24
25
|
"format": "oxlint --fix . && oxfmt --write .",
|
|
25
26
|
"check-format": "oxlint . && oxfmt --check .",
|
|
26
|
-
"test": "npm run build && node --test build/tests/**/*.test.js",
|
|
27
|
-
"test:no-build": "node --test build/tests/**/*.test.js",
|
|
27
|
+
"test": "npm run build && node --test 'build/tests/**/*.test.js' 'build/tests/*.test.js'",
|
|
28
|
+
"test:no-build": "node --test 'build/tests/**/*.test.js' 'build/tests/*.test.js'",
|
|
28
29
|
"prepare": "sh scripts/install-hooks.sh"
|
|
29
30
|
},
|
|
30
31
|
"repository": {
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# Accessibility Debugging with Safari DevTools MCP
|
|
2
|
+
|
|
3
|
+
Use this skill when auditing a page for accessibility issues in Safari.
|
|
4
|
+
|
|
5
|
+
## Quick audit workflow
|
|
6
|
+
|
|
7
|
+
1. Navigate to the target page:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
navigate_page url="https://example.com"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
2. Take a verbose snapshot to see the full a11y tree:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
take_snapshot verbose=true
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
3. Review the snapshot for common issues:
|
|
20
|
+
- Elements with `role="generic"` that should have semantic roles
|
|
21
|
+
- Interactive elements (buttons, links) with empty names (`""`)
|
|
22
|
+
- Images without descriptive names (missing alt text)
|
|
23
|
+
- Form inputs without associated labels
|
|
24
|
+
|
|
25
|
+
4. For a more thorough automated audit, inject axe-core:
|
|
26
|
+
|
|
27
|
+
> **Note:** This fetches a script from a public CDN. Two things to be
|
|
28
|
+
> aware of: (1) a strict Content Security Policy may block it — if the
|
|
29
|
+
> audit returns no results, check the console for CSP errors; (2) on
|
|
30
|
+
> internal or authenticated pages, prefer loading axe-core from a local
|
|
31
|
+
> copy rather than a CDN to avoid sending page context to a third party.
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
evaluate_script function="async () => {
|
|
35
|
+
const script = document.createElement('script');
|
|
36
|
+
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/axe-core/4.10.0/axe.min.js';
|
|
37
|
+
document.head.appendChild(script);
|
|
38
|
+
await new Promise(r => script.onload = r);
|
|
39
|
+
const results = await window.axe.run();
|
|
40
|
+
return {
|
|
41
|
+
violations: results.violations.map(v => ({
|
|
42
|
+
id: v.id,
|
|
43
|
+
impact: v.impact,
|
|
44
|
+
description: v.description,
|
|
45
|
+
nodes: v.nodes.length
|
|
46
|
+
})),
|
|
47
|
+
passes: results.passes.length,
|
|
48
|
+
incomplete: results.incomplete.length
|
|
49
|
+
};
|
|
50
|
+
}"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
5. Check specific element styles for contrast issues:
|
|
54
|
+
```
|
|
55
|
+
get_computed_style uid="<element-uid>" properties=["color", "background-color", "font-size"]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## What to look for in the snapshot
|
|
59
|
+
|
|
60
|
+
- **Headings**: Should follow a logical hierarchy (h1 → h2 → h3).
|
|
61
|
+
Check that roles include `heading` with proper nesting.
|
|
62
|
+
- **Links**: Every `link` role should have a descriptive name, not just
|
|
63
|
+
"click here" or the raw URL.
|
|
64
|
+
- **Forms**: Every `textbox`, `combobox`, `checkbox` should have a name
|
|
65
|
+
(label). Empty names mean missing labels.
|
|
66
|
+
- **Images**: `img` roles should have a meaningful name unless decorative.
|
|
67
|
+
- **Buttons**: `button` roles with empty names are keyboard-inaccessible.
|
|
68
|
+
- **Landmarks**: Look for `navigation`, `main`, `banner`, `contentinfo`
|
|
69
|
+
roles. Pages without landmarks are harder to navigate with screen readers.
|
|
70
|
+
|
|
71
|
+
## Safari-specific a11y considerations
|
|
72
|
+
|
|
73
|
+
- Safari's VoiceOver is the primary screen reader on macOS. The a11y tree
|
|
74
|
+
from `take_snapshot` closely mirrors what VoiceOver sees.
|
|
75
|
+
- Safari may map ARIA roles differently from Chrome in edge cases.
|
|
76
|
+
Always test the snapshot output against expected roles.
|
|
77
|
+
- `role="generic"` is Safari's default for `<div>` and `<span>` — this
|
|
78
|
+
is correct behavior, not an issue.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Performance Debugging with Safari DevTools MCP
|
|
2
|
+
|
|
3
|
+
Use this skill when investigating slow page loads, rendering issues,
|
|
4
|
+
or optimizing Core Web Vitals in Safari.
|
|
5
|
+
|
|
6
|
+
## Collect performance metrics
|
|
7
|
+
|
|
8
|
+
Use `evaluate_script` to capture key metrics from the browser:
|
|
9
|
+
|
|
10
|
+
### Navigation Timing (TTFB, DOM load, full page load)
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
evaluate_script function="() => {
|
|
14
|
+
const nav = performance.getEntriesByType('navigation')[0];
|
|
15
|
+
if (!nav) return { error: 'No navigation entry found' };
|
|
16
|
+
return {
|
|
17
|
+
url: nav.name,
|
|
18
|
+
redirectTime: Math.round(nav.redirectEnd - nav.redirectStart),
|
|
19
|
+
dnsLookup: Math.round(nav.domainLookupEnd - nav.domainLookupStart),
|
|
20
|
+
tcpConnect: Math.round(nav.connectEnd - nav.connectStart),
|
|
21
|
+
ttfb: Math.round(nav.responseStart - nav.requestStart),
|
|
22
|
+
responseTime: Math.round(nav.responseEnd - nav.responseStart),
|
|
23
|
+
domInteractive: Math.round(nav.domInteractive),
|
|
24
|
+
domContentLoaded: Math.round(nav.domContentLoadedEventEnd),
|
|
25
|
+
fullLoad: Math.round(nav.loadEventEnd),
|
|
26
|
+
transferSize: nav.transferSize,
|
|
27
|
+
encodedBodySize: nav.encodedBodySize,
|
|
28
|
+
decodedBodySize: nav.decodedBodySize
|
|
29
|
+
};
|
|
30
|
+
}"
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Core Web Vitals (LCP, CLS)
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
evaluate_script function="() => {
|
|
37
|
+
const results = {};
|
|
38
|
+
|
|
39
|
+
// LCP
|
|
40
|
+
const lcpEntries = performance.getEntriesByType('largest-contentful-paint');
|
|
41
|
+
if (lcpEntries.length > 0) {
|
|
42
|
+
const lcp = lcpEntries[lcpEntries.length - 1];
|
|
43
|
+
results.lcp = {
|
|
44
|
+
value: Math.round(lcp.startTime),
|
|
45
|
+
element: lcp.element?.tagName,
|
|
46
|
+
url: lcp.url || null,
|
|
47
|
+
rating: lcp.startTime <= 2500 ? 'good' : lcp.startTime <= 4000 ? 'needs-improvement' : 'poor'
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// CLS
|
|
52
|
+
let clsValue = 0;
|
|
53
|
+
for (const entry of performance.getEntriesByType('layout-shift')) {
|
|
54
|
+
if (!entry.hadRecentInput) clsValue += entry.value;
|
|
55
|
+
}
|
|
56
|
+
results.cls = {
|
|
57
|
+
value: Math.round(clsValue * 1000) / 1000,
|
|
58
|
+
rating: clsValue <= 0.1 ? 'good' : clsValue <= 0.25 ? 'needs-improvement' : 'poor'
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
return results;
|
|
62
|
+
}"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Resource waterfall (slowest resources)
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
evaluate_script function="() => {
|
|
69
|
+
const entries = performance.getEntriesByType('resource');
|
|
70
|
+
return entries
|
|
71
|
+
.map(e => ({
|
|
72
|
+
name: e.name.split('/').pop()?.substring(0, 60),
|
|
73
|
+
type: e.initiatorType,
|
|
74
|
+
duration: Math.round(e.duration),
|
|
75
|
+
transferSize: e.transferSize,
|
|
76
|
+
start: Math.round(e.startTime)
|
|
77
|
+
}))
|
|
78
|
+
.sort((a, b) => b.duration - a.duration)
|
|
79
|
+
.slice(0, 15);
|
|
80
|
+
}"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Long tasks
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
evaluate_script function="() => {
|
|
87
|
+
if (!window.__longTasks) {
|
|
88
|
+
window.__longTasks = [];
|
|
89
|
+
new PerformanceObserver(list => {
|
|
90
|
+
for (const entry of list.getEntries()) {
|
|
91
|
+
window.__longTasks.push({
|
|
92
|
+
startTime: Math.round(entry.startTime),
|
|
93
|
+
duration: Math.round(entry.duration)
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}).observe({ type: 'longtask', buffered: true });
|
|
97
|
+
return { status: 'observer started — call again after interaction to see results' };
|
|
98
|
+
}
|
|
99
|
+
return window.__longTasks;
|
|
100
|
+
}"
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Interpreting results
|
|
104
|
+
|
|
105
|
+
### LCP (Largest Contentful Paint)
|
|
106
|
+
|
|
107
|
+
| Rating | Threshold |
|
|
108
|
+
| ----------------- | --------- |
|
|
109
|
+
| Good | ≤ 2.5s |
|
|
110
|
+
| Needs improvement | ≤ 4.0s |
|
|
111
|
+
| Poor | > 4.0s |
|
|
112
|
+
|
|
113
|
+
**Common causes of slow LCP:**
|
|
114
|
+
|
|
115
|
+
- Large unoptimized images (check with `list_network_requests resourceTypes=["image"]`)
|
|
116
|
+
- Render-blocking CSS/JS (check resource waterfall for early large scripts)
|
|
117
|
+
- Slow server response (check TTFB from Navigation Timing)
|
|
118
|
+
|
|
119
|
+
### CLS (Cumulative Layout Shift)
|
|
120
|
+
|
|
121
|
+
| Rating | Threshold |
|
|
122
|
+
| ----------------- | --------- |
|
|
123
|
+
| Good | ≤ 0.1 |
|
|
124
|
+
| Needs improvement | ≤ 0.25 |
|
|
125
|
+
| Poor | > 0.25 |
|
|
126
|
+
|
|
127
|
+
**Common causes of CLS:**
|
|
128
|
+
|
|
129
|
+
- Images without `width`/`height` attributes
|
|
130
|
+
- Dynamically injected content above the fold
|
|
131
|
+
- Web fonts causing FOUT (Flash of Unstyled Text)
|
|
132
|
+
|
|
133
|
+
### Safari-specific performance considerations
|
|
134
|
+
|
|
135
|
+
- Safari uses WebKit's rendering engine which handles compositing
|
|
136
|
+
differently from Blink — `will-change` and `transform: translateZ(0)`
|
|
137
|
+
hacks may behave differently.
|
|
138
|
+
- Intelligent Tracking Prevention (ITP) can cause extra network latency
|
|
139
|
+
for third-party resources.
|
|
140
|
+
- Safari's JS engine (JavaScriptCore) has different JIT behavior than V8.
|
|
141
|
+
Microbenchmarks may not reflect real-world performance.
|
|
142
|
+
|
|
143
|
+
## Full debugging workflow
|
|
144
|
+
|
|
145
|
+
1. Navigate and measure baseline:
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
navigate_page url="<target-url>"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Then run the Navigation Timing and Core Web Vitals scripts above.
|
|
152
|
+
|
|
153
|
+
2. Check for render-blocking resources:
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
list_network_requests resourceTypes=["script", "stylesheet"]
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
3. Check for console errors that might block rendering:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
list_console_messages types=["error"]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
4. Take a screenshot to verify visual completeness:
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
take_screenshot
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
5. If LCP is slow, identify the LCP element and check its source
|
|
172
|
+
in the network log.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Safari DevTools MCP — Getting Started
|
|
2
|
+
|
|
3
|
+
Use this skill when onboarding to the Safari DevTools MCP server or when
|
|
4
|
+
unsure which tools to use.
|
|
5
|
+
|
|
6
|
+
## Available tool categories
|
|
7
|
+
|
|
8
|
+
- **Snapshots**: `take_snapshot` gives you a DOM/a11y tree with element UIDs
|
|
9
|
+
you can pass to other tools. Always take a fresh snapshot before interacting.
|
|
10
|
+
- **Navigation**: `navigate_page`, `new_page`, `list_pages`, `select_page`
|
|
11
|
+
for page lifecycle control.
|
|
12
|
+
- **Input**: `click`, `fill`, `type_text`, `press_key`, `drag`, `hover`,
|
|
13
|
+
`select_option`, `upload_file` for element interaction. Identify elements by
|
|
14
|
+
their `uid` from the latest snapshot.
|
|
15
|
+
- **Debugging**: `list_console_messages`, `list_network_requests` for runtime
|
|
16
|
+
diagnostics. Use `get_console_message` / `get_network_request` for details.
|
|
17
|
+
- **Screenshots**: `take_screenshot` for visual state. Prefer `take_snapshot`
|
|
18
|
+
for programmatic inspection.
|
|
19
|
+
- **Page content**: `get_page_content` (title + text), `get_html_source`,
|
|
20
|
+
`extract_links`, `extract_meta`.
|
|
21
|
+
- **CSS**: `get_computed_style` for styling information on any element.
|
|
22
|
+
- **Storage**: `get_cookies`, `set_cookie`, `delete_cookie`, `get_storage`,
|
|
23
|
+
`set_storage`, `delete_storage` for cookie and Web Storage inspection.
|
|
24
|
+
- **Scroll**: `scroll`, `scroll_to_element` for viewport control.
|
|
25
|
+
|
|
26
|
+
## Recommended workflow
|
|
27
|
+
|
|
28
|
+
1. **Navigate** to the target URL with `navigate_page`.
|
|
29
|
+
2. **Snapshot** the page with `take_snapshot` to see the DOM tree.
|
|
30
|
+
3. **Interact** using UIDs from the snapshot: `click`, `fill`, etc.
|
|
31
|
+
4. **Re-snapshot** after interaction — the DOM may have changed.
|
|
32
|
+
5. **Debug** with `list_console_messages` and `list_network_requests`
|
|
33
|
+
to check for errors or failed requests.
|
|
34
|
+
|
|
35
|
+
## Safari-specific notes
|
|
36
|
+
|
|
37
|
+
- Safari only supports **one WebDriver session** at a time.
|
|
38
|
+
- Tab management uses **AppleScript** — macOS accessibility permissions
|
|
39
|
+
may be required.
|
|
40
|
+
- There is no headless mode. Safari will open visibly on screen.
|
|
41
|
+
- Screenshots are **PNG only**.
|
|
42
|
+
- Console and network capture start when the session is created — messages
|
|
43
|
+
before that point are not captured (network has partial historical data
|
|
44
|
+
via the Performance API).
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Safari-Specific Debugging
|
|
2
|
+
|
|
3
|
+
Use this skill when something works in other browsers but breaks in Safari,
|
|
4
|
+
or when debugging WebKit-specific behavior.
|
|
5
|
+
|
|
6
|
+
## Common Safari issues and how to debug them
|
|
7
|
+
|
|
8
|
+
### CSS issues
|
|
9
|
+
|
|
10
|
+
Safari lags behind on some CSS features and requires `-webkit-` prefixes
|
|
11
|
+
for others. Debug with:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
get_computed_style uid="<element-uid>" properties=["display", "gap", "aspect-ratio", "container-type", "backdrop-filter"]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**Known Safari CSS quirks:**
|
|
18
|
+
|
|
19
|
+
- `gap` in flexbox: Supported since Safari 14.1, but older versions fail silently.
|
|
20
|
+
- `aspect-ratio`: Works, but may not apply in some flex/grid contexts.
|
|
21
|
+
- `-webkit-backdrop-filter`: Still requires prefix in some versions.
|
|
22
|
+
- `100vh` on iOS Safari includes the address bar — use `100dvh` instead.
|
|
23
|
+
- `position: sticky` inside `overflow: auto` containers often breaks.
|
|
24
|
+
- `:has()` selector: Safari was first to ship it, but edge cases may differ.
|
|
25
|
+
|
|
26
|
+
### JavaScript issues
|
|
27
|
+
|
|
28
|
+
Run diagnostics with `evaluate_script`:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
evaluate_script function="() => {
|
|
32
|
+
return {
|
|
33
|
+
userAgent: navigator.userAgent,
|
|
34
|
+
webkitVersion: navigator.userAgent.match(/AppleWebKit\/(\d+)/)?.[1],
|
|
35
|
+
features: {
|
|
36
|
+
structuredClone: typeof structuredClone !== 'undefined',
|
|
37
|
+
requestIdleCallback: typeof requestIdleCallback !== 'undefined',
|
|
38
|
+
offscreenCanvas: typeof OffscreenCanvas !== 'undefined',
|
|
39
|
+
webComponents: typeof customElements !== 'undefined',
|
|
40
|
+
resizeObserver: typeof ResizeObserver !== 'undefined',
|
|
41
|
+
intersectionObserver: typeof IntersectionObserver !== 'undefined'
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Known Safari JS quirks:**
|
|
48
|
+
|
|
49
|
+
- `requestIdleCallback`: Not available — use `setTimeout` fallback.
|
|
50
|
+
- `OffscreenCanvas`: Partial support — `2d` context only, no WebGL.
|
|
51
|
+
- Date parsing: `new Date('2024-01-15')` works, but
|
|
52
|
+
`new Date('01-15-2024')` may fail. Always use ISO 8601.
|
|
53
|
+
- `fetch` with `keepalive`: Stricter size limits than Chrome.
|
|
54
|
+
- Web Locks API: Not supported in older Safari versions.
|
|
55
|
+
- `<input type="date">`: Renders differently. Check with `take_snapshot`.
|
|
56
|
+
|
|
57
|
+
### Network / CORS issues
|
|
58
|
+
|
|
59
|
+
Check failing requests:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
list_network_requests resourceTypes=["fetch", "xhr"]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Then get details for any request with a 0 or 4xx/5xx status:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
get_network_request reqid=<id>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Known Safari network quirks:**
|
|
72
|
+
|
|
73
|
+
- Third-party cookies blocked by default (ITP). Check with `get_cookies`.
|
|
74
|
+
- CORS preflight caching is stricter — `Access-Control-Max-Age` may be
|
|
75
|
+
ignored for non-standard headers.
|
|
76
|
+
- Service Worker cache can be more aggressive. Test with `evaluate_script`
|
|
77
|
+
to check registration: `() => navigator.serviceWorker.getRegistration()`.
|
|
78
|
+
|
|
79
|
+
### Form / input issues
|
|
80
|
+
|
|
81
|
+
Safari renders `<select>`, `<input type="date">`, `<input type="time">`
|
|
82
|
+
with native OS controls that differ from Chrome. Use `take_snapshot` to
|
|
83
|
+
see what the a11y tree reports, then `take_screenshot` for visual comparison.
|
|
84
|
+
|
|
85
|
+
## Debugging workflow for cross-browser issues
|
|
86
|
+
|
|
87
|
+
1. Reproduce the issue:
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
navigate_page url="<problem-url>"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
2. Check console for errors:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
list_console_messages types=["error", "warn"]
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
3. Check network for failures:
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
list_network_requests
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
4. Take a snapshot and screenshot for comparison:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
take_snapshot
|
|
109
|
+
take_screenshot
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
5. Test specific feature support:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
evaluate_script function="() => { /* feature detection code */ }"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
6. Check CSS rendering:
|
|
119
|
+
```
|
|
120
|
+
get_computed_style uid="<element-uid>"
|
|
121
|
+
```
|