@browserstack/mcp-server 1.1.0 → 1.1.1
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/config.js +2 -6
- package/dist/index.js +29 -34
- package/dist/lib/api.js +3 -9
- package/dist/lib/constants.js +3 -6
- package/dist/lib/device-cache.js +14 -21
- package/dist/lib/error.js +3 -6
- package/dist/lib/fuzzy.js +1 -4
- package/dist/lib/inmemory-store.js +1 -4
- package/dist/lib/instrumentation.js +12 -18
- package/dist/lib/local.js +27 -35
- package/dist/lib/utils.js +6 -15
- package/dist/logger.js +4 -6
- package/dist/tools/accessibility.js +13 -16
- package/dist/tools/accessiblity-utils/report-fetcher.js +7 -14
- package/dist/tools/accessiblity-utils/report-parser.js +5 -11
- package/dist/tools/accessiblity-utils/scanner.js +9 -16
- package/dist/tools/appautomate-utils/appautomate.js +17 -27
- package/dist/tools/appautomate.js +29 -35
- package/dist/tools/applive-utils/fuzzy-search.js +3 -6
- package/dist/tools/applive-utils/start-session.js +14 -20
- package/dist/tools/applive-utils/upload-app.js +12 -51
- package/dist/tools/applive.js +18 -25
- package/dist/tools/automate-utils/fetch-screenshots.js +8 -14
- package/dist/tools/automate.js +14 -21
- package/dist/tools/bstack-sdk.js +14 -18
- package/dist/tools/failurelogs-utils/app-automate.js +15 -26
- package/dist/tools/failurelogs-utils/automate.js +13 -23
- package/dist/tools/getFailureLogs.js +42 -49
- package/dist/tools/live-utils/desktop-filter.js +8 -11
- package/dist/tools/live-utils/mobile-filter.js +7 -10
- package/dist/tools/live-utils/start-session.js +17 -23
- package/dist/tools/live-utils/types.js +2 -5
- package/dist/tools/live-utils/version-resolver.js +1 -4
- package/dist/tools/live.js +23 -29
- package/dist/tools/observability.js +12 -19
- package/dist/tools/sdk-utils/constants.js +3 -9
- package/dist/tools/sdk-utils/instructions.js +4 -9
- package/dist/tools/sdk-utils/types.js +1 -2
- package/dist/tools/testmanagement-utils/TCG-utils/api.js +26 -38
- package/dist/tools/testmanagement-utils/TCG-utils/config.js +5 -10
- package/dist/tools/testmanagement-utils/TCG-utils/helpers.js +3 -8
- package/dist/tools/testmanagement-utils/TCG-utils/types.js +5 -8
- package/dist/tools/testmanagement-utils/add-test-result.js +17 -24
- package/dist/tools/testmanagement-utils/create-project-folder.js +21 -28
- package/dist/tools/testmanagement-utils/create-testcase.js +30 -38
- package/dist/tools/testmanagement-utils/create-testrun.js +23 -30
- package/dist/tools/testmanagement-utils/list-testcases.js +15 -22
- package/dist/tools/testmanagement-utils/list-testruns.js +12 -19
- package/dist/tools/testmanagement-utils/testcase-from-file.js +16 -22
- package/dist/tools/testmanagement-utils/update-testrun.js +15 -22
- package/dist/tools/testmanagement-utils/upload-file.js +22 -29
- package/dist/tools/testmanagement.js +61 -76
- package/package.json +1 -1
|
@@ -1,43 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createProjectOrFolderTool = createProjectOrFolderTool;
|
|
7
|
-
exports.createTestCaseTool = createTestCaseTool;
|
|
8
|
-
exports.listTestCasesTool = listTestCasesTool;
|
|
9
|
-
exports.createTestRunTool = createTestRunTool;
|
|
10
|
-
exports.listTestRunsTool = listTestRunsTool;
|
|
11
|
-
exports.updateTestRunTool = updateTestRunTool;
|
|
12
|
-
exports.addTestResultTool = addTestResultTool;
|
|
13
|
-
exports.uploadProductRequirementFileTool = uploadProductRequirementFileTool;
|
|
14
|
-
exports.createTestCasesFromFileTool = createTestCasesFromFileTool;
|
|
15
|
-
exports.default = addTestManagementTools;
|
|
16
|
-
const instrumentation_js_1 = require("../lib/instrumentation.js");
|
|
17
|
-
const logger_js_1 = __importDefault(require("../logger.js"));
|
|
18
|
-
const create_project_folder_js_1 = require("./testmanagement-utils/create-project-folder.js");
|
|
19
|
-
const create_testcase_js_1 = require("./testmanagement-utils/create-testcase.js");
|
|
1
|
+
import { trackMCP } from "../lib/instrumentation.js";
|
|
2
|
+
import logger from "../logger.js";
|
|
3
|
+
import { createProjectOrFolder, CreateProjFoldSchema, } from "./testmanagement-utils/create-project-folder.js";
|
|
4
|
+
import { createTestCase as createTestCaseAPI, sanitizeArgs, CreateTestCaseSchema, } from "./testmanagement-utils/create-testcase.js";
|
|
20
5
|
let serverInstance;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
6
|
+
import { listTestCases, ListTestCasesSchema, } from "./testmanagement-utils/list-testcases.js";
|
|
7
|
+
import { CreateTestRunSchema, createTestRun, } from "./testmanagement-utils/create-testrun.js";
|
|
8
|
+
import { ListTestRunsSchema, listTestRuns, } from "./testmanagement-utils/list-testruns.js";
|
|
9
|
+
import { UpdateTestRunSchema, updateTestRun, } from "./testmanagement-utils/update-testrun.js";
|
|
10
|
+
import { addTestResult, AddTestResultSchema, } from "./testmanagement-utils/add-test-result.js";
|
|
11
|
+
import { UploadFileSchema, uploadFile, } from "./testmanagement-utils/upload-file.js";
|
|
12
|
+
import { createTestCasesFromFile } from "./testmanagement-utils/testcase-from-file.js";
|
|
13
|
+
import { CreateTestCasesFromFileSchema } from "./testmanagement-utils/TCG-utils/types.js";
|
|
29
14
|
//TODO: Moving the traceMCP and catch block to the parent(server) function
|
|
30
15
|
/**
|
|
31
16
|
* Wrapper to call createProjectOrFolder util.
|
|
32
17
|
*/
|
|
33
|
-
async function createProjectOrFolderTool(args) {
|
|
18
|
+
export async function createProjectOrFolderTool(args) {
|
|
34
19
|
try {
|
|
35
|
-
|
|
36
|
-
return await
|
|
20
|
+
trackMCP("createProjectOrFolder", serverInstance.server.getClientVersion());
|
|
21
|
+
return await createProjectOrFolder(args);
|
|
37
22
|
}
|
|
38
23
|
catch (err) {
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
logger.error("Failed to create project/folder: %s", err);
|
|
25
|
+
trackMCP("createProjectOrFolder", serverInstance.server.getClientVersion(), err);
|
|
41
26
|
return {
|
|
42
27
|
content: [
|
|
43
28
|
{
|
|
@@ -53,16 +38,16 @@ async function createProjectOrFolderTool(args) {
|
|
|
53
38
|
/**
|
|
54
39
|
* Creates a test case in BrowserStack Test Management.
|
|
55
40
|
*/
|
|
56
|
-
async function createTestCaseTool(args) {
|
|
41
|
+
export async function createTestCaseTool(args) {
|
|
57
42
|
// Sanitize input arguments
|
|
58
|
-
const cleanedArgs =
|
|
43
|
+
const cleanedArgs = sanitizeArgs(args);
|
|
59
44
|
try {
|
|
60
|
-
|
|
61
|
-
return await (
|
|
45
|
+
trackMCP("createTestCase", serverInstance.server.getClientVersion());
|
|
46
|
+
return await createTestCaseAPI(cleanedArgs);
|
|
62
47
|
}
|
|
63
48
|
catch (err) {
|
|
64
|
-
|
|
65
|
-
|
|
49
|
+
logger.error("Failed to create test case: %s", err);
|
|
50
|
+
trackMCP("createTestCase", serverInstance.server.getClientVersion(), err);
|
|
66
51
|
return {
|
|
67
52
|
content: [
|
|
68
53
|
{
|
|
@@ -78,13 +63,13 @@ async function createTestCaseTool(args) {
|
|
|
78
63
|
/**
|
|
79
64
|
* Lists test cases in a project with optional filters (status, priority, custom fields, etc.)
|
|
80
65
|
*/
|
|
81
|
-
async function listTestCasesTool(args) {
|
|
66
|
+
export async function listTestCasesTool(args) {
|
|
82
67
|
try {
|
|
83
|
-
|
|
84
|
-
return await
|
|
68
|
+
trackMCP("listTestCases", serverInstance.server.getClientVersion());
|
|
69
|
+
return await listTestCases(args);
|
|
85
70
|
}
|
|
86
71
|
catch (err) {
|
|
87
|
-
|
|
72
|
+
trackMCP("listTestCases", serverInstance.server.getClientVersion(), err);
|
|
88
73
|
return {
|
|
89
74
|
content: [
|
|
90
75
|
{
|
|
@@ -100,13 +85,13 @@ async function listTestCasesTool(args) {
|
|
|
100
85
|
/**
|
|
101
86
|
* Creates a test run in BrowserStack Test Management.
|
|
102
87
|
*/
|
|
103
|
-
async function createTestRunTool(args) {
|
|
88
|
+
export async function createTestRunTool(args) {
|
|
104
89
|
try {
|
|
105
|
-
|
|
106
|
-
return await
|
|
90
|
+
trackMCP("createTestRun", serverInstance.server.getClientVersion());
|
|
91
|
+
return await createTestRun(args);
|
|
107
92
|
}
|
|
108
93
|
catch (err) {
|
|
109
|
-
|
|
94
|
+
trackMCP("createTestRun", serverInstance.server.getClientVersion(), err);
|
|
110
95
|
return {
|
|
111
96
|
content: [
|
|
112
97
|
{
|
|
@@ -122,13 +107,13 @@ async function createTestRunTool(args) {
|
|
|
122
107
|
/**
|
|
123
108
|
* Lists test runs in a project with optional filters (date ranges, assignee, state, etc.)
|
|
124
109
|
*/
|
|
125
|
-
async function listTestRunsTool(args) {
|
|
110
|
+
export async function listTestRunsTool(args) {
|
|
126
111
|
try {
|
|
127
|
-
|
|
128
|
-
return await
|
|
112
|
+
trackMCP("listTestRuns", serverInstance.server.getClientVersion());
|
|
113
|
+
return await listTestRuns(args);
|
|
129
114
|
}
|
|
130
115
|
catch (err) {
|
|
131
|
-
|
|
116
|
+
trackMCP("listTestRuns", serverInstance.server.getClientVersion(), err);
|
|
132
117
|
return {
|
|
133
118
|
content: [
|
|
134
119
|
{
|
|
@@ -146,13 +131,13 @@ async function listTestRunsTool(args) {
|
|
|
146
131
|
* This function allows for partial updates to an existing test run.
|
|
147
132
|
* It takes the project identifier and test run ID as parameters.
|
|
148
133
|
*/
|
|
149
|
-
async function updateTestRunTool(args) {
|
|
134
|
+
export async function updateTestRunTool(args) {
|
|
150
135
|
try {
|
|
151
|
-
|
|
152
|
-
return await
|
|
136
|
+
trackMCP("updateTestRun", serverInstance.server.getClientVersion());
|
|
137
|
+
return await updateTestRun(args);
|
|
153
138
|
}
|
|
154
139
|
catch (err) {
|
|
155
|
-
|
|
140
|
+
trackMCP("updateTestRun", serverInstance.server.getClientVersion(), err);
|
|
156
141
|
return {
|
|
157
142
|
content: [
|
|
158
143
|
{
|
|
@@ -168,13 +153,13 @@ async function updateTestRunTool(args) {
|
|
|
168
153
|
/**
|
|
169
154
|
* Adds a test result to a specific test run via BrowserStack Test Management API.
|
|
170
155
|
*/
|
|
171
|
-
async function addTestResultTool(args) {
|
|
156
|
+
export async function addTestResultTool(args) {
|
|
172
157
|
try {
|
|
173
|
-
|
|
174
|
-
return await
|
|
158
|
+
trackMCP("addTestResult", serverInstance.server.getClientVersion());
|
|
159
|
+
return await addTestResult(args);
|
|
175
160
|
}
|
|
176
161
|
catch (err) {
|
|
177
|
-
|
|
162
|
+
trackMCP("addTestResult", serverInstance.server.getClientVersion(), err);
|
|
178
163
|
return {
|
|
179
164
|
content: [
|
|
180
165
|
{
|
|
@@ -190,13 +175,13 @@ async function addTestResultTool(args) {
|
|
|
190
175
|
/**
|
|
191
176
|
* Uploads files such as PDRs or screenshots to BrowserStack Test Management and get file mapping ID back.
|
|
192
177
|
*/
|
|
193
|
-
async function uploadProductRequirementFileTool(args) {
|
|
178
|
+
export async function uploadProductRequirementFileTool(args) {
|
|
194
179
|
try {
|
|
195
|
-
|
|
196
|
-
return await
|
|
180
|
+
trackMCP("uploadProductRequirementFile", serverInstance.server.getClientVersion());
|
|
181
|
+
return await uploadFile(args);
|
|
197
182
|
}
|
|
198
183
|
catch (err) {
|
|
199
|
-
|
|
184
|
+
trackMCP("uploadProductRequirementFile", serverInstance.server.getClientVersion(), err);
|
|
200
185
|
return {
|
|
201
186
|
content: [
|
|
202
187
|
{
|
|
@@ -212,13 +197,13 @@ async function uploadProductRequirementFileTool(args) {
|
|
|
212
197
|
/**
|
|
213
198
|
* Creates test cases from a file in BrowserStack Test Management.
|
|
214
199
|
*/
|
|
215
|
-
async function createTestCasesFromFileTool(args, context) {
|
|
200
|
+
export async function createTestCasesFromFileTool(args, context) {
|
|
216
201
|
try {
|
|
217
|
-
|
|
218
|
-
return await
|
|
202
|
+
trackMCP("createTestCasesFromFile", serverInstance.server.getClientVersion());
|
|
203
|
+
return await createTestCasesFromFile(args, context);
|
|
219
204
|
}
|
|
220
205
|
catch (err) {
|
|
221
|
-
|
|
206
|
+
trackMCP("createTestCasesFromFile", serverInstance.server.getClientVersion(), err);
|
|
222
207
|
return {
|
|
223
208
|
content: [
|
|
224
209
|
{
|
|
@@ -234,15 +219,15 @@ async function createTestCasesFromFileTool(args, context) {
|
|
|
234
219
|
/**
|
|
235
220
|
* Registers both project/folder and test-case tools.
|
|
236
221
|
*/
|
|
237
|
-
function addTestManagementTools(server) {
|
|
222
|
+
export default function addTestManagementTools(server) {
|
|
238
223
|
serverInstance = server;
|
|
239
|
-
server.tool("createProjectOrFolder", "Create a project and/or folder in BrowserStack Test Management.",
|
|
240
|
-
server.tool("createTestCase", "Use this tool to create a test case in BrowserStack Test Management.",
|
|
241
|
-
server.tool("listTestCases", "List test cases in a project with optional filters (status, priority, custom fields, etc.)",
|
|
242
|
-
server.tool("createTestRun", "Create a test run in BrowserStack Test Management.",
|
|
243
|
-
server.tool("listTestRuns", "List test runs in a project with optional filters (date ranges, assignee, state, etc.)",
|
|
244
|
-
server.tool("updateTestRun", "Update a test run in BrowserStack Test Management.",
|
|
245
|
-
server.tool("addTestResult", "Add a test result to a specific test run via BrowserStack Test Management API.",
|
|
246
|
-
server.tool("uploadProductRequirementFile", "Upload files such as PDRs or PDFs to BrowserStack Test Management and get file mapping ID back. Its Used for generating test cases from file.",
|
|
247
|
-
server.tool("createTestCasesFromFile", "Create test cases from a file in BrowserStack Test Management.",
|
|
224
|
+
server.tool("createProjectOrFolder", "Create a project and/or folder in BrowserStack Test Management.", CreateProjFoldSchema.shape, createProjectOrFolderTool);
|
|
225
|
+
server.tool("createTestCase", "Use this tool to create a test case in BrowserStack Test Management.", CreateTestCaseSchema.shape, createTestCaseTool);
|
|
226
|
+
server.tool("listTestCases", "List test cases in a project with optional filters (status, priority, custom fields, etc.)", ListTestCasesSchema.shape, listTestCasesTool);
|
|
227
|
+
server.tool("createTestRun", "Create a test run in BrowserStack Test Management.", CreateTestRunSchema.shape, createTestRunTool);
|
|
228
|
+
server.tool("listTestRuns", "List test runs in a project with optional filters (date ranges, assignee, state, etc.)", ListTestRunsSchema.shape, listTestRunsTool);
|
|
229
|
+
server.tool("updateTestRun", "Update a test run in BrowserStack Test Management.", UpdateTestRunSchema.shape, updateTestRunTool);
|
|
230
|
+
server.tool("addTestResult", "Add a test result to a specific test run via BrowserStack Test Management API.", AddTestResultSchema.shape, addTestResultTool);
|
|
231
|
+
server.tool("uploadProductRequirementFile", "Upload files such as PDRs or PDFs to BrowserStack Test Management and get file mapping ID back. Its Used for generating test cases from file.", UploadFileSchema.shape, uploadProductRequirementFileTool);
|
|
232
|
+
server.tool("createTestCasesFromFile", "Create test cases from a file in BrowserStack Test Management.", CreateTestCasesFromFileSchema.shape, createTestCasesFromFileTool);
|
|
248
233
|
}
|