@brxce/mcp-server 1.0.4 → 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 (191) hide show
  1. package/README.md +11 -4
  2. package/dist/config/environment.d.ts.map +1 -1
  3. package/dist/config/environment.js +12 -7
  4. package/dist/config/environment.js.map +1 -1
  5. package/dist/constants/enums.d.ts +11 -0
  6. package/dist/constants/enums.d.ts.map +1 -0
  7. package/dist/constants/enums.js +39 -0
  8. package/dist/constants/enums.js.map +1 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +39 -8
  11. package/dist/index.js.map +1 -1
  12. package/dist/prompts/worknode-prompts.d.ts.map +1 -1
  13. package/dist/prompts/worknode-prompts.js +5 -4
  14. package/dist/prompts/worknode-prompts.js.map +1 -1
  15. package/dist/prompts/workspace-context-prompt.d.ts.map +1 -1
  16. package/dist/prompts/workspace-context-prompt.js +2 -1
  17. package/dist/prompts/workspace-context-prompt.js.map +1 -1
  18. package/dist/resources/user-resource.d.ts.map +1 -1
  19. package/dist/resources/user-resource.js +2 -1
  20. package/dist/resources/user-resource.js.map +1 -1
  21. package/dist/resources/workspace-members-resource.d.ts.map +1 -1
  22. package/dist/resources/workspace-members-resource.js +2 -1
  23. package/dist/resources/workspace-members-resource.js.map +1 -1
  24. package/dist/resources/workspace-resource.d.ts.map +1 -1
  25. package/dist/resources/workspace-resource.js +2 -1
  26. package/dist/resources/workspace-resource.js.map +1 -1
  27. package/dist/services/api-client.d.ts +4 -1
  28. package/dist/services/api-client.d.ts.map +1 -1
  29. package/dist/services/api-client.js +21 -7
  30. package/dist/services/api-client.js.map +1 -1
  31. package/dist/services/workspace-context.d.ts +56 -0
  32. package/dist/services/workspace-context.d.ts.map +1 -0
  33. package/dist/services/workspace-context.js +104 -0
  34. package/dist/services/workspace-context.js.map +1 -0
  35. package/dist/tools/comment-tool.d.ts.map +1 -1
  36. package/dist/tools/comment-tool.js +22 -7
  37. package/dist/tools/comment-tool.js.map +1 -1
  38. package/dist/tools/criteria-tool.d.ts.map +1 -1
  39. package/dist/tools/criteria-tool.js +20 -6
  40. package/dist/tools/criteria-tool.js.map +1 -1
  41. package/dist/tools/global-overview-tool.d.ts +4 -0
  42. package/dist/tools/global-overview-tool.d.ts.map +1 -0
  43. package/dist/tools/global-overview-tool.js +163 -0
  44. package/dist/tools/global-overview-tool.js.map +1 -0
  45. package/dist/tools/invitation-tool.d.ts +8 -0
  46. package/dist/tools/invitation-tool.d.ts.map +1 -1
  47. package/dist/tools/invitation-tool.js +266 -10
  48. package/dist/tools/invitation-tool.js.map +1 -1
  49. package/dist/tools/meeting-agenda-notes-tool.d.ts +7 -0
  50. package/dist/tools/meeting-agenda-notes-tool.d.ts.map +1 -0
  51. package/dist/tools/meeting-agenda-notes-tool.js +326 -0
  52. package/dist/tools/meeting-agenda-notes-tool.js.map +1 -0
  53. package/dist/tools/meeting-agenda-tool.d.ts.map +1 -1
  54. package/dist/tools/meeting-agenda-tool.js +97 -19
  55. package/dist/tools/meeting-agenda-tool.js.map +1 -1
  56. package/dist/tools/meeting-create-tool.d.ts.map +1 -1
  57. package/dist/tools/meeting-create-tool.js +71 -48
  58. package/dist/tools/meeting-create-tool.js.map +1 -1
  59. package/dist/tools/meeting-decisions-tool.d.ts.map +1 -1
  60. package/dist/tools/meeting-decisions-tool.js +94 -18
  61. package/dist/tools/meeting-decisions-tool.js.map +1 -1
  62. package/dist/tools/meeting-delete-tool.d.ts.map +1 -1
  63. package/dist/tools/meeting-delete-tool.js +3 -2
  64. package/dist/tools/meeting-delete-tool.js.map +1 -1
  65. package/dist/tools/meeting-list-tool.d.ts.map +1 -1
  66. package/dist/tools/meeting-list-tool.js +8 -7
  67. package/dist/tools/meeting-list-tool.js.map +1 -1
  68. package/dist/tools/meeting-notes-tool.d.ts.map +1 -1
  69. package/dist/tools/meeting-notes-tool.js +80 -18
  70. package/dist/tools/meeting-notes-tool.js.map +1 -1
  71. package/dist/tools/meeting-update-tool.d.ts.map +1 -1
  72. package/dist/tools/meeting-update-tool.js +4 -3
  73. package/dist/tools/meeting-update-tool.js.map +1 -1
  74. package/dist/tools/my-work-tool.d.ts +7 -0
  75. package/dist/tools/my-work-tool.d.ts.map +1 -0
  76. package/dist/tools/my-work-tool.js +307 -0
  77. package/dist/tools/my-work-tool.js.map +1 -0
  78. package/dist/tools/notification-tool.d.ts +12 -0
  79. package/dist/tools/notification-tool.d.ts.map +1 -1
  80. package/dist/tools/notification-tool.js +190 -3
  81. package/dist/tools/notification-tool.js.map +1 -1
  82. package/dist/tools/tag-category-tool.d.ts.map +1 -1
  83. package/dist/tools/tag-category-tool.js +78 -15
  84. package/dist/tools/tag-category-tool.js.map +1 -1
  85. package/dist/tools/tag-changes-tool.d.ts +4 -0
  86. package/dist/tools/tag-changes-tool.d.ts.map +1 -0
  87. package/dist/tools/tag-changes-tool.js +79 -0
  88. package/dist/tools/tag-changes-tool.js.map +1 -0
  89. package/dist/tools/tag-search-tool.d.ts.map +1 -1
  90. package/dist/tools/tag-search-tool.js +96 -13
  91. package/dist/tools/tag-search-tool.js.map +1 -1
  92. package/dist/tools/tag-tool.d.ts.map +1 -1
  93. package/dist/tools/tag-tool.js +125 -26
  94. package/dist/tools/tag-tool.js.map +1 -1
  95. package/dist/tools/tournament-decide-tool.d.ts +4 -0
  96. package/dist/tools/tournament-decide-tool.d.ts.map +1 -0
  97. package/dist/tools/tournament-decide-tool.js.map +1 -0
  98. package/dist/tools/tournament-start-tool.d.ts +4 -0
  99. package/dist/tools/tournament-start-tool.d.ts.map +1 -0
  100. package/dist/tools/tournament-start-tool.js.map +1 -0
  101. package/dist/tools/tournament-status-tool.d.ts +4 -0
  102. package/dist/tools/tournament-status-tool.d.ts.map +1 -0
  103. package/dist/tools/tournament-status-tool.js.map +1 -0
  104. package/dist/tools/tournament-today-tool.d.ts +4 -0
  105. package/dist/tools/tournament-today-tool.d.ts.map +1 -0
  106. package/dist/tools/tournament-today-tool.js.map +1 -0
  107. package/dist/tools/tournament-undo-tool.d.ts +4 -0
  108. package/dist/tools/tournament-undo-tool.d.ts.map +1 -0
  109. package/dist/tools/tournament-undo-tool.js.map +1 -0
  110. package/dist/tools/user-search-tool.d.ts +8 -0
  111. package/dist/tools/user-search-tool.d.ts.map +1 -0
  112. package/dist/tools/user-search-tool.js +164 -0
  113. package/dist/tools/user-search-tool.js.map +1 -0
  114. package/dist/tools/worknode-archive-tool.d.ts.map +1 -1
  115. package/dist/tools/worknode-archive-tool.js +11 -8
  116. package/dist/tools/worknode-archive-tool.js.map +1 -1
  117. package/dist/tools/worknode-batch-tool.d.ts.map +1 -1
  118. package/dist/tools/worknode-batch-tool.js +42 -34
  119. package/dist/tools/worknode-batch-tool.js.map +1 -1
  120. package/dist/tools/worknode-by-member-tool.d.ts.map +1 -1
  121. package/dist/tools/worknode-by-member-tool.js +8 -5
  122. package/dist/tools/worknode-by-member-tool.js.map +1 -1
  123. package/dist/tools/worknode-complete-tool.d.ts.map +1 -1
  124. package/dist/tools/worknode-complete-tool.js +16 -4
  125. package/dist/tools/worknode-complete-tool.js.map +1 -1
  126. package/dist/tools/worknode-create-tool.d.ts.map +1 -1
  127. package/dist/tools/worknode-create-tool.js +21 -16
  128. package/dist/tools/worknode-create-tool.js.map +1 -1
  129. package/dist/tools/worknode-delete-tool.d.ts.map +1 -1
  130. package/dist/tools/worknode-delete-tool.js +18 -5
  131. package/dist/tools/worknode-delete-tool.js.map +1 -1
  132. package/dist/tools/worknode-history-tool.d.ts.map +1 -1
  133. package/dist/tools/worknode-history-tool.js +6 -4
  134. package/dist/tools/worknode-history-tool.js.map +1 -1
  135. package/dist/tools/worknode-move-tool.d.ts.map +1 -1
  136. package/dist/tools/worknode-move-tool.js +9 -7
  137. package/dist/tools/worknode-move-tool.js.map +1 -1
  138. package/dist/tools/worknode-permanent-delete-tool.d.ts +10 -0
  139. package/dist/tools/worknode-permanent-delete-tool.d.ts.map +1 -0
  140. package/dist/tools/worknode-permanent-delete-tool.js +131 -0
  141. package/dist/tools/worknode-permanent-delete-tool.js.map +1 -0
  142. package/dist/tools/worknode-plan-organize-tool.d.ts.map +1 -1
  143. package/dist/tools/worknode-plan-organize-tool.js +2 -1
  144. package/dist/tools/worknode-plan-organize-tool.js.map +1 -1
  145. package/dist/tools/worknode-read-tool.d.ts.map +1 -1
  146. package/dist/tools/worknode-read-tool.js +18 -9
  147. package/dist/tools/worknode-read-tool.js.map +1 -1
  148. package/dist/tools/worknode-subtree-tool.d.ts.map +1 -1
  149. package/dist/tools/worknode-subtree-tool.js +150 -36
  150. package/dist/tools/worknode-subtree-tool.js.map +1 -1
  151. package/dist/tools/worknode-tag-relations-tool.d.ts +4 -0
  152. package/dist/tools/worknode-tag-relations-tool.d.ts.map +1 -0
  153. package/dist/tools/worknode-tag-relations-tool.js +143 -0
  154. package/dist/tools/worknode-tag-relations-tool.js.map +1 -0
  155. package/dist/tools/worknode-tag-tool.d.ts.map +1 -1
  156. package/dist/tools/worknode-tag-tool.js +115 -18
  157. package/dist/tools/worknode-tag-tool.js.map +1 -1
  158. package/dist/tools/worknode-update-tool.d.ts.map +1 -1
  159. package/dist/tools/worknode-update-tool.js +17 -12
  160. package/dist/tools/worknode-update-tool.js.map +1 -1
  161. package/dist/tools/workspace-ascii-export-tool.d.ts.map +1 -1
  162. package/dist/tools/workspace-ascii-export-tool.js +4 -1
  163. package/dist/tools/workspace-ascii-export-tool.js.map +1 -1
  164. package/dist/tools/workspace-inbox-tool.d.ts.map +1 -1
  165. package/dist/tools/workspace-inbox-tool.js +4 -5
  166. package/dist/tools/workspace-inbox-tool.js.map +1 -1
  167. package/dist/tools/workspace-list-tool.d.ts.map +1 -1
  168. package/dist/tools/workspace-list-tool.js +2 -1
  169. package/dist/tools/workspace-list-tool.js.map +1 -1
  170. package/dist/tools/workspace-member-tool.d.ts +8 -0
  171. package/dist/tools/workspace-member-tool.d.ts.map +1 -1
  172. package/dist/tools/workspace-member-tool.js +356 -10
  173. package/dist/tools/workspace-member-tool.js.map +1 -1
  174. package/dist/tools/workspace-members-list-tool.d.ts.map +1 -1
  175. package/dist/tools/workspace-members-list-tool.js +5 -3
  176. package/dist/tools/workspace-members-list-tool.js.map +1 -1
  177. package/dist/tools/workspace-statistics-tool.d.ts.map +1 -1
  178. package/dist/tools/workspace-statistics-tool.js +5 -3
  179. package/dist/tools/workspace-statistics-tool.js.map +1 -1
  180. package/dist/tools/workspace-tree-tool.d.ts.map +1 -1
  181. package/dist/tools/workspace-tree-tool.js +29 -9
  182. package/dist/tools/workspace-tree-tool.js.map +1 -1
  183. package/dist/utils/error-utils.d.ts +58 -0
  184. package/dist/utils/error-utils.d.ts.map +1 -0
  185. package/dist/utils/error-utils.js +118 -0
  186. package/dist/utils/error-utils.js.map +1 -0
  187. package/dist/utils/index.d.ts +2 -0
  188. package/dist/utils/index.d.ts.map +1 -0
  189. package/dist/utils/index.js +2 -0
  190. package/dist/utils/index.js.map +1 -0
  191. package/package.json +13 -13
