@chykalophia/clickup-mcp-server 3.2.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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +467 -0
  3. package/bin/clickup-mcp-server-ai.js +9 -0
  4. package/bin/clickup-mcp-server-basic.js +9 -0
  5. package/bin/clickup-mcp-server-efficiency.js +9 -0
  6. package/bin/clickup-mcp-server-enhanced.js +9 -0
  7. package/build/app.d.ts +1 -0
  8. package/build/app.js +2 -0
  9. package/build/app.js.map +1 -0
  10. package/build/clickup-client/attachments-enhanced.d.ts +128 -0
  11. package/build/clickup-client/attachments-enhanced.js +212 -0
  12. package/build/clickup-client/attachments-enhanced.js.map +1 -0
  13. package/build/clickup-client/auth.d.ts +254 -0
  14. package/build/clickup-client/auth.js +105 -0
  15. package/build/clickup-client/auth.js.map +1 -0
  16. package/build/clickup-client/chat-enhanced.d.ts +141 -0
  17. package/build/clickup-client/chat-enhanced.js +196 -0
  18. package/build/clickup-client/chat-enhanced.js.map +1 -0
  19. package/build/clickup-client/checklists.d.ts +87 -0
  20. package/build/clickup-client/checklists.js +63 -0
  21. package/build/clickup-client/checklists.js.map +1 -0
  22. package/build/clickup-client/comments-enhanced.d.ts +176 -0
  23. package/build/clickup-client/comments-enhanced.js +230 -0
  24. package/build/clickup-client/comments-enhanced.js.map +1 -0
  25. package/build/clickup-client/comments.d.ts +173 -0
  26. package/build/clickup-client/comments.js +312 -0
  27. package/build/clickup-client/comments.js.map +1 -0
  28. package/build/clickup-client/custom-fields-enhanced.d.ts +286 -0
  29. package/build/clickup-client/custom-fields-enhanced.js +416 -0
  30. package/build/clickup-client/custom-fields-enhanced.js.map +1 -0
  31. package/build/clickup-client/dependencies-enhanced.d.ts +144 -0
  32. package/build/clickup-client/dependencies-enhanced.js +142 -0
  33. package/build/clickup-client/dependencies-enhanced.js.map +1 -0
  34. package/build/clickup-client/docs-enhanced.d.ts +176 -0
  35. package/build/clickup-client/docs-enhanced.js +374 -0
  36. package/build/clickup-client/docs-enhanced.js.map +1 -0
  37. package/build/clickup-client/docs.d.ts +84 -0
  38. package/build/clickup-client/docs.js +156 -0
  39. package/build/clickup-client/docs.js.map +1 -0
  40. package/build/clickup-client/folders.d.ts +62 -0
  41. package/build/clickup-client/folders.js +53 -0
  42. package/build/clickup-client/folders.js.map +1 -0
  43. package/build/clickup-client/goals-enhanced.d.ts +163 -0
  44. package/build/clickup-client/goals-enhanced.js +309 -0
  45. package/build/clickup-client/goals-enhanced.js.map +1 -0
  46. package/build/clickup-client/index.d.ts +16 -0
  47. package/build/clickup-client/index.js +61 -0
  48. package/build/clickup-client/index.js.map +1 -0
  49. package/build/clickup-client/lists.d.ts +105 -0
  50. package/build/clickup-client/lists.js +108 -0
  51. package/build/clickup-client/lists.js.map +1 -0
  52. package/build/clickup-client/secure-client.d.ts +88 -0
  53. package/build/clickup-client/secure-client.js +275 -0
  54. package/build/clickup-client/secure-client.js.map +1 -0
  55. package/build/clickup-client/spaces.d.ts +58 -0
  56. package/build/clickup-client/spaces.js +28 -0
  57. package/build/clickup-client/spaces.js.map +1 -0
  58. package/build/clickup-client/tasks.d.ts +161 -0
  59. package/build/clickup-client/tasks.js +99 -0
  60. package/build/clickup-client/tasks.js.map +1 -0
  61. package/build/clickup-client/time-tracking-enhanced.d.ts +153 -0
  62. package/build/clickup-client/time-tracking-enhanced.js +292 -0
  63. package/build/clickup-client/time-tracking-enhanced.js.map +1 -0
  64. package/build/clickup-client/views-enhanced.d.ts +149 -0
  65. package/build/clickup-client/views-enhanced.js +210 -0
  66. package/build/clickup-client/views-enhanced.js.map +1 -0
  67. package/build/clickup-client/webhooks-enhanced.d.ts +119 -0
  68. package/build/clickup-client/webhooks-enhanced.js +169 -0
  69. package/build/clickup-client/webhooks-enhanced.js.map +1 -0
  70. package/build/controllers/lists.controller.d.ts +1 -0
  71. package/build/controllers/lists.controller.js +2 -0
  72. package/build/controllers/lists.controller.js.map +1 -0
  73. package/build/index-efficiency-simple.d.ts +2 -0
  74. package/build/index-efficiency-simple.js +379 -0
  75. package/build/index-efficiency-simple.js.map +1 -0
  76. package/build/index-enhanced-efficiency.d.ts +2 -0
  77. package/build/index-enhanced-efficiency.js +275 -0
  78. package/build/index-enhanced-efficiency.js.map +1 -0
  79. package/build/index-enhanced.d.ts +2 -0
  80. package/build/index-enhanced.js +74 -0
  81. package/build/index-enhanced.js.map +1 -0
  82. package/build/index.d.ts +2 -0
  83. package/build/index.js +77 -0
  84. package/build/index.js.map +1 -0
  85. package/build/resources/checklist-resources.d.ts +2 -0
  86. package/build/resources/checklist-resources.js +102 -0
  87. package/build/resources/checklist-resources.js.map +1 -0
  88. package/build/resources/comment-resources.d.ts +2 -0
  89. package/build/resources/comment-resources.js +152 -0
  90. package/build/resources/comment-resources.js.map +1 -0
  91. package/build/resources/doc-resources.d.ts +2 -0
  92. package/build/resources/doc-resources.js +77 -0
  93. package/build/resources/doc-resources.js.map +1 -0
  94. package/build/resources/folder-resources.d.ts +2 -0
  95. package/build/resources/folder-resources.js +160 -0
  96. package/build/resources/folder-resources.js.map +1 -0
  97. package/build/resources/list-resources.d.ts +2 -0
  98. package/build/resources/list-resources.js +104 -0
  99. package/build/resources/list-resources.js.map +1 -0
  100. package/build/resources/space-resources.d.ts +2 -0
  101. package/build/resources/space-resources.js +104 -0
  102. package/build/resources/space-resources.js.map +1 -0
  103. package/build/resources/task-resources.d.ts +2 -0
  104. package/build/resources/task-resources.js +57 -0
  105. package/build/resources/task-resources.js.map +1 -0
  106. package/build/routes/lists.routes.d.ts +1 -0
  107. package/build/routes/lists.routes.js +2 -0
  108. package/build/routes/lists.routes.js.map +1 -0
  109. package/build/schemas/attachments-schemas.d.ts +201 -0
  110. package/build/schemas/attachments-schemas.js +250 -0
  111. package/build/schemas/attachments-schemas.js.map +1 -0
  112. package/build/schemas/chat-schemas.d.ts +478 -0
  113. package/build/schemas/chat-schemas.js +173 -0
  114. package/build/schemas/chat-schemas.js.map +1 -0
  115. package/build/schemas/custom-field-schemas.d.ts +1617 -0
  116. package/build/schemas/custom-field-schemas.js +384 -0
  117. package/build/schemas/custom-field-schemas.js.map +1 -0
  118. package/build/schemas/dependencies-schemas.d.ts +274 -0
  119. package/build/schemas/dependencies-schemas.js +176 -0
  120. package/build/schemas/dependencies-schemas.js.map +1 -0
  121. package/build/schemas/document-schemas.d.ts +433 -0
  122. package/build/schemas/document-schemas.js +168 -0
  123. package/build/schemas/document-schemas.js.map +1 -0
  124. package/build/schemas/goals-schemas.d.ts +961 -0
  125. package/build/schemas/goals-schemas.js +293 -0
  126. package/build/schemas/goals-schemas.js.map +1 -0
  127. package/build/schemas/time-tracking-schemas.d.ts +741 -0
  128. package/build/schemas/time-tracking-schemas.js +234 -0
  129. package/build/schemas/time-tracking-schemas.js.map +1 -0
  130. package/build/schemas/views-schemas.d.ts +1168 -0
  131. package/build/schemas/views-schemas.js +221 -0
  132. package/build/schemas/views-schemas.js.map +1 -0
  133. package/build/schemas/webhook-schemas.d.ts +1127 -0
  134. package/build/schemas/webhook-schemas.js +137 -0
  135. package/build/schemas/webhook-schemas.js.map +1 -0
  136. package/build/services/lists.service.d.ts +1 -0
  137. package/build/services/lists.service.js +2 -0
  138. package/build/services/lists.service.js.map +1 -0
  139. package/build/tools/attachments-tools-setup.d.ts +2 -0
  140. package/build/tools/attachments-tools-setup.js +387 -0
  141. package/build/tools/attachments-tools-setup.js.map +1 -0
  142. package/build/tools/chat-tools-enhanced.d.ts +5 -0
  143. package/build/tools/chat-tools-enhanced.js +396 -0
  144. package/build/tools/chat-tools-enhanced.js.map +1 -0
  145. package/build/tools/chat-tools.d.ts +2 -0
  146. package/build/tools/chat-tools.js +614 -0
  147. package/build/tools/chat-tools.js.map +1 -0
  148. package/build/tools/checklist-tools.d.ts +2 -0
  149. package/build/tools/checklist-tools.js +139 -0
  150. package/build/tools/checklist-tools.js.map +1 -0
  151. package/build/tools/comment-tools.d.ts +2 -0
  152. package/build/tools/comment-tools.js +295 -0
  153. package/build/tools/comment-tools.js.map +1 -0
  154. package/build/tools/custom-field-tools.d.ts +2 -0
  155. package/build/tools/custom-field-tools.js +578 -0
  156. package/build/tools/custom-field-tools.js.map +1 -0
  157. package/build/tools/dependencies-tools-setup.d.ts +2 -0
  158. package/build/tools/dependencies-tools-setup.js +319 -0
  159. package/build/tools/dependencies-tools-setup.js.map +1 -0
  160. package/build/tools/doc-tools-enhanced.d.ts +2 -0
  161. package/build/tools/doc-tools-enhanced.js +417 -0
  162. package/build/tools/doc-tools-enhanced.js.map +1 -0
  163. package/build/tools/doc-tools.d.ts +2 -0
  164. package/build/tools/doc-tools.js +109 -0
  165. package/build/tools/doc-tools.js.map +1 -0
  166. package/build/tools/goals-tools.d.ts +2 -0
  167. package/build/tools/goals-tools.js +422 -0
  168. package/build/tools/goals-tools.js.map +1 -0
  169. package/build/tools/helper-tools.d.ts +2 -0
  170. package/build/tools/helper-tools.js +363 -0
  171. package/build/tools/helper-tools.js.map +1 -0
  172. package/build/tools/space-tools.d.ts +2 -0
  173. package/build/tools/space-tools.js +45 -0
  174. package/build/tools/space-tools.js.map +1 -0
  175. package/build/tools/task-tools.d.ts +2 -0
  176. package/build/tools/task-tools.js +415 -0
  177. package/build/tools/task-tools.js.map +1 -0
  178. package/build/tools/time-tracking-tools.d.ts +2 -0
  179. package/build/tools/time-tracking-tools.js +329 -0
  180. package/build/tools/time-tracking-tools.js.map +1 -0
  181. package/build/tools/views-tools-setup.d.ts +2 -0
  182. package/build/tools/views-tools-setup.js +358 -0
  183. package/build/tools/views-tools-setup.js.map +1 -0
  184. package/build/tools/webhook-tools-setup.d.ts +2 -0
  185. package/build/tools/webhook-tools-setup.js +304 -0
  186. package/build/tools/webhook-tools-setup.js.map +1 -0
  187. package/build/tools/webhook-tools.d.ts +4 -0
  188. package/build/tools/webhook-tools.js +345 -0
  189. package/build/tools/webhook-tools.js.map +1 -0
  190. package/build/utils/clickup-comment-formatter.d.ts +124 -0
  191. package/build/utils/clickup-comment-formatter.js +504 -0
  192. package/build/utils/clickup-comment-formatter.js.map +1 -0
  193. package/build/utils/context-aware-suggestions.d.ts +45 -0
  194. package/build/utils/context-aware-suggestions.js +360 -0
  195. package/build/utils/context-aware-suggestions.js.map +1 -0
  196. package/build/utils/error-handling.d.ts +140 -0
  197. package/build/utils/error-handling.js +392 -0
  198. package/build/utils/error-handling.js.map +1 -0
  199. package/build/utils/markdown-styling.d.ts +40 -0
  200. package/build/utils/markdown-styling.js +344 -0
  201. package/build/utils/markdown-styling.js.map +1 -0
  202. package/build/utils/markdown.d.ts +54 -0
  203. package/build/utils/markdown.js +243 -0
  204. package/build/utils/markdown.js.map +1 -0
  205. package/build/utils/security.d.ts +79 -0
  206. package/build/utils/security.js +303 -0
  207. package/build/utils/security.js.map +1 -0
  208. package/build/utils/tool-efficiency.d.ts +59 -0
  209. package/build/utils/tool-efficiency.js +247 -0
  210. package/build/utils/tool-efficiency.js.map +1 -0
  211. package/package.json +130 -0
