feat: add support for custom task IDs (e.g., CHIEF-5804) #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Adds support for custom task IDs (e.g.,
CHIEF-5804) in addition to internal IDs (e.g.,86b852ppx). When a custom task ID is detected, the API calls automatically includecustom_task_ids=trueandteam_idparameters as required by the ClickUp API.Problem
The MCP currently only accepts internal 6-9 character task IDs. Users who use ClickUp's custom task ID feature cannot reference tasks by their custom IDs.
Solution
^[A-Z]+-\d+$(e.g.,CHIEF-5804,PROJ-123)custom_task_ids=trueandteam_idquery parameters for API calls when custom IDs are usedFiles Changed
isCustomTaskId()helper, updatedisTaskId()to validate both formatsloadTaskContent,loadTaskComments,loadTimeInStatusHistoryaddCommentandupdateTask, added custom ID params to all API calls (fetch, update, tag add/remove, refresh)getTimeEntriesandcreateTimeEntryTesting Done
npm run build✅Test Plan for Reviewer
getTaskByIdwith custom ID (e.g.,CHIEF-5804) - should fetch task correctlygetTaskByIdwith internal ID (e.g.,86b852ppx) - should still work (backwards compatible)updateTaskwith custom IDaddCommentwith custom IDsearchTaskswith custom ID in terms array - should find via direct fetchgetTimeEntrieswith custom ID filtercreateTimeEntrywith custom IDNotes
CLICKUP_TEAM_IDenv var is already required by this MCP, so no new configuration is needed🤖 Generated with Claude Code