@@ -1,9 +1,11 @@
1
1
  import { z } from 'zod';
2
+ import { getErrorMessage } from '../utils/error-utils.js';
3
+ import { workspaceContext } from '../services/workspace-context.js';
2
4
  const WorkspaceTreeRequestSchema = z.object({
3
5
  workspaceId: z.string().uuid().describe('The workspace ID to fetch tree for'),
4
- status: z.string().optional().describe('Filter by status (comma-separated). Options: backlog, not_started, in_progress, completed, pause, archived'),
6
+ status: z.string().optional().describe('Filter by status (comma-separated). Options: backlog, not_started, in_progress, completed, pause, archived, static'),
5
7
  priority: z.string().optional().describe('Filter by priority (comma-separated). Options: low, medium, high, urgent, critical'),
6
- nodeType: z.string().optional().describe('Filter by node type (comma-separated). Options: goal, project, subproject, task, subtask'),
8
+ nodeType: z.string().optional().describe('Filter by node type (comma-separated). Options: goal, project, subproject, task, subtask, note'),
7
9
  assignee: z.string().optional().describe('Filter by assignee user ID'),
8
10
  createdBy: z.string().optional().describe('Filter by creator user ID'),
9
11
  includeCompleted: z.boolean().optional().describe('Include completed items (default: false)'),
@@ -59,10 +61,17 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
59
61
  startAfter: z.string().optional().describe('Filter nodes with start date after this date (ISO 8601)'),
60
62
  startBefore: z.string().optional().describe('Filter nodes with start date before this date (ISO 8601)'),
61
63
  sortBy: z.enum(['title', 'priority', 'status', 'dueDate', 'createdAt', 'updatedAt', 'completedAt', 'nodeType', 'progress']).optional().describe('Sort field'),
62
- sortOrder: z.enum(['asc', 'desc']).optional().describe('Sort direction (default: asc)')
64
+ sortOrder: z.enum(['asc', 'desc']).optional().describe('Sort direction (default: asc)'),
65
+ compact: z.boolean().default(true).describe('Return compact format for token efficiency (default: true)'),
66
+ limit: z.number().default(50).describe('Maximum number of nodes to return (default: 50)')
63
67
  }
64
68
  }, async (args) => {
65
- const request = args;
69
+ // Apply defaults for token efficiency
70
+ const request = {
71
+ ...args,
72
+ compact: args.compact !== undefined ? args.compact : true,
73
+ limit: args.limit !== undefined ? args.limit : 50,
74
+ };
66
75
  try {
67
76
  // Build query parameters
68
77
  const queryParams = new URLSearchParams();
@@ -116,7 +125,12 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
116
125
  queryParams.set('sortBy', request.sortBy);
117
126
  if (request.sortOrder)
118
127
  queryParams.set('sortOrder', request.sortOrder);
128
+ // Always pass compact and limit with defaults for token efficiency
129
+ queryParams.set('compact', String(request.compact));
130
+ queryParams.set('limit', String(request.limit));
119
131
  const queryString = queryParams.toString();
132
+ // Store workspaceId in context for subsequent displayId operations
133
+ workspaceContext.setWorkspace(request.workspaceId);
120
134
  const url = `/mcp/workspaces/${request.workspaceId}/overview${queryString ? `?${queryString}` : ''}`;
121
135
  const response = await apiClient.get(url);
122
136
  if (!response.success) {
@@ -127,6 +141,7 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
127
141
  text: `Failed to retrieve workspace tree: ${response.message || 'Unknown error'}`,
128
142
  },
129
143
  ],
144
+ isError: true,
130
145
  };
