@brxce/mcp-server 1.0.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 (106) hide show
  1. package/README.md +220 -0
  2. package/dist/config/environment.d.ts +8 -0
  3. package/dist/config/environment.d.ts.map +1 -0
  4. package/dist/config/environment.js +16 -0
  5. package/dist/config/environment.js.map +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +167 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/prompts/worknode-prompts.d.ts +7 -0
  11. package/dist/prompts/worknode-prompts.d.ts.map +1 -0
  12. package/dist/prompts/worknode-prompts.js +369 -0
  13. package/dist/prompts/worknode-prompts.js.map +1 -0
  14. package/dist/prompts/workspace-context-prompt.d.ts +4 -0
  15. package/dist/prompts/workspace-context-prompt.d.ts.map +1 -0
  16. package/dist/prompts/workspace-context-prompt.js +101 -0
  17. package/dist/prompts/workspace-context-prompt.js.map +1 -0
  18. package/dist/resources/user-resource.d.ts +4 -0
  19. package/dist/resources/user-resource.d.ts.map +1 -0
  20. package/dist/resources/user-resource.js +40 -0
  21. package/dist/resources/user-resource.js.map +1 -0
  22. package/dist/resources/workspace-members-resource.d.ts +4 -0
  23. package/dist/resources/workspace-members-resource.d.ts.map +1 -0
  24. package/dist/resources/workspace-members-resource.js +39 -0
  25. package/dist/resources/workspace-members-resource.js.map +1 -0
  26. package/dist/resources/workspace-resource.d.ts +4 -0
  27. package/dist/resources/workspace-resource.d.ts.map +1 -0
  28. package/dist/resources/workspace-resource.js +27 -0
  29. package/dist/resources/workspace-resource.js.map +1 -0
  30. package/dist/services/api-client.d.ts +17 -0
  31. package/dist/services/api-client.d.ts.map +1 -0
  32. package/dist/services/api-client.js +118 -0
  33. package/dist/services/api-client.js.map +1 -0
  34. package/dist/tools/meeting-agenda-tool.d.ts +7 -0
  35. package/dist/tools/meeting-agenda-tool.d.ts.map +1 -0
  36. package/dist/tools/meeting-agenda-tool.js +452 -0
  37. package/dist/tools/meeting-agenda-tool.js.map +1 -0
  38. package/dist/tools/meeting-create-tool.d.ts +8 -0
  39. package/dist/tools/meeting-create-tool.d.ts.map +1 -0
  40. package/dist/tools/meeting-create-tool.js +309 -0
  41. package/dist/tools/meeting-create-tool.js.map +1 -0
  42. package/dist/tools/meeting-decisions-tool.d.ts +7 -0
  43. package/dist/tools/meeting-decisions-tool.d.ts.map +1 -0
  44. package/dist/tools/meeting-decisions-tool.js +431 -0
  45. package/dist/tools/meeting-decisions-tool.js.map +1 -0
  46. package/dist/tools/meeting-list-tool.d.ts +7 -0
  47. package/dist/tools/meeting-list-tool.d.ts.map +1 -0
  48. package/dist/tools/meeting-list-tool.js +305 -0
  49. package/dist/tools/meeting-list-tool.js.map +1 -0
  50. package/dist/tools/meeting-notes-tool.d.ts +7 -0
  51. package/dist/tools/meeting-notes-tool.d.ts.map +1 -0
  52. package/dist/tools/meeting-notes-tool.js +318 -0
  53. package/dist/tools/meeting-notes-tool.js.map +1 -0
  54. package/dist/tools/meeting-update-tool.d.ts +7 -0
  55. package/dist/tools/meeting-update-tool.d.ts.map +1 -0
  56. package/dist/tools/meeting-update-tool.js +310 -0
  57. package/dist/tools/meeting-update-tool.js.map +1 -0
  58. package/dist/tools/tag-category-tool.d.ts +4 -0
  59. package/dist/tools/tag-category-tool.d.ts.map +1 -0
  60. package/dist/tools/tag-category-tool.js +293 -0
  61. package/dist/tools/tag-category-tool.js.map +1 -0
  62. package/dist/tools/tag-search-tool.d.ts +4 -0
  63. package/dist/tools/tag-search-tool.d.ts.map +1 -0
  64. package/dist/tools/tag-search-tool.js +358 -0
  65. package/dist/tools/tag-search-tool.js.map +1 -0
  66. package/dist/tools/tag-tool.d.ts +4 -0
  67. package/dist/tools/tag-tool.d.ts.map +1 -0
  68. package/dist/tools/tag-tool.js +450 -0
  69. package/dist/tools/tag-tool.js.map +1 -0
  70. package/dist/tools/worknode-archive-tool.d.ts +7 -0
  71. package/dist/tools/worknode-archive-tool.d.ts.map +1 -0
  72. package/dist/tools/worknode-archive-tool.js +163 -0
  73. package/dist/tools/worknode-archive-tool.js.map +1 -0
  74. package/dist/tools/worknode-create-tool.d.ts +4 -0
  75. package/dist/tools/worknode-create-tool.d.ts.map +1 -0
  76. package/dist/tools/worknode-create-tool.js +382 -0
  77. package/dist/tools/worknode-create-tool.js.map +1 -0
  78. package/dist/tools/worknode-my-work-tool.d.ts +8 -0
  79. package/dist/tools/worknode-my-work-tool.d.ts.map +1 -0
  80. package/dist/tools/worknode-my-work-tool.js +302 -0
  81. package/dist/tools/worknode-my-work-tool.js.map +1 -0
  82. package/dist/tools/worknode-search-tool.d.ts +4 -0
  83. package/dist/tools/worknode-search-tool.d.ts.map +1 -0
  84. package/dist/tools/worknode-search-tool.js +289 -0
  85. package/dist/tools/worknode-search-tool.js.map +1 -0
  86. package/dist/tools/worknode-subtree-tool.d.ts +4 -0
  87. package/dist/tools/worknode-subtree-tool.d.ts.map +1 -0
  88. package/dist/tools/worknode-subtree-tool.js +175 -0
  89. package/dist/tools/worknode-subtree-tool.js.map +1 -0
  90. package/dist/tools/worknode-tag-tool.d.ts +4 -0
  91. package/dist/tools/worknode-tag-tool.d.ts.map +1 -0
  92. package/dist/tools/worknode-tag-tool.js +353 -0
  93. package/dist/tools/worknode-tag-tool.js.map +1 -0
  94. package/dist/tools/worknode-update-tool.d.ts +4 -0
  95. package/dist/tools/worknode-update-tool.d.ts.map +1 -0
  96. package/dist/tools/worknode-update-tool.js +409 -0
  97. package/dist/tools/worknode-update-tool.js.map +1 -0
  98. package/dist/tools/workspace-inbox-tool.d.ts +8 -0
  99. package/dist/tools/workspace-inbox-tool.d.ts.map +1 -0
  100. package/dist/tools/workspace-inbox-tool.js +210 -0
  101. package/dist/tools/workspace-inbox-tool.js.map +1 -0
  102. package/dist/tools/workspace-tree-tool.d.ts +4 -0
  103. package/dist/tools/workspace-tree-tool.d.ts.map +1 -0
  104. package/dist/tools/workspace-tree-tool.js +419 -0
  105. package/dist/tools/workspace-tree-tool.js.map +1 -0
  106. package/package.json +61 -0
