@iflow-mcp/roxybrowserlabs-roxybrowser-mcp-server 1.0.9

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.
@@ -0,0 +1,442 @@
1
+ import { request } from '../utils/index.js';
2
+ class ListAccounts {
3
+ name = 'roxy_list_accounts';
4
+ description = 'Get list of accounts (platform credentials) in specified workspace';
5
+ inputSchema = {
6
+ type: 'object',
7
+ properties: {
8
+ workspaceId: {
9
+ type: 'number',
10
+ description: 'Workspace ID',
11
+ },
12
+ accountId: {
13
+ type: 'number',
14
+ description: 'Account ID to filter by',
15
+ },
16
+ pageIndex: {
17
+ type: 'number',
18
+ description: 'Page index for pagination (default: 1)',
19
+ default: 1,
20
+ },
21
+ pageSize: {
22
+ type: 'number',
23
+ description: 'Number of items per page (default: 15)',
24
+ default: 15,
25
+ },
26
+ },
27
+ required: ['workspaceId'],
28
+ };
29
+ get schema() {
30
+ return {
31
+ name: this.name,
32
+ description: this.description,
33
+ inputSchema: this.inputSchema,
34
+ };
35
+ }
36
+ async handle(params) {
37
+ const searchParams = new URLSearchParams();
38
+ searchParams.append('workspaceId', params.workspaceId.toString());
39
+ if (params.accountId)
40
+ searchParams.append('accountId', params.accountId.toString());
41
+ if (params.pageIndex)
42
+ searchParams.append('page_index', params.pageIndex.toString());
43
+ if (params.pageSize)
44
+ searchParams.append('page_size', params.pageSize.toString());
45
+ const result = await request(`/account/list?${searchParams}`, {
46
+ method: 'GET',
47
+ });
48
+ const data = result.data;
49
+ let text = '';
50
+ if (result.code !== 0) {
51
+ text = `❌ **Failed to list accounts:**\n\n error message: ${result.msg}`;
52
+ }
53
+ else {
54
+ text = `Found ${data.total} accounts in workspace ${params.workspaceId}:\n\n${data.rows.map((account) => `**${account.platformName}** (ID: ${account.id})\n`
55
+ + ` - Username: ${account.platformUserName}\n`
56
+ + ` - Platform URL: ${account.platformUrl}\n`
57
+ + ` - Remarks: ${account.platformRemarks || 'N/A'}\n`
58
+ + ` - Created: ${account.createTime}`).join('\n\n')}`;
59
+ }
60
+ return {
61
+ content: [
62
+ {
63
+ type: 'text',
64
+ text,
65
+ },
66
+ ],
67
+ };
68
+ }
69
+ }
70
+ class CreateAccount {
71
+ name = 'roxy_create_account';
72
+ description = 'Create a new platform account with credentials';
73
+ inputSchema = {
74
+ type: 'object',
75
+ properties: {
76
+ workspaceId: {
77
+ type: 'number',
78
+ description: 'Workspace ID',
79
+ },
80
+ platformUrl: {
81
+ type: 'string',
82
+ description: 'Business platform URL (e.g., https://www.tiktok.com/)',
83
+ },
84
+ platformUserName: {
85
+ type: 'string',
86
+ description: 'Account username',
87
+ },
88
+ platformPassword: {
89
+ type: 'string',
90
+ description: 'Account password',
91
+ },
92
+ platformEfa: {
93
+ type: 'string',
94
+ description: 'Account EFA',
95
+ },
96
+ platformCookies: {
97
+ type: 'array',
98
+ description: 'Account cookies',
99
+ items: {
100
+ type: 'object',
101
+ properties: {
102
+ name: { type: 'string' },
103
+ value: { type: 'string' },
104
+ domain: { type: 'string' },
105
+ },
106
+ required: ['name', 'value', 'domain'],
107
+ },
108
+ },
109
+ platformName: {
110
+ type: 'string',
111
+ description: 'Platform name',
112
+ },
113
+ platformRemarks: {
114
+ type: 'string',
115
+ description: 'Platform remarks/notes',
116
+ },
117
+ },
118
+ required: ['workspaceId', 'platformUrl', 'platformUserName', 'platformPassword'],
119
+ };
120
+ get schema() {
121
+ return {
122
+ name: this.name,
123
+ description: this.description,
124
+ inputSchema: this.inputSchema,
125
+ };
126
+ }
127
+ async handle(params) {
128
+ if (!params.workspaceId || !params.platformUrl || !params.platformUserName || !params.platformPassword) {
129
+ return {
130
+ content: [
131
+ {
132
+ type: 'text',
133
+ text: '❌ **Failed to create account:**\n\n workspaceId, platformUrl, platformUserName, and platformPassword are required',
134
+ },
135
+ ],
136
+ };
137
+ }
138
+ const { workspaceId, ...accountData } = params;
139
+ const result = await request('/account/create', {
140
+ method: 'POST',
141
+ body: JSON.stringify({ workspaceId, ...accountData }),
142
+ });
143
+ let text = '';
144
+ if (result.code !== 0) {
145
+ text = `❌ **Failed to create account:**\n\n error message: ${result.msg}`;
146
+ }
147
+ else {
148
+ text = `✅ **Account Created Successfully**
149
+
150
+ **Platform:** ${params.platformName || params.platformUrl}
151
+ **Username:** ${params.platformUserName}
152
+ **Platform URL:** ${params.platformUrl}${params.platformRemarks
153
+ ? `
154
+ **Remarks:** ${params.platformRemarks}`
155
+ : ''}${params.platformEfa
156
+ ? `
157
+ **EFA:** ${params.platformEfa}`
158
+ : ''}${params.platformCookies && params.platformCookies.length > 0
159
+ ? `
160
+ **Cookies:** ${params.platformCookies.length} cookie(s)`
161
+ : ''}
162
+
163
+ *Account has been created successfully.*`;
164
+ }
165
+ return {
166
+ content: [
167
+ {
168
+ type: 'text',
169
+ text,
170
+ },
171
+ ],
172
+ };
173
+ }
174
+ }
175
+ class BatchCreateAccounts {
176
+ name = 'roxy_batch_create_accounts';
177
+ description = 'Batch create multiple platform accounts';
178
+ inputSchema = {
179
+ type: 'object',
180
+ properties: {
181
+ workspaceId: {
182
+ type: 'number',
183
+ description: 'Workspace ID',
184
+ },
185
+ accountList: {
186
+ type: 'array',
187
+ description: 'Array of account configurations',
188
+ items: {
189
+ type: 'object',
190
+ properties: {
191
+ platformUrl: { type: 'string' },
192
+ platformUserName: { type: 'string' },
193
+ platformPassword: { type: 'string' },
194
+ platformEfa: { type: 'string' },
195
+ platformCookies: {
196
+ type: 'array',
197
+ items: {
198
+ type: 'object',
199
+ properties: {
200
+ name: { type: 'string' },
201
+ value: { type: 'string' },
202
+ domain: { type: 'string' },
203
+ },
204
+ required: ['name', 'value', 'domain'],
205
+ },
206
+ },
207
+ platformName: { type: 'string' },
208
+ platformRemarks: { type: 'string' },
209
+ },
210
+ required: ['platformUrl', 'platformUserName', 'platformPassword'],
211
+ },
212
+ },
213
+ },
214
+ required: ['workspaceId', 'accountList'],
215
+ };
216
+ get schema() {
217
+ return {
218
+ name: this.name,
219
+ description: this.description,
220
+ inputSchema: this.inputSchema,
221
+ };
222
+ }
223
+ async handle(params) {
224
+ if (!params.workspaceId || !params.accountList || params.accountList.length === 0) {
225
+ return {
226
+ content: [
227
+ {
228
+ type: 'text',
229
+ text: '❌ **Failed to batch create accounts:**\n\n workspaceId and accountList are required',
230
+ },
231
+ ],
232
+ };
233
+ }
234
+ const { workspaceId, accountList } = params;
235
+ const result = await request('/account/batch_create', {
236
+ method: 'POST',
237
+ body: JSON.stringify({ workspaceId, accountList }),
238
+ });
239
+ let text = '';
240
+ if (result.code !== 0) {
241
+ text = `❌ **Failed to batch create accounts:**\n\n error message: ${result.msg}`;
242
+ }
243
+ else {
244
+ text = `✅ **Batch Account Creation Successful**
245
+
246
+ **Count:** ${params.accountList.length} account(s)
247
+ **Workspace:** ${params.workspaceId}
248
+
249
+ *All accounts have been created successfully.*`;
250
+ }
251
+ return {
252
+ content: [
253
+ {
254
+ type: 'text',
255
+ text,
256
+ },
257
+ ],
258
+ };
259
+ }
260
+ }
261
+ class ModifyAccount {
262
+ name = 'roxy_modify_account';
263
+ description = 'Modify/update an existing platform account';
264
+ inputSchema = {
265
+ type: 'object',
266
+ properties: {
267
+ workspaceId: {
268
+ type: 'number',
269
+ description: 'Workspace ID',
270
+ },
271
+ id: {
272
+ type: 'number',
273
+ description: 'Account ID to modify',
274
+ },
275
+ platformUrl: {
276
+ type: 'string',
277
+ description: 'Business platform URL',
278
+ },
279
+ platformUserName: {
280
+ type: 'string',
281
+ description: 'Account username',
282
+ },
283
+ platformPassword: {
284
+ type: 'string',
285
+ description: 'Account password',
286
+ },
287
+ platformEfa: {
288
+ type: 'string',
289
+ description: 'Account EFA',
290
+ },
291
+ platformCookies: {
292
+ type: 'array',
293
+ description: 'Account cookies',
294
+ items: {
295
+ type: 'object',
296
+ properties: {
297
+ name: { type: 'string' },
298
+ value: { type: 'string' },
299
+ domain: { type: 'string' },
300
+ },
301
+ required: ['name', 'value', 'domain'],
302
+ },
303
+ },
304
+ platformName: {
305
+ type: 'string',
306
+ description: 'Platform name',
307
+ },
308
+ platformRemarks: {
309
+ type: 'string',
310
+ description: 'Platform remarks/notes',
311
+ },
312
+ },
313
+ required: ['workspaceId', 'id'],
314
+ };
315
+ get schema() {
316
+ return {
317
+ name: this.name,
318
+ description: this.description,
319
+ inputSchema: this.inputSchema,
320
+ };
321
+ }
322
+ async handle(params) {
323
+ if (!params.workspaceId || !params.id) {
324
+ return {
325
+ content: [
326
+ {
327
+ type: 'text',
328
+ text: '❌ **Failed to modify account:**\n\n workspaceId and id are required',
329
+ },
330
+ ],
331
+ };
332
+ }
333
+ const { workspaceId, ...accountData } = params;
334
+ const result = await request('/account/modify', {
335
+ method: 'POST',
336
+ body: JSON.stringify({ workspaceId, ...accountData }),
337
+ });
338
+ let text = '';
339
+ if (result.code !== 0) {
340
+ text = `❌ **Failed to modify account:**\n\n error message: ${result.msg}`;
341
+ }
342
+ else {
343
+ text = `✅ **Account Modified Successfully**
344
+
345
+ **Account ID:** ${params.id}${params.platformName
346
+ ? `
347
+ **Platform:** ${params.platformName}`
348
+ : ''}${params.platformUrl
349
+ ? `
350
+ **Platform URL:** ${params.platformUrl}`
351
+ : ''}${params.platformUserName
352
+ ? `
353
+ **Username:** ${params.platformUserName}`
354
+ : ''}${params.platformRemarks
355
+ ? `
356
+ **Remarks:** ${params.platformRemarks}`
357
+ : ''}
358
+
359
+ *Account configuration has been updated.*`;
360
+ }
361
+ return {
362
+ content: [
363
+ {
364
+ type: 'text',
365
+ text,
366
+ },
367
+ ],
368
+ };
369
+ }
370
+ }
371
+ class DeleteAccounts {
372
+ name = 'roxy_delete_accounts';
373
+ description = 'Delete one or more platform accounts';
374
+ inputSchema = {
375
+ type: 'object',
376
+ properties: {
377
+ workspaceId: {
378
+ type: 'number',
379
+ description: 'Workspace ID',
380
+ },
381
+ ids: {
382
+ type: 'array',
383
+ items: { type: 'number' },
384
+ description: 'Array of account IDs to delete',
385
+ },
386
+ },
387
+ required: ['workspaceId', 'ids'],
388
+ };
389
+ get schema() {
390
+ return {
391
+ name: this.name,
392
+ description: this.description,
393
+ inputSchema: this.inputSchema,
394
+ };
395
+ }
396
+ async handle(params) {
397
+ if (!params.workspaceId || !params.ids || params.ids.length === 0) {
398
+ return {
399
+ content: [
400
+ {
401
+ type: 'text',
402
+ text: '❌ **Failed to delete accounts:**\n\n workspaceId and ids are required',
403
+ },
404
+ ],
405
+ };
406
+ }
407
+ const { workspaceId, ids } = params;
408
+ const result = await request('/account/delete', {
409
+ method: 'POST',
410
+ body: JSON.stringify({ workspaceId, ids }),
411
+ });
412
+ let text = '';
413
+ if (result.code !== 0) {
414
+ text = `❌ **Failed to delete accounts:**\n\n error message: ${result.msg}`;
415
+ }
416
+ else {
417
+ text = `✅ **Accounts Deleted Successfully**
418
+
419
+ **Count:** ${params.ids.length} account(s)
420
+ **Workspace:** ${params.workspaceId}
421
+
422
+ **Deleted Account IDs:**
423
+ ${params.ids.map((id, index) => ` ${index + 1}. ${id}`).join('\n')}
424
+
425
+ ⚠️ **Warning:** Deleted accounts cannot be recovered.`;
426
+ }
427
+ return {
428
+ content: [
429
+ {
430
+ type: 'text',
431
+ text,
432
+ },
433
+ ],
434
+ };
435
+ }
436
+ }
437
+ export const listAccounts = new ListAccounts();
438
+ export const createAccount = new CreateAccount();
439
+ export const batchCreateAccounts = new BatchCreateAccounts();
440
+ export const modifyAccount = new ModifyAccount();
441
+ export const deleteAccounts = new DeleteAccounts();
442
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/modules/account.ts"],"names":[],"mappings":"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"}