131
146
  }
132
147
  const { tree, stats } = response.data;
@@ -174,7 +189,8 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
174
189
  project: '📁',
175
190
  subproject: '📂',
176
191
  task: '✅',
177
- subtask: '☑️'
192
+ subtask: '☑️',
193
+ note: '📝'
178
194
  }[node.nodeType] || '📄';
179
195
  // Status indicator
180
196
  const statusEmoji = {
@@ -183,7 +199,8 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
183
199
  in_progress: '🔄',
184
200
  completed: '✅',
185
201
  pause: '⏸️',
186
- archived: '📦'
202
+ archived: '📦',
203
+ static: '📌'
187
204
  }[node.status] || '❓';
188
205
  // Priority indicator
189
206
  const priorityEmoji = {
@@ -193,8 +210,9 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
193
210
  medium: '🟡',
194
211
  low: '🟢'
195
212
  }[node.priority] || '';
196
- // Build node line
197
- let nodeLine = `${indent}${typeEmoji} **${node.title}** (ID: ${node.id})`;
213
+ // Build node line - use displayId for token efficiency, fallback to id
214
+ const nodeIdDisplay = node.displayId != null ? node.displayId : node.id;
215
+ let nodeLine = `${indent}${typeEmoji} **${node.title}** (ID: ${nodeIdDisplay})`;
198
216
  nodeLine += ` ${statusEmoji}`;
