@hauptsache.net/clickup-mcp 1.7.2 → 1.7.3

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.
@@ -476,7 +476,7 @@ function buildImageFragment(attachment, caption) {
476
476
  * fragment (e.g. ?comment=... deep links) do NOT match, because a mention would
477
477
  * either not resolve or lose the anchor - those stay ordinary links.
478
478
  */
479
- const CLICKUP_TASK_URL_PATTERN = /^https?:\/\/app\.clickup\.com\/t\/(?:\d+\/)?([a-z0-9]{6,12})\/?$/;
479
+ const CLICKUP_TASK_URL_PATTERN = /^https?:\/\/app\.clickup\.com\/t\/(?:\d+\/)?([a-z0-9]{6,16})\/?$/;
480
480
  /**
481
481
  * Extract the task ID from a ClickUp task URL, or null if it is not one.
482
482
  */
@@ -1,7 +1,7 @@
1
1
  import Fuse from 'fuse.js';
2
2
  /**
3
3
  * Checks if a string looks like a valid ClickUp task ID
4
- * Valid task IDs are 6-9 characters long and contain only alphanumeric characters
4
+ * Valid task IDs are 6-16 characters long and contain only alphanumeric characters
5
5
  */
6
6
  export declare function isTaskId(str: string): boolean;
7
7
  /**
@@ -23,11 +23,11 @@ const fuse_js_1 = __importDefault(require("fuse.js"));
23
23
  const GLOBAL_REFRESH_INTERVAL = 60000; // 60 seconds - that is the rate limit time frame
24
24
  /**
25
25
  * Checks if a string looks like a valid ClickUp task ID
26
- * Valid task IDs are 6-9 characters long and contain only alphanumeric characters
26
+ * Valid task IDs are 6-16 characters long and contain only alphanumeric characters
27
27
  */
28
28
  function isTaskId(str) {
29
- // Task IDs are 6-9 characters long and contain only alphanumeric characters
30
- return /^[a-z0-9]{6,9}$/i.test(str);
29
+ // Task IDs are 6-16 characters long and contain only alphanumeric characters
30
+ return /^[a-z0-9]{6,16}$/i.test(str);
31
31
  }
32
32
  // Cache for current user info to avoid repeated API calls and race conditions
33
33
  let cachedUserPromise = null;
@@ -17,11 +17,11 @@ function registerTaskToolsRead(server, userData) {
17
17
  id: zod_1.z
18
18
  .string()
19
19
  .min(6)
20
- .max(9)
20
+ .max(16)
21
21
  .refine(val => (0, utils_1.isTaskId)(val), {
22
- message: "Task ID must be 6-9 alphanumeric characters only"
22
+ message: "Task ID must be 6-16 alphanumeric characters only"
23
23
  })
24
- .describe(`The 6-9 character ID of the task to get without a prefix like "#", "CU-" or "https://app.clickup.com/t/"`),
24
+ .describe(`The 6-16 character ID of the task to get without a prefix like "#", "CU-" or "https://app.clickup.com/t/"`),
25
25
  }, {
26
26
  readOnlyHint: true
27
27
  }, async ({ id }) => {
@@ -123,7 +123,7 @@ function registerTaskToolsWrite(server, userData) {
123
123
  }
124
124
  return descriptionBase.join("\n");
125
125
  })(), {
126
- task_id: zod_1.z.string().min(6).max(9).describe("The 6-9 character task ID to comment on"),
126
+ task_id: zod_1.z.string().min(6).max(16).describe("The 6-16 character task ID to comment on"),
127
127
  comment: zod_1.z.string().min(1).describe("The comment text to add to the task"),
128
128
  }, {
129
129
  readOnlyHint: false,
@@ -203,7 +203,7 @@ function registerTaskToolsWrite(server, userData) {
203
203
  }
204
204
  return descriptionBase.join("\n");
205
205
  })(), {
206
- task_id: zod_1.z.string().min(6).max(9).describe("The 6-9 character ID of the task the comment belongs to - needed to locate the comment and to upload images"),
206
+ task_id: zod_1.z.string().min(6).max(16).describe("The 6-16 character ID of the task the comment belongs to - needed to locate the comment and to upload images"),
207
207
  comment_id: zod_1.z.string().min(1).describe("The ID of the comment to edit, as returned by addComment or getTaskById"),
208
208
  comment: zod_1.z.string().min(1).describe("The new comment text, replacing the previous text completely"),
209
209
  }, {
@@ -287,7 +287,7 @@ function registerTaskToolsWrite(server, userData) {
287
287
  }
288
288
  return descriptionBase.join("\n");
289
289
  })(), {
290
- task_id: zod_1.z.string().min(6).max(9).describe("The 6-9 character task ID to update"),
290
+ task_id: zod_1.z.string().min(6).max(16).describe("The 6-16 character task ID to update"),
291
291
  name: taskNameSchema.optional(),
292
292
  append_description: zod_1.z.string().optional().describe("Optional markdown content to APPEND to existing task description (preserves existing content for safety)"),
293
293
  status: zod_1.z.string().optional().describe("Optional new status name - use getListInfo to see valid options"),
@@ -52,7 +52,7 @@ function formatEntryTime(timestamp) {
52
52
  }
53
53
  function registerTimeToolsRead(server) {
54
54
  server.tool("getTimeEntries", "Gets time entries for a specific task or all user's time entries. Returns last 30 days by default if no dates specified.", {
55
- task_id: zod_1.z.string().min(6).max(9).optional().describe("Optional 6-9 character task ID to filter entries. If not provided, returns all user's time entries."),
55
+ task_id: zod_1.z.string().min(6).max(16).optional().describe("Optional 6-16 character task ID to filter entries. If not provided, returns all user's time entries."),
56
56
  start_date: zod_1.z.string().optional().describe("Optional start date filter as ISO date string (e.g., '2024-10-06T00:00:00+02:00'). Defaults to 30 days ago."),
57
57
  end_date: zod_1.z.string().optional().describe("Optional end date filter as ISO date string (e.g., '2024-10-06T23:59:59+02:00'). Defaults to current date."),
58
58
  list_id: zod_1.z.string().optional().describe("Optional single list ID to filter time entries by a specific list"),
@@ -267,7 +267,7 @@ function registerTimeToolsWrite(server) {
267
267
  "IMPORTANT: Before booking time, check the task's status - booking time on tasks in 'backlog', 'closed', or similar inactive states usually doesn't make sense.",
268
268
  "Suggest moving the task to an active status like 'in progress' first."
269
269
  ].join("\n"), {
270
- task_id: zod_1.z.string().min(6).max(9).describe("The 6-9 character task ID to book time against"),
270
+ task_id: zod_1.z.string().min(6).max(16).describe("The 6-16 character task ID to book time against"),
271
271
  hours: zod_1.z.number().min(0.01).max(24).describe("Hours to book (decimal format, e.g., 0.25 = 15min, 1.5 = 1h 30min)"),
272
272
  description: zod_1.z.string().optional().describe("Optional description for the time entry"),
273
273
  start_time: zod_1.z.string().optional().describe("Optional start time as ISO date string (e.g., '2024-10-06T09:00:00+02:00', defaults to current time)")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hauptsache.net/clickup-mcp",
3
- "version": "1.7.2",
3
+ "version": "1.7.3",
4
4
  "description": "Search, create, and retrieve tasks, add comments, and track time through natural language commands.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",