@eddym06/custom-chrome-mcp 1.0.2
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/.npmrc.example +2 -0
- package/CHANGELOG.md +87 -0
- package/INSTALL.md +148 -0
- package/LICENSE +21 -0
- package/README.md +403 -0
- package/dist/chrome-connector.d.ts +116 -0
- package/dist/chrome-connector.d.ts.map +1 -0
- package/dist/chrome-connector.js +452 -0
- package/dist/chrome-connector.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +211 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/anti-detection.d.ts +22 -0
- package/dist/tools/anti-detection.d.ts.map +1 -0
- package/dist/tools/anti-detection.js +220 -0
- package/dist/tools/anti-detection.js.map +1 -0
- package/dist/tools/capture.d.ts +130 -0
- package/dist/tools/capture.d.ts.map +1 -0
- package/dist/tools/capture.js +164 -0
- package/dist/tools/capture.js.map +1 -0
- package/dist/tools/interaction.d.ts +173 -0
- package/dist/tools/interaction.d.ts.map +1 -0
- package/dist/tools/interaction.js +274 -0
- package/dist/tools/interaction.js.map +1 -0
- package/dist/tools/navigation.d.ts +82 -0
- package/dist/tools/navigation.d.ts.map +1 -0
- package/dist/tools/navigation.js +196 -0
- package/dist/tools/navigation.js.map +1 -0
- package/dist/tools/playwright-launcher.d.ts +53 -0
- package/dist/tools/playwright-launcher.d.ts.map +1 -0
- package/dist/tools/playwright-launcher.js +117 -0
- package/dist/tools/playwright-launcher.js.map +1 -0
- package/dist/tools/service-worker.d.ts +128 -0
- package/dist/tools/service-worker.d.ts.map +1 -0
- package/dist/tools/service-worker.js +355 -0
- package/dist/tools/service-worker.js.map +1 -0
- package/dist/tools/session.d.ts +54 -0
- package/dist/tools/session.d.ts.map +1 -0
- package/dist/tools/session.js +311 -0
- package/dist/tools/session.js.map +1 -0
- package/dist/tools/system.d.ts +159 -0
- package/dist/tools/system.d.ts.map +1 -0
- package/dist/tools/system.js +252 -0
- package/dist/tools/system.js.map +1 -0
- package/dist/types/index.d.ts +75 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/helpers.d.ts +53 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +122 -0
- package/dist/utils/helpers.js.map +1 -0
- package/mcp-config-example.json +12 -0
- package/package.json +61 -0
- package/test-playwright.js +57 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigation and Tab Management Tools
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import type { ChromeConnector } from '../chrome-connector.js';
|
|
6
|
+
export declare function createNavigationTools(connector: ChromeConnector): ({
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
inputSchema: z.ZodObject<{
|
|
10
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
tabId?: string | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
tabId?: string | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
handler: ({ tabId }: any) => Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
message: string;
|
|
19
|
+
}>;
|
|
20
|
+
} | {
|
|
21
|
+
name: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
24
|
+
handler: () => Promise<{
|
|
25
|
+
success: boolean;
|
|
26
|
+
count: number;
|
|
27
|
+
tabs: {
|
|
28
|
+
id: string;
|
|
29
|
+
title: string;
|
|
30
|
+
url: string;
|
|
31
|
+
}[];
|
|
32
|
+
}>;
|
|
33
|
+
} | {
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: z.ZodObject<{
|
|
37
|
+
url: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, "strip", z.ZodTypeAny, {
|
|
39
|
+
url?: string | undefined;
|
|
40
|
+
}, {
|
|
41
|
+
url?: string | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
handler: ({ url }: any) => Promise<{
|
|
44
|
+
success: boolean;
|
|
45
|
+
tab: {
|
|
46
|
+
id: string;
|
|
47
|
+
url: string;
|
|
48
|
+
title: string;
|
|
49
|
+
};
|
|
50
|
+
message: string;
|
|
51
|
+
}>;
|
|
52
|
+
} | {
|
|
53
|
+
name: string;
|
|
54
|
+
description: string;
|
|
55
|
+
inputSchema: z.ZodObject<{
|
|
56
|
+
tabId: z.ZodString;
|
|
57
|
+
}, "strip", z.ZodTypeAny, {
|
|
58
|
+
tabId: string;
|
|
59
|
+
}, {
|
|
60
|
+
tabId: string;
|
|
61
|
+
}>;
|
|
62
|
+
handler: ({ tabId }: any) => Promise<{
|
|
63
|
+
success: boolean;
|
|
64
|
+
message: string;
|
|
65
|
+
}>;
|
|
66
|
+
} | {
|
|
67
|
+
name: string;
|
|
68
|
+
description: string;
|
|
69
|
+
inputSchema: z.ZodObject<{
|
|
70
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
71
|
+
}, "strip", z.ZodTypeAny, {
|
|
72
|
+
tabId?: string | undefined;
|
|
73
|
+
}, {
|
|
74
|
+
tabId?: string | undefined;
|
|
75
|
+
}>;
|
|
76
|
+
handler: ({ tabId }: any) => Promise<{
|
|
77
|
+
success: boolean;
|
|
78
|
+
url: any;
|
|
79
|
+
title: any;
|
|
80
|
+
}>;
|
|
81
|
+
})[];
|
|
82
|
+
//# sourceMappingURL=navigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,eAAe;;;;;;;;;;yBA+C/B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;uBA6FL,GAAG;;;;;;;;;;;;;;;;;;;yBAuBD,GAAG;;;;;;;;;;;;;;yBAoCH,GAAG;;;;;KAenC"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Navigation and Tab Management Tools
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { isValidUrl, humanDelay } from '../utils/helpers.js';
|
|
6
|
+
export function createNavigationTools(connector) {
|
|
7
|
+
return [
|
|
8
|
+
// Navigate to URL
|
|
9
|
+
{
|
|
10
|
+
name: 'navigate',
|
|
11
|
+
description: 'Navigate to a URL in the current or specified tab',
|
|
12
|
+
inputSchema: z.object({
|
|
13
|
+
url: z.string().describe('URL to navigate to'),
|
|
14
|
+
tabId: z.string().optional().describe('Tab ID (optional, uses current tab if not specified)'),
|
|
15
|
+
waitUntil: z.enum(['load', 'domcontentloaded', 'networkidle']).optional().default('load')
|
|
16
|
+
.describe('Wait until this event fires')
|
|
17
|
+
}),
|
|
18
|
+
handler: async ({ url, tabId, waitUntil }) => {
|
|
19
|
+
if (!isValidUrl(url)) {
|
|
20
|
+
throw new Error(`Invalid URL: ${url}`);
|
|
21
|
+
}
|
|
22
|
+
const client = await connector.getTabClient(tabId);
|
|
23
|
+
const { Page } = client;
|
|
24
|
+
await Page.enable();
|
|
25
|
+
await Page.navigate({ url });
|
|
26
|
+
// Wait for the specified event
|
|
27
|
+
if (waitUntil === 'load') {
|
|
28
|
+
await Page.loadEventFired();
|
|
29
|
+
}
|
|
30
|
+
else if (waitUntil === 'domcontentloaded') {
|
|
31
|
+
await Page.domContentEventFired();
|
|
32
|
+
}
|
|
33
|
+
await humanDelay();
|
|
34
|
+
return {
|
|
35
|
+
success: true,
|
|
36
|
+
url,
|
|
37
|
+
message: `Navigated to ${url}`
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
// Go back
|
|
42
|
+
{
|
|
43
|
+
name: 'go_back',
|
|
44
|
+
description: 'Navigate back in browser history',
|
|
45
|
+
inputSchema: z.object({
|
|
46
|
+
tabId: z.string().optional().describe('Tab ID (optional)')
|
|
47
|
+
}),
|
|
48
|
+
handler: async ({ tabId }) => {
|
|
49
|
+
const client = await connector.getTabClient(tabId);
|
|
50
|
+
const { Page } = client;
|
|
51
|
+
await Page.enable();
|
|
52
|
+
const history = await Page.getNavigationHistory();
|
|
53
|
+
if (history.currentIndex > 0) {
|
|
54
|
+
const entry = history.entries[history.currentIndex - 1];
|
|
55
|
+
await Page.navigateToHistoryEntry({ entryId: entry.id });
|
|
56
|
+
await humanDelay();
|
|
57
|
+
return { success: true, message: 'Navigated back' };
|
|
58
|
+
}
|
|
59
|
+
return { success: false, message: 'No history to go back' };
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
// Go forward
|
|
63
|
+
{
|
|
64
|
+
name: 'go_forward',
|
|
65
|
+
description: 'Navigate forward in browser history',
|
|
66
|
+
inputSchema: z.object({
|
|
67
|
+
tabId: z.string().optional().describe('Tab ID (optional)')
|
|
68
|
+
}),
|
|
69
|
+
handler: async ({ tabId }) => {
|
|
70
|
+
const client = await connector.getTabClient(tabId);
|
|
71
|
+
const { Page } = client;
|
|
72
|
+
await Page.enable();
|
|
73
|
+
const history = await Page.getNavigationHistory();
|
|
74
|
+
if (history.currentIndex < history.entries.length - 1) {
|
|
75
|
+
const entry = history.entries[history.currentIndex + 1];
|
|
76
|
+
await Page.navigateToHistoryEntry({ entryId: entry.id });
|
|
77
|
+
await humanDelay();
|
|
78
|
+
return { success: true, message: 'Navigated forward' };
|
|
79
|
+
}
|
|
80
|
+
return { success: false, message: 'No history to go forward' };
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
// Reload page
|
|
84
|
+
{
|
|
85
|
+
name: 'reload',
|
|
86
|
+
description: 'Reload the current page',
|
|
87
|
+
inputSchema: z.object({
|
|
88
|
+
tabId: z.string().optional().describe('Tab ID (optional)'),
|
|
89
|
+
ignoreCache: z.boolean().optional().default(false).describe('Ignore cache when reloading')
|
|
90
|
+
}),
|
|
91
|
+
handler: async ({ tabId, ignoreCache }) => {
|
|
92
|
+
const client = await connector.getTabClient(tabId);
|
|
93
|
+
const { Page } = client;
|
|
94
|
+
await Page.enable();
|
|
95
|
+
await Page.reload({ ignoreCache });
|
|
96
|
+
await Page.loadEventFired();
|
|
97
|
+
await humanDelay();
|
|
98
|
+
return {
|
|
99
|
+
success: true,
|
|
100
|
+
message: `Page reloaded${ignoreCache ? ' (cache ignored)' : ''}`
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
// List tabs
|
|
105
|
+
{
|
|
106
|
+
name: 'list_tabs',
|
|
107
|
+
description: 'List all open tabs',
|
|
108
|
+
inputSchema: z.object({}),
|
|
109
|
+
handler: async () => {
|
|
110
|
+
const tabs = await connector.listTabs();
|
|
111
|
+
return {
|
|
112
|
+
success: true,
|
|
113
|
+
count: tabs.length,
|
|
114
|
+
tabs: tabs.map(t => ({
|
|
115
|
+
id: t.id,
|
|
116
|
+
title: t.title,
|
|
117
|
+
url: t.url
|
|
118
|
+
}))
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
// Create new tab
|
|
123
|
+
{
|
|
124
|
+
name: 'create_tab',
|
|
125
|
+
description: 'Create a new tab',
|
|
126
|
+
inputSchema: z.object({
|
|
127
|
+
url: z.string().optional().describe('URL to open in new tab (optional)')
|
|
128
|
+
}),
|
|
129
|
+
handler: async ({ url }) => {
|
|
130
|
+
const newTab = await connector.createTab(url);
|
|
131
|
+
await humanDelay();
|
|
132
|
+
return {
|
|
133
|
+
success: true,
|
|
134
|
+
tab: {
|
|
135
|
+
id: newTab.id,
|
|
136
|
+
url: newTab.url,
|
|
137
|
+
title: newTab.title
|
|
138
|
+
},
|
|
139
|
+
message: `Created new tab${url ? ` with URL: ${url}` : ''}`
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
// Close tab
|
|
144
|
+
{
|
|
145
|
+
name: 'close_tab',
|
|
146
|
+
description: 'Close a tab by ID',
|
|
147
|
+
inputSchema: z.object({
|
|
148
|
+
tabId: z.string().describe('Tab ID to close')
|
|
149
|
+
}),
|
|
150
|
+
handler: async ({ tabId }) => {
|
|
151
|
+
await connector.closeTab(tabId);
|
|
152
|
+
await humanDelay();
|
|
153
|
+
return {
|
|
154
|
+
success: true,
|
|
155
|
+
message: `Closed tab ${tabId}`
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
// Activate/switch to tab
|
|
160
|
+
{
|
|
161
|
+
name: 'switch_tab',
|
|
162
|
+
description: 'Switch to a specific tab',
|
|
163
|
+
inputSchema: z.object({
|
|
164
|
+
tabId: z.string().describe('Tab ID to switch to')
|
|
165
|
+
}),
|
|
166
|
+
handler: async ({ tabId }) => {
|
|
167
|
+
await connector.activateTab(tabId);
|
|
168
|
+
await humanDelay();
|
|
169
|
+
return {
|
|
170
|
+
success: true,
|
|
171
|
+
message: `Switched to tab ${tabId}`
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
// Get current URL
|
|
176
|
+
{
|
|
177
|
+
name: 'get_url',
|
|
178
|
+
description: 'Get the current URL of the page',
|
|
179
|
+
inputSchema: z.object({
|
|
180
|
+
tabId: z.string().optional().describe('Tab ID (optional)')
|
|
181
|
+
}),
|
|
182
|
+
handler: async ({ tabId }) => {
|
|
183
|
+
const client = await connector.getTabClient(tabId);
|
|
184
|
+
const { Page } = client;
|
|
185
|
+
await Page.enable();
|
|
186
|
+
const { frameTree } = await Page.getFrameTree();
|
|
187
|
+
return {
|
|
188
|
+
success: true,
|
|
189
|
+
url: frameTree.frame.url,
|
|
190
|
+
title: frameTree.frame.name || 'Untitled'
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
];
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../src/tools/navigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright Launcher Tool
|
|
3
|
+
* Launch Chrome with user profile using Playwright
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
import type { ChromeConnector } from '../chrome-connector.js';
|
|
7
|
+
export declare function createPlaywrightLauncherTools(connector: ChromeConnector): ({
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
inputSchema: z.ZodObject<{
|
|
11
|
+
profileDirectory: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
profileDirectory: string;
|
|
14
|
+
}, {
|
|
15
|
+
profileDirectory?: string | undefined;
|
|
16
|
+
}>;
|
|
17
|
+
handler: ({ profileDirectory }: any) => Promise<{
|
|
18
|
+
success: boolean;
|
|
19
|
+
message: string;
|
|
20
|
+
cdpPort: number;
|
|
21
|
+
error?: undefined;
|
|
22
|
+
} | {
|
|
23
|
+
success: boolean;
|
|
24
|
+
error: string;
|
|
25
|
+
message?: undefined;
|
|
26
|
+
cdpPort?: undefined;
|
|
27
|
+
}>;
|
|
28
|
+
} | {
|
|
29
|
+
name: string;
|
|
30
|
+
description: string;
|
|
31
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
32
|
+
handler: () => Promise<{
|
|
33
|
+
success: boolean;
|
|
34
|
+
message: string;
|
|
35
|
+
error?: undefined;
|
|
36
|
+
} | {
|
|
37
|
+
success: boolean;
|
|
38
|
+
error: string;
|
|
39
|
+
message?: undefined;
|
|
40
|
+
}>;
|
|
41
|
+
} | {
|
|
42
|
+
name: string;
|
|
43
|
+
description: string;
|
|
44
|
+
inputSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
|
|
45
|
+
handler: () => Promise<{
|
|
46
|
+
success: boolean;
|
|
47
|
+
connected: boolean;
|
|
48
|
+
playwrightManaged: boolean;
|
|
49
|
+
port: number;
|
|
50
|
+
status: string;
|
|
51
|
+
}>;
|
|
52
|
+
})[];
|
|
53
|
+
//# sourceMappingURL=playwright-launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-launcher.d.ts","sourceRoot":"","sources":["../../src/tools/playwright-launcher.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,eAAe;;;;;;;;;;oCA4C5B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0E9C"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Playwright Launcher Tool
|
|
3
|
+
* Launch Chrome with user profile using Playwright
|
|
4
|
+
*/
|
|
5
|
+
import { z } from 'zod';
|
|
6
|
+
export function createPlaywrightLauncherTools(connector) {
|
|
7
|
+
return [
|
|
8
|
+
{
|
|
9
|
+
name: 'launch_chrome_with_profile',
|
|
10
|
+
description: 'Launch Chrome using Playwright with your user profile (keeps cookies, sessions, extensions). This is the recommended way to start Chrome.',
|
|
11
|
+
inputSchema: z.object({
|
|
12
|
+
profileDirectory: z.string().optional().default('Default').describe('Profile directory name: "Default", "Profile 1", "Profile 2", etc.'),
|
|
13
|
+
userDataDir: z.string().optional().describe('Full path to Chrome User Data directory. Leave empty for default location.')
|
|
14
|
+
}),
|
|
15
|
+
handler: async ({ profileDirectory, userDataDir }) => {
|
|
16
|
+
try {
|
|
17
|
+
const options = {
|
|
18
|
+
headless: false,
|
|
19
|
+
profileDirectory
|
|
20
|
+
};
|
|
21
|
+
if (userDataDir) {
|
|
22
|
+
options.userDataDir = userDataDir;
|
|
23
|
+
}
|
|
24
|
+
await connector.launchWithProfile(options);
|
|
25
|
+
return {
|
|
26
|
+
success: true,
|
|
27
|
+
message: `Chrome launched with profile: ${profileDirectory}`,
|
|
28
|
+
cdpPort: connector.getPort(),
|
|
29
|
+
note: 'Chrome is now running with all your cookies, sessions, and extensions. Use other MCP tools to interact with it.'
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
return {
|
|
34
|
+
success: false,
|
|
35
|
+
error: error.message,
|
|
36
|
+
suggestion: 'Make sure Chrome is not already running. Close all Chrome windows and try again.'
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: 'launch_edge_with_profile',
|
|
43
|
+
description: 'Launch Microsoft Edge using Playwright with your user profile',
|
|
44
|
+
inputSchema: z.object({
|
|
45
|
+
profileDirectory: z.string().optional().default('Default').describe('Profile directory name')
|
|
46
|
+
}),
|
|
47
|
+
handler: async ({ profileDirectory }) => {
|
|
48
|
+
try {
|
|
49
|
+
const edgeUserData = `${process.env.LOCALAPPDATA}\\Microsoft\\Edge\\User Data`;
|
|
50
|
+
const edgeExe = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe';
|
|
51
|
+
await connector.launchWithProfile({
|
|
52
|
+
headless: false,
|
|
53
|
+
profileDirectory,
|
|
54
|
+
userDataDir: edgeUserData,
|
|
55
|
+
executablePath: edgeExe
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
success: true,
|
|
59
|
+
message: `Edge launched with profile: ${profileDirectory}`,
|
|
60
|
+
cdpPort: connector.getPort()
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
return {
|
|
65
|
+
success: false,
|
|
66
|
+
error: error.message
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
name: 'close_browser',
|
|
73
|
+
description: 'Close the Playwright-managed browser instance',
|
|
74
|
+
inputSchema: z.object({}),
|
|
75
|
+
handler: async () => {
|
|
76
|
+
try {
|
|
77
|
+
if (!connector.isPlaywrightManaged()) {
|
|
78
|
+
return {
|
|
79
|
+
success: false,
|
|
80
|
+
message: 'No Playwright-managed browser to close'
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
await connector.disconnect();
|
|
84
|
+
return {
|
|
85
|
+
success: true,
|
|
86
|
+
message: 'Browser closed successfully'
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
return {
|
|
91
|
+
success: false,
|
|
92
|
+
error: error.message
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'get_browser_status',
|
|
99
|
+
description: 'Check if browser is running and how it was launched',
|
|
100
|
+
inputSchema: z.object({}),
|
|
101
|
+
handler: async () => {
|
|
102
|
+
const isConnected = connector.isConnected();
|
|
103
|
+
const isPlaywright = connector.isPlaywrightManaged();
|
|
104
|
+
return {
|
|
105
|
+
success: true,
|
|
106
|
+
connected: isConnected,
|
|
107
|
+
playwrightManaged: isPlaywright,
|
|
108
|
+
port: connector.getPort(),
|
|
109
|
+
status: isConnected
|
|
110
|
+
? (isPlaywright ? 'Running via Playwright' : 'Connected to external Chrome')
|
|
111
|
+
: 'Not connected'
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=playwright-launcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright-launcher.js","sourceRoot":"","sources":["../../src/tools/playwright-launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service Worker Management Tools
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import type { ChromeConnector } from '../chrome-connector.js';
|
|
6
|
+
export declare function createServiceWorkerTools(connector: ChromeConnector): ({
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
inputSchema: z.ZodObject<{
|
|
10
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
}, "strip", z.ZodTypeAny, {
|
|
12
|
+
tabId?: string | undefined;
|
|
13
|
+
}, {
|
|
14
|
+
tabId?: string | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
handler: ({ tabId }: any) => Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
count: any;
|
|
19
|
+
workers: any;
|
|
20
|
+
}>;
|
|
21
|
+
} | {
|
|
22
|
+
name: string;
|
|
23
|
+
description: string;
|
|
24
|
+
inputSchema: z.ZodObject<{
|
|
25
|
+
targetId: z.ZodString;
|
|
26
|
+
executeTestLogs: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
27
|
+
captureTimeMs: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
28
|
+
}, "strip", z.ZodTypeAny, {
|
|
29
|
+
targetId: string;
|
|
30
|
+
executeTestLogs: boolean;
|
|
31
|
+
captureTimeMs: number;
|
|
32
|
+
}, {
|
|
33
|
+
targetId: string;
|
|
34
|
+
executeTestLogs?: boolean | undefined;
|
|
35
|
+
captureTimeMs?: number | undefined;
|
|
36
|
+
}>;
|
|
37
|
+
handler: ({ targetId, executeTestLogs, captureTimeMs }: any) => Promise<{
|
|
38
|
+
success: boolean;
|
|
39
|
+
targetId: any;
|
|
40
|
+
status: any;
|
|
41
|
+
capturedLogs: {
|
|
42
|
+
time: string;
|
|
43
|
+
source: string;
|
|
44
|
+
type: string;
|
|
45
|
+
message: string;
|
|
46
|
+
}[];
|
|
47
|
+
summary: {
|
|
48
|
+
totalCaptured: number;
|
|
49
|
+
byType: any;
|
|
50
|
+
bySource: any;
|
|
51
|
+
};
|
|
52
|
+
note: string;
|
|
53
|
+
}>;
|
|
54
|
+
} | {
|
|
55
|
+
name: string;
|
|
56
|
+
description: string;
|
|
57
|
+
inputSchema: z.ZodObject<{
|
|
58
|
+
versionId: z.ZodString;
|
|
59
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
60
|
+
}, "strip", z.ZodTypeAny, {
|
|
61
|
+
versionId: string;
|
|
62
|
+
tabId?: string | undefined;
|
|
63
|
+
}, {
|
|
64
|
+
versionId: string;
|
|
65
|
+
tabId?: string | undefined;
|
|
66
|
+
}>;
|
|
67
|
+
handler: ({ versionId, tabId }: any) => Promise<{
|
|
68
|
+
success: boolean;
|
|
69
|
+
worker: {
|
|
70
|
+
registrationId: any;
|
|
71
|
+
scopeURL: any;
|
|
72
|
+
scriptURL: any;
|
|
73
|
+
status: any;
|
|
74
|
+
versionId: any;
|
|
75
|
+
runningStatus: any;
|
|
76
|
+
};
|
|
77
|
+
}>;
|
|
78
|
+
} | {
|
|
79
|
+
name: string;
|
|
80
|
+
description: string;
|
|
81
|
+
inputSchema: z.ZodObject<{
|
|
82
|
+
scopeURL: z.ZodString;
|
|
83
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
84
|
+
}, "strip", z.ZodTypeAny, {
|
|
85
|
+
scopeURL: string;
|
|
86
|
+
tabId?: string | undefined;
|
|
87
|
+
}, {
|
|
88
|
+
scopeURL: string;
|
|
89
|
+
tabId?: string | undefined;
|
|
90
|
+
}>;
|
|
91
|
+
handler: ({ scopeURL, tabId }: any) => Promise<{
|
|
92
|
+
success: any;
|
|
93
|
+
message: string;
|
|
94
|
+
}>;
|
|
95
|
+
} | {
|
|
96
|
+
name: string;
|
|
97
|
+
description: string;
|
|
98
|
+
inputSchema: z.ZodObject<{
|
|
99
|
+
versionId: z.ZodString;
|
|
100
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
versionId: string;
|
|
103
|
+
tabId?: string | undefined;
|
|
104
|
+
}, {
|
|
105
|
+
versionId: string;
|
|
106
|
+
tabId?: string | undefined;
|
|
107
|
+
}>;
|
|
108
|
+
handler: ({ versionId, tabId }: any) => Promise<{
|
|
109
|
+
success: boolean;
|
|
110
|
+
message: string;
|
|
111
|
+
}>;
|
|
112
|
+
} | {
|
|
113
|
+
name: string;
|
|
114
|
+
description: string;
|
|
115
|
+
inputSchema: z.ZodObject<{
|
|
116
|
+
tabId: z.ZodOptional<z.ZodString>;
|
|
117
|
+
}, "strip", z.ZodTypeAny, {
|
|
118
|
+
tabId?: string | undefined;
|
|
119
|
+
}, {
|
|
120
|
+
tabId?: string | undefined;
|
|
121
|
+
}>;
|
|
122
|
+
handler: ({ tabId }: any) => Promise<{
|
|
123
|
+
success: boolean;
|
|
124
|
+
count: any;
|
|
125
|
+
caches: any;
|
|
126
|
+
}>;
|
|
127
|
+
})[];
|
|
128
|
+
//# sourceMappingURL=service-worker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-worker.d.ts","sourceRoot":"","sources":["../../src/tools/service-worker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,eAAe;;;;;;;;;;yBASlC,GAAG;;;;;;;;;;;;;;;;;;;;;4DA2C8C,GAAG;;;;;kBASpD,MAAM;oBAAU,MAAM;kBAAQ,MAAM;qBAAW,MAAM;;;;;;;;;;;;;;;;;;;;;;oCAwG1C,GAAG;;;;;;;;;;;;;;;;;;;;;;;;mCAmCJ,GAAG;;;;;;;;;;;;;;;;;oCAgGF,GAAG;;;;;;;;;;;;;;yBAiEd,GAAG;;;;;KAoBnC"}
|