botbrowser-mcp 0.1.6 → 0.1.8
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/dist/index.d.ts +2 -1
- package/dist/index.js +28 -9
- package/dist/index.js.map +1 -1
- package/dist/playwright/manager.js +8 -2
- package/dist/playwright/manager.js.map +1 -1
- package/dist/tools/account.d.ts +5 -0
- package/dist/tools/account.js +84 -54
- package/dist/tools/account.js.map +1 -1
- package/dist/tools/instance.d.ts +6 -1
- package/dist/tools/instance.js +81 -45
- package/dist/tools/instance.js.map +1 -1
- package/dist/tools/playwright-mcp-proxy.d.ts +63 -0
- package/dist/tools/playwright-mcp-proxy.js +229 -0
- package/dist/tools/playwright-mcp-proxy.js.map +1 -0
- package/dist/tools/profile.d.ts +12 -0
- package/dist/tools/profile.js +76 -52
- package/dist/tools/profile.js.map +1 -1
- package/package.json +5 -5
- package/readme.md +226 -12
- package/dist/cli.d.ts +0 -5
- package/dist/cli.js +0 -13
- package/dist/cli.js.map +0 -1
- package/dist/tools/browser.d.ts +0 -178
- package/dist/tools/browser.js +0 -211
- package/dist/tools/browser.js.map +0 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -10,20 +10,35 @@ import { PlaywrightManager } from './playwright/manager.js';
|
|
|
10
10
|
import { profileTools } from './tools/profile.js';
|
|
11
11
|
import { accountTools } from './tools/account.js';
|
|
12
12
|
import { instanceTools, setManager as setInstanceManager } from './tools/instance.js';
|
|
13
|
-
import {
|
|
13
|
+
import { PlaywrightMCPProxy } from './tools/playwright-mcp-proxy.js';
|
|
14
14
|
// 初始化数据库
|
|
15
15
|
initDatabase();
|
|
16
16
|
// 创建 Playwright 管理器
|
|
17
17
|
const manager = new PlaywrightManager();
|
|
18
18
|
setInstanceManager(manager);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
};
|
|
19
|
+
// 创建 Playwright MCP 代理并导出为全局变量(供 switch_browser_instance 使用)
|
|
20
|
+
export const playwrightMCPProxy = new PlaywrightMCPProxy(async () => {
|
|
21
|
+
const context = manager.getActiveContext();
|
|
22
|
+
if (!context) {
|
|
23
|
+
throw new Error('没有活跃的浏览器实例,请先使用 launch_instance 启动');
|
|
24
|
+
}
|
|
25
|
+
return context;
|
|
26
|
+
});
|
|
27
|
+
// 初始化工具
|
|
28
|
+
let allTools = {};
|
|
29
|
+
async function initializeTools() {
|
|
30
|
+
// 初始化 Playwright MCP 代理
|
|
31
|
+
await playwrightMCPProxy.initialize();
|
|
32
|
+
// 获取 Playwright MCP 的所有工具
|
|
33
|
+
const playwrightTools = playwrightMCPProxy.getToolDefinitions();
|
|
34
|
+
// 合并所有工具
|
|
35
|
+
allTools = {
|
|
36
|
+
...profileTools,
|
|
37
|
+
...accountTools,
|
|
38
|
+
...instanceTools,
|
|
39
|
+
...playwrightTools, // 完整的 Playwright MCP 工具集
|
|
40
|
+
};
|
|
41
|
+
}
|
|
27
42
|
// 创建 MCP Server
|
|
28
43
|
const server = new Server({
|
|
29
44
|
name: 'botbrowser-mcp',
|
|
@@ -65,14 +80,18 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
65
80
|
});
|
|
66
81
|
// 启动服务器
|
|
67
82
|
async function main() {
|
|
83
|
+
// 初始化所有工具
|
|
84
|
+
await initializeTools();
|
|
68
85
|
const transport = new StdioServerTransport();
|
|
69
86
|
await server.connect(transport);
|
|
70
87
|
// 优雅退出
|
|
71
88
|
process.on('SIGINT', async () => {
|
|
89
|
+
await playwrightMCPProxy.close();
|
|
72
90
|
await manager.stopAll();
|
|
73
91
|
process.exit(0);
|
|
74
92
|
});
|
|
75
93
|
process.on('SIGTERM', async () => {
|
|
94
|
+
await playwrightMCPProxy.close();
|
|
76
95
|
await manager.stopAll();
|
|
77
96
|
process.exit(0);
|
|
78
97
|
});
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,10 @@ export class PlaywrightManager {
|
|
|
78
78
|
executablePath: profile.executable_path,
|
|
79
79
|
...options, // launchOptions 中可以包含 headless、channel 等配置
|
|
80
80
|
});
|
|
81
|
+
// 确保至少有一个页面存在
|
|
82
|
+
if (context.pages().length === 0) {
|
|
83
|
+
await context.newPage();
|
|
84
|
+
}
|
|
81
85
|
// 保存到数据库
|
|
82
86
|
const instanceId = this.instanceRepo.create({
|
|
83
87
|
profile_alias: profileAlias,
|
|
@@ -158,11 +162,13 @@ export class PlaywrightManager {
|
|
|
158
162
|
*/
|
|
159
163
|
getActiveContext() {
|
|
160
164
|
const activeInstance = this.instanceRepo.getActive();
|
|
161
|
-
if (!activeInstance)
|
|
165
|
+
if (!activeInstance) {
|
|
162
166
|
return null;
|
|
167
|
+
}
|
|
163
168
|
const instance = this.instances.get(activeInstance.id);
|
|
164
|
-
if (!instance)
|
|
169
|
+
if (!instance) {
|
|
165
170
|
return null;
|
|
171
|
+
}
|
|
166
172
|
this.instanceRepo.updateLastActive(activeInstance.id);
|
|
167
173
|
return instance.context;
|
|
168
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/playwright/manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/playwright/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/account.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare const accountTools: {
|
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
required: string[];
|
|
21
|
+
additionalProperties: boolean;
|
|
21
22
|
};
|
|
22
23
|
handler: (args: any) => Promise<{
|
|
23
24
|
content: {
|
|
@@ -36,6 +37,7 @@ export declare const accountTools: {
|
|
|
36
37
|
description: string;
|
|
37
38
|
};
|
|
38
39
|
};
|
|
40
|
+
additionalProperties: boolean;
|
|
39
41
|
};
|
|
40
42
|
handler: (args: any) => Promise<{
|
|
41
43
|
content: {
|
|
@@ -59,6 +61,7 @@ export declare const accountTools: {
|
|
|
59
61
|
};
|
|
60
62
|
};
|
|
61
63
|
required: string[];
|
|
64
|
+
additionalProperties: boolean;
|
|
62
65
|
};
|
|
63
66
|
handler: (args: any) => Promise<{
|
|
64
67
|
content: {
|
|
@@ -86,6 +89,7 @@ export declare const accountTools: {
|
|
|
86
89
|
};
|
|
87
90
|
};
|
|
88
91
|
required: string[];
|
|
92
|
+
additionalProperties: boolean;
|
|
89
93
|
};
|
|
90
94
|
handler: (args: any) => Promise<{
|
|
91
95
|
content: {
|
|
@@ -105,6 +109,7 @@ export declare const accountTools: {
|
|
|
105
109
|
};
|
|
106
110
|
};
|
|
107
111
|
required: string[];
|
|
112
|
+
additionalProperties: boolean;
|
|
108
113
|
};
|
|
109
114
|
handler: (args: any) => Promise<{
|
|
110
115
|
content: {
|
package/dist/tools/account.js
CHANGED
|
@@ -1,109 +1,139 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Account management tools
|
|
3
3
|
*/
|
|
4
4
|
import { AccountRepository } from '../db/repositories/account.js';
|
|
5
5
|
const accountRepo = new AccountRepository();
|
|
6
6
|
export const accountTools = {
|
|
7
7
|
add_account: {
|
|
8
|
-
description: '
|
|
8
|
+
description: 'Add an account to a browser profile with flexible metadata storage',
|
|
9
9
|
inputSchema: {
|
|
10
10
|
type: 'object',
|
|
11
11
|
properties: {
|
|
12
|
-
profile_alias: { type: 'string', description: '
|
|
13
|
-
username: { type: 'string', description: '
|
|
14
|
-
metadata: { type: 'string', description: '
|
|
12
|
+
profile_alias: { type: 'string', description: 'Browser profile alias' },
|
|
13
|
+
username: { type: 'string', description: 'Account username or identifier' },
|
|
14
|
+
metadata: { type: 'string', description: 'Account metadata (password, email, 2FA, etc.) in any format - key-value, JSON, or natural language' },
|
|
15
15
|
},
|
|
16
16
|
required: ['profile_alias', 'username'],
|
|
17
|
+
additionalProperties: false,
|
|
17
18
|
},
|
|
18
19
|
handler: async (args) => {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
try {
|
|
21
|
+
const id = accountRepo.create(args);
|
|
22
|
+
return {
|
|
23
|
+
content: [{
|
|
24
|
+
type: 'text',
|
|
25
|
+
text: `Account "${args.username}" added successfully with ID: ${id}`,
|
|
26
|
+
}],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
throw new Error(`Failed to add account: ${error instanceof Error ? error.message : String(error)}`);
|
|
31
|
+
}
|
|
26
32
|
},
|
|
27
33
|
},
|
|
28
34
|
list_accounts: {
|
|
29
|
-
description: '
|
|
35
|
+
description: 'List all accounts or accounts for a specific profile',
|
|
30
36
|
inputSchema: {
|
|
31
37
|
type: 'object',
|
|
32
38
|
properties: {
|
|
33
|
-
profile_alias: { type: 'string', description: '
|
|
39
|
+
profile_alias: { type: 'string', description: 'Filter by browser profile alias (optional)' },
|
|
34
40
|
},
|
|
41
|
+
additionalProperties: false,
|
|
35
42
|
},
|
|
36
43
|
handler: async (args) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
try {
|
|
45
|
+
const accounts = args.profile_alias
|
|
46
|
+
? accountRepo.getByProfile(args.profile_alias)
|
|
47
|
+
: accountRepo.getAll();
|
|
48
|
+
return {
|
|
49
|
+
content: [{
|
|
50
|
+
type: 'text',
|
|
51
|
+
text: JSON.stringify(accounts, null, 2),
|
|
52
|
+
}],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
throw new Error(`Failed to list accounts: ${error instanceof Error ? error.message : String(error)}`);
|
|
57
|
+
}
|
|
46
58
|
},
|
|
47
59
|
},
|
|
48
60
|
find_account: {
|
|
49
|
-
description: '
|
|
61
|
+
description: 'Find a specific account by username within a profile',
|
|
50
62
|
inputSchema: {
|
|
51
63
|
type: 'object',
|
|
52
64
|
properties: {
|
|
53
|
-
profile_alias: { type: 'string', description: '
|
|
54
|
-
username: { type: 'string', description: '
|
|
65
|
+
profile_alias: { type: 'string', description: 'Browser profile alias' },
|
|
66
|
+
username: { type: 'string', description: 'Account username to search for' },
|
|
55
67
|
},
|
|
56
68
|
required: ['profile_alias', 'username'],
|
|
69
|
+
additionalProperties: false,
|
|
57
70
|
},
|
|
58
71
|
handler: async (args) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
try {
|
|
73
|
+
const account = accountRepo.findByUsername(args.profile_alias, args.username);
|
|
74
|
+
return {
|
|
75
|
+
content: [{
|
|
76
|
+
type: 'text',
|
|
77
|
+
text: account ? JSON.stringify(account, null, 2) : 'Account not found',
|
|
78
|
+
}],
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
catch (error) {
|
|
82
|
+
throw new Error(`Failed to find account: ${error instanceof Error ? error.message : String(error)}`);
|
|
83
|
+
}
|
|
66
84
|
},
|
|
67
85
|
},
|
|
68
86
|
update_account: {
|
|
69
|
-
description: '
|
|
87
|
+
description: 'Update account information',
|
|
70
88
|
inputSchema: {
|
|
71
89
|
type: 'object',
|
|
72
90
|
properties: {
|
|
73
|
-
id: { type: 'number', description: '
|
|
74
|
-
username: { type: 'string', description: '
|
|
75
|
-
metadata: { type: 'string', description: '
|
|
91
|
+
id: { type: 'number', description: 'Account ID' },
|
|
92
|
+
username: { type: 'string', description: 'New username' },
|
|
93
|
+
metadata: { type: 'string', description: 'New metadata' },
|
|
76
94
|
},
|
|
77
95
|
required: ['id'],
|
|
96
|
+
additionalProperties: false,
|
|
78
97
|
},
|
|
79
98
|
handler: async (args) => {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
try {
|
|
100
|
+
const { id, ...updates } = args;
|
|
101
|
+
accountRepo.update(id, updates);
|
|
102
|
+
return {
|
|
103
|
+
content: [{
|
|
104
|
+
type: 'text',
|
|
105
|
+
text: `Account ${id} updated successfully`,
|
|
106
|
+
}],
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
throw new Error(`Failed to update account: ${error instanceof Error ? error.message : String(error)}`);
|
|
111
|
+
}
|
|
88
112
|
},
|
|
89
113
|
},
|
|
90
114
|
delete_account: {
|
|
91
|
-
description: '
|
|
115
|
+
description: 'Delete an account',
|
|
92
116
|
inputSchema: {
|
|
93
117
|
type: 'object',
|
|
94
118
|
properties: {
|
|
95
|
-
id: { type: 'number', description: '
|
|
119
|
+
id: { type: 'number', description: 'Account ID to delete' },
|
|
96
120
|
},
|
|
97
121
|
required: ['id'],
|
|
122
|
+
additionalProperties: false,
|
|
98
123
|
},
|
|
99
124
|
handler: async (args) => {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
125
|
+
try {
|
|
126
|
+
accountRepo.delete(args.id);
|
|
127
|
+
return {
|
|
128
|
+
content: [{
|
|
129
|
+
type: 'text',
|
|
130
|
+
text: `Account ${args.id} deleted successfully`,
|
|
131
|
+
}],
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
catch (error) {
|
|
135
|
+
throw new Error(`Failed to delete account: ${error instanceof Error ? error.message : String(error)}`);
|
|
136
|
+
}
|
|
107
137
|
},
|
|
108
138
|
},
|
|
109
139
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/tools/account.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,WAAW,EAAE;QACX,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/tools/account.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/instance.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Browser instance management tools
|
|
3
3
|
*/
|
|
4
4
|
import { PlaywrightManager } from '../playwright/manager.js';
|
|
5
5
|
export declare function setManager(m: PlaywrightManager): void;
|
|
@@ -24,6 +24,7 @@ export declare const instanceTools: {
|
|
|
24
24
|
};
|
|
25
25
|
};
|
|
26
26
|
required: string[];
|
|
27
|
+
additionalProperties: boolean;
|
|
27
28
|
};
|
|
28
29
|
handler: (args: any) => Promise<{
|
|
29
30
|
content: {
|
|
@@ -37,6 +38,7 @@ export declare const instanceTools: {
|
|
|
37
38
|
inputSchema: {
|
|
38
39
|
type: string;
|
|
39
40
|
properties: {};
|
|
41
|
+
additionalProperties: boolean;
|
|
40
42
|
};
|
|
41
43
|
handler: () => Promise<{
|
|
42
44
|
content: {
|
|
@@ -56,6 +58,7 @@ export declare const instanceTools: {
|
|
|
56
58
|
};
|
|
57
59
|
};
|
|
58
60
|
required: string[];
|
|
61
|
+
additionalProperties: boolean;
|
|
59
62
|
};
|
|
60
63
|
handler: (args: any) => Promise<{
|
|
61
64
|
content: {
|
|
@@ -75,6 +78,7 @@ export declare const instanceTools: {
|
|
|
75
78
|
};
|
|
76
79
|
};
|
|
77
80
|
required: string[];
|
|
81
|
+
additionalProperties: boolean;
|
|
78
82
|
};
|
|
79
83
|
handler: (args: any) => Promise<{
|
|
80
84
|
content: {
|
|
@@ -88,6 +92,7 @@ export declare const instanceTools: {
|
|
|
88
92
|
inputSchema: {
|
|
89
93
|
type: string;
|
|
90
94
|
properties: {};
|
|
95
|
+
additionalProperties: boolean;
|
|
91
96
|
};
|
|
92
97
|
handler: () => Promise<{
|
|
93
98
|
content: {
|
package/dist/tools/instance.js
CHANGED
|
@@ -4,98 +4,134 @@ export function setManager(m) {
|
|
|
4
4
|
}
|
|
5
5
|
export const instanceTools = {
|
|
6
6
|
launch_browser: {
|
|
7
|
-
description: '
|
|
7
|
+
description: 'Launch a new browser instance based on a profile configuration',
|
|
8
8
|
inputSchema: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
properties: {
|
|
11
|
-
profile_alias: { type: 'string', description: '
|
|
12
|
-
account_id: { type: 'number', description: '
|
|
11
|
+
profile_alias: { type: 'string', description: 'Browser profile alias to use' },
|
|
12
|
+
account_id: { type: 'number', description: 'Optional account ID to associate with this instance' },
|
|
13
13
|
launch_options: {
|
|
14
14
|
type: 'object',
|
|
15
|
-
description: 'Playwright
|
|
15
|
+
description: 'Optional Playwright launch options (e.g., {"headless": false, "channel": "chrome"})',
|
|
16
16
|
additionalProperties: true,
|
|
17
17
|
},
|
|
18
18
|
},
|
|
19
19
|
required: ['profile_alias'],
|
|
20
|
+
additionalProperties: false,
|
|
20
21
|
},
|
|
21
22
|
handler: async (args) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
try {
|
|
24
|
+
const id = await manager.launchInstance(args.profile_alias, args.account_id, args.launch_options);
|
|
25
|
+
return {
|
|
26
|
+
content: [{
|
|
27
|
+
type: 'text',
|
|
28
|
+
text: `Browser instance ${id} launched successfully`,
|
|
29
|
+
}],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new Error(`Failed to launch browser: ${error instanceof Error ? error.message : String(error)}`);
|
|
34
|
+
}
|
|
29
35
|
},
|
|
30
36
|
},
|
|
31
37
|
list_browser_instances: {
|
|
32
|
-
description: '
|
|
38
|
+
description: 'List all running browser instances with their status',
|
|
33
39
|
inputSchema: {
|
|
34
40
|
type: 'object',
|
|
35
41
|
properties: {},
|
|
42
|
+
additionalProperties: false,
|
|
36
43
|
},
|
|
37
44
|
handler: async () => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
+
try {
|
|
46
|
+
const instances = manager.listInstances();
|
|
47
|
+
return {
|
|
48
|
+
content: [{
|
|
49
|
+
type: 'text',
|
|
50
|
+
text: JSON.stringify(instances, null, 2),
|
|
51
|
+
}],
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
throw new Error(`Failed to list instances: ${error instanceof Error ? error.message : String(error)}`);
|
|
56
|
+
}
|
|
45
57
|
},
|
|
46
58
|
},
|
|
47
59
|
switch_browser_instance: {
|
|
48
|
-
description: '
|
|
60
|
+
description: 'Switch the active browser instance. All subsequent browser operations will run on the switched instance',
|
|
49
61
|
inputSchema: {
|
|
50
62
|
type: 'object',
|
|
51
63
|
properties: {
|
|
52
|
-
instance_id: { type: 'number', description: '
|
|
64
|
+
instance_id: { type: 'number', description: 'Instance ID to switch to' },
|
|
53
65
|
},
|
|
54
66
|
required: ['instance_id'],
|
|
67
|
+
additionalProperties: false,
|
|
55
68
|
},
|
|
56
69
|
handler: async (args) => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
70
|
+
try {
|
|
71
|
+
await manager.switchActive(args.instance_id);
|
|
72
|
+
// CRITICAL: Reset Playwright MCP's context cache
|
|
73
|
+
// This forces it to fetch the new active context on the next tool call
|
|
74
|
+
const { playwrightMCPProxy } = await import('../index.js');
|
|
75
|
+
if (playwrightMCPProxy) {
|
|
76
|
+
await playwrightMCPProxy.resetContext();
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
content: [{
|
|
80
|
+
type: 'text',
|
|
81
|
+
text: `Switched to instance ${args.instance_id}`,
|
|
82
|
+
}],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
throw new Error(`Failed to switch instance: ${error instanceof Error ? error.message : String(error)}`);
|
|
87
|
+
}
|
|
64
88
|
},
|
|
65
89
|
},
|
|
66
90
|
stop_browser_instance: {
|
|
67
|
-
description: '
|
|
91
|
+
description: 'Stop a running browser instance and save its state',
|
|
68
92
|
inputSchema: {
|
|
69
93
|
type: 'object',
|
|
70
94
|
properties: {
|
|
71
|
-
instance_id: { type: 'number', description: '
|
|
95
|
+
instance_id: { type: 'number', description: 'Instance ID to stop' },
|
|
72
96
|
},
|
|
73
97
|
required: ['instance_id'],
|
|
98
|
+
additionalProperties: false,
|
|
74
99
|
},
|
|
75
100
|
handler: async (args) => {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
101
|
+
try {
|
|
102
|
+
await manager.stopInstance(args.instance_id);
|
|
103
|
+
return {
|
|
104
|
+
content: [{
|
|
105
|
+
type: 'text',
|
|
106
|
+
text: `Instance ${args.instance_id} stopped successfully`,
|
|
107
|
+
}],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
throw new Error(`Failed to stop instance: ${error instanceof Error ? error.message : String(error)}`);
|
|
112
|
+
}
|
|
83
113
|
},
|
|
84
114
|
},
|
|
85
115
|
cleanup_orphaned_instances: {
|
|
86
|
-
description: '
|
|
116
|
+
description: 'Clean up orphaned instance records (database entries for instances that are no longer running)',
|
|
87
117
|
inputSchema: {
|
|
88
118
|
type: 'object',
|
|
89
119
|
properties: {},
|
|
120
|
+
additionalProperties: false,
|
|
90
121
|
},
|
|
91
122
|
handler: async () => {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
123
|
+
try {
|
|
124
|
+
const count = await manager.cleanupOrphaned();
|
|
125
|
+
return {
|
|
126
|
+
content: [{
|
|
127
|
+
type: 'text',
|
|
128
|
+
text: `Cleaned up ${count} orphaned instance record(s)`,
|
|
129
|
+
}],
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw new Error(`Failed to cleanup orphaned instances: ${error instanceof Error ? error.message : String(error)}`);
|
|
134
|
+
}
|
|
99
135
|
},
|
|
100
136
|
},
|
|
101
137
|
};
|