@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
package/README.md ADDED
@@ -0,0 +1,220 @@
1
+ # BRXCE MCP Server
2
+
3
+ Model Context Protocol (MCP) server for BRXCE workspace management.
4
+
5
+ ## Installation
6
+
7
+ ### From npm (Recommended for Claude Desktop users)
8
+
9
+ ```bash
10
+ # Global installation
11
+ npm install -g @brxce/mcp-server
12
+
13
+ # Or use with npx (no installation needed)
14
+ npx @brxce/mcp-server
15
+ ```
16
+
17
+ ### Claude Desktop Configuration
18
+
19
+ Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS):
20
+
21
+ ```json
22
+ {
23
+ "mcpServers": {
24
+ "brxce-mcp": {
25
+ "command": "npx",
26
+ "args": ["-y", "@brxce/mcp-server"],
27
+ "env": {
28
+ "AUTH_TOKEN": "your_auth_token_here"
29
+ }
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ **Getting your AUTH_TOKEN:**
36
+ 1. Login to BRXCE: https://api.brxce.com/api/v1/auth/login
37
+ 2. Copy the `accessToken` from the response
38
+ 3. Add it to the config above
39
+
40
+ **Optional environment variables:**
41
+ - `BACKEND_URL`: Custom backend URL (default: Production)
42
+ - `MCP_DEBUG`: Enable debug logging (default: false)
43
+
44
+ ## Development
45
+
46
+ ### 1. Build the server
47
+ ```bash
48
+ pnpm build
49
+ ```
50
+
51
+ ### 2. Run with MCP Inspector (Recommended)
52
+
53
+ The easiest way to run the inspector with the config file:
54
+
55
+ ```bash
56
+ # From project root
57
+ make mcp-inspect
58
+ ```
59
+
60
+ This will:
61
+ - Build the MCP server
62
+ - Use `inspector-config.json` with AUTH_TOKEN included
63
+ - Open the browser with Inspector UI
64
+ - Test resources: `user://me`, `workspace://{id}`
65
+
66
+ **First-time setup:**
67
+ If you don't have `inspector-config.json`:
68
+ 1. Copy from example: `cp inspector-config.example.json inspector-config.json`
69
+ 2. Add your AUTH_TOKEN (see "Getting an Auth Token" below)
70
+
71
+ **Alternative methods:**
72
+
73
+ #### Option A: Direct command with config file
74
+ ```bash
75
+ npx @modelcontextprotocol/inspector --config inspector-config.json --server brxce-mcp
76
+ ```
77
+
78
+ #### Option B: Using command line flags (not recommended)
79
+ ```bash
80
+ npx @modelcontextprotocol/inspector \
81
+ -e BACKEND_URL=http://localhost:3003/api/v1 \
82
+ -e MCP_DEBUG=true \
83
+ -e AUTH_TOKEN=your_token_here \
84
+ node dist/index.js
85
+ ```
86
+
87
+ ## Configuration
88
+
89
+ ### Environment Variables
90
+
91
+ - `BACKEND_URL`: BRXCE backend API endpoint (default: `http://localhost:3003/api/v1`)
92
+ - `MCP_DEBUG`: Enable debug logging (default: `false`)
93
+ - `AUTH_TOKEN`: JWT authentication token (required)
94
+ - `REFRESH_TOKEN`: JWT refresh token (optional)
95
+
96
+ ### Available Servers in Config
97
+
98
+ The `inspector-config.json` includes two pre-configured servers:
99
+
100
+ - **brxce-mcp**: For Dev-Local environment (port 3003)
101
+ - **brxce-mcp-local**: For Local environment (port 3000)
102
+
103
+ ## Resources
104
+
105
+ The MCP server exposes the following resources:
106
+
107
+ ### `user://me`
108
+ Returns current user information along with their accessible workspaces.
109
+
110
+ **Example response:**
111
+ ```json
112
+ {
113
+ "user": {
114
+ "id": "user-id",
115
+ "email": "user@example.com",
116
+ "username": "username",
117
+ "name": "User Name",
118
+ "createdAt": "2024-01-01T00:00:00.000Z",
119
+ "updatedAt": "2024-01-01T00:00:00.000Z"
120
+ },
121
+ "workspaces": [
122
+ {
123
+ "id": 1,
124
+ "name": "My Workspace",
125
+ "slug": "my-workspace",
126
+ "description": "Workspace description",
127
+ "workspaceType": "TEAM",
128
+ "planType": "FREE",
129
+ "spaceId": 1,
130
+ "userRole": "OWNER"
131
+ }
132
+ ]
133
+ }
134
+ ```
135
+
136
+ ### `workspace://{id}`
137
+ Returns detailed information for a specific workspace.
138
+
139
+ **Example:**
140
+ - `workspace://1` - Get details for workspace ID 1
141
+ - `workspace://42` - Get details for workspace ID 42
142
+
143
+ ## Development
144
+
145
+ ### Project Structure
146
+ ```
147
+ src/
148
+ ├── config/
149
+ │ └── environment.ts # Environment configuration
150
+ ├── resources/
151
+ │ ├── user-resource.ts # User + Workspaces resource
152
+ │ └── workspace-resource.ts # Individual workspace resource
153
+ ├── services/
154
+ │ └── api-client.ts # HTTP client for backend API
155
+ └── index.ts # MCP server entry point
156
+ ```
157
+
158
+ ### Scripts
159
+ ```bash
160
+ # Development mode (watch)
161
+ pnpm dev
162
+
163
+ # Build
164
+ pnpm build
165
+
166
+ # Type checking
167
+ pnpm check-types
168
+
169
+ # Linting
170
+ pnpm lint
171
+ ```
172
+
173
+ ## Getting an Auth Token
174
+
175
+ To get a valid `AUTH_TOKEN`:
176
+
177
+ 1. **Using backend API:**
178
+ ```bash
179
+ # Login
180
+ curl -X POST http://localhost:3003/api/v1/auth/login \
181
+ -H "Content-Type: application/json" \
182
+ -d '{
183
+ "email": "your@email.com",
184
+ "password": "your-password"
185
+ }'
186
+ ```
187
+
188
+ 2. **Copy the `accessToken` from the response**
189
+
190
+ 3. **Update `inspector-config.json`:**
191
+ ```json
192
+ {
193
+ "mcpServers": {
194
+ "brxce-mcp": {
195
+ ...
196
+ "env": {
197
+ ...
198
+ "AUTH_TOKEN": "paste-your-token-here"
199
+ }
200
+ }
201
+ }
202
+ }
203
+ ```
204
+
205
+ ## Troubleshooting
206
+
207
+ ### "Failed to fetch user" error
208
+ - Check if backend is running: `curl http://localhost:3003/health`
209
+ - Verify `BACKEND_URL` matches your backend port
210
+ - Ensure `AUTH_TOKEN` is valid and not expired
211
+
212
+ ### "Network error when calling" error
213
+ - Verify backend is accessible
214
+ - Check firewall/network settings
215
+ - Ensure the backend port in `BACKEND_URL` is correct
216
+
217
+ ### Inspector not connecting
218
+ - Make sure you've built the server first (`pnpm build`)
219
+ - Check that `dist/index.js` exists
220
+ - Verify the path in `inspector-config.json` is correct
@@ -0,0 +1,8 @@
1
+ export interface EnvironmentConfig {
2
+ backendUrl: string;
3
+ authToken?: string;
4
+ refreshToken?: string;
5
+ debug: boolean;
6
+ }
7
+ export declare function loadEnvironment(): EnvironmentConfig;
8
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,eAAe,IAAI,iBAAiB,CAgBnD"}
@@ -0,0 +1,16 @@
1
+ export function loadEnvironment() {
2
+ // 환경 변수 우선순위:
3
+ // 1. BACKEND_URL (MCP 전용)
4
+ // 2. NEXT_PUBLIC_API_URL (루트 .env에서 공유)
5
+ // 3. 기본값 (Production URL - npm 패키지 사용자용)
6
+ const backendUrl = process.env.BACKEND_URL ||
7
+ process.env.NEXT_PUBLIC_API_URL ||
8
+ 'https://brxce-backend-production-1013529945435.asia-northeast3.run.app/api/v1';
9
+ return {
10
+ backendUrl,
11
+ authToken: process.env.AUTH_TOKEN,
12
+ refreshToken: process.env.REFRESH_TOKEN,
13
+ debug: process.env.DEBUG === 'true' || process.env.MCP_DEBUG === 'true',
14
+ };
15
+ }
16
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../src/config/environment.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,eAAe;IAC7B,cAAc;IACd,0BAA0B;IAC1B,wCAAwC;IACxC,yCAAyC;IACzC,MAAM,UAAU,GACd,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,+EAA+E,CAAC;IAElF,OAAO;QACL,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QACjC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;QACvC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,MAAM;KACxE,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,167 @@
1
+ #!/usr/bin/env node
2
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
3
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
4
+ import jwt from 'jsonwebtoken';
5
+ import { loadEnvironment } from './config/environment.js';
6
+ import { ApiClient } from './services/api-client.js';
7
+ import { registerUserResource } from './resources/user-resource.js';
8
+ import { registerWorkspaceResource } from './resources/workspace-resource.js';
9
+ import { registerWorkspaceMembersResource } from './resources/workspace-members-resource.js';
10
+ import { registerWorkspaceTreeTool } from './tools/workspace-tree-tool.js';
11
+ import { registerWorknodeSubtreeTool } from './tools/worknode-subtree-tool.js';
12
+ import { registerWorknodeCreateTool } from './tools/worknode-create-tool.js';
13
+ import { registerWorknodeUpdateTool } from './tools/worknode-update-tool.js';
14
+ import { registerWorknodeMyWorkTool } from './tools/worknode-my-work-tool.js';
15
+ import { registerWorknodePrompts } from './prompts/worknode-prompts.js';
16
+ import { registerWorkspaceContextPrompt } from './prompts/workspace-context-prompt.js';
17
+ import { registerTagCategoryTools } from './tools/tag-category-tool.js';
18
+ import { registerTagTools } from './tools/tag-tool.js';
19
+ import { registerWorknodeTagTools } from './tools/worknode-tag-tool.js';
20
+ import { registerTagSearchTools } from './tools/tag-search-tool.js';
21
+ import { registerWorkspaceInboxTool } from './tools/workspace-inbox-tool.js';
22
+ import { registerWorknodeArchiveTools } from './tools/worknode-archive-tool.js';
23
+ import { registerWorknodeSearchTool } from './tools/worknode-search-tool.js';
24
+ import { registerMeetingCreateTool } from './tools/meeting-create-tool.js';
25
+ import { registerMeetingListTools } from './tools/meeting-list-tool.js';
26
+ import { registerMeetingUpdateTool } from './tools/meeting-update-tool.js';
27
+ import { registerMeetingNotesTools } from './tools/meeting-notes-tool.js';
28
+ import { registerMeetingDecisionsTools } from './tools/meeting-decisions-tool.js';
29
+ import { registerMeetingAgendaTools } from './tools/meeting-agenda-tool.js';
30
+ async function bootstrap() {
31
+ // Always log environment variables for debugging
32
+ console.error('[MCP] Environment variables:');
33
+ console.error(' BACKEND_URL:', process.env.BACKEND_URL);
34
+ console.error(' AUTH_TOKEN:', process.env.AUTH_TOKEN ? 'SET' : 'NOT SET');
35
+ console.error(' MCP_DEBUG:', process.env.MCP_DEBUG);
36
+ const config = loadEnvironment();
37
+ console.error('[MCP] Starting BRXCE MCP Server');
38
+ console.error('[MCP] Configuration:', {
39
+ backendUrl: config.backendUrl,
40
+ hasAuthToken: Boolean(config.authToken),
41
+ hasRefreshToken: Boolean(config.refreshToken),
42
+ debug: config.debug,
43
+ });
44
+ // Extract user information from auth token
45
+ let currentUserId;
46
+ if (config.authToken) {
47
+ try {
48
+ const decoded = jwt.decode(config.authToken);
49
+ const maybeUserId = decoded?.['userId'];
50
+ if (typeof maybeUserId === 'string') {
51
+ currentUserId = maybeUserId;
52
+ if (config.debug) {
53
+ console.error(`[MCP] Authenticated user: ${currentUserId}`);
54
+ }
55
+ }
56
+ }
57
+ catch (error) {
58
+ if (config.debug) {
59
+ console.error('[MCP] Failed to decode auth token:', error);
60
+ }
61
+ }
62
+ }
63
+ // Initialize API client
64
+ const apiClient = new ApiClient({
65
+ baseUrl: config.backendUrl,
66
+ authToken: config.authToken,
67
+ });
68
+ const server = new McpServer({
69
+ name: 'brxce-mcp-server',
70
+ version: '1.0.0',
71
+ capabilities: {
72
+ resources: {
73
+ subscribe: true,
74
+ listChanged: true,
75
+ },
76
+ tools: {},
77
+ prompts: {}, // Prompts capability enabled
78
+ },
79
+ });
80
+ // Register resources
81
+ registerUserResource(server, apiClient);
82
+ registerWorkspaceResource(server, apiClient);
83
+ registerWorkspaceMembersResource(server, apiClient);
84
+ // Register tools
85
+ registerWorkspaceTreeTool(server, apiClient);
86
+ registerWorknodeSubtreeTool(server, apiClient);
87
+ registerWorknodeCreateTool(server, apiClient);
88
+ registerWorknodeUpdateTool(server, apiClient);
89
+ registerWorknodeMyWorkTool(server, apiClient);
90
+ registerWorkspaceInboxTool(server, apiClient);
91
+ registerWorknodeArchiveTools(server, apiClient);
92
+ registerWorknodeSearchTool(server, apiClient);
93
+ registerTagCategoryTools(server, apiClient);
94
+ registerTagTools(server, apiClient);
95
+ registerWorknodeTagTools(server, apiClient);
96
+ registerTagSearchTools(server, apiClient);
97
+ registerMeetingCreateTool(server, apiClient);
98
+ registerMeetingListTools(server, apiClient);
99
+ registerMeetingUpdateTool(server, apiClient);
100
+ registerMeetingNotesTools(server, apiClient);
101
+ registerMeetingDecisionsTools(server, apiClient);
102
+ registerMeetingAgendaTools(server, apiClient);
103
+ // Register prompts
104
+ registerWorknodePrompts(server, apiClient);
105
+ registerWorkspaceContextPrompt(server, apiClient);
106
+ if (config.debug) {
107
+ console.error('[MCP] Resources registered:');
108
+ console.error(' - user://me (user + workspaces + members)');
109
+ console.error(' - workspace://{id}');
110
+ console.error(' - workspace://{workspaceId}/members');
111
+ console.error('[MCP] Tools registered:');
112
+ console.error(' - brxce_workspace_overview');
113
+ console.error(' - brxce_worknode_subtree');
114
+ console.error(' - brxce_create_worknodes');
115
+ console.error(' - brxce_update_worknodes');
116
+ console.error(' - brxce_my_work');
117
+ console.error(' - brxce_workspace_inbox');
118
+ console.error(' - brxce_archive_worknodes');
119
+ console.error(' - brxce_unarchive_worknodes');
120
+ console.error(' - brxce_search_worknodes');
121
+ console.error(' - brxce_list_tag_categories');
122
+ console.error(' - brxce_create_tag_category');
123
+ console.error(' - brxce_update_tag_category');
124
+ console.error(' - brxce_delete_tag_category');
125
+ console.error(' - brxce_list_tags');
126
+ console.error(' - brxce_create_tag');
127
+ console.error(' - brxce_update_tag');
128
+ console.error(' - brxce_delete_tag');
129
+ console.error(' - brxce_add_tags_to_worknode');
130
+ console.error(' - brxce_get_worknode_tags');
131
+ console.error(' - brxce_remove_tag_from_worknode');
132
+ console.error(' - brxce_batch_assign_tags');
133
+ console.error(' - brxce_search_tags');
134
+ console.error(' - brxce_get_tag_stats');
135
+ console.error(' - brxce_find_worknodes_by_tags');
136
+ console.error(' - brxce_create_meeting');
137
+ console.error(' - brxce_list_meetings');
138
+ console.error(' - brxce_get_meeting');
139
+ console.error(' - brxce_add_meeting_note');
140
+ console.error(' - brxce_list_meeting_notes');
141
+ console.error(' - brxce_update_meeting_note');
142
+ console.error(' - brxce_delete_meeting_note');
143
+ console.error(' - brxce_add_meeting_decision');
144
+ console.error(' - brxce_list_meeting_decisions');
145
+ console.error(' - brxce_update_meeting_decision');
146
+ console.error(' - brxce_delete_meeting_decision');
147
+ console.error(' - brxce_add_agenda_item');
148
+ console.error(' - brxce_list_agenda_items');
149
+ console.error(' - brxce_update_agenda_item');
150
+ console.error(' - brxce_delete_agenda_item');
151
+ console.error('[MCP] Prompts registered:');
152
+ console.error(' - /my-active-work');
153
+ console.error(' - /my-completed-work');
154
+ console.error(' - /my-urgent-tasks');
155
+ console.error(' - /my-inbox');
156
+ }
157
+ const transport = new StdioServerTransport();
158
+ await server.connect(transport);
159
+ if (config.debug) {
160
+ console.error('[MCP] Server connected to STDIO transport');
161
+ }
162
+ }
163
+ bootstrap().catch((error) => {
164
+ console.error('[MCP] Fatal error:', error);
165
+ process.exit(1);
166
+ });
167
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { ApiClient } from '../services/api-client.js';
3
+ /**
4
+ * Register WorkNode-related prompts for common user workflows
5
+ */
6
+ export declare function registerWorknodePrompts(server: McpServer, apiClient: ApiClient): void;
7
+ //# sourceMappingURL=worknode-prompts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worknode-prompts.d.ts","sourceRoot":"","sources":["../../src/prompts/worknode-prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AActD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,QAwa9E"}