@browserstack/mcp-server 1.1.0 → 1.1.2

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 (53) hide show
  1. package/dist/config.js +2 -6
  2. package/dist/index.js +31 -34
  3. package/dist/lib/api.js +3 -9
  4. package/dist/lib/constants.js +3 -6
  5. package/dist/lib/device-cache.js +14 -21
  6. package/dist/lib/error.js +3 -6
  7. package/dist/lib/fuzzy.js +1 -4
  8. package/dist/lib/inmemory-store.js +1 -4
  9. package/dist/lib/instrumentation.js +14 -18
  10. package/dist/lib/local.js +27 -35
  11. package/dist/lib/utils.js +6 -15
  12. package/dist/logger.js +4 -6
  13. package/dist/tools/accessibility.js +13 -16
  14. package/dist/tools/accessiblity-utils/report-fetcher.js +7 -14
  15. package/dist/tools/accessiblity-utils/report-parser.js +5 -11
  16. package/dist/tools/accessiblity-utils/scanner.js +9 -16
  17. package/dist/tools/appautomate-utils/appautomate.js +17 -27
  18. package/dist/tools/appautomate.js +29 -35
  19. package/dist/tools/applive-utils/fuzzy-search.js +3 -6
  20. package/dist/tools/applive-utils/start-session.js +14 -20
  21. package/dist/tools/applive-utils/upload-app.js +12 -51
  22. package/dist/tools/applive.js +18 -25
  23. package/dist/tools/automate-utils/fetch-screenshots.js +8 -14
  24. package/dist/tools/automate.js +14 -21
  25. package/dist/tools/bstack-sdk.js +14 -18
  26. package/dist/tools/failurelogs-utils/app-automate.js +15 -26
  27. package/dist/tools/failurelogs-utils/automate.js +13 -23
  28. package/dist/tools/getFailureLogs.js +42 -49
  29. package/dist/tools/live-utils/desktop-filter.js +8 -11
  30. package/dist/tools/live-utils/mobile-filter.js +7 -10
  31. package/dist/tools/live-utils/start-session.js +17 -23
  32. package/dist/tools/live-utils/types.js +2 -5
  33. package/dist/tools/live-utils/version-resolver.js +1 -4
  34. package/dist/tools/live.js +23 -29
  35. package/dist/tools/observability.js +12 -19
  36. package/dist/tools/sdk-utils/constants.js +3 -9
  37. package/dist/tools/sdk-utils/instructions.js +4 -9
  38. package/dist/tools/sdk-utils/types.js +1 -2
  39. package/dist/tools/testmanagement-utils/TCG-utils/api.js +26 -38
  40. package/dist/tools/testmanagement-utils/TCG-utils/config.js +5 -10
  41. package/dist/tools/testmanagement-utils/TCG-utils/helpers.js +3 -8
  42. package/dist/tools/testmanagement-utils/TCG-utils/types.js +5 -8
  43. package/dist/tools/testmanagement-utils/add-test-result.js +17 -24
  44. package/dist/tools/testmanagement-utils/create-project-folder.js +21 -28
  45. package/dist/tools/testmanagement-utils/create-testcase.js +30 -38
  46. package/dist/tools/testmanagement-utils/create-testrun.js +23 -30
  47. package/dist/tools/testmanagement-utils/list-testcases.js +15 -22
  48. package/dist/tools/testmanagement-utils/list-testruns.js +12 -19
  49. package/dist/tools/testmanagement-utils/testcase-from-file.js +16 -22
  50. package/dist/tools/testmanagement-utils/update-testrun.js +15 -22
  51. package/dist/tools/testmanagement-utils/upload-file.js +22 -29
  52. package/dist/tools/testmanagement.js +61 -76
  53. package/package.json +1 -1
@@ -1,43 +1,28 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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
- const list_testcases_js_1 = require("./testmanagement-utils/list-testcases.js");
22
- const create_testrun_js_1 = require("./testmanagement-utils/create-testrun.js");
23
- const list_testruns_js_1 = require("./testmanagement-utils/list-testruns.js");
24
- const update_testrun_js_1 = require("./testmanagement-utils/update-testrun.js");
25
- const add_test_result_js_1 = require("./testmanagement-utils/add-test-result.js");
26
- const upload_file_js_1 = require("./testmanagement-utils/upload-file.js");
27
- const testcase_from_file_js_1 = require("./testmanagement-utils/testcase-from-file.js");
28
- const types_js_1 = require("./testmanagement-utils/TCG-utils/types.js");
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
- (0, instrumentation_js_1.trackMCP)("createProjectOrFolder", serverInstance.server.getClientVersion());
36
- return await (0, create_project_folder_js_1.createProjectOrFolder)(args);
20
+ trackMCP("createProjectOrFolder", serverInstance.server.getClientVersion());
21
+ return await createProjectOrFolder(args);
37
22
  }
