@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.
package/dist/clickup-text.js
CHANGED
|
@@ -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,
|
|
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
|
*/
|
package/dist/shared/utils.d.ts
CHANGED
|
@@ -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-
|
|
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
|
/**
|
package/dist/shared/utils.js
CHANGED
|
@@ -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-
|
|
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-
|
|
30
|
-
return /^[a-z0-9]{6,
|
|
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;
|
package/dist/tools/task-tools.js
CHANGED
|
@@ -17,11 +17,11 @@ function registerTaskToolsRead(server, userData) {
|
|
|
17
17
|
id: zod_1.z
|
|
18
18
|
.string()
|
|
19
19
|
.min(6)
|
|
20
|
-
.max(
|
|
20
|
+
.max(16)
|
|
21
21
|
.refine(val => (0, utils_1.isTaskId)(val), {
|
|
22
|
-
message: "Task ID must be 6-
|
|
22
|
+
message: "Task ID must be 6-16 alphanumeric characters only"
|
|
23
23
|
})
|
|
24
|
-
.describe(`The 6-
|
|
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(
|
|
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(
|
|
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(
|
|
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"),
|
package/dist/tools/time-tools.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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