Manage ClickUp tasks, docs, time tracking, comments, chat, and search via official MCP. OAuth authentication required.
Install
Documentation
ClickUp MCP (Official)
Access ClickUp via the official MCP server. Full workspace search, task management, time tracking, comments, chat, and docs.
Setup
Option 1: Direct OAuth (Supported Clients Only)
ClickUp MCP only allows OAuth from allowlisted clients:
- -Claude Desktop, Claude Code, Cursor, VS Code, Windsurf, ChatGPT
Claude Code
claude mcp add clickup --transport http https://mcp.clickup.com/mcp
Then /mcp in session to authorize
Option 2: Claude Code → mcporter (Recommended)
Use Claude Code to OAuth, then extract token for mcporter:
Step 1: Authorize via Claude Codeclaude mcp add clickup --transport http https://mcp.clickup.com/mcp
claude
In Claude Code, run: /mcp
Complete OAuth in browser
Step 2: Extract token
jq -r '.mcpOAuth | to_entries | .[] | select(.key | startswith("clickup")) | .value.accessToken' ~/.claude/.credentials.json
Step 3: Add to environment
Add to ~/.clawdbot/.env
CLICKUP_TOKEN=eyJhbGciOiJkaXIi...
Step 4: Configure mcporter
Add to config/mcporter.json:
{
"mcpServers": {
"clickup": {
"baseUrl": "https://mcp.clickup.com/mcp",
"description": "Official ClickUp MCP",
"headers": {
"Authorization": "Bearer ${CLICKUP_TOKEN}"
}
}
}
}
Step 5: Test
mcporter list clickup
mcporter call 'clickup.clickup_search(keywords: "test", count: 3)'
Token Refresh
Tokens are long-lived (~10 years). If expired:
1. Re-run /mcp in Claude Code
2. Re-extract token from ~/.claude/.credentials.json
3. Update CLICKUP_TOKEN in .env
Available Tools (32)
Search
| Tool | Description |
|------|-------------|
| clickup_search | Universal search across tasks, docs, dashboards, chat, files |
Tasks
| Tool | Description |
|------|-------------|
| clickup_create_task | Create task with name, description, status, assignees, due date, priority |
| clickup_get_task | Get task details (with optional subtasks) |
| clickup_update_task | Update any task field |
| clickup_attach_task_file | Attach file to task (URL or base64) |
| clickup_add_tag_to_task | Add tag to task |
| clickup_remove_tag_from_task | Remove tag from task |
Comments
| Tool | Description |
|------|-------------|
| clickup_get_task_comments | Get all comments on task |
| clickup_create_task_comment | Add comment (supports @mentions) |
Time Tracking
| Tool | Description |
|------|-------------|
| clickup_start_time_tracking | Start timer on task |
| clickup_stop_time_tracking | Stop active timer |
| clickup_add_time_entry | Log time manually |
| clickup_get_task_time_entries | Get time entries for task |
| clickup_get_current_time_entry | Check active timer |
Workspace & Hierarchy
| Tool | Description |
|------|-------------|
| clickup_get_workspace_hierarchy | Get full structure (Spaces, Folders, Lists) |
| clickup_create_list | Create list in Space |
| clickup_create_list_in_folder | Create list in Folder |
| clickup_get_list | Get list details |
| clickup_update_list | Update list settings |
| clickup_create_folder | Create folder in Space |
| clickup_get_folder | Get folder details |
| clickup_update_folder | Update folder settings |
Members
| Tool | Description |
|------|-------------|
| clickup_get_workspace_members | List all workspace members |
| clickup_find_member_by_name | Find member by name/email |
| clickup_resolve_assignees | Get user IDs from names |
Chat
| Tool | Description |
|------|-------------|
| clickup_get_chat_channels | List all Chat channels |
| clickup_send_chat_message | Send message to channel |
Docs
| Tool | Description |
|------|-------------|
| clickup_create_document | Create new Doc |
| clickup_list_document_pages | Get Doc structure |
| clickup_get_document_pages | Get page content |
| clickup_create_document_page | Add page to Doc |
| clickup_update_document_page | Edit page content |
Usage Examples
Search Workspace
mcporter call 'clickup.clickup_search(
keywords: "Q4 marketing",
count: 10
)'
Create Task
mcporter call 'clickup.clickup_create_task(
name: "Review PR #42",
list_id: "901506994423",
description: "Check the new feature",
status: "to do"
)'
Update Task
mcporter call 'clickup.clickup_update_task(
task_id: "abc123",
status: "in progress"
)'
Add Comment
mcporter call 'clickup.clickup_create_task_comment(
task_id: "abc123",
comment_text: "@Mark can you review this?"
)'
Time Tracking
Start timer
mcporter call 'clickup.clickup_start_time_tracking(
task_id: "abc123",
description: "Working on feature"
)'
Stop timer
mcporter call 'clickup.clickup_stop_time_tracking()'
Log time manually (duration in ms, e.g., 2h = 7200000)
mcporter call 'clickup.clickup_add_time_entry(
task_id: "abc123",
start: "2026-01-06 10:00",
duration: "2h",
description: "Code review"
)'
Get Workspace Structure
mcporter call 'clickup.clickup_get_workspace_hierarchy(limit: 10)'
Chat
List channels
mcporter call 'clickup.clickup_get_chat_channels()'
Send message
mcporter call 'clickup.clickup_send_chat_message(
channel_id: "channel-123",
content: "Team standup in 5 minutes!"
)'
Limitations
- -No delete operations — Safety measure; use ClickUp UI
- -No custom fields — Not exposed in official MCP
- -No views management — Not available
- -OAuth required — Must use allowlisted client (Claude Code workaround available)
- -Rate limits — Same as ClickUp API (~100 req/min)
Resources
- -[ClickUp MCP Documentation](https://developer.clickup.com/docs/connect-an-ai-assistant-to-clickups-mcp-server)
- -[Supported Tools](https://developer.clickup.com/docs/mcp-tools)
- -[ClickUp API Reference](https://clickup.com/api)
- -[Feedback / Allowlist Request](https://feedback.clickup.com)
Launch an agent with ClickUp MCP on Termo.