@taazkareem/clickup-mcp-server 0.6.10 → 0.7.1

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
@@ -6,7 +6,7 @@
6
6
 
7
7
  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.
8
8
 
9
- > 🚧 **Status Update:** v0.7.0 will be available soon with Time Tracking support, among other new features.
9
+ > 🚀 **Status Update:** v0.7.1 now available with complete Time Tracking support and Document Management features.
10
10
 
11
11
  ## Setup
12
12
 
@@ -61,13 +61,13 @@ Please disable tools you don't need if you are having issues with the number of
61
61
 
62
62
  ## Features
63
63
 
64
- | 📝 Task Management | 🏷️ Tag Management |
65
- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
66
- | • Create, update, and delete tasks`<br>`• Move and duplicate tasks anywhere`<br>`• Support for single and bulk operations`<br>`• Set start/due dates with natural language`<br>`• Create and manage subtasks`<br>`• Add comments and attachments | • Create, update, and delete space tags`<br>`• Add and remove tags from tasks`<br>`• Use natural language color commands`<br>`• Automatic contrasting foreground colors`<br>`• View all space tags`<br>`• Tag-based task organization across workspace |
67
- | ⏱️**Time Tracking** | 🌳**Workspace Organization** |
68
- | • View time entries for tasks`<br>`• Start/stop time tracking on tasks`<br>`• Add manual time entries`<br>`• Delete time entries`<br>`• View currently running timer`<br>`• Track billable and non-billable time | • Navigate spaces, folders, and lists`<br>`• Create and manage folders`<br>`• Organize lists within spaces`<br>`• Create lists in folders`<br>`• View workspace hierarchy`<br>`• Efficient path navigation |
69
- | ⚡**Integration Features** | **Document Listing, Creation and Updating!** |
70
- | • Global name or ID-based lookups`<br>`• Case-insensitive matching`<br>`• Markdown formatting support`<br>`• Built-in rate limiting`<br>`• Error handling and validation`<br>`• Comprehensive API coverage | • Document Listing through all workspace`<br>` • Document Page listing `<br>` • Document Page Details `<br>` • Document Creation `<br>` • Document page update, modification (append and prepend) `<br>` |
64
+ | 📝 Task Management | 🏷️ Tag Management |
65
+ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
66
+ | • Create, update, and delete tasks `<br>`• Move and duplicate tasks anywhere `<br>`• Support for single and bulk operations `<br>`• Set start/due dates with natural language `<br>`• Create and manage subtasks `<br>`• Add comments and attachments | • Create, update, and delete space tags `<br>`• Add and remove tags from tasks `<br>`• Use natural language color commands `<br>`• Automatic contrasting foreground colors `<br>`• View all space tags `<br>`• Tag-based task organization across workspace |
67
+ | ⏱️**Time Tracking** | 🌳**Workspace Organization** |
68
+ | • View time entries for tasks `<br>`• Start/stop time tracking on tasks `<br>`• Add manual time entries `<br>`• Delete time entries `<br>`• View currently running timer `<br>`• Track billable and non-billable time | • Navigate spaces, folders, and lists `<br>`• Create and manage folders `<br>`• Organize lists within spaces `<br>`• Create lists in folders `<br>`• View workspace hierarchy `<br>`• Efficient path navigation |
69
+ | ⚡**Integration Features** | **Document Listing, Creation and Updating!** |
70
+ | • Global name or ID-based lookups `<br>`• Case-insensitive matching `<br>`• Markdown formatting support `<br>`• Built-in rate limiting `<br>`• Error handling and validation `<br>`• Comprehensive API coverage | • Document Listing through all workspace `<br>` • Document Page listing `<br>` • Document Page Details `<br>` • Document Creation `<br>` • Document page update, modification (append and prepend) `<br>` |
71
71
 
72
72
  ## Available Tools
73
73
 
package/build/server.js CHANGED
@@ -21,7 +21,7 @@ const logger = new Logger('Server');
21
21
  const { workspace } = clickUpServices;
22
22
  export const server = new Server({
23
23
  name: "clickup-mcp-server",
24
- version: "0.6.10",
24
+ version: "0.7.1",
25
25
  }, {
26
26
  capabilities: {
27
27
  tools: {},
@@ -242,20 +242,42 @@ export class TaskServiceCore extends BaseClickUpService {
242
242
  /**
243
243
  * Get a task by its custom ID
244
244
  * @param customTaskId The custom ID of the task (e.g., "ABC-123")
245
- * @param listId Optional list ID to limit the search
245
+ * @param listId Optional list ID to limit the search (Note: ClickUp API might not filter by list_id when using custom_task_id)
246
246
  * @returns The task details
247
247
  */
248
248
  async getTaskByCustomId(customTaskId, listId) {
249
+ // Log the operation, including listId even if the API might ignore it for this specific lookup type
249
250
  this.logOperation('getTaskByCustomId', { customTaskId, listId });
250
251
  try {
251
252
  return await this.makeRequest(async () => {
252
- // Construct the URL with optional list ID
253
- const url = `/task/custom_task_ids?custom_task_id=${encodeURIComponent(customTaskId)}${listId ? `&list_id=${listId}` : ''}`;
254
- const response = await this.client.get(url);
255
- return response.data;
253
+ // Use the standard task endpoint with the custom task ID
254
+ const url = `/task/${encodeURIComponent(customTaskId)}`;
255
+ // Add required query parameters for custom ID lookup
256
+ const params = new URLSearchParams({
257
+ custom_task_ids: 'true',
258
+ team_id: this.teamId // team_id is required when custom_task_ids is true
259
+ });
260
+ // Note: The ClickUp API documentation for GET /task/{task_id} doesn't explicitly mention
261
+ // filtering by list_id when custom_task_ids=true. This parameter might be ignored.
262
+ if (listId) {
263
+ this.logger.warn('listId provided to getTaskByCustomId, but the ClickUp API endpoint might not support it directly for custom ID lookups.', { customTaskId, listId });
264
+ // If ClickUp API were to support it, you would add it like this:
265
+ // params.append('list_id', listId);
266
+ }
267
+ const response = await this.client.get(url, { params });
268
+ // Handle potential non-JSON responses (though less likely with GET)
269
+ const data = response.data;
270
+ if (typeof data === 'string') {
271
+ throw new ClickUpServiceError('Received unexpected text response from API when fetching by custom ID', ErrorCode.UNKNOWN, data);
272
+ }
273
+ return data;
256
274
  });
257
275
  }
258
276
  catch (error) {
277
+ // Provide more specific error context if possible
278
+ if (error instanceof ClickUpServiceError && error.code === ErrorCode.NOT_FOUND) {
279
+ throw new ClickUpServiceError(`Task with custom ID ${customTaskId} not found or not accessible for team ${this.teamId}.`, ErrorCode.NOT_FOUND, error.data);
280
+ }
259
281
  throw this.handleError(error, `Failed to get task with custom ID ${customTaskId}`);
260
282
  }
261
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@taazkareem/clickup-mcp-server",
3
- "version": "0.6.10",
3
+ "version": "0.7.1",
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",