getTaskByIdLABSCO SUMMARY
Append-only descriptions are the reason you can leave writes on.
An agent that rewrites a ticket description can destroy context nobody backed up; here the description can only be appended to with a timestamp, while the fields that are easy to revert through ClickUp's own history — status, priority, assignees — update normally. The image handling is the other differentiator: because it runs on your machine, you can reference a local screenshot by path in a comment and it uploads the file itself rather than squeezing it through base64.
What it is
A local MCP server for ClickUp built for coding tools rather than chat: one call returns a task with its full comment history, status history and inline images, and running locally means it can read a screenshot off disk instead of taking base64.
What you get
getTaskById— complete task detail including comments, images and metadata in a single callsearchTaskswith fuzzy matching over names, descriptions and comments, andsearchSpacesfor workspace structure- Writing:
createTask,updateTask,addComment,editComment, andupdateListInfo - Description fields are append-only — new content is added with a timestamp and existing text is never overwritten, while status, priority, assignees and tags update normally
- Time tracking with
getTimeEntriesandcreateTimeEntry - Documents:
searchDocuments,readDocument,createDocumentOrPage,updateDocumentPage - Three modes selected by environment variable — read-minimal for coding assistants, read for exploration, write for full task management
Requirements
A ClickUp API token as CLICKUP_API_KEY and your workspace id as CLICKUP_TEAM_ID. Install the pre-built bundle for Claude Desktop, which needs no Node, or run the npm package with npx. CLICKUP_MCP_MODE picks the tool surface; MAX_IMAGES and MAX_RESPONSE_SIZE_MB bound what a task detail call returns, and MAX_UPLOAD_SIZE_MB bounds what you write back.
Setup effort
One command plus a key — npx -y @hauptsache.net/clickup-mcp, then supply credentials
USE CASES
Starting work from a ticket
Pull the task with its comments and inline images in one call, then go find the code it is talking about.
Finding the ticket where something was mentioned
Fuzzy-search names, descriptions and comments rather than remembering which board it was on.
Putting a screenshot into a ticket
Reference the local image by path in the comment and let the server upload it.
Logging time you already spent
Create the entry against the task with a description, instead of reconstructing the week on Friday.
Keeping an agent read-only in a coding tool
Set the mode to read-minimal so only task lookup and search are advertised.
15 tools
Listed in project docs. Your client may show a different list.
addCommenteditCommentupdateTaskcreateTasksearchTaskssearchSpacesgetListInfoupdateListInfogetTimeEntriescreateTimeEntryreadDocumentsearchDocumentsupdateDocumentPagecreateDocumentOrPageBEFORE YOU INSTALL
What to know first
Tools you get
15 tools named in the project's documentation.
Requires
- npx on PATH
- CLICKUP_API_KEY in your environment
- CLICKUP_TEAM_ID in your environment
INSTALLATION
Connect your client
Server setup
npx -y @hauptsache.net/clickup-mcpMCP Clients
Claude Desktop — bundle
Download the pre-built bundle from the releases page and open it — you'll get a configuration screen where you are prompted to enter your API key and team ID
Claude Desktop — npx, Windsurf — npx, Cursor — npx
{
"mcpServers": {
"clickup": {
"command": "npx",
"args": [
"@hauptsache.net/clickup-mcp@latest"
],
"env": {
"CLICKUP_API_KEY": "<YOUR_CLICKUP_API_KEY>",
"CLICKUP_TEAM_ID": "<YOUR_CLICKUP_TEAM_ID>"
}
}
}
}Claude Code
claude mcp add --scope user clickup \
--env CLICKUP_API_KEY=<YOUR_CLICKUP_API_KEY> \
--env CLICKUP_TEAM_ID=<YOUR_CLICKUP_TEAM_ID> \
--env CLICKUP_MCP_MODE=read-minimal \
--env MAX_IMAGES=16 \
--env MAX_RESPONSE_SIZE_MB=4 \
-- npx -y @hauptsache.net/clickup-mcpCodex
[mcp_servers.clickup]
command = "npx"
args = ["-y", "@hauptsache.net/clickup-mcp@latest"]
[mcp_servers.clickup.env]
CLICKUP_API_KEY = "<YOUR_CLICKUP_API_KEY>"
CLICKUP_TEAM_ID = "<YOUR_CLICKUP_TEAM_ID>"
CLICKUP_MCP_MODE = "read-minimal"