@@ -0,0 +1,363 @@
1
+ import { z } from 'zod';
2
+ import { createClickUpClient } from '../clickup-client/index.js';
3
+ import { suggestToolsForTask, /* getChatChannelDiscoveryStrategy, */ getEfficiencyRating, TOOL_METADATA } from '../utils/tool-efficiency.js';
4
+ const client = createClickUpClient();
5
+ export function setupHelperTools(server) {
6
+ // ========================================
7
+ // TOOL SUGGESTION AND EFFICIENCY HELPERS
8
+ // ========================================
9
+ server.tool('suggest_tools_for_task', 'Get intelligent tool suggestions for a given task or request. Provides the most efficient tool path and alternatives.', {
10
+ request: z.string().min(1).describe('Description of what you want to accomplish'),
11
+ context: z.object({
12
+ known_ids: z.record(z.string()).optional().describe('Any known IDs (workspace_id, space_id, etc.)'),
13
+ preferred_approach: z.enum(['direct', 'search', 'explore']).optional().describe('Preferred approach style')
14
+ }).optional().describe('Additional context about the request')
15
+ }, async (args) => {
16
+ try {
17
+ const suggestion = suggestToolsForTask(args.request);
18
+ const efficiency = getEfficiencyRating(suggestion.primary_tools);
19
+ return {
20
+ content: [{
21
+ type: 'text',
22
+ text: `## Tool Suggestions for: "${args.request}"
23
+
24
+ ### 🎯 Primary Tools (Recommended)
25
+ ${suggestion.primary_tools.map(tool => `- **${tool}**: ${TOOL_METADATA[tool]?.efficiency_hint || 'Efficient choice'}`).join('\n')}
26
+
27
+ ### 🔄 Alternative Tools
28
+ ${suggestion.alternative_tools.map(tool => `- ${tool}`).join('\n')}
29
+
30
+ ### ⚡ Efficiency Notes
31
+ ${suggestion.efficiency_notes.map(note => `- ${note}`).join('\n')}
32
+
33
+ ### 🛠️ Workflow Hint
34
+ ${suggestion.workflow_hint}
35
+
36
+ ### 📊 Efficiency Rating: ${efficiency.rating.toUpperCase()}
37
+ ${efficiency.suggestions.map(s => `- ${s}`).join('\n')}
38
+
39
+ ${args.context?.known_ids ? `\n### 🔑 Available IDs\n${Object.entries(args.context.known_ids).map(([key, value]) => `- ${key}: ${value}`).join('\n')}` : ''}`
40
+ }]
41
+ };
42
+ }
43
+ catch (error) {
44
+ return {
45
+ content: [{
46
+ type: 'text',
47
+ text: `Error getting tool suggestions: ${error instanceof Error ? error.message : 'Unknown error'}`
48
+ }]
49
+ };
50
+ }
51
+ });
52
+ // ========================================
53
+ // CHAT CHANNEL DISCOVERY
54
+ // ========================================
55
+ server.tool('find_chat_channels', 'Efficiently find chat channels across workspaces. More efficient than hierarchical navigation.', {
56
+ workspace_id: z.string().optional().describe('Specific workspace ID to search in'),
57
+ channel_name: z.string().optional().describe('Partial or full channel name to search for'),
58
+ include_private: z.boolean().default(true).describe('Whether to include private channels')
59
+ }, async (args) => {
60
+ try {
61
+ const workspaces = args.workspace_id ?
62
+ [{ id: args.workspace_id }] :
63
+ await client.get('/team');
64
+ const allChatChannels = [];
65
+ for (const workspace of workspaces.teams || workspaces) {
66
+ try {
67
+ const spaces = await client.get(`/space?team_id=${workspace.id}`);
68
+ for (const space of spaces.spaces || []) {
69
+ try {
70
+ const views = await client.get(`/space/${space.id}/view`);
71
+ const chatViews = (views.views || []).filter((view) => view.type === 'conversation' || view.type === 'chat');
72
+ for (const chatView of chatViews) {
73
+ if (!args.channel_name ||
74
+ chatView.name.toLowerCase().includes(args.channel_name.toLowerCase())) {
75
+ allChatChannels.push({
76
+ id: chatView.id,
77
+ name: chatView.name,
78
+ type: chatView.type,
79
+ workspace_id: workspace.id,
80
+ workspace_name: workspace.name,
81
+ space_id: space.id,
82
+ space_name: space.name,
83
+ visibility: chatView.visibility || 'unknown'
84
+ });
85
+ }
86
+ }
87
+ }
88
+ catch (spaceError) {
89
+ // Continue with other spaces if one fails
90
+ console.error(`Error processing space ${space.id}:`, spaceError);
91
+ }
92
+ }
93
+ }
94
+ catch (workspaceError) {
95
+ console.error(`Error processing workspace ${workspace.id}:`, workspaceError);
96
+ }
97
+ }
98
+ return {
99
+ content: [{
100
+ type: 'text',
101
+ text: `## 💬 Found ${allChatChannels.length} Chat Channels
102
+
103
+ ${allChatChannels.length === 0 ? '❌ No chat channels found matching your criteria.' :
104
+ allChatChannels.map(channel => `### 📢 ${channel.name}
105
+ - **ID**: \`${channel.id}\`
106
+ - **Type**: ${channel.type}
107
+ - **Workspace**: ${channel.workspace_name} (\`${channel.workspace_id}\`)
108
+ - **Space**: ${channel.space_name} (\`${channel.space_id}\`)
109
+ - **Visibility**: ${channel.visibility}
110
+
111
+ *Use this ID with \`create_chat_view_comment\` to post messages.*`).join('\n\n')}
112
+
113
+ ### 🚀 Next Steps
114
+ To post a message to any of these channels, use:
115
+ \`\`\`
116
+ create_chat_view_comment(view_id="CHANNEL_ID", comment_text="Your message")
117
+ \`\`\``
118
+ }]
119
+ };
120
+ }
121
+ catch (error) {
122
+ return {
123
+ content: [{
124
+ type: 'text',
125
+ text: `❌ Error finding chat channels: ${error instanceof Error ? error.message : 'Unknown error'}`
126
+ }]
127
+ };
128
+ }
129
+ });
130
+ // ========================================
131
+ // VIEW SEARCH BY NAME
132
+ // ========================================
133
+ server.tool('search_views_by_name', 'Search for views by name across spaces. More efficient than browsing all views.', {
134
+ workspace_id: z.string().optional().describe('Workspace to search in'),
135
+ view_name: z.string().min(1).describe('View name to search for (partial matches supported)'),
136
+ view_type: z.enum(['list', 'board', 'calendar', 'gantt', 'timeline', 'table', 'form', 'chat', 'workload', 'activity', 'map', 'embed']).optional().describe('Filter by view type')
137
+ }, async (args) => {
138
+ try {
139
+ const workspaces = args.workspace_id ?
140
+ [{ id: args.workspace_id }] :
141
+ await client.get('/team');
142
+ const matchingViews = [];
143
+ for (const workspace of workspaces.teams || workspaces) {
144
+ const spaces = await client.get(`/space?team_id=${workspace.id}`);
145
+ for (const space of spaces.spaces || []) {
146
+ try {
147
+ const views = await client.get(`/space/${space.id}/view`);
148
+ for (const view of views.views || []) {
149
+ const nameMatch = view.name.toLowerCase().includes(args.view_name.toLowerCase());
150
+ const typeMatch = !args.view_type || view.type === args.view_type;
151
+ if (nameMatch && typeMatch) {
152
+ matchingViews.push({
153
+ ...view,
154
+ workspace_id: workspace.id,
155
+ workspace_name: workspace.name,
156
+ space_id: space.id,
157
+ space_name: space.name
158
+ });
159
+ }
160
+ }
161
+ }
162
+ catch (error) {
163
+ console.error(`Error searching views in space ${space.id}:`, error);
164
+ }
165
+ }
166
+ }
167
+ return {
168
+ content: [{
169
+ type: 'text',
170
+ text: `## 🔍 Found ${matchingViews.length} Views matching "${args.view_name}"
171
+
172
+ ${matchingViews.map(view => `### 📋 ${view.name}
173
+ - **ID**: \`${view.id}\`
174
+ - **Type**: ${view.type}
175
+ - **Workspace**: ${view.workspace_name}
176
+ - **Space**: ${view.space_name}
177
+ - **Visibility**: ${view.visibility || 'unknown'}`).join('\n\n')}`
178
+ }]
179
+ };
180
+ }
181
+ catch (error) {
182
+ return {
183
+ content: [{
184
+ type: 'text',
185
+ text: `Error searching views: ${error instanceof Error ? error.message : 'Unknown error'}`
186
+ }]
187
+ };
188
+ }
189
+ });
190
+ // ========================================
191
+ // WORKSPACE OVERVIEW (SINGLE CALL)
192
+ // ========================================
193
+ server.tool('get_workspace_overview', 'Get a comprehensive overview of a workspace structure in a single efficient call. Better than multiple navigation calls.', {
194
+ workspace_id: z.string().min(1).describe('The workspace ID to get overview for'),
195
+ include_views: z.boolean().default(false).describe('Whether to include view details (slower but more complete)'),
196
+ include_chat_channels: z.boolean().default(true).describe('Whether to include chat channel discovery')
197
+ }, async (args) => {
198
+ try {
199
+ const [workspace, spaces] = await Promise.all([
200
+ client.get('/team').then((teams) => teams.teams?.find((w) => w.id === args.workspace_id)),
201
+ client.get(`/space?team_id=${args.workspace_id}`)
202
+ ]);
203
+ if (!workspace) {
204
+ throw new Error(`Workspace ${args.workspace_id} not found`);
205
+ }
206
+ const overview = {
207
+ workspace: {
208
+ id: workspace.id,
209
+ name: workspace.name,
210
+ members: workspace.members?.length || 0
211
+ },
212
+ spaces: [],
213
+ chat_channels: [],
214
+ summary: {
215
+ total_spaces: spaces.spaces?.length || 0,
216
+ total_chat_channels: 0,
217
+ total_views: 0
218
+ }
219
+ };
220
+ // Process each space
221
+ for (const space of spaces.spaces || []) {
222
+ const spaceData = {
223
+ id: space.id,
224
+ name: space.name,
225
+ color: space.color,
226
+ private: space.private,
227
+ folders: [],
228
+ lists: [],
229
+ views: []
230
+ };
231
+ try {
232
+ // Get folders and lists
233
+ const [folders, folderlessLists] = await Promise.all([
234
+ client.get(`/space/${space.id}/folder`).then((r) => r.folders || []).catch(() => []),
235
+ client.get(`/space/${space.id}/list`).then((r) => r.lists || []).catch(() => [])
236
+ ]);
237
+ spaceData.folders = folders;
238
+ spaceData.lists = folderlessLists;
239
+ // Get views if requested
240
+ if (args.include_views || args.include_chat_channels) {
241
+ const viewsResponse = await client.get(`/space/${space.id}/view`).catch(() => ({ views: [] }));
242
+ const views = viewsResponse.views || [];
243
+ if (args.include_views) {
244
+ spaceData.views = views;
245
+ }
246
+ // Extract chat channels
247
+ if (args.include_chat_channels) {
248
+ const chatViews = views.filter((view) => view.type === 'conversation' || view.type === 'chat');
249
+ for (const chatView of chatViews) {
250
+ overview.chat_channels.push({
251
+ id: chatView.id,
252
+ name: chatView.name,
253
+ space_name: space.name,
254
+ space_id: space.id
255
+ });
256
+ }
257
+ }
258
+ overview.summary.total_views += views.length;
259
+ }
260
+ }
261
+ catch (error) {
262
+ console.error(`Error processing space ${space.id}:`, error);
263
+ }
264
+ overview.spaces.push(spaceData);
265
+ }
266
+ overview.summary.total_chat_channels = overview.chat_channels.length;
267
+ return {
268
+ content: [{
269
+ type: 'text',
270
+ text: `## 🏢 Workspace Overview: ${overview.workspace.name}
271
+
272
+ ### 📊 Summary
273
+ - **Spaces**: ${overview.summary.total_spaces}
274
+ - **Chat Channels**: ${overview.summary.total_chat_channels}
275
+ - **Total Views**: ${overview.summary.total_views}
276
+ - **Members**: ${overview.workspace.members}
277
+
278
+ ### 💬 Chat Channels
279
+ ${overview.chat_channels.length === 0 ? '❌ No chat channels found' :
280
+ overview.chat_channels.map((chat) => `- **${chat.name}** (\`${chat.id}\`) in ${chat.space_name}`).join('\n')}
281
+
282
+ ### 🏗️ Spaces Structure
283
+ ${overview.spaces.map((space) => `#### 📁 ${space.name} ${space.private ? '🔒' : '🌐'}
284
+ - **ID**: \`${space.id}\`
285
+ - **Folders**: ${space.folders.length}
286
+ - **Lists**: ${space.lists.length}
287
+ ${args.include_views ? `- **Views**: ${space.views.length}` : ''}`).join('\n\n')}
288
+
289
+ ### 🚀 Quick Actions
290
+ ${overview.chat_channels.length > 0 ?
291
+ '**Post to chat**: Use `create_chat_view_comment` with any of the chat channel IDs above.' :
292
+ '**No chat channels available for posting.**'}`
293
+ }]
294
+ };
295
+ }
296
+ catch (error) {
297
+ return {
298
+ content: [{
299
+ type: 'text',
300
+ text: `Error getting workspace overview: ${error instanceof Error ? error.message : 'Unknown error'}`
301
+ }]
302
+ };
303
+ }
304
+ });
305
+ // ========================================
306
+ // EFFICIENCY ANALYZER
307
+ // ========================================
308
+ server.tool('analyze_tool_efficiency', 'Analyze the efficiency of a planned tool sequence and get optimization suggestions.', {
309
+ planned_tools: z.array(z.string()).min(1).describe('Array of tool names you plan to use'),
310
+ goal: z.string().describe('What you are trying to accomplish')
311
+ }, async (args) => {
312
+ try {
313
+ const efficiency = getEfficiencyRating(args.planned_tools);
314
+ const suggestion = suggestToolsForTask(args.goal);
315
+ const toolAnalysis = args.planned_tools.map(tool => {
316
+ const metadata = TOOL_METADATA[tool];
317
+ return {
318
+ tool,
319
+ efficiency: metadata?.efficiency || 'unknown',
320
+ category: metadata?.category || 'unknown',
321
+ performance_impact: metadata?.performance_impact || 'unknown',
322
+ hint: metadata?.efficiency_hint || 'No specific guidance available'
323
+ };
324
+ });
325
+ return {
326
+ content: [{
327
+ type: 'text',
328
+ text: `## 🔍 Tool Efficiency Analysis
329
+
330
+ ### 🎯 Goal: ${args.goal}
331
+
332
+ ### 📋 Planned Tools Analysis
333
+ ${toolAnalysis.map(analysis => `#### ${analysis.tool}
334
+ - **Efficiency**: ${analysis.efficiency}
335
+ - **Category**: ${analysis.category}
336
+ - **Performance Impact**: ${analysis.performance_impact}
337
+ - **Hint**: ${analysis.hint}`).join('\n\n')}
338
+
339
+ ### 📊 Overall Efficiency Rating: ${efficiency.rating.toUpperCase()}
340
+
341
+ ### 💡 Optimization Suggestions
342
+ ${efficiency.suggestions.map(s => `- ${s}`).join('\n')}
343
+
344
+ ### 🎯 Recommended Alternative Approach
345
+ **Primary Tools**: ${suggestion.primary_tools.join(', ')}
346
+ **Workflow**: ${suggestion.workflow_hint}
347
+
348
+ ### ⚡ Efficiency Notes
349
+ ${suggestion.efficiency_notes.map(note => `- ${note}`).join('\n')}`
350
+ }]
351
+ };
352
+ }
353
+ catch (error) {
354
+ return {
355
+ content: [{
356
+ type: 'text',
357
+ text: `Error analyzing tool efficiency: ${error instanceof Error ? error.message : 'Unknown error'}`
358
+ }]
359
+ };
360
+ }
361
+ });
362
+ }
363
+ //# sourceMappingURL=helper-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helper-tools.js","sourceRoot":"","sources":["../../src/tools/helper-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,sCAAsC,CAAC,mBAAmB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE7I,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;AAErC,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAEhD,2CAA2C;IAC3C,yCAAyC;IACzC,2CAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,uHAAuH,EACvH;QACE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACjF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;YACnG,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;SAC5G,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KAC/D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAEjE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6BAA6B,IAAI,CAAC,OAAO;;;EAGzD,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG/H,UAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGhE,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAG/D,UAAU,CAAC,aAAa;;4BAEE,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;EACzD,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;EAEpD,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,2BAA2B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;qBAClJ,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACpG,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,yBAAyB;IACzB,2CAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,gGAAgG,EAChG;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QAClF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAC1F,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC3F,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,eAAe,GAAG,EAAE,CAAC;YAE3B,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;gBACvD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;oBAElE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;wBACxC,IAAI,CAAC;4BACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;4BAC1D,MAAM,SAAS,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CACzD,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CACrD,CAAC;4BAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gCACjC,IAAI,CAAC,IAAI,CAAC,YAAY;oCAClB,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oCAC1E,eAAe,CAAC,IAAI,CAAC;wCACnB,EAAE,EAAE,QAAQ,CAAC,EAAE;wCACf,IAAI,EAAE,QAAQ,CAAC,IAAI;wCACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;wCACnB,YAAY,EAAE,SAAS,CAAC,EAAE;wCAC1B,cAAc,EAAG,SAAiB,CAAC,IAAI;wCACvC,QAAQ,EAAE,KAAK,CAAC,EAAE;wCAClB,UAAU,EAAE,KAAK,CAAC,IAAI;wCACtB,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,SAAS;qCAC7C,CAAC,CAAC;gCACL,CAAC;4BACH,CAAC;wBACH,CAAC;wBAAC,OAAO,UAAU,EAAE,CAAC;4BACpB,0CAA0C;4BAC1C,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;wBACnE,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,cAAc,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,8BAA8B,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBAC/E,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,eAAe,eAAe,CAAC,MAAM;;EAErD,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC;4BACjF,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAC5B,UAAU,OAAO,CAAC,IAAI;cACd,OAAO,CAAC,EAAE;cACV,OAAO,CAAC,IAAI;mBACP,OAAO,CAAC,cAAc,OAAO,OAAO,CAAC,YAAY;eACrD,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,QAAQ;oBACpC,OAAO,CAAC,UAAU;;kEAE4B,CAC7D,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;;OAMX;qBACI,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACnG,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,sBAAsB;IACtB,2CAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,iFAAiF,EACjF;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACtE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC5F,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAClL,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;gBAC7B,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE5B,MAAM,aAAa,GAAG,EAAE,CAAC;YAEzB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,EAAE,CAAC;gBACvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;gBAElE,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC;wBACH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;wBAE1D,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;4BACrC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;4BACjF,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC;4BAElE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gCAC3B,aAAa,CAAC,IAAI,CAAC;oCACjB,GAAG,IAAI;oCACP,YAAY,EAAE,SAAS,CAAC,EAAE;oCAC1B,cAAc,EAAG,SAAiB,CAAC,IAAI;oCACvC,QAAQ,EAAE,KAAK,CAAC,EAAE;oCAClB,UAAU,EAAE,KAAK,CAAC,IAAI;iCACvB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CAAC,kCAAkC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,eAAe,aAAa,CAAC,MAAM,oBAAoB,IAAI,CAAC,SAAS;;EAErF,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACvB,UAAU,IAAI,CAAC,IAAI;cACT,IAAI,CAAC,EAAE;cACP,IAAI,CAAC,IAAI;mBACJ,IAAI,CAAC,cAAc;eACvB,IAAI,CAAC,UAAU;oBACV,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,CAC/C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;qBACP,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBAC3F,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,mCAAmC;IACnC,2CAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,0HAA0H,EAC1H;QACE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAChF,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;QAChH,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KACvG,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAU,EAAE,EAAE,CACtC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,CAC1D;gBACD,MAAM,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,YAAY,EAAE,CAAC;aAClD,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,YAAY,YAAY,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,QAAQ,GAAQ;gBACpB,SAAS,EAAE;oBACT,EAAE,EAAE,SAAS,CAAC,EAAE;oBAChB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;iBACxC;gBACD,MAAM,EAAE,EAAE;gBACV,aAAa,EAAE,EAAE;gBACjB,OAAO,EAAE;oBACP,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;oBACxC,mBAAmB,EAAE,CAAC;oBACtB,WAAW,EAAE,CAAC;iBACf;aACF,CAAC;YAEF,qBAAqB;YACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;gBACxC,MAAM,SAAS,GAAQ;oBACrB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,OAAO,EAAE,EAAE;oBACX,KAAK,EAAE,EAAE;oBACT,KAAK,EAAE,EAAE;iBACV,CAAC;gBAEF,IAAI,CAAC;oBACH,wBAAwB;oBACxB,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;wBACnD,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;wBACzF,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;qBACtF,CAAC,CAAC;oBAEH,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;oBAC5B,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC;oBAElC,yBAAyB;oBACzB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;wBACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;wBAC/F,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;wBAExC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;4BACvB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC;wBAC1B,CAAC;wBAED,wBAAwB;wBACxB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;4BAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAC3C,IAAI,CAAC,IAAI,KAAK,cAAc,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CACrD,CAAC;4BAEF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gCACjC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC;oCAC1B,EAAE,EAAE,QAAQ,CAAC,EAAE;oCACf,IAAI,EAAE,QAAQ,CAAC,IAAI;oCACnB,UAAU,EAAE,KAAK,CAAC,IAAI;oCACtB,QAAQ,EAAE,KAAK,CAAC,EAAE;iCACnB,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;wBAED,QAAQ,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBAED,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAClC,CAAC;YAED,QAAQ,CAAC,OAAO,CAAC,mBAAmB,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;YAErE,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,6BAA6B,QAAQ,CAAC,SAAS,CAAC,IAAI;;;gBAGtD,QAAQ,CAAC,OAAO,CAAC,YAAY;uBACtB,QAAQ,CAAC,OAAO,CAAC,mBAAmB;qBACtC,QAAQ,CAAC,OAAO,CAAC,WAAW;iBAChC,QAAQ,CAAC,SAAS,CAAC,OAAO;;;EAGzC,QAAQ,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC;4BAChE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CACvC,OAAO,IAAI,CAAC,IAAI,SAAS,IAAI,CAAC,EAAE,UAAU,IAAI,CAAC,UAAU,EAAE,CAC5D,CAAC,IAAI,CAAC,IAAI,CAAC;;;EAGd,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CACjC,WAAW,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;cAC1C,KAAK,CAAC,EAAE;iBACL,KAAK,CAAC,OAAO,CAAC,MAAM;eACtB,KAAK,CAAC,KAAK,CAAC,MAAM;EAC/B,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/D,CAAC,IAAI,CAAC,MAAM,CAAC;;;EAGd,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACjC,0FAA0F,CAAC,CAAC;4BAC5F,6CAA6C,EAAE;qBACxC,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,qCAAqC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACtG,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2CAA2C;IAC3C,sBAAsB;IACtB,2CAA2C;IAE3C,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,qFAAqF,EACrF;QACE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACzF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC/D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3D,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAElD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACjD,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO;oBACL,IAAI;oBACJ,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,SAAS;oBAC7C,QAAQ,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS;oBACzC,kBAAkB,EAAE,QAAQ,EAAE,kBAAkB,IAAI,SAAS;oBAC7D,IAAI,EAAE,QAAQ,EAAE,eAAe,IAAI,gCAAgC;iBACpE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;eAEH,IAAI,CAAC,IAAI;;;EAGtB,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAC1B,QAAQ,QAAQ,CAAC,IAAI;oBACL,QAAQ,CAAC,UAAU;kBACrB,QAAQ,CAAC,QAAQ;4BACP,QAAQ,CAAC,kBAAkB;cACzC,QAAQ,CAAC,IAAI,EAAE,CAC1B,CAAC,IAAI,CAAC,MAAM,CAAC;;oCAEoB,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE;;;EAGjE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;qBAGjC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxC,UAAU,CAAC,aAAa;;;EAGtC,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACxD,CAAC;aACH,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,oCAAoC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE;qBACrG,CAAC;aACH,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function setupSpaceTools(server: McpServer): void;
@@ -0,0 +1,45 @@
1
+ import { z } from 'zod';
2
+ import { createClickUpClient } from '../clickup-client/index.js';
3
+ import { createSpacesClient } from '../clickup-client/spaces.js';
4
+ // Create clients
5
+ const clickUpClient = createClickUpClient();
6
+ const spacesClient = createSpacesClient(clickUpClient);
7
+ export function setupSpaceTools(server) {
8
+ // Register get_spaces tool
9
+ server.tool('get_spaces', 'Get spaces from a ClickUp workspace. Returns space details including name, settings, and features.', { workspace_id: z.string().describe('The ID of the workspace to get spaces from') }, async ({ workspace_id }) => {
10
+ try {
11
+ console.error(`[SpaceTools] Getting spaces for workspace ${workspace_id}...`);
12
+ const spaces = await spacesClient.getSpacesFromWorkspace(workspace_id);
13
+ console.error(`[SpaceTools] Got ${spaces.length} spaces`);
14
+ return {
15
+ content: [{ type: 'text', text: JSON.stringify(spaces, null, 2) }]
16
+ };
17
+ }
18
+ catch (error) {
19
+ console.error('Error getting spaces:', error);
20
+ return {
21
+ content: [{ type: 'text', text: `Error getting spaces: ${error.message}` }],
22
+ isError: true
23
+ };
24
+ }
25
+ });
26
+ // Register get_space tool
27
+ server.tool('get_space', 'Get details about a specific ClickUp space. Returns space name, settings, features, and metadata.', { space_id: z.string().describe('The ID of the space to get') }, async ({ space_id }) => {
28
+ try {
29
+ console.error(`[SpaceTools] Getting space ${space_id}...`);
30
+ const space = await spacesClient.getSpace(space_id);
31
+ console.error(`[SpaceTools] Got space: ${space.name}`);
32
+ return {
33
+ content: [{ type: 'text', text: JSON.stringify(space, null, 2) }]
34
+ };
35
+ }
36
+ catch (error) {
37
+ console.error('Error getting space:', error);
38
+ return {
39
+ content: [{ type: 'text', text: `Error getting space: ${error.message}` }],
40
+ isError: true
41
+ };
42
+ }
43
+ });
44
+ }
45
+ //# sourceMappingURL=space-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"space-tools.js","sourceRoot":"","sources":["../../src/tools/space-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,iBAAiB;AACjB,MAAM,aAAa,GAAG,mBAAmB,EAAE,CAAC;AAC5C,MAAM,YAAY,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;AAEvD,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,2BAA2B;IAC3B,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,oGAAoG,EACpG,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC,EAAE,EACnF,KAAK,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,6CAA6C,YAAY,KAAK,CAAC,CAAC;YAC9E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC3E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,0BAA0B;IAC1B,MAAM,CAAC,IAAI,CACT,WAAW,EACX,mGAAmG,EACnG,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,EAAE,EAC/D,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,OAAO,CAAC,KAAK,CAAC,8BAA8B,QAAQ,KAAK,CAAC,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpD,OAAO,CAAC,KAAK,CAAC,2BAA2B,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YAEvD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAClE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;YAC7C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1E,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function setupTaskTools(server: McpServer): void;