@@ -0,0 +1,309 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Register Meeting Creation Tool for conversational workflow
4
+ * Supports preview and actual creation modes
5
+ */
6
+ export function registerMeetingCreateTool(server, apiClient) {
7
+ server.registerTool('brxce_create_meeting', {
8
+ description: `Create a meeting with auto-generated review and conversational workflow.
9
+
10
+ ⚠️ **CRITICAL: Workspace Verification Required**
11
+ Before calling this tool, you MUST:
12
+ 1. Read the \`user://me\` resource to get available workspaces
13
+ 2. Identify the correct workspaceId from the resource data
14
+ 3. If user doesn't specify workspace, use their default workspace
15
+ 4. NEVER assume or guess workspaceId values
16
+
17
+ **Example Workflow:**
18
+ \`\`\`
19
+ User: "주간 회의 만들어줘"
20
+ LLM:
21
+ 1. Reads user://me resource
22
+ 2. Finds default workspace: {id: 138, name: "BRXCE Development"}
23
+ 3. Calls brxce_create_meeting with workspaceId: 138, preview: true
24
+ 4. Shows preview and asks for confirmation
25
+ \`\`\`
26
+
27
+ **CONVERSATIONAL WORKFLOW:**
28
+ This tool is designed for step-by-step meeting creation:
29
+ 1. Preview meeting with auto-review
30
+ 2. Ask user about review period if needed
31
+ 3. Ask about agenda items
32
+ 4. Suggest workspace members for participants
33
+ 5. Confirm and create
34
+
35
+ **TWO MODES:**
36
+ 1. **Preview Mode** (preview: true, default):
37
+ - Validates inputs
38
+ - Auto-generates review of completed WorkNodes
39
+ - Shows preview data for user confirmation
40
+ - DOES NOT create the meeting
41
+
42
+ 2. **Create Mode** (preview: false):
43
+ - Actually creates the meeting
44
+ - Requires all validated data
45
+ - Returns created meeting with ID
46
+
47
+ **Review Period Modes:**
48
+ - since_last_review: From last meeting with review to scheduledAt (default)
49
+ - last_week: Last 7 days from scheduledAt
50
+ - last_days: Custom days back (specify reviewDays)
51
+ - custom: Specify exact reviewFrom and reviewTo dates
52
+
53
+ **Workflow Example:**
54
+
55
+ Step 1: User asks "주간 회의 만들어줘"
56
+ → LLM calls preview with title="주간 회의", scheduledAt=<next Monday>
57
+
58
+ Step 2: Tool returns preview with auto-review
59
+ → LLM shows: "지난 리뷰 이후 완료된 작업 15개가 있습니다. 이 기간으로 할까요?"
60
+
61
+ Step 3: User confirms or adjusts
62
+ → If adjust: LLM calls preview again with reviewMode=last_days, reviewDays=14
63
+
64
+ Step 4: LLM asks about agenda
65
+ → User: "신규 기능 개발 현황, 버그 수정 내역"
66
+ → LLM adds agendaItems
67
+
68
+ Step 5: LLM fetches workspace members (via workspace-members resource)
69
+ → Shows member list: "누구를 초대할까요?"
70
+
71
+ Step 6: User selects participants
72
+ → LLM calls with preview: false to create
73
+
74
+ **Best Practices:**
75
+ 1. ALWAYS preview first
76
+ 2. Show review period and completed work count to user
77
+ 3. Ask about agenda items explicitly
78
+ 4. Use workspace-members resource to show participant options
79
+ 5. Confirm before creating
80
+
81
+ **Use Cases:**
82
+ - "주간 회의 만들어줘" → Auto-schedule for next Monday
83
+ - "오늘 스탠드업 미팅 생성" → Schedule for today
84
+ - "지난 2주간 완료한 작업 리뷰하는 회의" → Custom review period
85
+ - "다음주 sprint planning 미팅" → Schedule with custom agenda
86
+
87
+ ⏰ **TIMEZONE HANDLING:**
88
+ When specifying scheduledAt, provide in ISO 8601 format with timezone information.
89
+ The API will store dates in UTC, but the LLM should help users specify dates in their local timezone.
90
+
91
+ Example for Korea Time (UTC+9):
92
+ - User says: "Schedule for tomorrow at 2pm" → LLM converts to: "2025-10-21T05:00:00.000Z" (2pm KST)
93
+ - User says: "Next Monday 10am" → LLM converts to: "2025-10-27T01:00:00.000Z" (10am KST)
94
+
95
+ When creating meetings with dates:
96
+ 1. Check the current date/time from the <env> tag in the system prompt
97
+ 2. Identify the user's timezone (e.g., Asia/Seoul = UTC+9)
98
+ 3. Convert user's local dates to UTC for the API
99
+ 4. For review period dates (reviewFrom, reviewTo), also convert to UTC`,
100
+ inputSchema: {
101
+ workspaceId: z.number().describe('Workspace ID (required)'),
102
+ title: z.string().describe('Meeting title (e.g., "Weekly Review Meeting")'),
103
+ scheduledAt: z
104
+ .string()
105
+ .describe('Scheduled date/time in ISO 8601 format (e.g., "2025-01-20T10:00:00Z")'),
106
+ duration: z
107
+ .number()
108
+ .optional()
109
+ .describe('Meeting duration in minutes (default: 60)'),
110
+ reviewMode: z
111
+ .enum(['since_last_review', 'last_week', 'last_days', 'custom'])
112
+ .optional()
113
+ .describe('Review period mode (default: since_last_review)'),
114
+ reviewDays: z
115
+ .number()
116
+ .optional()
117
+ .describe('Days to look back (for last_days mode)'),
118
+ reviewFrom: z
119
+ .string()
120
+ .optional()
121
+ .describe('Review start date in ISO 8601 (for custom mode)'),
122
+ reviewTo: z
123
+ .string()
124
+ .optional()
125
+ .describe('Review end date in ISO 8601 (for custom mode)'),
126
+ agendaItems: z
127
+ .array(z.object({
128
+ title: z.string().describe('Agenda item title'),
129
+ description: z.string().optional().describe('Agenda item description'),
130
+ workNodeIds: z
131
+ .array(z.number())
132
+ .optional()
133
+ .describe('Related WorkNode IDs'),
134
+ }))
135
+ .optional()
136
+ .describe('Agenda items for the meeting'),
137
+ participantUserIds: z
138
+ .array(z.string())
139
+ .optional()
140
+ .describe('Participant user IDs (fetch from workspace-members resource)'),
141
+ preview: z
142
+ .boolean()
143
+ .optional()
144
+ .describe('If true, preview only (does not create). Default: true'),
145
+ },
146
+ }, async (args) => {
147
+ const { workspaceId, title, scheduledAt, duration = 60, reviewMode = 'since_last_review', reviewDays, reviewFrom, reviewTo, agendaItems, participantUserIds, preview = true, } = args;
148
+ try {
149
+ const requestBody = {
150
+ workspaceId,
151
+ title,
152
+ scheduledAt,
153
+ duration,
154
+ reviewMode,
155
+ reviewDays,
156
+ reviewFrom,
157
+ reviewTo,
158
+ agendaItems,
159
+ participantUserIds,
160
+ };
161
+ if (preview) {
162
+ // Preview mode
163
+ const response = await apiClient.post('/mcp/meetings/preview', requestBody);
164
+ if (!response.success) {
165
+ return {
166
+ content: [
167
+ {
168
+ type: 'text',
169
+ text: JSON.stringify({
170
+ error: 'Failed to preview meeting',
171
+ message: response.message || 'Unknown error',
172
+ }),
173
+ },
174
+ ],
175
+ isError: true,
176
+ };
177
+ }
178
+ const { meeting, review, agenda, participants } = response.data;
179
+ // Format completed WorkNodes for token efficiency
180
+ const completedSummary = review.completedWorkNodes.map(node => ({
181
+ id: node.id,
182
+ title: node.title,
183
+ type: node.nodeType,
184
+ status: node.status,
185
+ priority: node.priority,
186
+ completed: node.completedAt
187
+ ? new Date(node.completedAt).toLocaleDateString()
188
+ : 'N/A',
189
+ }));
190
+ return {
191
+ content: [
192
+ {
193
+ type: 'text',
194
+ text: JSON.stringify({
195
+ preview: true,
196
+ meeting: {
197
+ title: meeting.title,
198
+ scheduledAt: new Date(meeting.scheduledAt).toLocaleString(),
199
+ duration: `${meeting.duration} minutes`,
200
+ workspaceId: meeting.workspaceId,
201
+ },
202
+ review: {
203
+ mode: review.mode,
204
+ period: {
205
+ from: new Date(review.period.from).toLocaleDateString(),
206
+ to: new Date(review.period.to).toLocaleDateString(),
207
+ },
208
+ totalCompleted: review.totalCompleted,
209
+ completedWorkNodes: completedSummary,
210
+ },
211
+ agenda: agenda.map((item, i) => ({
212
+ order: i + 1,
213
+ title: item.title,
214
+ description: item.description,
215
+ relatedWorkNodes: item.workNodeIds?.length || 0,
216
+ })),
217
+ participants: participants.map(p => ({
218
+ name: p.name || p.email,
219
+ email: p.email,
220
+ userId: p.userId,
221
+ })),
222
+ nextSteps: [
223
+ '1. Review the completed WorkNodes and confirm the review period',
224
+ '2. Add or modify agenda items if needed',
225
+ '3. Select participants from workspace members',
226
+ '4. Call this tool again with preview: false to create',
227
+ ],
228
+ }, null, 2),
229
+ },
230
+ ],
231
+ };
232
+ }
233
+ else {
234
+ // Create mode
235
+ const response = await apiClient.post('/mcp/meetings', requestBody);
236
+ if (!response.success) {
237
+ return {
238
+ content: [
239
+ {
240
+ type: 'text',
241
+ text: JSON.stringify({
242
+ error: 'Failed to create meeting',
243
+ message: response.message || 'Unknown error',
244
+ }),
245
+ },
246
+ ],
247
+ isError: true,
248
+ };
249
+ }
250
+ const { meeting, review, agenda, participants } = response.data;
251
+ return {
252
+ content: [
253
+ {
254
+ type: 'text',
255
+ text: JSON.stringify({
256
+ success: true,
257
+ meeting: {
258
+ id: meeting.id,
259
+ title: meeting.title,
260
+ scheduledAt: new Date(meeting.scheduledAt).toLocaleString(),
261
+ duration: `${meeting.duration} minutes`,
262
+ status: meeting.status,
263
+ workspaceId: meeting.workspaceId,
264
+ },
265
+ review: {
266
+ id: review.id,
267
+ period: {
268
+ from: new Date(review.period.from).toLocaleDateString(),
269
+ to: new Date(review.period.to).toLocaleDateString(),
270
+ },
271
+ totalCompleted: review.totalCompleted,
272
+ },
273
+ agenda: agenda.map((item, i) => ({
274
+ id: item.id,
275
+ order: i + 1,
276
+ title: item.title,
277
+ description: item.description,
278
+ })),
279
+ participants: participants.map(p => ({
280
+ name: p.name || p.email,
281
+ email: p.email,
282
+ userId: p.userId,
283
+ invitedAt: new Date(p.invitedAt).toLocaleString(),
284
+ })),
285
+ message: `Meeting created successfully! ID: ${meeting.id}`,
286
+ }, null, 2),
287
+ },
288
+ ],
289
+ };
290
+ }
291
+ }
292
+ catch (error) {
293
+ return {
294
+ content: [
295
+ {
296
+ type: 'text',
297
+ text: JSON.stringify({
298
+ error: preview ? 'Failed to preview meeting' : 'Failed to create meeting',
299
+ message: error.message,
300
+ details: error.response?.data || error,
301
+ }),
302
+ },
303
+ ],
304
+ isError: true,
305
+ };
306
+ }
307
+ });
308
+ }
309
+ //# sourceMappingURL=meeting-create-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-create-tool.js","sourceRoot":"","sources":["../../src/tools/meeting-create-tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import type { ApiClient } from '../services/api-client.js';
3
+ /**
4
+ * Register Meeting Decisions Tools for LLM-invoked operations
5
+ */
6
+ export declare function registerMeetingDecisionsTools(server: McpServer, apiClient: ApiClient): void;
7
+ //# sourceMappingURL=meeting-decisions-tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meeting-decisions-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meeting-decisions-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAM3D;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QA4bpF"}