38
23
  catch (err) {
39
- logger_js_1.default.error("Failed to create project/folder: %s", err);
40
- (0, instrumentation_js_1.trackMCP)("createProjectOrFolder", serverInstance.server.getClientVersion(), err);
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 = (0, create_testcase_js_1.sanitizeArgs)(args);
43
+ const cleanedArgs = sanitizeArgs(args);
59
44
  try {
60
- (0, instrumentation_js_1.trackMCP)("createTestCase", serverInstance.server.getClientVersion());
61
- return await (0, create_testcase_js_1.createTestCase)(cleanedArgs);
45
+ trackMCP("createTestCase", serverInstance.server.getClientVersion());
46
+ return await createTestCaseAPI(cleanedArgs);
62
47
  }
63
48
  catch (err) {
64
- logger_js_1.default.error("Failed to create test case: %s", err);
65
- (0, instrumentation_js_1.trackMCP)("createTestCase", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("listTestCases", serverInstance.server.getClientVersion());
84
- return await (0, list_testcases_js_1.listTestCases)(args);
68
+ trackMCP("listTestCases", serverInstance.server.getClientVersion());
69
+ return await listTestCases(args);
85
70
  }
86
71
  catch (err) {
87
- (0, instrumentation_js_1.trackMCP)("listTestCases", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("createTestRun", serverInstance.server.getClientVersion());
106
- return await (0, create_testrun_js_1.createTestRun)(args);
90
+ trackMCP("createTestRun", serverInstance.server.getClientVersion());
91
+ return await createTestRun(args);
107
92
  }
108
93
  catch (err) {
109
- (0, instrumentation_js_1.trackMCP)("createTestRun", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("listTestRuns", serverInstance.server.getClientVersion());
128
- return await (0, list_testruns_js_1.listTestRuns)(args);
112
+ trackMCP("listTestRuns", serverInstance.server.getClientVersion());
113
+ return await listTestRuns(args);
129
114
  }
130
115
  catch (err) {
131
- (0, instrumentation_js_1.trackMCP)("listTestRuns", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("updateTestRun", serverInstance.server.getClientVersion());
152
- return await (0, update_testrun_js_1.updateTestRun)(args);
136
+ trackMCP("updateTestRun", serverInstance.server.getClientVersion());
137
+ return await updateTestRun(args);
153
138
  }
154
139
  catch (err) {
155
- (0, instrumentation_js_1.trackMCP)("updateTestRun", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("addTestResult", serverInstance.server.getClientVersion());
174
- return await (0, add_test_result_js_1.addTestResult)(args);
158
+ trackMCP("addTestResult", serverInstance.server.getClientVersion());
159
+ return await addTestResult(args);
175
160
  }
176
161
  catch (err) {
177
- (0, instrumentation_js_1.trackMCP)("addTestResult", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("uploadProductRequirementFile", serverInstance.server.getClientVersion());
196
- return await (0, upload_file_js_1.uploadFile)(args);
180
+ trackMCP("uploadProductRequirementFile", serverInstance.server.getClientVersion());
181
+ return await uploadFile(args);
197
182
  }
198
183
  catch (err) {
199
- (0, instrumentation_js_1.trackMCP)("uploadProductRequirementFile", serverInstance.server.getClientVersion(), err);
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
- (0, instrumentation_js_1.trackMCP)("createTestCasesFromFile", serverInstance.server.getClientVersion());
218
- return await (0, testcase_from_file_js_1.createTestCasesFromFile)(args, context);
202
+ trackMCP("createTestCasesFromFile", serverInstance.server.getClientVersion());
203
+ return await createTestCasesFromFile(args, context);
219
204
  }
220
205
  catch (err) {
221
- (0, instrumentation_js_1.trackMCP)("createTestCasesFromFile", serverInstance.server.getClientVersion(), err);
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.", create_project_folder_js_1.CreateProjFoldSchema.shape, createProjectOrFolderTool);
240
- server.tool("createTestCase", "Use this tool to create a test case in BrowserStack Test Management.", create_testcase_js_1.CreateTestCaseSchema.shape, createTestCaseTool);
241
- server.tool("listTestCases", "List test cases in a project with optional filters (status, priority, custom fields, etc.)", list_testcases_js_1.ListTestCasesSchema.shape, listTestCasesTool);
242
- server.tool("createTestRun", "Create a test run in BrowserStack Test Management.", create_testrun_js_1.CreateTestRunSchema.shape, createTestRunTool);
243
- server.tool("listTestRuns", "List test runs in a project with optional filters (date ranges, assignee, state, etc.)", list_testruns_js_1.ListTestRunsSchema.shape, listTestRunsTool);
244
- server.tool("updateTestRun", "Update a test run in BrowserStack Test Management.", update_testrun_js_1.UpdateTestRunSchema.shape, updateTestRunTool);
245
- server.tool("addTestResult", "Add a test result to a specific test run via BrowserStack Test Management API.", add_test_result_js_1.AddTestResultSchema.shape, addTestResultTool);
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.", upload_file_js_1.UploadFileSchema.shape, uploadProductRequirementFileTool);
247
- server.tool("createTestCasesFromFile", "Create test cases from a file in BrowserStack Test Management.", types_js_1.CreateTestCasesFromFileSchema.shape, createTestCasesFromFileTool);
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@browserstack/mcp-server",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "BrowserStack's Official MCP Server",
5
5
  "main": "dist/index.js",
6
6
  "repository": {