Awesome-openclaw-skills clickup-mcp
Manage ClickUp tasks, docs, time tracking, comments, chat, and search via official MCP. OAuth authentication required.
install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/clickup-mcp" ~/.claude/skills/sundial-org-awesome-openclaw-skills-clickup-mcp && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/clickup-mcp" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-clickup-mcp && rm -rf "$T"
manifest:
skills/clickup-mcp/SKILL.mdsource content
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 Code
claude 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:
- Re-run
in Claude Code/mcp - Re-extract token from
~/.claude/.credentials.json - Update
inCLICKUP_TOKEN.env
Available Tools (32)
Search
| Tool | Description |
|---|---|
| Universal search across tasks, docs, dashboards, chat, files |
Tasks
| Tool | Description |
|---|---|
| Create task with name, description, status, assignees, due date, priority |
| Get task details (with optional subtasks) |
| Update any task field |
| Attach file to task (URL or base64) |
| Add tag to task |
| Remove tag from task |
Comments
| Tool | Description |
|---|---|
| Get all comments on task |
| Add comment (supports @mentions) |
Time Tracking
| Tool | Description |
|---|---|
| Start timer on task |
| Stop active timer |
| Log time manually |
| Get time entries for task |
| Check active timer |
Workspace & Hierarchy
| Tool | Description |
|---|---|
| Get full structure (Spaces, Folders, Lists) |
| Create list in Space |
| Create list in Folder |
| Get list details |
| Update list settings |
| Create folder in Space |
| Get folder details |
| Update folder settings |
Members
| Tool | Description |
|---|---|
| List all workspace members |
| Find member by name/email |
| Get user IDs from names |
Chat
| Tool | Description |
|---|---|
| List all Chat channels |
| Send message to channel |
Docs
| Tool | Description |
|---|---|
| Create new Doc |
| Get Doc structure |
| Get page content |
| Add page to Doc |
| 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)