@taazkareem/clickup-mcp-server 0.4.13 → 0.4.14

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 (3) hide show
  1. package/README.md +42 -26
  2. package/build/index.js +301 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  A Model Context Protocol (MCP) server for integrating ClickUp tasks with AI applications. This server allows AI agents to interact with ClickUp tasks, spaces, lists, and folders through a standardized protocol.
4
4
 
5
+ ## Quick Start
6
+ ```bash
7
+ npx clickup-mcp-server --stdio --env CLICKUP_API_KEY=your_api_key_here --env TEAM_ID=your_team_id_here
8
+ ```
9
+ That's it! No installation needed. Just replace the credentials with your own:
10
+ - Get your API key from [ClickUp Settings](https://app.clickup.com/settings/apps)
11
+ - Find your Team ID in your ClickUp workspace URL or settings
12
+
5
13
  ## Features
6
14
 
7
15
  - 🔄 **Resource Management**
@@ -43,36 +51,44 @@ A Model Context Protocol (MCP) server for integrating ClickUp tasks with AI appl
43
51
  - Secure API key management
44
52
  - Environment-based configuration
45
53
 
46
- ## Installation
47
-
48
- ### Using npx
49
- ```bash
50
- npx @taazkareem/clickup-mcp-server
51
- ```
52
-
53
- ## Configuration
54
-
55
- 1. Get your ClickUp API key from [ClickUp Settings](https://app.clickup.com/settings/apps)
56
- 2. Create a `.env` file:
57
- ```env
58
- CLICKUP_API_KEY=your_api_key_here
59
- TEAM_ID=your_team_id_here
60
- ```
61
-
62
54
  ## Using with Cursor AI Composer Agent
63
55
 
64
- To add this server to Cursor AI Composer, follow these steps:
56
+ To add this server to Cursor AI Composer:
57
+
58
+ 1. Go to Features → MCP Servers in settings
59
+ 2. Paste this command:
60
+ ```bash
61
+ npx clickup-mcp-server --stdio --env CLICKUP_API_KEY=your_api_key_here --env TEAM_ID=your_team_id_here
62
+ ```
63
+ 3. Replace the credentials with your own
64
+ 4. Click 'Save'
65
+
66
+ ## Using with Roo Code (formerly Cline)
67
+
68
+ To add this server to Roo Code:
69
+
70
+ 1. Open Roo Code (formerly Cline).
71
+ 2. Ask Roo Code to add the ClickUp MCP Server to your project. It should add this to your `cline_mcp_settings.json` file:
72
+ ```json
73
+ "clickup-mcp-server": {
74
+ "command": "npx",
75
+ "args": [
76
+ "clickup-mcp-server",
77
+ "--stdio"
78
+ ],
79
+ "env": {
80
+ "CLICKUP_API_KEY": "your_api_key_here",
81
+ "TEAM_ID": "your_team_id_here"
82
+ },
83
+ "disabled": false,
84
+ "alwaysAllow": []
85
+ }
86
+ ```
87
+ 4. Replace `your_api_key_here` and `your_team_id_here` with your actual ClickUp API key and Team ID.
88
+ **Note:** Do not use the example settings and credentials provided here; use your own.
89
+ 5. Save the `cline_mcp_settings.json` file.
65
90
 
66
- 1. Go to the Features section in the settings.
67
- 2. Add the following command under MCP Servers:
68
91
 
69
- ```bash
70
- npx -y @taazkareem/clickup-mcp-server --stdio \
71
- --env CLICKUP_API_KEY=your_api_key_here \
72
- --env TEAM_ID=your_team_id_here
73
- ```
74
- 3. Replace `your_api_key_here` and `your_team_id_here` with your actual ClickUp credentials.
75
- 4. Click on 'Save' to add the server.
76
92
 
77
93
  > **Security Note**: Your API key will be stored securely and will not be exposed to AI models.
78
94
 
package/build/index.js CHANGED
@@ -29,9 +29,307 @@ const server = new Server({
29
29
  version: "0.1.0",
30
30
  }, {
31
31
  capabilities: {
32
- resources: {},
33
- tools: {},
34
- prompts: {},
32
+ resources: {
33
+ list: true,
34
+ read: true,
35
+ },
36
+ tools: {
37
+ workspace_hierarchy: {
38
+ description: "List complete hierarchy of the ClickUp workspace",
39
+ inputSchema: {
40
+ type: "object",
41
+ properties: {},
42
+ required: []
43
+ }
44
+ },
45
+ create_task: {
46
+ description: "Create a new task in ClickUp",
47
+ inputSchema: {
48
+ type: "object",
49
+ properties: {
50
+ listId: {
51
+ type: "string",
52
+ description: "ID of the list to create the task in (optional if listName is provided)"
53
+ },
54
+ listName: {
55
+ type: "string",
56
+ description: "Name of the list to create the task in (optional if listId is provided)"
57
+ },
58
+ name: {
59
+ type: "string",
60
+ description: "Name of the task"
61
+ },
62
+ description: {
63
+ type: "string",
64
+ description: "Description of the task"
65
+ },
66
+ status: {
67
+ type: "string",
68
+ description: "Status of the task"
69
+ },
70
+ priority: {
71
+ type: "number",
72
+ description: "Priority of the task (1-4)"
73
+ },
74
+ dueDate: {
75
+ type: "string",
76
+ description: "Due date of the task (ISO string)"
77
+ }
78
+ },
79
+ required: ["name"]
80
+ }
81
+ },
82
+ create_bulk_tasks: {
83
+ description: "Create multiple tasks in a ClickUp list",
84
+ inputSchema: {
85
+ type: "object",
86
+ properties: {
87
+ listId: {
88
+ type: "string",
89
+ description: "ID of the list to create the tasks in (optional if listName is provided)"
90
+ },
91
+ listName: {
92
+ type: "string",
93
+ description: "Name of the list to create the tasks in (optional if listId is provided)"
94
+ },
95
+ tasks: {
96
+ type: "array",
97
+ description: "Array of tasks to create",
98
+ items: {
99
+ type: "object",
100
+ properties: {
101
+ name: {
102
+ type: "string",
103
+ description: "Name of the task"
104
+ },
105
+ description: {
106
+ type: "string",
107
+ description: "Description of the task"
108
+ },
109
+ status: {
110
+ type: "string",
111
+ description: "Status of the task"
112
+ },
113
+ priority: {
114
+ type: "number",
115
+ description: "Priority level (1-4)"
116
+ },
117
+ dueDate: {
118
+ type: "string",
119
+ description: "Due date (ISO string)"
120
+ },
121
+ assignees: {
122
+ type: "array",
123
+ items: {
124
+ type: "number"
125
+ },
126
+ description: "Array of user IDs to assign to the task"
127
+ }
128
+ },
129
+ required: ["name"]
130
+ }
131
+ }
132
+ },
133
+ required: ["tasks"]
134
+ }
135
+ },
136
+ create_list: {
137
+ description: "Create a new list in a ClickUp space",
138
+ inputSchema: {
139
+ type: "object",
140
+ properties: {
141
+ spaceId: {
142
+ type: "string",
143
+ description: "ID of the space to create the list in (optional if spaceName is provided)"
144
+ },
145
+ spaceName: {
146
+ type: "string",
147
+ description: "Name of the space to create the list in (optional if spaceId is provided)"
148
+ },
149
+ name: {
150
+ type: "string",
151
+ description: "Name of the list"
152
+ },
153
+ content: {
154
+ type: "string",
155
+ description: "Description or content of the list"
156
+ },
157
+ dueDate: {
158
+ type: "string",
159
+ description: "Due date for the list (ISO string)"
160
+ },
161
+ priority: {
162
+ type: "number",
163
+ description: "Priority of the list (1-4)"
164
+ },
165
+ assignee: {
166
+ type: "number",
167
+ description: "User ID to assign the list to"
168
+ },
169
+ status: {
170
+ type: "string",
171
+ description: "Status of the list"
172
+ }
173
+ },
174
+ required: ["name"]
175
+ }
176
+ },
177
+ create_folder: {
178
+ description: "Create a new folder in a ClickUp space",
179
+ inputSchema: {
180
+ type: "object",
181
+ properties: {
182
+ spaceId: {
183
+ type: "string",
184
+ description: "ID of the space to create the folder in (optional if spaceName is provided)"
185
+ },
186
+ spaceName: {
187
+ type: "string",
188
+ description: "Name of the space to create the folder in (optional if spaceId is provided)"
189
+ },
190
+ name: {
191
+ type: "string",
192
+ description: "Name of the folder"
193
+ },
194
+ override_statuses: {
195
+ type: "boolean",
196
+ description: "Whether to override space statuses"
197
+ }
198
+ },
199
+ required: ["name"]
200
+ }
201
+ },
202
+ create_list_in_folder: {
203
+ description: "Create a new list in a ClickUp folder",
204
+ inputSchema: {
205
+ type: "object",
206
+ properties: {
207
+ folderId: {
208
+ type: "string",
209
+ description: "ID of the folder to create the list in (optional if folderName and spaceId/spaceName are provided)"
210
+ },
211
+ folderName: {
212
+ type: "string",
213
+ description: "Name of the folder to create the list in"
214
+ },
215
+ spaceId: {
216
+ type: "string",
217
+ description: "ID of the space containing the folder (required if using folderName)"
218
+ },
219
+ spaceName: {
220
+ type: "string",
221
+ description: "Name of the space containing the folder (alternative to spaceId)"
222
+ },
223
+ name: {
224
+ type: "string",
225
+ description: "Name of the list"
226
+ },
227
+ content: {
228
+ type: "string",
229
+ description: "Description or content of the list"
230
+ },
231
+ status: {
232
+ type: "string",
233
+ description: "Status of the list"
234
+ }
235
+ },
236
+ required: ["name"]
237
+ }
238
+ },
239
+ move_task: {
240
+ description: "Move a task to a different list",
241
+ inputSchema: {
242
+ type: "object",
243
+ properties: {
244
+ taskId: {
245
+ type: "string",
246
+ description: "ID of the task to move"
247
+ },
248
+ listId: {
249
+ type: "string",
250
+ description: "ID of the destination list (optional if listName is provided)"
251
+ },
252
+ listName: {
253
+ type: "string",
254
+ description: "Name of the destination list (optional if listId is provided)"
255
+ }
256
+ },
257
+ required: ["taskId"]
258
+ }
259
+ },
260
+ duplicate_task: {
261
+ description: "Duplicate a task to a list",
262
+ inputSchema: {
263
+ type: "object",
264
+ properties: {
265
+ taskId: {
266
+ type: "string",
267
+ description: "ID of the task to duplicate"
268
+ },
269
+ listId: {
270
+ type: "string",
271
+ description: "ID of the destination list (optional if listName is provided)"
272
+ },
273
+ listName: {
274
+ type: "string",
275
+ description: "Name of the destination list (optional if listId is provided)"
276
+ }
277
+ },
278
+ required: ["taskId"]
279
+ }
280
+ },
281
+ update_task: {
282
+ description: "Update an existing task in ClickUp",
283
+ inputSchema: {
284
+ type: "object",
285
+ properties: {
286
+ taskId: {
287
+ type: "string",
288
+ description: "ID of the task to update"
289
+ },
290
+ name: {
291
+ type: "string",
292
+ description: "New name of the task"
293
+ },
294
+ description: {
295
+ type: "string",
296
+ description: "New description of the task"
297
+ },
298
+ status: {
299
+ type: "string",
300
+ description: "New status of the task"
301
+ },
302
+ priority: {
303
+ type: "number",
304
+ description: "New priority of the task (1-4)"
305
+ },
306
+ dueDate: {
307
+ type: "string",
308
+ description: "New due date of the task (ISO string)"
309
+ }
310
+ },
311
+ required: ["taskId"]
312
+ }
313
+ }
314
+ },
315
+ prompts: {
316
+ summarize_tasks: {
317
+ description: "Summarize tasks in the workspace",
318
+ inputSchema: {
319
+ type: "object",
320
+ properties: {},
321
+ required: []
322
+ }
323
+ },
324
+ analyze_priorities: {
325
+ description: "Analyze task priorities",
326
+ inputSchema: {
327
+ type: "object",
328
+ properties: {},
329
+ required: []
330
+ }
331
+ }
332
+ },
35
333
  },
36
334
  });
37
335
  console.log('MCP server created');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taazkareem/clickup-mcp-server",
3
- "version": "0.4.13",
3
+ "version": "0.4.14",
4
4
  "description": "ClickUp MCP Server - Integrate ClickUp tasks with AI through Model Context Protocol",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",