@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 David Whatley and ClickUp MCP Server Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,467 @@
1
+ # ClickUp MCP Server - Enhanced
2
+
3
+ <p align="center">
4
+ <img src="assets/images/clickupserverlogo.png" width="256" alt="ClickUp MCP Server - Enhanced Logo" />
5
+ </p>
6
+
7
+ <p align="center">
8
+ <a href="https://www.npmjs.com/package/clickup-mcp-server"><img src="https://img.shields.io/npm/v/clickup-mcp-server.svg" alt="npm version"></a>
9
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
10
+ <a href="https://nodejs.org/"><img src="https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen" alt="Node.js Version"></a>
11
+ <a href="https://github.com/modelcontextprotocol/typescript-sdk"><img src="https://img.shields.io/badge/MCP%20SDK-1.6.1-orange" alt="MCP SDK"></a>
12
+ </p>
13
+
14
+ A comprehensive Model Context Protocol (MCP) server providing AI assistants with complete ClickUp API access. Features **170+ tools**, **AI-powered efficiency**, **production-grade security**, and **full GitHub Flavored Markdown support**.
15
+
16
+ ## 📋 Attribution
17
+
18
+ This Enhanced version is based on the original ClickUp MCP Server codebase by [David Whatley](https://davidwhatley.com) at [nsxdavid/clickup-mcp-server](https://github.com/nsxdavid/clickup-mcp-server).
19
+
20
+ ## 🚀 Key Features
21
+
22
+ ### 🧠 **AI-Powered Efficiency** ⭐
23
+ - **Smart Tool Suggestions**: Context-aware recommendations for optimal workflows
24
+ - **Workflow Optimization**: 50-70% efficiency gains in common workflows
25
+ - **Intelligent Discovery**: Purpose-built tools that replace inefficient navigation
26
+ - **Direct Access**: Skip hierarchical navigation with smart discovery tools
27
+
28
+ ### ✅ **GitHub Flavored Markdown Support**
29
+ - **Rich Text Formatting**: Headers, bold, italic, code blocks, lists, tables, links
30
+ - **Smart Content Processing**: Automatic markdown ↔ HTML ↔ plain text conversion
31
+ - **Syntax Highlighting**: Code blocks with language-specific highlighting
32
+ - **Backward Compatible**: Existing plain text content continues to work
33
+
34
+ ### 🛠️ **Comprehensive API Coverage**
35
+ - **170+ Total Tools** covering 100% of major ClickUp API endpoints
36
+ - **9 Feature Domains**: Tasks, comments, docs, webhooks, views, dependencies, attachments, time tracking, goals
37
+ - **Real-time Integration**: Webhook processing with HMAC validation
38
+ - **Advanced Workflows**: Dependencies, custom fields, bulk operations
39
+
40
+ ### 🔒 **Production Ready Security**
41
+ - **Zero Vulnerabilities**: Comprehensive security audit with 85+ test cases
42
+ - **Input Validation**: XSS and injection prevention with sanitization
43
+ - **Rate Limiting**: Configurable thresholds (1000 API, 100 webhook, 10 upload/min)
44
+ - **HMAC Validation**: Secure webhook authentication with timing-safe comparison
45
+ - **File Security**: Path traversal prevention, dangerous file blocking, size limits
46
+
47
+ ## 📊 Complete Tool Inventory (170+ Tools)
48
+
49
+ ### 🧠 Efficiency & Intelligence Tools (20+ tools) ⭐
50
+ - **Smart Discovery**: `find_chat_channels`, `search_views_by_name`, `get_workspace_overview`
51
+ - **Workflow Analysis**: `analyze_workflow_efficiency`, `suggest_tools_for_task`
52
+ - **Enhanced Metadata**: All 153 core tools enhanced with efficiency hints and alternatives
53
+
54
+ ### Core Workspace Management (47 tools)
55
+ - **Workspaces**: `get_workspaces`, `get_workspace_seats`
56
+ - **Spaces & Lists**: `get_spaces`, `get_lists`, `create_list`, `update_list`, `delete_list`
57
+ - **Tasks**: `get_tasks`, `create_task`, `update_task`, `get_task_details` (with markdown support)
58
+ - **Comments**: `create_task_comment`, `create_list_comment`, `create_chat_view_comment` (with markdown)
59
+ - **Checklists**: `create_checklist`, `update_checklist`, `create_checklist_item`
60
+
61
+ ### Advanced Feature Domains
62
+ - **📄 Document Management** (18 tools): Full CRUD, pages, sharing, search with markdown support
63
+ - **🔧 Custom Fields** (15 tools): All field types, values, templates, bulk operations
64
+ - **📎 Attachments** (14 tools): Upload, download, versions, thumbnails, security validation
65
+ - **👁️ Views** (13 tools): All view types, filters, grouping, sharing, custom configurations
66
+ - **🔗 Dependencies** (12 tools): Relationships, graphs, conflict detection, critical path
67
+ - **🎯 Goals** (12 tools): All goal types, targets, progress tracking, analytics
68
+ - **🔔 Webhooks** (11 tools): Real-time processing, HMAC validation, event history
69
+ - **⏱️ Time Tracking** (10 tools): Entries, timers, analytics, team tracking
70
+ - **💬 Chat & Communication** (24 tools): Enhanced chat discovery and messaging
71
+
72
+ ## 🚀 Efficiency Examples
73
+
74
+ ### Smart Chat Discovery (60% faster)
75
+
76
+ Instead of hierarchical navigation:
77
+ ```typescript
78
+ // ❌ OLD WAY (4+ API calls)
79
+ get_workspaces() → get_spaces() → get_views() → filter for chat
80
+
81
+ // ✅ NEW WAY (1 API call)
82
+ find_chat_channels({ channel_name: "development" })
83
+ ```
84
+
85
+ ### Workflow Analysis
86
+ ```typescript
87
+ analyze_workflow_efficiency({
88
+ goal: "Post message to team chat",
89
+ planned_tools: ["get_workspaces", "get_spaces", "get_views"],
90
+ time_constraint: "urgent"
91
+ })
92
+ // Returns: Optimized workflow with 55% efficiency gain
93
+ ```
94
+
95
+ ### Real-time Webhook Processing
96
+ ```typescript
97
+ // Process ClickUp webhooks with HMAC validation
98
+ process_webhook({
99
+ payload: webhookData,
100
+ validate_signature: true,
101
+ signature: request.headers['x-signature'],
102
+ secret: process.env.WEBHOOK_SECRET
103
+ })
104
+ // Returns: Structured event data with relationships and changes
105
+ ```
106
+
107
+ ## 📝 Markdown Examples
108
+
109
+ ### Creating a Task with Rich Description
110
+
111
+ ```typescript
112
+ // Task with markdown description
113
+ {
114
+ "list_id": "123456789",
115
+ "name": "Project Documentation",
116
+ "description": `# Project Overview
117
+
118
+ This project implements **advanced features** for our application.
119
+
120
+ ## Key Components
121
+
122
+ 1. **Authentication System**
123
+ - JWT token management
124
+ - Role-based access control
125
+
126
+ 2. **API Integration**
127
+ - RESTful endpoints
128
+ - Real-time updates
129
+
130
+ ## Code Example
131
+
132
+ \`\`\`typescript
133
+ interface User {
134
+ id: string;
135
+ name: string;
136
+ role: 'admin' | 'user';
137
+ }
138
+ \`\`\`
139
+
140
+ ## Next Steps
141
+
142
+ - [x] Set up project structure
143
+ - [ ] Complete authentication module
144
+ - [ ] Implement API endpoints
145
+
146
+ > **Note**: This is a high-priority project.`
147
+ }
148
+ ```
149
+
150
+ ### Adding a Formatted Comment
151
+
152
+ ```typescript
153
+ // Comment with markdown formatting
154
+ {
155
+ "task_id": "868f9p3bg",
156
+ "comment_text": `## Status Update ✅
157
+
158
+ ### Completed
159
+ - Authentication system implementation
160
+ - Database schema design
161
+
162
+ ### In Progress
163
+ - **API Integration**: Currently working on REST endpoints
164
+
165
+ ### Code Changes
166
+ \`\`\`diff
167
+ + Added user authentication middleware
168
+ + Implemented JWT token validation
169
+ - Removed deprecated login method
170
+ \`\`\`
171
+
172
+ **Estimated Completion**: End of week`
173
+ }
174
+ ```
175
+
176
+ ## Installation
177
+
178
+ ```bash
179
+ git clone https://github.com/nsxdavid/clickup-mcp-server.git
180
+ cd clickup-mcp-server
181
+ npm install
182
+ ```
183
+
184
+ ## Get ClickUp API Token
185
+
186
+ 1. Log in to ClickUp account
187
+ 2. Go to Settings > Apps
188
+ 3. Click "Generate API Token"
189
+ 4. Copy the token
190
+
191
+ ## Configuration
192
+
193
+ Add to the MCP settings file:
194
+
195
+ ### Standard Version
196
+ ```json
197
+ {
198
+ "mcpServers": {
199
+ "clickup": {
200
+ "command": "node",
201
+ "args": ["/path/to/clickup-mcp-server/build/index-enhanced.js"],
202
+ "env": {
203
+ "CLICKUP_API_TOKEN": "YOUR_API_TOKEN_HERE"
204
+ },
205
+ "disabled": false,
206
+ "autoApprove": []
207
+ }
208
+ }
209
+ }
210
+ ```
211
+
212
+ ### Enhanced Efficiency Version ⭐ NEW!
213
+ ```json
214
+ {
215
+ "mcpServers": {
216
+ "clickup": {
217
+ "command": "node",
218
+ "args": ["/path/to/clickup-mcp-server/build/index-efficiency-simple.js"],
219
+ "env": {
220
+ "CLICKUP_API_TOKEN": "YOUR_API_TOKEN_HERE"
221
+ },
222
+ "disabled": false,
223
+ "autoApprove": []
224
+ }
225
+ }
226
+ }
227
+ ```
228
+
229
+ * Make sure to correct the path
230
+ * Make sure to supply your API token
231
+
232
+ ## Alternate Installation (npx)
233
+
234
+ For users who prefer not to clone the repository, the package can be run directly using npx:
235
+
236
+ ```json
237
+ {
238
+ "mcpServers": {
239
+ "clickup": {
240
+ "command": "npx",
241
+ "args": [
242
+ "-y",
243
+ "clickup-mcp-server"
244
+ ],
245
+ "env": {
246
+ "CLICKUP_API_TOKEN": "YOUR_API_TOKEN_HERE"
247
+ },
248
+ "disabled": false,
249
+ "autoApprove": []
250
+ }
251
+ }
252
+ }
253
+ ```
254
+
255
+ * Replace `YOUR_API_TOKEN_HERE` with your API token
256
+ * No installation or cloning is required with this method
257
+
258
+ ## Configuration File Locations
259
+
260
+ - Cline VSCode Extension: `~/.vscode/extensions/saoudrizwan.claude-dev/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
261
+ - Claude Desktop Apps:
262
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
263
+ - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
264
+
265
+ ## Examples
266
+
267
+ See the [`examples/`](examples/) folder for:
268
+ - Basic MCP client usage
269
+ - Tool integration patterns
270
+ - Authentication setup
271
+ - Advanced workflows
272
+
273
+ Run examples with: `node examples/basic-usage.js`
274
+
275
+ ## 🔒 Security Features
276
+
277
+ ### Production-Grade Security
278
+ - **Input Validation**: XSS and injection prevention with comprehensive sanitization
279
+ - **API Token Security**: Format validation, secure storage, character validation
280
+ - **Rate Limiting**: Sliding window implementation (1000 API, 100 webhook, 10 upload/min)
281
+ - **HMAC Validation**: Timing-safe webhook signature verification
282
+ - **File Security**: Path traversal prevention, dangerous file blocking, 100MB size limits
283
+ - **URL Validation**: SSRF prevention, private IP blocking, protocol validation
284
+ - **Error Handling**: Secure responses without information leakage
285
+
286
+ ### Security Testing
287
+ - **85+ Test Cases** covering all security scenarios
288
+ - **Zero Vulnerabilities** in dependency audit
289
+ - **Comprehensive Integration Tests** for real-world validation
290
+ - **Security Headers** implementation for HTTP protection
291
+
292
+ ## 📝 Markdown Support
293
+
294
+ ### GitHub Flavored Markdown Features
295
+ - **Headers**: `# H1` through `###### H6`
296
+ - **Text Formatting**: `**bold**`, `*italic*`, `~~strikethrough~~`
297
+ - **Code**: `inline code` and fenced blocks with syntax highlighting
298
+ - **Lists**: Ordered, unordered, and task lists with `- [ ]` checkboxes
299
+ - **Links & Images**: `[text](url)` and `![alt](image-url)`
300
+ - **Tables**: Full table support with alignment
301
+ - **Blockquotes**: `> quoted text` and nested quotes
302
+
303
+ ### Smart Processing
304
+ - **Auto-Detection**: Identifies markdown, HTML, or plain text content
305
+ - **Bidirectional Conversion**: Seamless markdown ↔ HTML ↔ plain text
306
+ - **ClickUp Optimization**: Prepares content in format ClickUp expects
307
+ - **Response Processing**: Converts ClickUp responses to readable markdown
308
+
309
+ ## 🔔 Webhook Processing
310
+
311
+ ### Real-time Integration
312
+ - **Event Processing**: Handle all ClickUp events (tasks, comments, goals, etc.)
313
+ - **HMAC Validation**: Secure signature verification with timing-safe comparison
314
+ - **Event Analysis**: Extract relationships, changes, and context from payloads
315
+ - **Monitoring**: Event history, statistics, and retry mechanisms
316
+
317
+ ### Supported Events
318
+ - **Task Events**: Created, updated, deleted, status changed, assigned
319
+ - **Comment Events**: Posted, updated, threaded discussions
320
+ - **Time Events**: Time tracked, timer started/stopped
321
+ - **Goal Events**: Created, updated, target progress
322
+ - **Workspace Events**: Lists, folders, spaces created/updated/deleted
323
+
324
+ ## Development
325
+
326
+ ### Environment Requirements
327
+ - **Node.js**: Version 18.x or higher
328
+ - **Package Manager**: npm or yarn
329
+ - **IDE**: VSCode recommended with TypeScript support
330
+
331
+ ### Setup
332
+
333
+ ```bash
334
+ # Clone and install
335
+ git clone https://github.com/nsxdavid/clickup-mcp-server.git
336
+ cd clickup-mcp-server
337
+ npm install
338
+
339
+ # Environment configuration
340
+ cp .env.example .env
341
+ # Edit .env with your CLICKUP_API_TOKEN
342
+ ```
343
+
344
+ ### Building
345
+
346
+ ```bash
347
+ npm run build
348
+ ```
349
+
350
+ ### Running Tests
351
+
352
+ ```bash
353
+ npm test
354
+ ```
355
+
356
+ ### Testing Markdown Features
357
+
358
+ ```bash
359
+ # Test markdown functionality specifically
360
+ npm test -- --testPathPattern=markdown
361
+
362
+ # Run all tests with coverage
363
+ npm run test:coverage
364
+ ```
365
+
366
+ ## Release Procedure
367
+
368
+ ### Pre-release Checklist
369
+ 1. Ensure all changes are committed and pushed
370
+ 2. Verify all tests pass: `npm test`
371
+ 3. Check build process works: `npm run build`
372
+ 4. Update CHANGELOG.md with new version details
373
+
374
+ ### Version Update Process
375
+
376
+ 1. **Update package.json version** following semantic versioning:
377
+ - MAJOR: Incompatible API changes
378
+ - MINOR: New functionality (backward compatible)
379
+ - PATCH: Bug fixes (backward compatible)
380
+
381
+ 2. **Update CHANGELOG.md**:
382
+ ```markdown
383
+ ## [1.12.0] - 2025-04-14
384
+ ### Added
385
+ - New feature descriptions
386
+ ### Changed
387
+ - Modified functionality
388
+ ### Fixed
389
+ - Bug fixes
390
+ ```
391
+
392
+ ### Release Steps
393
+
394
+ 1. **Build and Test**:
395
+ ```bash
396
+ npm run build
397
+ npm test
398
+ ```
399
+
400
+ 2. **Create Git Tag**:
401
+ ```bash
402
+ git tag -a v1.12.0 -m "Release v1.12.0: Brief description"
403
+ git push --tags
404
+ ```
405
+
406
+ 3. **Publish to NPM**:
407
+ ```bash
408
+ npm publish --access public
409
+ ```
410
+
411
+ 4. **Create GitHub Release**:
412
+ ```bash
413
+ gh release create v1.12.0 --title "v1.12.0" --notes "Release notes from CHANGELOG.md"
414
+ ```
415
+
416
+ ### Post-release Verification
417
+ - Check npm package: https://www.npmjs.com/package/clickup-mcp-server
418
+ - Verify GitHub release: https://github.com/nsxdavid/clickup-mcp-server/releases
419
+ - Test installation: `npm install clickup-mcp-server@latest`
420
+
421
+ ## 🔧 Technical Architecture
422
+
423
+ ### Enhanced Client System
424
+ - **Base Client**: Secure ClickUp API client with axios integration
425
+ - **Specialized Clients**: 9 enhanced clients for different feature areas
426
+ - **Type Safety**: Comprehensive TypeScript schemas with Zod validation
427
+ - **Error Handling**: Structured error responses with user-friendly messages
428
+
429
+ ### Performance & Scalability
430
+ - **Efficient Operations**: Bulk operations for multiple items in single requests
431
+ - **Pagination Support**: Handle large datasets efficiently
432
+ - **Memory Management**: Automatic cleanup and optimization
433
+ - **Caching Strategy**: Optimized API usage patterns
434
+
435
+ ### Testing Framework
436
+ - **Security Tests**: 47 test cases covering all attack vectors
437
+ - **Integration Tests**: 15 test cases for end-to-end validation
438
+ - **Error Handling Tests**: 23 test cases for robust error processing
439
+ - **Total Coverage**: 85+ test cases with 80%+ code coverage
440
+
441
+ ## License
442
+
443
+ MIT
444
+
445
+ ## 🎯 Production Readiness
446
+
447
+ ### Quality Assurance
448
+ - **Security Level**: HIGH - Production approved with zero vulnerabilities
449
+ - **Code Quality**: TypeScript strict mode, comprehensive validation
450
+ - **Test Coverage**: Security-focused testing with 85+ test cases
451
+ - **Documentation**: Complete guides with security audit and examples
452
+
453
+ ### Deployment Features
454
+ - **Health Checks**: Built-in monitoring endpoints
455
+ - **Environment Validation**: Secure configuration verification
456
+ - **Logging & Monitoring**: Structured logging with security event tracking
457
+ - **Error Recovery**: Automatic retry mechanisms and conflict resolution
458
+
459
+ ### Performance Metrics
460
+ - **API Call Reduction**: 50-70% fewer calls for common workflows
461
+ - **Execution Speed**: 40-60% faster completion times
462
+ - **Memory Efficiency**: <1% security overhead, optimized resource usage
463
+ - **Scalability**: Supports high concurrency with efficient batch processing
464
+
465
+ ---
466
+
467
+ **Status**: ✅ **PRODUCTION READY** - Comprehensive ClickUp integration with AI-powered efficiency, production-grade security, and complete API coverage. Ready for immediate deployment and enterprise use.
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ // Execute the AI-powered version
9
+ await import(join(__dirname, '../build/index-enhanced-efficiency.js'));
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ // Execute the basic version
9
+ await import(join(__dirname, '../build/index.js'));
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ // Execute the efficiency version
9
+ await import(join(__dirname, '../build/index-efficiency-simple.js'));
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+
8
+ // Execute the enhanced version
9
+ await import(join(__dirname, '../build/index-enhanced.js'));
package/build/app.d.ts ADDED
@@ -0,0 +1 @@
1
+ export {};
package/build/app.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":""}
@@ -0,0 +1,128 @@
1
+ import { ClickUpClient } from './index.js';
2
+ import type { UploadAttachmentRequest, UpdateAttachmentMetadataRequest, GetAttachmentsFilter, AttachmentSharingRequest, BulkAttachmentOperation, AttachmentResponse, AttachmentListResponse, AttachmentUploadResponse, AttachmentStatsResponse } from '../schemas/attachments-schemas.js';
3
+ export declare class AttachmentsEnhancedClient extends ClickUpClient {
4
+ constructor(apiToken: string);
5
+ /**
6
+ * Upload a new attachment
7
+ */
8
+ uploadAttachment(request: UploadAttachmentRequest): Promise<AttachmentUploadResponse>;
9
+ /**
10
+ * Get attachments for a parent object
11
+ */
12
+ getAttachments(filter: GetAttachmentsFilter): Promise<AttachmentListResponse>;
13
+ /**
14
+ * Get a specific attachment by ID
15
+ */
16
+ getAttachment(attachmentId: string): Promise<AttachmentResponse>;
17
+ /**
18
+ * Update attachment metadata
19
+ */
20
+ updateAttachmentMetadata(request: UpdateAttachmentMetadataRequest): Promise<AttachmentResponse>;
21
+ /**
22
+ * Delete an attachment
23
+ */
24
+ deleteAttachment(attachmentId: string): Promise<{
25
+ success: boolean;
26
+ }>;
27
+ /**
28
+ * Download an attachment
29
+ */
30
+ downloadAttachment(attachmentId: string): Promise<{
31
+ filename: string;
32
+ mimetype: string;
33
+ size: number;
34
+ download_url: string;
35
+ expires_at: string;
36
+ }>;
37
+ /**
38
+ * Get attachment info without downloading
39
+ */
40
+ getAttachmentInfo(attachmentId: string): Promise<{
41
+ attachment: AttachmentResponse;
42
+ download_info: {
43
+ can_download: boolean;
44
+ download_url?: string;
45
+ expires_at?: string;
46
+ requires_auth: boolean;
47
+ };
48
+ preview_info: {
49
+ can_preview: boolean;
50
+ preview_url?: string;
51
+ thumbnail_url?: string;
52
+ preview_type?: string;
53
+ };
54
+ }>;
55
+ /**
56
+ * Update attachment sharing settings
57
+ */
58
+ updateAttachmentSharing(request: AttachmentSharingRequest): Promise<AttachmentResponse>;
59
+ /**
60
+ * Perform bulk attachment operations
61
+ */
62
+ bulkAttachmentOperations(operation: BulkAttachmentOperation): Promise<{
63
+ success: boolean;
64
+ results: Array<{
65
+ attachment_id: string;
66
+ success: boolean;
67
+ error?: string;
68
+ }>;
69
+ }>;
70
+ /**
71
+ * Get attachment statistics for a workspace
72
+ */
73
+ getAttachmentStats(workspaceId: string): Promise<AttachmentStatsResponse>;
74
+ /**
75
+ * Search attachments across workspace
76
+ */
77
+ searchAttachments(workspaceId: string, query: {
78
+ search_term?: string;
79
+ type?: string;
80
+ parent_type?: string;
81
+ tags?: string[];
82
+ date_from?: number;
83
+ date_to?: number;
84
+ min_size?: number;
85
+ max_size?: number;
86
+ uploaded_by?: number;
87
+ limit?: number;
88
+ offset?: number;
89
+ }): Promise<AttachmentListResponse>;
90
+ /**
91
+ * Generate attachment thumbnail
92
+ */
93
+ generateAttachmentThumbnail(attachmentId: string, options?: {
94
+ width?: number;
95
+ height?: number;
96
+ quality?: number;
97
+ }): Promise<{
98
+ thumbnail_url: string;
99
+ expires_at: string;
100
+ }>;
101
+ /**
102
+ * Copy attachment to another parent
103
+ */
104
+ copyAttachment(attachmentId: string, targetParentId: string, targetParentType: string): Promise<AttachmentResponse>;
105
+ /**
106
+ * Move attachment to another parent
107
+ */
108
+ moveAttachment(attachmentId: string, targetParentId: string, targetParentType: string): Promise<AttachmentResponse>;
109
+ /**
110
+ * Get attachment version history
111
+ */
112
+ getAttachmentVersions(attachmentId: string): Promise<{
113
+ versions: Array<{
114
+ version_id: string;
115
+ version_number: number;
116
+ filename: string;
117
+ size: number;
118
+ date_created: string;
119
+ uploaded_by: {
120
+ id: number;
121
+ username: string;
122
+ };
123
+ is_current: boolean;
124
+ download_url?: string;
125
+ }>;
126
+ }>;
127
+ private getParentEndpoint;
128
+ }