@browserstack/mcp-server 1.2.8 → 1.2.9-beta.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/README.md +0 -10
- package/dist/lib/utils.d.ts +38 -16
- package/dist/tools/accessibility.js +2 -3
- package/dist/tools/appautomate-utils/appium-sdk/constants.d.ts +13 -23
- package/dist/tools/appautomate-utils/appium-sdk/formatter.js +0 -1
- package/dist/tools/appautomate-utils/appium-sdk/handler.js +0 -1
- package/dist/tools/appautomate-utils/native-execution/constants.d.ts +11 -21
- package/dist/tools/appautomate.js +0 -2
- package/dist/tools/applive.js +0 -1
- package/dist/tools/automate.js +1 -2
- package/dist/tools/get-failure-logs.js +1 -3
- package/dist/tools/live.js +0 -1
- package/dist/tools/observability.js +0 -1
- package/dist/tools/rca-agent-utils/constants.d.ts +2 -2
- package/dist/tools/sdk-utils/common/schema.d.ts +40 -90
- package/dist/tools/sdk-utils/handler.js +1 -1
- package/dist/tools/testmanagement-utils/TCG-utils/types.d.ts +1 -9
- package/dist/tools/testmanagement-utils/add-test-result.d.ts +2 -24
- package/dist/tools/testmanagement-utils/create-lca-steps.d.ts +4 -72
- package/dist/tools/testmanagement-utils/create-lca-steps.js +0 -1
- package/dist/tools/testmanagement-utils/create-project-folder.d.ts +1 -15
- package/dist/tools/testmanagement-utils/create-testcase.d.ts +5 -55
- package/dist/tools/testmanagement-utils/create-testcase.js +0 -1
- package/dist/tools/testmanagement-utils/create-testrun.d.ts +14 -63
- package/dist/tools/testmanagement-utils/list-testcases.d.ts +1 -13
- package/dist/tools/testmanagement-utils/list-testcases.js +0 -1
- package/dist/tools/testmanagement-utils/list-testruns.d.ts +1 -7
- package/dist/tools/testmanagement-utils/list-testruns.js +0 -1
- package/dist/tools/testmanagement-utils/testcase-from-file.js +0 -1
- package/dist/tools/testmanagement-utils/update-testcase.d.ts +29 -0
- package/dist/tools/testmanagement-utils/update-testcase.js +138 -0
- package/dist/tools/testmanagement-utils/update-testrun.d.ts +10 -23
- package/dist/tools/testmanagement-utils/update-testrun.js +0 -1
- package/dist/tools/testmanagement-utils/upload-file.d.ts +1 -7
- package/dist/tools/testmanagement-utils/upload-file.js +0 -2
- package/dist/tools/testmanagement.d.ts +5 -0
- package/dist/tools/testmanagement.js +24 -10
- package/package.json +24 -24
|
@@ -2,6 +2,7 @@ import { trackMCP } from "../lib/instrumentation.js";
|
|
|
2
2
|
import logger from "../logger.js";
|
|
3
3
|
import { createProjectOrFolder, CreateProjFoldSchema, } from "./testmanagement-utils/create-project-folder.js";
|
|
4
4
|
import { createTestCase as createTestCaseAPI, sanitizeArgs, CreateTestCaseSchema, } from "./testmanagement-utils/create-testcase.js";
|
|
5
|
+
import { updateTestCase as updateTestCaseAPI, UpdateTestCaseSchema, } from "./testmanagement-utils/update-testcase.js";
|
|
5
6
|
import { listTestCases, ListTestCasesSchema, } from "./testmanagement-utils/list-testcases.js";
|
|
6
7
|
import { CreateTestRunSchema, createTestRun, } from "./testmanagement-utils/create-testrun.js";
|
|
7
8
|
import { ListTestRunsSchema, listTestRuns, } from "./testmanagement-utils/list-testruns.js";
|
|
@@ -28,7 +29,6 @@ export async function createProjectOrFolderTool(args, config, server) {
|
|
|
28
29
|
{
|
|
29
30
|
type: "text",
|
|
30
31
|
text: `Failed to create project/folder: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
31
|
-
isError: true,
|
|
32
32
|
},
|
|
33
33
|
],
|
|
34
34
|
isError: true,
|
|
@@ -53,7 +53,28 @@ export async function createTestCaseTool(args, config, server) {
|
|
|
53
53
|
{
|
|
54
54
|
type: "text",
|
|
55
55
|
text: `Failed to create test case: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
56
|
-
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
isError: true,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Updates an existing test case in BrowserStack Test Management.
|
|
64
|
+
*/
|
|
65
|
+
export async function updateTestCaseTool(args, config, server) {
|
|
66
|
+
try {
|
|
67
|
+
trackMCP("updateTestCase", server.server.getClientVersion(), undefined, config);
|
|
68
|
+
return await updateTestCaseAPI(args, config);
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
logger.error("Failed to update test case: %s", err);
|
|
72
|
+
trackMCP("updateTestCase", server.server.getClientVersion(), err, config);
|
|
73
|
+
return {
|
|
74
|
+
content: [
|
|
75
|
+
{
|
|
76
|
+
type: "text",
|
|
77
|
+
text: `Failed to update test case: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
57
78
|
},
|
|
58
79
|
],
|
|
59
80
|
isError: true,
|
|
@@ -75,7 +96,6 @@ export async function listTestCasesTool(args, config, server) {
|
|
|
75
96
|
{
|
|
76
97
|
type: "text",
|
|
77
98
|
text: `Failed to list test cases: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
78
|
-
isError: true,
|
|
79
99
|
},
|
|
80
100
|
],
|
|
81
101
|
isError: true,
|
|
@@ -97,7 +117,6 @@ export async function createTestRunTool(args, config, server) {
|
|
|
97
117
|
{
|
|
98
118
|
type: "text",
|
|
99
119
|
text: `Failed to create test run: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
100
|
-
isError: true,
|
|
101
120
|
},
|
|
102
121
|
],
|
|
103
122
|
isError: true,
|
|
@@ -119,7 +138,6 @@ export async function listTestRunsTool(args, config, server) {
|
|
|
119
138
|
{
|
|
120
139
|
type: "text",
|
|
121
140
|
text: `Failed to list test runs: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
122
|
-
isError: true,
|
|
123
141
|
},
|
|
124
142
|
],
|
|
125
143
|
isError: true,
|
|
@@ -143,7 +161,6 @@ export async function updateTestRunTool(args, config, server) {
|
|
|
143
161
|
{
|
|
144
162
|
type: "text",
|
|
145
163
|
text: `Failed to update test run: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
146
|
-
isError: true,
|
|
147
164
|
},
|
|
148
165
|
],
|
|
149
166
|
isError: true,
|
|
@@ -165,7 +182,6 @@ export async function addTestResultTool(args, config, server) {
|
|
|
165
182
|
{
|
|
166
183
|
type: "text",
|
|
167
184
|
text: `Failed to add test result: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
168
|
-
isError: true,
|
|
169
185
|
},
|
|
170
186
|
],
|
|
171
187
|
isError: true,
|
|
@@ -187,7 +203,6 @@ export async function uploadProductRequirementFileTool(args, config, server) {
|
|
|
187
203
|
{
|
|
188
204
|
type: "text",
|
|
189
205
|
text: `Failed to upload file: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
190
|
-
isError: true,
|
|
191
206
|
},
|
|
192
207
|
],
|
|
193
208
|
isError: true,
|
|
@@ -209,7 +224,6 @@ export async function createTestCasesFromFileTool(args, context, config, server)
|
|
|
209
224
|
{
|
|
210
225
|
type: "text",
|
|
211
226
|
text: `Failed to create test cases from file: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
212
|
-
isError: true,
|
|
213
227
|
},
|
|
214
228
|
],
|
|
215
229
|
isError: true,
|
|
@@ -231,7 +245,6 @@ export async function createLCAStepsTool(args, context, config, server) {
|
|
|
231
245
|
{
|
|
232
246
|
type: "text",
|
|
233
247
|
text: `Failed to create LCA steps: ${err instanceof Error ? err.message : "Unknown error"}. Please open an issue on GitHub if the problem persists`,
|
|
234
|
-
isError: true,
|
|
235
248
|
},
|
|
236
249
|
],
|
|
237
250
|
isError: true,
|
|
@@ -245,6 +258,7 @@ export default function addTestManagementTools(server, config) {
|
|
|
245
258
|
const tools = {};
|
|
246
259
|
tools.createProjectOrFolder = server.tool("createProjectOrFolder", "Create a project and/or folder in BrowserStack Test Management.", CreateProjFoldSchema.shape, (args) => createProjectOrFolderTool(args, config, server));
|
|
247
260
|
tools.createTestCase = server.tool("createTestCase", "Use this tool to create a test case in BrowserStack Test Management.", CreateTestCaseSchema.shape, (args) => createTestCaseTool(args, config, server));
|
|
261
|
+
tools.updateTestCase = server.tool("updateTestCase", "Use this tool to update an existing test case in BrowserStack Test Management. Allows editing test case details like name, description, steps, owner, priority, and more.", UpdateTestCaseSchema.shape, (args) => updateTestCaseTool(args, config, server));
|
|
248
262
|
tools.listTestCases = server.tool("listTestCases", "List test cases in a project with optional filters (status, priority, custom fields, etc.)", ListTestCasesSchema.shape, (args) => listTestCasesTool(args, config, server));
|
|
249
263
|
tools.createTestRun = server.tool("createTestRun", "Create a test run in BrowserStack Test Management.", CreateTestRunSchema.shape, (args) => createTestRunTool(args, config, server));
|
|
250
264
|
tools.listTestRuns = server.tool("listTestRuns", "List test runs in a project with optional filters (date ranges, assignee, state, etc.)", ListTestRunsSchema.shape, (args) => listTestRunsTool(args, config, server));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@browserstack/mcp-server",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.9-beta.1",
|
|
4
4
|
"description": "BrowserStack's Official MCP Server",
|
|
5
5
|
"mcpName": "io.github.browserstack/mcp-server",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,31 +35,31 @@
|
|
|
35
35
|
"author": "",
|
|
36
36
|
"license": "ISC",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.25.1",
|
|
39
39
|
"@types/form-data": "^2.5.2",
|
|
40
|
-
"axios": "^1.
|
|
41
|
-
"browserstack-local": "^1.5.
|
|
42
|
-
"csv-parse": "^
|
|
43
|
-
"dotenv": "^
|
|
44
|
-
"form-data": "^4.0.
|
|
45
|
-
"pino": "^
|
|
46
|
-
"pino-pretty": "^13.
|
|
47
|
-
"sharp": "^0.34.
|
|
48
|
-
"uuid": "^
|
|
49
|
-
"webdriverio": "^9.
|
|
50
|
-
"zod": "^
|
|
40
|
+
"axios": "^1.13.2",
|
|
41
|
+
"browserstack-local": "^1.5.8",
|
|
42
|
+
"csv-parse": "^6.1.0",
|
|
43
|
+
"dotenv": "^17.2.3",
|
|
44
|
+
"form-data": "^4.0.5",
|
|
45
|
+
"pino": "^10.1.0",
|
|
46
|
+
"pino-pretty": "^13.1.3",
|
|
47
|
+
"sharp": "^0.34.5",
|
|
48
|
+
"uuid": "^13.0.0",
|
|
49
|
+
"webdriverio": "^9.21.0",
|
|
50
|
+
"zod": "^4.2.1"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
|
-
"@eslint/js": "^9.
|
|
54
|
-
"@types/csv-parse": "^1.
|
|
55
|
-
"@types/node": "^
|
|
56
|
-
"@types/uuid": "^
|
|
57
|
-
"eslint": "^9.
|
|
58
|
-
"prettier": "^3.
|
|
59
|
-
"tsx": "^4.
|
|
60
|
-
"typescript": "^5.
|
|
61
|
-
"typescript-eslint": "^8.
|
|
62
|
-
"vite": "^
|
|
63
|
-
"vitest": "^
|
|
53
|
+
"@eslint/js": "^9.39.2",
|
|
54
|
+
"@types/csv-parse": "^1.2.5",
|
|
55
|
+
"@types/node": "^25.0.3",
|
|
56
|
+
"@types/uuid": "^11.0.0",
|
|
57
|
+
"eslint": "^9.39.2",
|
|
58
|
+
"prettier": "^3.7.4",
|
|
59
|
+
"tsx": "^4.21.0",
|
|
60
|
+
"typescript": "^5.9.3",
|
|
61
|
+
"typescript-eslint": "^8.50.0",
|
|
62
|
+
"vite": "^7.3.0",
|
|
63
|
+
"vitest": "^4.0.16"
|
|
64
64
|
}
|
|
65
65
|
}
|