Productivity & TasksDocumentedScanned

clickup-mcp

Manage ClickUp tasks, docs, time tracking, comments, chat, and search via official.

Share:

Installation

npx clawhub@latest install clickup-mcp

View the full skill documentation and source below.

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 
# 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 Code

claude mcp add clickup --transport http 
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": "",
      "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:

  • Re-run /mcp in Claude Code

  • Re-extract token from ~/.claude/.credentials.json

  • Update CLICKUP_TOKEN in .env
  • Available Tools (32)

    Search

    ToolDescription
    clickup_searchUniversal search across tasks, docs, dashboards, chat, files

    Tasks

    ToolDescription
    clickup_create_taskCreate task with name, description, status, assignees, due date, priority
    clickup_get_taskGet task details (with optional subtasks)
    clickup_update_taskUpdate any task field
    clickup_attach_task_fileAttach file to task (URL or base64)
    clickup_add_tag_to_taskAdd tag to task
    clickup_remove_tag_from_taskRemove tag from task

    Comments

    ToolDescription
    clickup_get_task_commentsGet all comments on task
    clickup_create_task_commentAdd comment (supports @mentions)

    Time Tracking

    ToolDescription
    clickup_start_time_trackingStart timer on task
    clickup_stop_time_trackingStop active timer
    clickup_add_time_entryLog time manually
    clickup_get_task_time_entriesGet time entries for task
    clickup_get_current_time_entryCheck active timer

    Workspace & Hierarchy

    ToolDescription
    clickup_get_workspace_hierarchyGet full structure (Spaces, Folders, Lists)
    clickup_create_listCreate list in Space
    clickup_create_list_in_folderCreate list in Folder
    clickup_get_listGet list details
    clickup_update_listUpdate list settings
    clickup_create_folderCreate folder in Space
    clickup_get_folderGet folder details
    clickup_update_folderUpdate folder settings

    Members

    ToolDescription
    clickup_get_workspace_membersList all workspace members
    clickup_find_member_by_nameFind member by name/email
    clickup_resolve_assigneesGet user IDs from names

    Chat

    ToolDescription
    clickup_get_chat_channelsList all Chat channels
    clickup_send_chat_messageSend message to channel

    Docs

    ToolDescription
    clickup_create_documentCreate new Doc
    clickup_list_document_pagesGet Doc structure
    clickup_get_document_pagesGet page content
    clickup_create_document_pageAdd page to Doc
    clickup_update_document_pageEdit 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]()
    • [Supported Tools]()
    • [ClickUp API Reference]()
    • [Feedback / Allowlist Request]()