@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.
- package/README.md +220 -0
- package/dist/config/environment.d.ts +8 -0
- package/dist/config/environment.d.ts.map +1 -0
- package/dist/config/environment.js +16 -0
- package/dist/config/environment.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -0
- package/dist/index.js.map +1 -0
- package/dist/prompts/worknode-prompts.d.ts +7 -0
- package/dist/prompts/worknode-prompts.d.ts.map +1 -0
- package/dist/prompts/worknode-prompts.js +369 -0
- package/dist/prompts/worknode-prompts.js.map +1 -0
- package/dist/prompts/workspace-context-prompt.d.ts +4 -0
- package/dist/prompts/workspace-context-prompt.d.ts.map +1 -0
- package/dist/prompts/workspace-context-prompt.js +101 -0
- package/dist/prompts/workspace-context-prompt.js.map +1 -0
- package/dist/resources/user-resource.d.ts +4 -0
- package/dist/resources/user-resource.d.ts.map +1 -0
- package/dist/resources/user-resource.js +40 -0
- package/dist/resources/user-resource.js.map +1 -0
- package/dist/resources/workspace-members-resource.d.ts +4 -0
- package/dist/resources/workspace-members-resource.d.ts.map +1 -0
- package/dist/resources/workspace-members-resource.js +39 -0
- package/dist/resources/workspace-members-resource.js.map +1 -0
- package/dist/resources/workspace-resource.d.ts +4 -0
- package/dist/resources/workspace-resource.d.ts.map +1 -0
- package/dist/resources/workspace-resource.js +27 -0
- package/dist/resources/workspace-resource.js.map +1 -0
- package/dist/services/api-client.d.ts +17 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +118 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/tools/meeting-agenda-tool.d.ts +7 -0
- package/dist/tools/meeting-agenda-tool.d.ts.map +1 -0
- package/dist/tools/meeting-agenda-tool.js +452 -0
- package/dist/tools/meeting-agenda-tool.js.map +1 -0
- package/dist/tools/meeting-create-tool.d.ts +8 -0
- package/dist/tools/meeting-create-tool.d.ts.map +1 -0
- package/dist/tools/meeting-create-tool.js +309 -0
- package/dist/tools/meeting-create-tool.js.map +1 -0
- package/dist/tools/meeting-decisions-tool.d.ts +7 -0
- package/dist/tools/meeting-decisions-tool.d.ts.map +1 -0
- package/dist/tools/meeting-decisions-tool.js +431 -0
- package/dist/tools/meeting-decisions-tool.js.map +1 -0
- package/dist/tools/meeting-list-tool.d.ts +7 -0
- package/dist/tools/meeting-list-tool.d.ts.map +1 -0
- package/dist/tools/meeting-list-tool.js +305 -0
- package/dist/tools/meeting-list-tool.js.map +1 -0
- package/dist/tools/meeting-notes-tool.d.ts +7 -0
- package/dist/tools/meeting-notes-tool.d.ts.map +1 -0
- package/dist/tools/meeting-notes-tool.js +318 -0
- package/dist/tools/meeting-notes-tool.js.map +1 -0
- package/dist/tools/meeting-update-tool.d.ts +7 -0
- package/dist/tools/meeting-update-tool.d.ts.map +1 -0
- package/dist/tools/meeting-update-tool.js +310 -0
- package/dist/tools/meeting-update-tool.js.map +1 -0
- package/dist/tools/tag-category-tool.d.ts +4 -0
- package/dist/tools/tag-category-tool.d.ts.map +1 -0
- package/dist/tools/tag-category-tool.js +293 -0
- package/dist/tools/tag-category-tool.js.map +1 -0
- package/dist/tools/tag-search-tool.d.ts +4 -0
- package/dist/tools/tag-search-tool.d.ts.map +1 -0
- package/dist/tools/tag-search-tool.js +358 -0
- package/dist/tools/tag-search-tool.js.map +1 -0
- package/dist/tools/tag-tool.d.ts +4 -0
- package/dist/tools/tag-tool.d.ts.map +1 -0
- package/dist/tools/tag-tool.js +450 -0
- package/dist/tools/tag-tool.js.map +1 -0
- package/dist/tools/worknode-archive-tool.d.ts +7 -0
- package/dist/tools/worknode-archive-tool.d.ts.map +1 -0
- package/dist/tools/worknode-archive-tool.js +163 -0
- package/dist/tools/worknode-archive-tool.js.map +1 -0
- package/dist/tools/worknode-create-tool.d.ts +4 -0
- package/dist/tools/worknode-create-tool.d.ts.map +1 -0
- package/dist/tools/worknode-create-tool.js +382 -0
- package/dist/tools/worknode-create-tool.js.map +1 -0
- package/dist/tools/worknode-my-work-tool.d.ts +8 -0
- package/dist/tools/worknode-my-work-tool.d.ts.map +1 -0
- package/dist/tools/worknode-my-work-tool.js +302 -0
- package/dist/tools/worknode-my-work-tool.js.map +1 -0
- package/dist/tools/worknode-search-tool.d.ts +4 -0
- package/dist/tools/worknode-search-tool.d.ts.map +1 -0
- package/dist/tools/worknode-search-tool.js +289 -0
- package/dist/tools/worknode-search-tool.js.map +1 -0
- package/dist/tools/worknode-subtree-tool.d.ts +4 -0
- package/dist/tools/worknode-subtree-tool.d.ts.map +1 -0
- package/dist/tools/worknode-subtree-tool.js +175 -0
- package/dist/tools/worknode-subtree-tool.js.map +1 -0
- package/dist/tools/worknode-tag-tool.d.ts +4 -0
- package/dist/tools/worknode-tag-tool.d.ts.map +1 -0
- package/dist/tools/worknode-tag-tool.js +353 -0
- package/dist/tools/worknode-tag-tool.js.map +1 -0
- package/dist/tools/worknode-update-tool.d.ts +4 -0
- package/dist/tools/worknode-update-tool.d.ts.map +1 -0
- package/dist/tools/worknode-update-tool.js +409 -0
- package/dist/tools/worknode-update-tool.js.map +1 -0
- package/dist/tools/workspace-inbox-tool.d.ts +8 -0
- package/dist/tools/workspace-inbox-tool.d.ts.map +1 -0
- package/dist/tools/workspace-inbox-tool.js +210 -0
- package/dist/tools/workspace-inbox-tool.js.map +1 -0
- package/dist/tools/workspace-tree-tool.d.ts +4 -0
- package/dist/tools/workspace-tree-tool.d.ts.map +1 -0
- package/dist/tools/workspace-tree-tool.js +419 -0
- package/dist/tools/workspace-tree-tool.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-resource.js","sourceRoot":"","sources":["../../src/resources/workspace-resource.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAgB3E,MAAM,UAAU,yBAAyB,CAAC,MAAiB,EAAE,SAAoB;IAC/E,mDAAmD;IACnD,6DAA6D;IAC7D,MAAM,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;QACjE,IAAI,EAAE,SAAS,EAAE,6BAA6B;KAC/C,CAAC,CAAC;IAEH,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QACvE,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,GAAG,CAAY,eAAe,WAAW,EAAE,CAAC,CAAC;YAE/E,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;wBACnB,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;qBACzC;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,WAAW,KAAK,KAAK,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple API client for BRXCE backend
|
|
3
|
+
*/
|
|
4
|
+
export interface ApiClientConfig {
|
|
5
|
+
baseUrl: string;
|
|
6
|
+
authToken?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class ApiClient {
|
|
9
|
+
private baseUrl;
|
|
10
|
+
private authToken?;
|
|
11
|
+
constructor(config: ApiClientConfig);
|
|
12
|
+
get<T>(path: string): Promise<T>;
|
|
13
|
+
post<T>(path: string, data?: unknown): Promise<T>;
|
|
14
|
+
put<T>(path: string, data?: unknown): Promise<T>;
|
|
15
|
+
delete<T>(path: string): Promise<T>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=api-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAC,CAAS;gBAEf,MAAM,EAAE,eAAe;IAK7B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAkChC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAmCjD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAmChD,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAiC1C"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple API client for BRXCE backend
|
|
3
|
+
*/
|
|
4
|
+
export class ApiClient {
|
|
5
|
+
baseUrl;
|
|
6
|
+
authToken;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.baseUrl = config.baseUrl;
|
|
9
|
+
this.authToken = config.authToken;
|
|
10
|
+
}
|
|
11
|
+
async get(path) {
|
|
12
|
+
const url = `${this.baseUrl}${path}`;
|
|
13
|
+
const headers = {
|
|
14
|
+
'Content-Type': 'application/json',
|
|
15
|
+
};
|
|
16
|
+
if (this.authToken) {
|
|
17
|
+
headers['Authorization'] = `Bearer ${this.authToken}`;
|
|
18
|
+
}
|
|
19
|
+
try {
|
|
20
|
+
const response = await fetch(url, {
|
|
21
|
+
method: 'GET',
|
|
22
|
+
headers,
|
|
23
|
+
});
|
|
24
|
+
if (!response.ok) {
|
|
25
|
+
const errorText = await response.text().catch(() => 'Unable to read error response');
|
|
26
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
|
|
27
|
+
}
|
|
28
|
+
return response.json();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
if (error instanceof Error && error.message.includes('API request failed')) {
|
|
32
|
+
throw error;
|
|
33
|
+
}
|
|
34
|
+
throw new Error(`Network error when calling ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async post(path, data) {
|
|
38
|
+
const url = `${this.baseUrl}${path}`;
|
|
39
|
+
const headers = {
|
|
40
|
+
'Content-Type': 'application/json',
|
|
41
|
+
};
|
|
42
|
+
if (this.authToken) {
|
|
43
|
+
headers['Authorization'] = `Bearer ${this.authToken}`;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const response = await fetch(url, {
|
|
47
|
+
method: 'POST',
|
|
48
|
+
headers,
|
|
49
|
+
body: data ? JSON.stringify(data) : undefined,
|
|
50
|
+
});
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
const errorText = await response.text().catch(() => 'Unable to read error response');
|
|
53
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
|
|
54
|
+
}
|
|
55
|
+
return response.json();
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error instanceof Error && error.message.includes('API request failed')) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
throw new Error(`Network error when calling ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
async put(path, data) {
|
|
65
|
+
const url = `${this.baseUrl}${path}`;
|
|
66
|
+
const headers = {
|
|
67
|
+
'Content-Type': 'application/json',
|
|
68
|
+
};
|
|
69
|
+
if (this.authToken) {
|
|
70
|
+
headers['Authorization'] = `Bearer ${this.authToken}`;
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
const response = await fetch(url, {
|
|
74
|
+
method: 'PUT',
|
|
75
|
+
headers,
|
|
76
|
+
body: data ? JSON.stringify(data) : undefined,
|
|
77
|
+
});
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
const errorText = await response.text().catch(() => 'Unable to read error response');
|
|
80
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
|
|
81
|
+
}
|
|
82
|
+
return response.json();
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
if (error instanceof Error && error.message.includes('API request failed')) {
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
throw new Error(`Network error when calling ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
async delete(path) {
|
|
92
|
+
const url = `${this.baseUrl}${path}`;
|
|
93
|
+
const headers = {
|
|
94
|
+
'Content-Type': 'application/json',
|
|
95
|
+
};
|
|
96
|
+
if (this.authToken) {
|
|
97
|
+
headers['Authorization'] = `Bearer ${this.authToken}`;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const response = await fetch(url, {
|
|
101
|
+
method: 'DELETE',
|
|
102
|
+
headers,
|
|
103
|
+
});
|
|
104
|
+
if (!response.ok) {
|
|
105
|
+
const errorText = await response.text().catch(() => 'Unable to read error response');
|
|
106
|
+
throw new Error(`API request failed: ${response.status} ${response.statusText}\nURL: ${url}\nResponse: ${errorText}`);
|
|
107
|
+
}
|
|
108
|
+
return response.json();
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
if (error instanceof Error && error.message.includes('API request failed')) {
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
throw new Error(`Network error when calling ${url}: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=api-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.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 Agenda Tools for LLM-invoked operations
|
|
5
|
+
*/
|
|
6
|
+
export declare function registerMeetingAgendaTools(server: McpServer, apiClient: ApiClient): void;
|
|
7
|
+
//# sourceMappingURL=meeting-agenda-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-agenda-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meeting-agenda-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,0BAA0B,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAgdjF"}
|
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
const MeetingItemSubTypeSchema = z.enum(['worknode', 'text', 'blocker', 'action', 'follow_up']);
|
|
3
|
+
const MeetingItemStatusSchema = z.enum(['pending', 'discussed', 'deferred', 'resolved', 'skipped']);
|
|
4
|
+
/**
|
|
5
|
+
* Register Meeting Agenda Tools for LLM-invoked operations
|
|
6
|
+
*/
|
|
7
|
+
export function registerMeetingAgendaTools(server, apiClient) {
|
|
8
|
+
/**
|
|
9
|
+
* brxce_add_agenda_item - Add an agenda item to a meeting
|
|
10
|
+
*/
|
|
11
|
+
server.registerTool('brxce_add_agenda_item', {
|
|
12
|
+
description: `Add an agenda item to a meeting.
|
|
13
|
+
|
|
14
|
+
**When to use this tool:**
|
|
15
|
+
- Planning meeting agenda before the meeting
|
|
16
|
+
- User wants to add discussion topics
|
|
17
|
+
- Organizing meeting structure and topics
|
|
18
|
+
|
|
19
|
+
**Input:**
|
|
20
|
+
- meetingId (required): ID of the meeting
|
|
21
|
+
- title (required): Agenda item title
|
|
22
|
+
- summary (optional): Brief summary of the topic
|
|
23
|
+
- notes (optional): Additional notes or context
|
|
24
|
+
- itemSubType (optional): 'text', 'blocker', 'action', 'follow_up', 'worknode'
|
|
25
|
+
- status (optional): 'pending' (default), 'discussed', 'deferred', 'resolved', 'skipped'
|
|
26
|
+
- durationMinutes (optional): Estimated discussion time
|
|
27
|
+
- workNodeId (optional): Related work item
|
|
28
|
+
- ownerId (optional): Person responsible for this topic
|
|
29
|
+
- sortOrder (optional): Display order (default: 0)
|
|
30
|
+
|
|
31
|
+
**Access Control:**
|
|
32
|
+
- Only workspace members can add agenda items
|
|
33
|
+
- Items are ordered by sortOrder
|
|
34
|
+
|
|
35
|
+
**Example:**
|
|
36
|
+
User: "Add 'Review Q4 Metrics' to meeting #24 agenda, allocate 15 minutes"
|
|
37
|
+
LLM calls: brxce_add_agenda_item(
|
|
38
|
+
meetingId: 24,
|
|
39
|
+
title: "Review Q4 Metrics",
|
|
40
|
+
durationMinutes: 15,
|
|
41
|
+
itemSubType: "text"
|
|
42
|
+
)`,
|
|
43
|
+
inputSchema: {
|
|
44
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
45
|
+
title: z.string().min(1).describe('Agenda item title'),
|
|
46
|
+
summary: z.string().optional().describe('Brief summary'),
|
|
47
|
+
notes: z.string().optional().describe('Additional notes'),
|
|
48
|
+
itemSubType: MeetingItemSubTypeSchema.optional().describe('Item sub-type'),
|
|
49
|
+
status: MeetingItemStatusSchema.optional().describe('Item status (default: pending)'),
|
|
50
|
+
durationMinutes: z.number().optional().describe('Estimated duration in minutes'),
|
|
51
|
+
workNodeId: z.number().optional().describe('Related WorkNode ID'),
|
|
52
|
+
ownerId: z.string().optional().describe('Owner user ID'),
|
|
53
|
+
sortOrder: z.number().optional().describe('Display order')
|
|
54
|
+
}
|
|
55
|
+
}, async (args) => {
|
|
56
|
+
const { meetingId, title, summary, notes, itemSubType, status = 'pending', durationMinutes, workNodeId, ownerId, sortOrder } = args;
|
|
57
|
+
try {
|
|
58
|
+
const requestBody = { title, status };
|
|
59
|
+
if (summary)
|
|
60
|
+
requestBody.summary = summary;
|
|
61
|
+
if (notes)
|
|
62
|
+
requestBody.notes = notes;
|
|
63
|
+
if (itemSubType)
|
|
64
|
+
requestBody.itemSubType = itemSubType;
|
|
65
|
+
if (durationMinutes)
|
|
66
|
+
requestBody.durationMinutes = durationMinutes;
|
|
67
|
+
if (workNodeId)
|
|
68
|
+
requestBody.workNodeId = workNodeId;
|
|
69
|
+
if (ownerId)
|
|
70
|
+
requestBody.ownerId = ownerId;
|
|
71
|
+
if (sortOrder !== undefined)
|
|
72
|
+
requestBody.sortOrder = sortOrder;
|
|
73
|
+
const response = await apiClient.post(`/mcp/meetings/${meetingId}/agenda`, requestBody);
|
|
74
|
+
if (!response.success) {
|
|
75
|
+
return {
|
|
76
|
+
content: [
|
|
77
|
+
{
|
|
78
|
+
type: 'text',
|
|
79
|
+
text: `Failed to add agenda item: ${response.message || 'Unknown error'}`,
|
|
80
|
+
},
|
|
81
|
+
],
|
|
82
|
+
isError: true,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
const item = response.data;
|
|
86
|
+
let resultText = '## Agenda Item Added\\n\\n';
|
|
87
|
+
resultText += `β
**Agenda item successfully added to Meeting #${meetingId}**\\n\\n`;
|
|
88
|
+
resultText += `**Item ID:** ${item.id}\\n`;
|
|
89
|
+
resultText += `**Title:** ${item.title}\\n`;
|
|
90
|
+
if (item.summary) {
|
|
91
|
+
resultText += `**Summary:** ${item.summary}\\n`;
|
|
92
|
+
}
|
|
93
|
+
if (item.itemSubType) {
|
|
94
|
+
resultText += `**Type:** ${getSubTypeEmoji(item.itemSubType)} ${item.itemSubType}\\n`;
|
|
95
|
+
}
|
|
96
|
+
resultText += `**Status:** ${getStatusEmoji(item.status)} ${item.status}\\n`;
|
|
97
|
+
if (durationMinutes) {
|
|
98
|
+
resultText += `**Duration:** ${durationMinutes} minutes\\n`;
|
|
99
|
+
}
|
|
100
|
+
resultText += `**Created:** ${new Date(item.createdAt).toLocaleString()}\\n`;
|
|
101
|
+
return {
|
|
102
|
+
content: [
|
|
103
|
+
{
|
|
104
|
+
type: 'text',
|
|
105
|
+
text: resultText,
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
return {
|
|
112
|
+
content: [
|
|
113
|
+
{
|
|
114
|
+
type: 'text',
|
|
115
|
+
text: `Error adding agenda item: ${error.message || 'Unknown error'}`,
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
isError: true,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
/**
|
|
123
|
+
* brxce_list_agenda_items - List all agenda items for a meeting
|
|
124
|
+
*/
|
|
125
|
+
server.registerTool('brxce_list_agenda_items', {
|
|
126
|
+
description: `List all agenda items for a meeting.
|
|
127
|
+
|
|
128
|
+
**When to use this tool:**
|
|
129
|
+
- User asks to see meeting agenda
|
|
130
|
+
- Need to review planned topics
|
|
131
|
+
- Checking what will be discussed
|
|
132
|
+
|
|
133
|
+
**Output:**
|
|
134
|
+
- Returns all agenda items ordered by sortOrder
|
|
135
|
+
- Shows status, duration, and assigned owners
|
|
136
|
+
- Indicates which items are pending/discussed
|
|
137
|
+
|
|
138
|
+
**Example:**
|
|
139
|
+
User: "What's on the agenda for meeting #24?"
|
|
140
|
+
LLM calls: brxce_list_agenda_items(meetingId: 24)`,
|
|
141
|
+
inputSchema: {
|
|
142
|
+
meetingId: z.number().describe('Meeting ID')
|
|
143
|
+
}
|
|
144
|
+
}, async (args) => {
|
|
145
|
+
const { meetingId } = args;
|
|
146
|
+
try {
|
|
147
|
+
const response = await apiClient.get(`/mcp/meetings/${meetingId}/agenda`);
|
|
148
|
+
if (!response.success) {
|
|
149
|
+
return {
|
|
150
|
+
content: [
|
|
151
|
+
{
|
|
152
|
+
type: 'text',
|
|
153
|
+
text: `Failed to list agenda items: ${response.message || 'Unknown error'}`,
|
|
154
|
+
},
|
|
155
|
+
],
|
|
156
|
+
isError: true,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const { agendaItems } = response.data;
|
|
160
|
+
if (!agendaItems || agendaItems.length === 0) {
|
|
161
|
+
return {
|
|
162
|
+
content: [
|
|
163
|
+
{
|
|
164
|
+
type: 'text',
|
|
165
|
+
text: `## Meeting #${meetingId} Agenda\\n\\nNo agenda items found for this meeting.`,
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
let resultText = `## Meeting #${meetingId} Agenda\\n\\n`;
|
|
171
|
+
resultText += `**Total Items:** ${agendaItems.length}\\n`;
|
|
172
|
+
// Calculate total duration
|
|
173
|
+
const totalDuration = agendaItems.reduce((sum, item) => sum + (item.durationMinutes || 0), 0);
|
|
174
|
+
if (totalDuration > 0) {
|
|
175
|
+
resultText += `**Total Duration:** ${totalDuration} minutes\\n`;
|
|
176
|
+
}
|
|
177
|
+
resultText += '\\n';
|
|
178
|
+
// Group by status
|
|
179
|
+
const byStatus = groupBy(agendaItems, 'status');
|
|
180
|
+
const statusOrder = ['pending', 'discussed', 'deferred', 'resolved', 'skipped'];
|
|
181
|
+
statusOrder.forEach(statusKey => {
|
|
182
|
+
const statusItems = byStatus[statusKey];
|
|
183
|
+
if (statusItems && statusItems.length > 0) {
|
|
184
|
+
resultText += `### ${getStatusEmoji(statusKey)} ${statusKey.toUpperCase()} (${statusItems.length})\\n\\n`;
|
|
185
|
+
statusItems.forEach((item, index) => {
|
|
186
|
+
resultText += `**${index + 1}. ${item.title || 'Untitled'}**`;
|
|
187
|
+
if (item.itemSubType) {
|
|
188
|
+
resultText += ` ${getSubTypeEmoji(item.itemSubType)}`;
|
|
189
|
+
}
|
|
190
|
+
if (item.durationMinutes) {
|
|
191
|
+
resultText += ` β±οΈ ${item.durationMinutes}min`;
|
|
192
|
+
}
|
|
193
|
+
resultText += '\\n';
|
|
194
|
+
if (item.summary) {
|
|
195
|
+
resultText += ` ${item.summary}\\n`;
|
|
196
|
+
}
|
|
197
|
+
if (item.owner) {
|
|
198
|
+
resultText += ` π€ ${item.owner.name || item.owner.email}\\n`;
|
|
199
|
+
}
|
|
200
|
+
if (item.notes) {
|
|
201
|
+
resultText += ` π Notes: ${item.notes}\\n`;
|
|
202
|
+
}
|
|
203
|
+
resultText += '\\n';
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
return {
|
|
208
|
+
content: [
|
|
209
|
+
{
|
|
210
|
+
type: 'text',
|
|
211
|
+
text: resultText,
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
catch (error) {
|
|
217
|
+
return {
|
|
218
|
+
content: [
|
|
219
|
+
{
|
|
220
|
+
type: 'text',
|
|
221
|
+
text: `Error listing agenda items: ${error.message || 'Unknown error'}`,
|
|
222
|
+
},
|
|
223
|
+
],
|
|
224
|
+
isError: true,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
/**
|
|
229
|
+
* brxce_update_agenda_item - Update a meeting agenda item
|
|
230
|
+
*/
|
|
231
|
+
server.registerTool('brxce_update_agenda_item', {
|
|
232
|
+
description: `Update a meeting agenda item.
|
|
233
|
+
|
|
234
|
+
**When to use this tool:**
|
|
235
|
+
- Update agenda item status (e.g., pending β discussed)
|
|
236
|
+
- Change title, summary, or notes
|
|
237
|
+
- Adjust duration or reorder items
|
|
238
|
+
- Mark items as deferred or resolved
|
|
239
|
+
|
|
240
|
+
**Access Control:**
|
|
241
|
+
- Workspace members can update agenda items
|
|
242
|
+
- Cannot update if item doesn't belong to meeting
|
|
243
|
+
|
|
244
|
+
**Input:**
|
|
245
|
+
- meetingId (required): ID of the meeting
|
|
246
|
+
- itemId (required): ID of the agenda item to update
|
|
247
|
+
- title (optional): New title
|
|
248
|
+
- summary (optional): New summary
|
|
249
|
+
- notes (optional): New notes
|
|
250
|
+
- status (optional): New status
|
|
251
|
+
- itemSubType (optional): New sub-type
|
|
252
|
+
- durationMinutes (optional): New duration
|
|
253
|
+
- sortOrder (optional): New display order
|
|
254
|
+
|
|
255
|
+
**Example:**
|
|
256
|
+
User: "Mark agenda item #45 in meeting #24 as discussed"
|
|
257
|
+
LLM calls: brxce_update_agenda_item(meetingId: 24, itemId: 45, status: "discussed")`,
|
|
258
|
+
inputSchema: {
|
|
259
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
260
|
+
itemId: z.number().describe('Agenda item ID to update'),
|
|
261
|
+
title: z.string().min(1).optional().describe('Updated title'),
|
|
262
|
+
summary: z.string().nullable().optional().describe('Updated summary'),
|
|
263
|
+
notes: z.string().nullable().optional().describe('Updated notes'),
|
|
264
|
+
status: MeetingItemStatusSchema.optional().describe('Updated status'),
|
|
265
|
+
itemSubType: MeetingItemSubTypeSchema.optional().describe('Updated sub-type'),
|
|
266
|
+
durationMinutes: z.number().nullable().optional().describe('Updated duration'),
|
|
267
|
+
sortOrder: z.number().optional().describe('Updated sort order')
|
|
268
|
+
}
|
|
269
|
+
}, async (args) => {
|
|
270
|
+
const { meetingId, itemId, title, summary, notes, status, itemSubType, durationMinutes, sortOrder } = args;
|
|
271
|
+
if (!title && summary === undefined && notes === undefined && !status &&
|
|
272
|
+
!itemSubType && durationMinutes === undefined && sortOrder === undefined) {
|
|
273
|
+
return {
|
|
274
|
+
content: [
|
|
275
|
+
{
|
|
276
|
+
type: 'text',
|
|
277
|
+
text: 'Error: You must provide at least one field to update',
|
|
278
|
+
},
|
|
279
|
+
],
|
|
280
|
+
isError: true,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
try {
|
|
284
|
+
const updateData = {};
|
|
285
|
+
if (title)
|
|
286
|
+
updateData.title = title;
|
|
287
|
+
if (summary !== undefined)
|
|
288
|
+
updateData.summary = summary;
|
|
289
|
+
if (notes !== undefined)
|
|
290
|
+
updateData.notes = notes;
|
|
291
|
+
if (status)
|
|
292
|
+
updateData.status = status;
|
|
293
|
+
if (itemSubType)
|
|
294
|
+
updateData.itemSubType = itemSubType;
|
|
295
|
+
if (durationMinutes !== undefined)
|
|
296
|
+
updateData.durationMinutes = durationMinutes;
|
|
297
|
+
if (sortOrder !== undefined)
|
|
298
|
+
updateData.sortOrder = sortOrder;
|
|
299
|
+
const response = await apiClient.put(`/mcp/meetings/${meetingId}/agenda/${itemId}`, updateData);
|
|
300
|
+
if (!response.success) {
|
|
301
|
+
return {
|
|
302
|
+
content: [
|
|
303
|
+
{
|
|
304
|
+
type: 'text',
|
|
305
|
+
text: `Failed to update agenda item: ${response.message || 'Unknown error'}`,
|
|
306
|
+
},
|
|
307
|
+
],
|
|
308
|
+
isError: true,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
const item = response.data;
|
|
312
|
+
let resultText = '## Agenda Item Updated\\n\\n';
|
|
313
|
+
resultText += `β
**Agenda item #${item.id} successfully updated**\\n\\n`;
|
|
314
|
+
if (title) {
|
|
315
|
+
resultText += `**New Title:** ${item.title}\\n`;
|
|
316
|
+
}
|
|
317
|
+
if (summary !== undefined) {
|
|
318
|
+
resultText += `**New Summary:** ${item.summary || '(empty)'}\\n`;
|
|
319
|
+
}
|
|
320
|
+
if (status) {
|
|
321
|
+
resultText += `**New Status:** ${getStatusEmoji(item.status)} ${item.status}\\n`;
|
|
322
|
+
}
|
|
323
|
+
resultText += `\\n**Last Updated:** ${new Date(item.updatedAt).toLocaleString()}\\n`;
|
|
324
|
+
return {
|
|
325
|
+
content: [
|
|
326
|
+
{
|
|
327
|
+
type: 'text',
|
|
328
|
+
text: resultText,
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
return {
|
|
335
|
+
content: [
|
|
336
|
+
{
|
|
337
|
+
type: 'text',
|
|
338
|
+
text: `Error updating agenda item: ${error.message || 'Unknown error'}`,
|
|
339
|
+
},
|
|
340
|
+
],
|
|
341
|
+
isError: true,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
/**
|
|
346
|
+
* brxce_delete_agenda_item - Delete a meeting agenda item
|
|
347
|
+
*/
|
|
348
|
+
server.registerTool('brxce_delete_agenda_item', {
|
|
349
|
+
description: `Delete a meeting agenda item.
|
|
350
|
+
|
|
351
|
+
**When to use this tool:**
|
|
352
|
+
- Topic is no longer relevant
|
|
353
|
+
- Duplicate agenda item
|
|
354
|
+
- Meeting plan changed
|
|
355
|
+
|
|
356
|
+
**Access Control:**
|
|
357
|
+
- Workspace members can delete agenda items
|
|
358
|
+
- Deletion is permanent and cannot be undone
|
|
359
|
+
|
|
360
|
+
**Input:**
|
|
361
|
+
- meetingId (required): ID of the meeting
|
|
362
|
+
- itemId (required): ID of the agenda item to delete
|
|
363
|
+
|
|
364
|
+
**Example:**
|
|
365
|
+
User: "Remove agenda item #45 from meeting #24"
|
|
366
|
+
LLM calls: brxce_delete_agenda_item(meetingId: 24, itemId: 45)`,
|
|
367
|
+
inputSchema: {
|
|
368
|
+
meetingId: z.number().describe('Meeting ID'),
|
|
369
|
+
itemId: z.number().describe('Agenda item ID to delete')
|
|
370
|
+
}
|
|
371
|
+
}, async (args) => {
|
|
372
|
+
const { meetingId, itemId } = args;
|
|
373
|
+
try {
|
|
374
|
+
const response = await apiClient.delete(`/mcp/meetings/${meetingId}/agenda/${itemId}`);
|
|
375
|
+
if (!response.success) {
|
|
376
|
+
return {
|
|
377
|
+
content: [
|
|
378
|
+
{
|
|
379
|
+
type: 'text',
|
|
380
|
+
text: `Failed to delete agenda item: ${response.message || 'Unknown error'}`,
|
|
381
|
+
},
|
|
382
|
+
],
|
|
383
|
+
isError: true,
|
|
384
|
+
};
|
|
385
|
+
}
|
|
386
|
+
let resultText = '## Agenda Item Deleted\\n\\n';
|
|
387
|
+
resultText += `β
**Agenda item #${itemId} successfully deleted from Meeting #${meetingId}**\\n\\n`;
|
|
388
|
+
resultText += 'β οΈ This action cannot be undone.\\n';
|
|
389
|
+
return {
|
|
390
|
+
content: [
|
|
391
|
+
{
|
|
392
|
+
type: 'text',
|
|
393
|
+
text: resultText,
|
|
394
|
+
},
|
|
395
|
+
],
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
return {
|
|
400
|
+
content: [
|
|
401
|
+
{
|
|
402
|
+
type: 'text',
|
|
403
|
+
text: `Error deleting agenda item: ${error.message || 'Unknown error'}`,
|
|
404
|
+
},
|
|
405
|
+
],
|
|
406
|
+
isError: true,
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Helper function to get status emoji
|
|
413
|
+
*/
|
|
414
|
+
function getStatusEmoji(status) {
|
|
415
|
+
if (!status)
|
|
416
|
+
return 'π';
|
|
417
|
+
switch (status) {
|
|
418
|
+
case 'pending': return 'β³';
|
|
419
|
+
case 'discussed': return 'π¬';
|
|
420
|
+
case 'deferred': return 'βΈοΈ';
|
|
421
|
+
case 'resolved': return 'β
';
|
|
422
|
+
case 'skipped': return 'βοΈ';
|
|
423
|
+
default: return 'π';
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
/**
|
|
427
|
+
* Helper function to get sub-type emoji
|
|
428
|
+
*/
|
|
429
|
+
function getSubTypeEmoji(subType) {
|
|
430
|
+
switch (subType) {
|
|
431
|
+
case 'worknode': return 'π';
|
|
432
|
+
case 'text': return 'π';
|
|
433
|
+
case 'blocker': return 'π§';
|
|
434
|
+
case 'action': return 'β‘';
|
|
435
|
+
case 'follow_up': return 'π';
|
|
436
|
+
default: return 'π';
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Helper function to group array by key
|
|
441
|
+
*/
|
|
442
|
+
function groupBy(array, key) {
|
|
443
|
+
return array.reduce((result, item) => {
|
|
444
|
+
const groupKey = item[key] || 'none';
|
|
445
|
+
if (!result[groupKey]) {
|
|
446
|
+
result[groupKey] = [];
|
|
447
|
+
}
|
|
448
|
+
result[groupKey].push(item);
|
|
449
|
+
return result;
|
|
450
|
+
}, {});
|
|
451
|
+
}
|
|
452
|
+
//# sourceMappingURL=meeting-agenda-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-agenda-tool.js","sourceRoot":"","sources":["../../src/tools/meeting-agenda-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import type { ApiClient } from '../services/api-client.js';
|
|
3
|
+
/**
|
|
4
|
+
* Register Meeting Creation Tool for conversational workflow
|
|
5
|
+
* Supports preview and actual creation modes
|
|
6
|
+
*/
|
|
7
|
+
export declare function registerMeetingCreateTool(server: McpServer, apiClient: ApiClient): void;
|
|
8
|
+
//# sourceMappingURL=meeting-create-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meeting-create-tool.d.ts","sourceRoot":"","sources":["../../src/tools/meeting-create-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA2E3D;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAqVhF"}
|