@browserstack/mcp-server 1.0.15 → 1.1.0

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