@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.
Files changed (38) hide show
  1. package/README.md +0 -10
  2. package/dist/lib/utils.d.ts +38 -16
  3. package/dist/tools/accessibility.js +2 -3
  4. package/dist/tools/appautomate-utils/appium-sdk/constants.d.ts +13 -23
  5. package/dist/tools/appautomate-utils/appium-sdk/formatter.js +0 -1
  6. package/dist/tools/appautomate-utils/appium-sdk/handler.js +0 -1
  7. package/dist/tools/appautomate-utils/native-execution/constants.d.ts +11 -21
  8. package/dist/tools/appautomate.js +0 -2
  9. package/dist/tools/applive.js +0 -1
  10. package/dist/tools/automate.js +1 -2
  11. package/dist/tools/get-failure-logs.js +1 -3
  12. package/dist/tools/live.js +0 -1
  13. package/dist/tools/observability.js +0 -1
  14. package/dist/tools/rca-agent-utils/constants.d.ts +2 -2
  15. package/dist/tools/sdk-utils/common/schema.d.ts +40 -90
  16. package/dist/tools/sdk-utils/handler.js +1 -1
  17. package/dist/tools/testmanagement-utils/TCG-utils/types.d.ts +1 -9
  18. package/dist/tools/testmanagement-utils/add-test-result.d.ts +2 -24
  19. package/dist/tools/testmanagement-utils/create-lca-steps.d.ts +4 -72
  20. package/dist/tools/testmanagement-utils/create-lca-steps.js +0 -1
  21. package/dist/tools/testmanagement-utils/create-project-folder.d.ts +1 -15
  22. package/dist/tools/testmanagement-utils/create-testcase.d.ts +5 -55
  23. package/dist/tools/testmanagement-utils/create-testcase.js +0 -1
  24. package/dist/tools/testmanagement-utils/create-testrun.d.ts +14 -63
  25. package/dist/tools/testmanagement-utils/list-testcases.d.ts +1 -13
  26. package/dist/tools/testmanagement-utils/list-testcases.js +0 -1
  27. package/dist/tools/testmanagement-utils/list-testruns.d.ts +1 -7
  28. package/dist/tools/testmanagement-utils/list-testruns.js +0 -1
  29. package/dist/tools/testmanagement-utils/testcase-from-file.js +0 -1
  30. package/dist/tools/testmanagement-utils/update-testcase.d.ts +29 -0
  31. package/dist/tools/testmanagement-utils/update-testcase.js +138 -0
  32. package/dist/tools/testmanagement-utils/update-testrun.d.ts +10 -23
  33. package/dist/tools/testmanagement-utils/update-testrun.js +0 -1
  34. package/dist/tools/testmanagement-utils/upload-file.d.ts +1 -7
  35. package/dist/tools/testmanagement-utils/upload-file.js +0 -2
  36. package/dist/tools/testmanagement.d.ts +5 -0
  37. package/dist/tools/testmanagement.js +24 -10
  38. 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
- isError: true,
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.8",
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.18.1",
38
+ "@modelcontextprotocol/sdk": "^1.25.1",
39
39
  "@types/form-data": "^2.5.2",
40
- "axios": "^1.8.4",
41
- "browserstack-local": "^1.5.6",
42
- "csv-parse": "^5.6.0",
43
- "dotenv": "^16.5.0",
44
- "form-data": "^4.0.2",
45
- "pino": "^9.6.0",
46
- "pino-pretty": "^13.0.0",
47
- "sharp": "^0.34.1",
48
- "uuid": "^11.1.0",
49
- "webdriverio": "^9.13.0",
50
- "zod": "^3.24.3"
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.25.0",
54
- "@types/csv-parse": "^1.1.12",
55
- "@types/node": "^22.14.1",
56
- "@types/uuid": "^10.0.0",
57
- "eslint": "^9.25.0",
58
- "prettier": "^3.5.3",
59
- "tsx": "^4.19.3",
60
- "typescript": "^5.8.3",
61
- "typescript-eslint": "^8.30.1",
62
- "vite": "^6.3.5",
63
- "vitest": "^3.1.3"
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
  }