199
217
  if (priorityEmoji)
200
218
  nodeLine += ` ${priorityEmoji}`;
@@ -221,6 +239,7 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
221
239
  resultText += `\\n---\\n`;
222
240
  resultText += `**Note:** This tree uses depth-first traversal matching the Electron app UI.\\n`;
223
241
  resultText += `Each node shows: type, title, ID, status, priority, progress, assignees, children count, and due date.\\n`;
242
+ resultText += `\\n**Important:** When using displayId (e.g., #123) for operations, include \`workspaceId: "${request.workspaceId}"\`\\n`;
224
243
  return {
225
244
  content: [
226
245
  {
@@ -235,9 +254,10 @@ Returns: tree[] with depth/nodePath/childrenCount/descendantsCount, stats. Dates
235
254
  content: [
236
255
  {
237
256
  type: 'text',
238
- text: `Error retrieving workspace tree: ${error.message || 'Unknown error'}`,
257
+ text: `Error retrieving workspace tree: ${getErrorMessage(error)}`,
239
258
  },
240
259
  ],
260
+ isError: true,
241
261
  };
242
262
  }
243
263
  });
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-tree-tool.js","sourceRoot":"","sources":["../../src/tools/workspace-tree-tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace-tree-tool.js","sourceRoot":"","sources":["../../src/tools/workspace-tree-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Utility functions for safe error handling with TypeScript's unknown type
3
+ */
4
+ /**
5
+ * Safely extracts an error message from an unknown error type.
6
+ * Follows TypeScript best practices by avoiding `any` type.
7
+ *
8
+ * @param error - The caught error (unknown type)
9
+ * @param defaultMessage - Default message if error message cannot be extracted
10
+ * @returns A string error message
11
+ *
12
+ * @example
13
+ * try {
14
+ * await someOperation();
15
+ * } catch (error: unknown) {
16
+ * const message = getErrorMessage(error);
17
+ * console.error(message);
18
+ * }
19
+ */
20
+ export declare function getErrorMessage(error: unknown, defaultMessage?: string): string;
21
+ /**
22
+ * Type guard to check if an error has a specific status code
23
+ */
24
+ export declare function hasStatusCode(error: unknown): error is {
25
+ statusCode: number;
26
+ message?: string;
27
+ };
28
+ /**
29
+ * Creates a standardized MCP error response content
30
+ */
31
+ export declare function createErrorContent(title: string, error: unknown): {
32
+ type: 'text';
33
+ text: string;
34
+ };
35
+ /**
36
+ * Check if error message includes a specific string
37
+ */
38
+ export declare function errorMessageIncludes(error: unknown, substring: string): boolean;
39
+ /**
40
+ * Check if error is a 404 Not Found error
41
+ * Handles both response.status === 404 and message containing 'not found'
42
+ */
43
+ export declare function isNotFoundError(error: unknown): boolean;
44
+ /**
45
+ * Check if error is a workspace-related access error
46
+ */
47
+ export declare function isWorkspaceAccessError(error: unknown): boolean;
48
+ /**
49
+ * Get HTTP response status from an error object
50
+ * Returns undefined if error doesn't have response.status
51
+ */
52
+ export declare function getErrorResponseStatus(error: unknown): number | undefined;
53
+ /**
54
+ * Get HTTP response data from an error object
55
+ * Returns undefined if error doesn't have response.data
56
+ */
57
+ export declare function getErrorResponseData(error: unknown): unknown;
58
+ //# sourceMappingURL=error-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-utils.d.ts","sourceRoot":"","sources":["../../src/utils/error-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,EACd,cAAc,SAAkB,GAC/B,MAAM,CAgBR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,OAAO,GACb,KAAK,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAOnD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,GACb;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAMhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAG/E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAevD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAM9D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAazE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAY5D"}
@@ -0,0 +1,118 @@
1
+ /**
2
+ * Utility functions for safe error handling with TypeScript's unknown type
3
+ */
4
+ /**
5
+ * Safely extracts an error message from an unknown error type.
6
+ * Follows TypeScript best practices by avoiding `any` type.
7
+ *
8
+ * @param error - The caught error (unknown type)
9
+ * @param defaultMessage - Default message if error message cannot be extracted
10
+ * @returns A string error message
11
+ *
12
+ * @example
13
+ * try {
14
+ * await someOperation();
15
+ * } catch (error: unknown) {
16
+ * const message = getErrorMessage(error);
17
+ * console.error(message);
18
+ * }
19
+ */
20
+ export function getErrorMessage(error, defaultMessage = 'Unknown error') {
21
+ if (error instanceof Error) {
22
+ return error.message;
23
+ }
24
+ if (typeof error === 'string') {
25
+ return error;
26
+ }
27
+ if (error !== null &&
28
+ typeof error === 'object' &&
29
+ 'message' in error &&
30
+ typeof error.message === 'string') {
31
+ return error.message;
32
+ }
33
+ return defaultMessage;
34
+ }
35
+ /**
36
+ * Type guard to check if an error has a specific status code
37
+ */
38
+ export function hasStatusCode(error) {
39
+ return (error !== null &&
40
+ typeof error === 'object' &&
41
+ 'statusCode' in error &&
42
+ typeof error.statusCode === 'number');
43
+ }
44
+ /**
45
+ * Creates a standardized MCP error response content
46
+ */
47
+ export function createErrorContent(title, error) {
48
+ const errorMessage = getErrorMessage(error);
49
+ return {
50
+ type: 'text',
51
+ text: `❌ **${title}**\n\nError: ${errorMessage}`,
52
+ };
53
+ }
54
+ /**
55
+ * Check if error message includes a specific string
56
+ */
57
+ export function errorMessageIncludes(error, substring) {
58
+ const message = getErrorMessage(error, '');
59
+ return message.toLowerCase().includes(substring.toLowerCase());
60
+ }
61
+ /**
62
+ * Check if error is a 404 Not Found error
63
+ * Handles both response.status === 404 and message containing 'not found'
64
+ */
65
+ export function isNotFoundError(error) {
66
+ // Check for response.status === 404
67
+ if (error !== null &&
68
+ typeof error === 'object' &&
69
+ 'response' in error &&
70
+ error.response !== null &&
71
+ typeof error.response === 'object' &&
72
+ 'status' in error.response &&
73
+ error.response.status === 404) {
74
+ return true;
75
+ }
76
+ // Check for 'not found' in message
77
+ return errorMessageIncludes(error, 'not found');
78
+ }
79
+ /**
80
+ * Check if error is a workspace-related access error
81
+ */
82
+ export function isWorkspaceAccessError(error) {
83
+ return (errorMessageIncludes(error, '403') ||
84
+ errorMessageIncludes(error, 'workspace') ||
85
+ errorMessageIncludes(error, 'not a member'));
86
+ }
87
+ /**
88
+ * Get HTTP response status from an error object
89
+ * Returns undefined if error doesn't have response.status
90
+ */
91
+ export function getErrorResponseStatus(error) {
92
+ if (error !== null &&
93
+ typeof error === 'object' &&
94
+ 'response' in error &&
95
+ error.response !== null &&
96
+ typeof error.response === 'object' &&
97
+ 'status' in error.response &&
98
+ typeof error.response.status === 'number') {
99
+ return error.response.status;
100
+ }
101
+ return undefined;
102
+ }
103
+ /**
104
+ * Get HTTP response data from an error object
105
+ * Returns undefined if error doesn't have response.data
106
+ */
107
+ export function getErrorResponseData(error) {
108
+ if (error !== null &&
109
+ typeof error === 'object' &&
110
+ 'response' in error &&
111
+ error.response !== null &&
112
+ typeof error.response === 'object' &&
113
+ 'data' in error.response) {
114
+ return error.response.data;
115
+ }
116
+ return undefined;
117
+ }
118
+ //# sourceMappingURL=error-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-utils.js","sourceRoot":"","sources":["../../src/utils/error-utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './error-utils.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './error-utils.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brxce/mcp-server",
3
- "version": "1.0.4",
3
+ "version": "1.1.2",
4
4
  "description": "Model Context Protocol (MCP) server for BRXCE workspace management",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,16 +12,6 @@
