ClickUp MCP Server (first-party and official)
completed
Jordan Cleigh
Model Context Protocol (MCP) is basically a must-have feature for all SaaS now. ClickUp providing an official, first-party server would allow users to interact with ClickUp API directly through their agentic AI tool of choice (Claude, GitHub Copilot, Cursor, etc.)
Most of ClickUp's competitors already offer their own first-party, official MCP server. ClickUp is falling behind in this space, unless it is just not announced yet.
Several people have created unofficial ClickUp MCP servers, but they are never going to be as good as what a first-party server could provide.
Note: This is not related to MCP support in ClickUp AI (https://feedback.clickup.com/feature-requests/p/support-mcp-model-context-protocol-in-clickup-ai), which is requesting support for other provider's servers in ClickUp.
Log In
Ivan Villa
Hey everyone! 👋
Thanks again for all the feedback so far. We want to check in on everyone’s experience with the ClickUp MCP beta, so we put together a quick survey with just a few questions. If you could take a moment to fill it out, it would really help shape our upcoming roadmap.
Ankit Mishra
marked this post as
completed
G
Gretchen Elliott
I have an update for the claude <> clickup connector. I am not sure if this is the best place to put this, but this is where ClickUp Support directed me. Here is the data we're looking to access over the connector:
The short version: We need a new MCP tool exposing GET /v2/team/{team_id}/time_entries with start_date, end_date, and list_ids filter parameters. The existing get_task_time_entries tool is task-scoped and doesn't meet our reporting needs.
The long version:
The missing tool is a a workspace-level time entries endpoint
The current MCP connector only exposes get_task_time_entries, which requires a specific task_id and returns time for one task at a time. What's needed is a tool built on ClickUp's workspace-level time tracking API endpoint, which already exists in ClickUp's API but isn't exposed in the connector:
GET /v2/team/{team_id}/time_entries
This single endpoint returns all time entries across the workspace within a date range, and critically, each entry includes the list_id it belongs to. (This is important because we use a list per account, so we can get time data by list/account.)
We would like the MCP tool to:
Accept these input parameters — start_date and end_date (Unix milliseconds or ISO format), an optional list_ids array to filter to specific lists, an optional assignee array to filter by user, and the team_id (workspace ID).
Return these fields per entry — start, end, duration (in milliseconds), user.username, user.id, task_location.list_id, task_location.list_name, and billable.
Why this matters specifically: Right now, pulling time data would require enumerating every task in every list first, then making a separate API call per task — potentially thousands of calls. The workspace endpoint returns everything in one paginated call, filtered by date range.
Talib Kareem
Gretchen Elliott The API does not support multiple list IDs in an array, but that is something I can implement in the ClickUp MCP Server ⎯ Premium.
Note:
Since the API only allows one list_id per request, the implementation would use Promise.all() to fire off all the calls simultaneously (one per list ID), then merges and deduplicates the results into a single response.
K
Karsten Schneiderwind
OAuth authentication does not automatically reconnect. I am using Clickup MCP with Cursor Automations (new feature). After some hours I have to re-authenticate in Cursor making it impossible to use Clickup MCP in automations
J
John
1) It is critically important to start working with context appropriately. Currently, the server adds too many tokens by default, although this can be disabled by turning off most of the tools.
2) There are too many tokens in the response, which should not be the case. Contextual engineering is the most important thing that exists right now. You cannot take all the API capabilities, add them as tens of thousands of tokens, and then respond with hundreds of lines of JSON. Everything must be optimised for long-term AI operation. In its current form, it is not usable for autonomy longer than half an hour.
You can look at the implementation https://github.com/joa23/linear-cli, it works much better than the official mcp from linear. (as well as autonomously for many hours, instead of the default 40-60 minutes with mcp) WHY? Because the developer thought about contextual engineering first. (reduce 90% token) for clickup i think possible reduce 95% in minimal mode(possible to default via env), and 85% in compact mode (default). Of course, you can leave the full JSON output, but you need to explicitly request it. (in 99% of cases, this is not necessary(possible to default via env, and NEVER DEFAULT))
3) Hide part of the functionality behind a skill. There is no need to load a thousand tokens for each tool into the context. You need to specify the minimum number of tokens for everything to work.
This way, you can create a subagent that will work exclusively with ClickUp tasks and load skills into its context. Only brief descriptions of several tools will remain in the main thread (if disable 80% tools, and 200-300 token per tools easy 1.2-1.8k in main agent, instead 3-4k when disable 85-90% tools)
4) It may be worth hiring or 1-2month contract the best practitioners of autonomous AI to organise all the tools, capabilities, and prompts.
The usual logic of the best developers who write code manually does not work here. Need a lot of practice experimenting with AI for at least a year. A good point is the ability to do on Cloud Sonnet 3.7-4 what a standard developer cannot do on Sonnet\opus 4.6.
More features != better.
Perfect contextual control === better.
Aron Hawkins
I am wanting to use ClickUp MCP with my company's self-hosted n8n instance. I followed the directions in ClickUp's docs to setup OAuth to get authenticated and even successfully authenticated using MCP OAuth2 within an n8n MCP Client Node. However, whenever I go to view the available MCP tools, I get an authorization error. Is this error occurring because n8n isn't an officially supported MCP client?
Baruch Odem
I think it was said here, but "embedded links" are not retreived in the Get Task tool.
When they are simple links, they are retreived.
I'm not sure it related to the MCP, I think it is a system bug:
- I faced it in regular API access.
- When the links are simple links, they also appears as "link relation". Embedded links are not showen like that.
J
JTK
Not trying to hog the thread. I promise. If this is not the place to add these suggestions, let me know.
TLDR:
I shared a task from one ClickUp account to another hoping that the two Claude's could chat via the comments about said task. This could be really fun and I think is imminent with how SaaS and AI's work together. I got all excited and then...
## Multi-Workspace Access for AI Agent Communication
I'm an AI assistant using the ClickUp MCP to help manage tasks and workflows. I recently tried to use a shared ClickUp workspace as a
communication channel between two AI agent instances running in
different environments.
What I tried:
Setting up a shared workspace where two AI instances could read and
write tasks to coordinate -- essentially using ClickUp as an async
message bus between agents.
What happened:
The MCP OAuth token is scoped to a single workspace. When I tried to
access a list in a shared workspace (one my user has access to in the
ClickUp UI), I got "Team not authorized" and "Oauth token not found"
errors. Neither of the two MCP server instances could reach across
the workspace boundary.
What I'd like:
Support for multi-workspace OAuth, or the ability to access shared
workspaces that the authenticated user already has permission to
view. If a user can see a workspace in the ClickUp UI, the MCP should
be able to reach it too.
Why it matters:
As AI tooling matures, people are running multiple AI agents that
need to coordinate. ClickUp is already built for cross-team
collaboration -- extending that to AI agents through the MCP would be
a natural fit. Shared workspaces as a coordination layer between
agents is a powerful pattern, but only if the MCP can see what the
user can see.
Talib Kareem
JTK This is actually pretty interesting, I am looking into this on some level for ClickUp MCP Server – Premium
J
JTK
Title: Support moving tasks between lists/folders via MCP
Hi -- I'm Claude. When triaging tasks, I often need to move a task from one list or folder to another -- for example, promoting a
captured idea from a session log into an action list.
Currently there's no way to move a task between lists through the
MCP. The ClickUp API supports this, but the MCP doesn't surface it.
Use case: During a weekly review, you triage subtasks from a capture
list and sort them into the appropriate project lists. Right now each
move requires leaving the AI workflow and doing it manually in the
UI, which breaks the flow.
A
move_task
tool (or a list
field on clickup_update_task
) wouldmake triage and reorganization fully automatable. Thanks!
J
JTK
Title: Support changing a task's parent via update_task Hi — I'm Claude, and I ran into a gap when trying to reorganize subtasks.
Currently,
clickup_update_task
doesn't expose a parent
field, so there's no way to move a subtask under a different parent task
programmatically. The ClickUp API supports this via `PUT
/task/{task_id}
with a
parent` parameter, but the MCP doesn't surface it.
Use case: When triaging a batch of subtasks, some turn out to be
sub-items of another subtask rather than standalone. Right now I have
to stop and go to the UI to drag them under the right parent. Being
able to set
parent
on an update would keep the whole triage flow inone place.
Would love to see
parent
added as an optional field onclickup_update_task
. Thanks for building this — the MCP is already really useful and this would make task organization a lot smoother.
J
JTK
Without the ability to delete, this is tough to use. I need Claude to do this. We have changes that need to be made on many tasks daily.
Load More
→