@taazkareem/clickup-mcp-server 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -58,12 +58,26 @@ CLICKUP_API_KEY=your_api_key_here
58
58
  TEAM_ID=your_team_id_here
59
59
  ```
60
60
 
61
- ## Usage
61
+ ## Using with Cursor AI Composer
62
+
63
+ To add this server to Cursor AI Composer, follow these steps:
64
+
65
+ 1. Go to the Features section in the settings.
66
+ 2. Add the following command under MCP Servers:
62
67
 
63
- ### Starting the Server
64
68
  ```bash
65
- clickup-mcp-server
69
+ npx -y @taazkareem/clickup-mcp-server \
70
+ --env CLICKUP_API_KEY=your_api_key_here \
71
+ --env TEAM_ID=your_team_id_here
66
72
  ```
73
+ 3. Replace `your_api_key_here` and `your_team_id_here` with your actual ClickUp credentials.
74
+ 4. Click on 'Save' to add the server.
75
+
76
+ You can get these values from:
77
+ - `CLICKUP_API_KEY`: Get from [ClickUp Settings > Apps](https://app.clickup.com/settings/apps)
78
+ - `TEAM_ID`: Your ClickUp Team ID (found in the URL when viewing your workspace or via API)
79
+
80
+ > **Security Note**: Your API key will be stored securely and will not be exposed to AI models.
67
81
 
68
82
  ### Available Tools
69
83
 
@@ -84,7 +98,19 @@ clickup-mcp-server
84
98
  - `dueDate`: Due date (ISO string)
85
99
  - `assignees`: Array of user IDs
86
100
 
87
- 3. **create_list**
101
+ 3. **create_bulk_tasks**
102
+ - Creates multiple tasks simultaneously in a list
103
+ - Required parameters:
104
+ - `listId`: ID of the list to create the tasks in
105
+ - `tasks`: Array of task objects, each containing:
106
+ - `name`: Name of the task (required)
107
+ - `description`: Task description (optional)
108
+ - `status`: Task status (optional)
109
+ - `priority`: Priority level 1-4 (optional)
110
+ - `dueDate`: Due date ISO string (optional)
111
+ - `assignees`: Array of user IDs (optional)
112
+
113
+ 4. **create_list**
88
114
  - Creates a new list in a space
89
115
  - Required parameters:
90
116
  - `name`: Name of the list
@@ -96,7 +122,7 @@ clickup-mcp-server
96
122
  - `priority`: Priority level (1-4)
97
123
  - `dueDate`: Due date (ISO string)
98
124
 
99
- 4. **create_folder**
125
+ 5. **create_folder**
100
126
  - Creates a new folder in a space
101
127
  - Required parameters:
102
128
  - `name`: Name of the folder
@@ -105,7 +131,7 @@ clickup-mcp-server
105
131
  - `spaceName`: Name of the space (optional if spaceId provided)
106
132
  - `override_statuses`: Whether to override space statuses
107
133
 
108
- 5. **create_list_in_folder**
134
+ 6. **create_list_in_folder**
109
135
  - Creates a new list within a folder
110
136
  - Required parameters:
111
137
  - `name`: Name of the list
@@ -117,19 +143,19 @@ clickup-mcp-server
117
143
  - `content`: List description
118
144
  - `status`: List status
119
145
 
120
- 6. **move_task**
146
+ 7. **move_task**
121
147
  - Moves a task to a different list
122
148
  - Required parameters:
123
149
  - `taskId`: ID of the task to move
124
150
  - `listId`: ID of the destination list
125
151
 
126
- 7. **duplicate_task**
152
+ 8. **duplicate_task**
127
153
  - Creates a copy of a task in a specified list
128
154
  - Required parameters:
129
155
  - `taskId`: ID of the task to duplicate
130
156
  - `listId`: ID of the destination list
131
157
 
132
- 8. **update_task**
158
+ 9. **update_task**
133
159
  - Updates an existing task
134
160
  - Required parameters:
135
161
  - `taskId`: ID of the task to update
@@ -181,27 +207,6 @@ The server provides clear error messages for common scenarios:
181
207
  - Permission issues
182
208
  - API errors
183
209
 
184
- ## Using with Cursor AI Composer
185
-
186
- To add this server to Cursor AI Composer, follow these steps:
187
-
188
- 1. Go to the Features section in the settings.
189
- 2. Add the following command under MCP Servers:
190
-
191
- ```bash
192
- npx -y @taazkareem/clickup-mcp-server \
193
- --env CLICKUP_API_KEY=your_api_key_here \
194
- --env TEAM_ID=your_team_id_here
195
- ```
196
- 3. Replace `your_api_key_here` and `your_team_id_here` with your actual ClickUp credentials.
197
- 4. Click on 'Save' to add the server.
198
-
199
- You can get these values from:
200
- - `CLICKUP_API_KEY`: Get from [ClickUp Settings > Apps](https://app.clickup.com/settings/apps)
201
- - `TEAM_ID`: Your ClickUp Team ID (found in the URL when viewing your workspace or via API)
202
-
203
- > **Security Note**: Your API key will be stored securely and will not be exposed to AI models.
204
-
205
210
  ## Development
206
211
 
207
212
  1. Clone the repository:
package/build/index.js CHANGED
@@ -143,6 +143,57 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
143
143
  required: ["listId", "name"]
144
144
  }
145
145
  },
146
+ {
147
+ name: "create_bulk_tasks",
148
+ description: "Create multiple tasks in a ClickUp list",
149
+ inputSchema: {
150
+ type: "object",
151
+ properties: {
152
+ listId: {
153
+ type: "string",
154
+ description: "ID of the list to create the tasks in"
155
+ },
156
+ tasks: {
157
+ type: "array",
158
+ description: "Array of tasks to create",
159
+ items: {
160
+ type: "object",
161
+ properties: {
162
+ name: {
163
+ type: "string",
164
+ description: "Name of the task"
165
+ },
166
+ description: {
167
+ type: "string",
168
+ description: "Description of the task"
169
+ },
170
+ status: {
171
+ type: "string",
172
+ description: "Status of the task"
173
+ },
174
+ priority: {
175
+ type: "number",
176
+ description: "Priority level (1-4)"
177
+ },
178
+ dueDate: {
179
+ type: "string",
180
+ description: "Due date of the task (ISO string)"
181
+ },
182
+ assignees: {
183
+ type: "array",
184
+ items: {
185
+ type: "number"
186
+ },
187
+ description: "Array of user IDs to assign to the task"
188
+ }
189
+ },
190
+ required: ["name"]
191
+ }
192
+ }
193
+ },
194
+ required: ["listId", "tasks"]
195
+ }
196
+ },
146
197
  {
147
198
  name: "create_list",
148
199
  description: "Create a new list in a ClickUp space",
@@ -374,6 +425,20 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
374
425
  }]
375
426
  };
376
427
  }
428
+ case "create_bulk_tasks": {
429
+ const args = request.params.arguments;
430
+ if (!args.listId || !args.tasks || !args.tasks.length) {
431
+ throw new Error("listId and at least one task are required");
432
+ }
433
+ const { listId, tasks } = args;
434
+ const createdTasks = await clickup.createBulkTasks(listId, { tasks });
435
+ return {
436
+ content: [{
437
+ type: "text",
438
+ text: `Created ${createdTasks.length} tasks:\n${createdTasks.map(task => `- ${task.id}: ${task.name}`).join('\n')}`
439
+ }]
440
+ };
441
+ }
377
442
  case "create_list": {
378
443
  const args = request.params.arguments;
379
444
  if (!args.name) {
@@ -38,6 +38,10 @@ export class ClickUpService {
38
38
  const response = await this.client.post(`/list/${listId}/task`, data);
39
39
  return response.data;
40
40
  }
41
+ async createBulkTasks(listId, data) {
42
+ const tasks = await Promise.all(data.tasks.map(taskData => this.createTask(listId, taskData)));
43
+ return tasks;
44
+ }
41
45
  async updateTask(taskId, data) {
42
46
  const response = await this.client.put(`/task/${taskId}`, data);
43
47
  return response.data;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taazkareem/clickup-mcp-server",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
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",