12
12
  "README.md",
13
13
  "package.json"
14
14
  ],
15
- "scripts": {
16
- "dev": "tsx watch src/index.ts",
17
- "build": "tsc",
18
- "start": "node dist/index.js",
19
- "test": "vitest",
20
- "test:coverage": "vitest run --coverage",
21
- "lint": "eslint src/**/*.ts --fix",
22
- "check-types": "tsc --noEmit",
23
- "prepublishOnly": "pnpm build"
24
- },
25
15
  "keywords": [
26
16
  "mcp",
27
17
  "model-context-protocol",
@@ -47,7 +37,8 @@
47
37
  "dependencies": {
48
38
  "@modelcontextprotocol/sdk": "^1.17.1",
49
39
  "jsonwebtoken": "^9.0.2",
50
- "zod": "^3.23.8"
40
+ "zod": "^3.23.8",
41
+ "@repo/config": "0.0.0"
51
42
  },
52
43
  "devDependencies": {
53
44
  "@types/jsonwebtoken": "^9.0.10",
@@ -59,5 +50,14 @@
59
50
  "extends": [
60
51
  "@repo/eslint-config/node"
61
52
  ]
53
+ },
54
+ "scripts": {
55
+ "dev": "tsx watch src/index.ts",
56
+ "build": "tsc",
57
+ "start": "node dist/index.js",
58
+ "test": "vitest",
59
+ "test:coverage": "vitest run --coverage",
60
+ "lint": "eslint src/**/*.ts --fix",
61
+ "check-types": "tsc --noEmit"
62
62
  }
63
- }
63
+ }