Skip to main content
Glama
ClickUp MCP Server
by azukhrufy

ClickUp MCP Server

A Model Context Protocol (MCP) server that provides comprehensive access to the ClickUp API — enabling AI assistants like Cline, Claude Code, and others to read, write, update, and delete ClickUp documentation, plus access the full ClickUp API surface.

✨ Features

šŸ“„ Docs Management (v3 API)

Full CRUD operations on ClickUp Docs and Pages:

  • get_docs / get_doc / get_doc_pages / get_doc_page — Read docs & pages

  • create_doc / create_doc_page — Create docs & pages

  • update_doc / update_doc_page — Update docs & pages

  • delete_doc / delete_doc_page — Delete docs & pages

  • get_doc_blocks / create_doc_blocks / update_doc_blocks / delete_doc_blocks — Block-level editing

šŸ—‚ļø Full ClickUp API Coverage (84+ tools)

  • Workspaces: Get teams & workspace details

  • Spaces: Full CRUD for spaces

  • Folders: Full CRUD for folders

  • Lists: Full CRUD for lists

  • Tasks: Full CRUD, filtering, status updates, assignees, tags

  • Comments: Read/create/update/delete on tasks & lists

  • Checklists: Full CRUD for checklists & items

  • Members: View & invite team members

  • Goals: Full CRUD for goals

  • Time Tracking: View/create/delete time entries

  • Views: Read views at any level

  • Webhooks: Full CRUD for webhooks

  • Tags: Full CRUD for space tags

  • Custom Fields: Read & set custom field values

  • Task Templates: Read/create/delete templates

  • Plus: Task relationships, links, dependencies, attachments, guests, roles, shared hierarchy

Related MCP server: Pryazilim ClickUp MCP Server

šŸ“¦ Installation

Setelah repo ini di-push ke GitHub, kamu bisa langsung install MCP server ini ke Cline dengan cara:

  1. Copy link GitHub repo ini, contoh:

    https://github.com/azukhrufy/clickup-mcp-server
  2. Paste link tersebut ke Cline dan beri perintah seperti ini:

    Install MCP server dari repo ini: https://github.com/azukhrufy/clickup-mcp-server

    atau

    Tambahkan MCP server ClickUp dari https://github.com/azukhrufy/clickup-mcp-server
  3. Cline akan otomatis:

    • Clone repo ke folder MCP servers

    • Install dependencies (npm install)

    • Build project (npm run build)

    • Menambahkan konfigurasi ke cline_mcp_settings.json

  4. Masukkan ClickUp API Token saat diminta (lihat bagian Konfigurasi)

  5. Restart Cline — tools ClickUp akan muncul di panel MCP servers

šŸ“¦ Install Langsung dari GitHub (Tanpa Path Lokal)

Cara ini langsung mengarah ke link GitHub — tidak perlu path lokal. npx akan otomatis clone, install, build, dan jalankan dari repo GitHub.

Konfigurasi di cline_mcp_settings.json:

{
  "mcpServers": {
    "clickup": {
      "command": "npx",
      "args": ["-y", "github:azukhrufy/clickup-mcp-server"],
      "env": {
        "CLICKUP_API_TOKEN": "pk_your_api_token_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Untuk branch tertentu:

{
  "args": ["-y", "github:azukhrufy/clickup-mcp-server#branch-name"]
}

šŸ“¦ Install via npx (Setelah di-publish ke npm)

# Langsung jalankan tanpa clone
npx clickup-mcp-server

Konfigurasi di cline_mcp_settings.json:

{
  "mcpServers": {
    "clickup": {
      "command": "npx",
      "args": ["-y", "clickup-mcp-server"],
      "env": {
        "CLICKUP_API_TOKEN": "pk_your_api_token_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

šŸ“¦ Install Manual (Clone)

# Clone the repository
git clone https://github.com/azukhrufy/clickup-mcp-server.git
cd clickup-mcp-server

# Install dependencies
npm install

# Build the server
npm run build

šŸ”‘ Configuration

1. Get a ClickUp API Token

  1. Log in to ClickUp

  2. Go to Settings → Apps (or https://app.clickup.com/settings/apps)

  3. Click Generate under the API Token section

  4. Copy the token (starts with pk_ for Personal Tokens)

2. Add to Cline (VS Code)

Add the MCP server to your Cline settings file: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

{
  "mcpServers": {
    "clickup": {
      "command": "node",
      "args": ["/absolute/path/to/clickup-mcp-server/build/index.js"],
      "env": {
        "CLICKUP_API_TOKEN": "pk_your_api_token_here"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

3. Add to Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "clickup": {
      "command": "node",
      "args": ["/absolute/path/to/clickup-mcp-server/build/index.js"],
      "env": {
        "CLICKUP_API_TOKEN": "pk_your_api_token_here"
      }
    }
  }
}

šŸš€ Usage

Reading a ClickUp Doc

ClickUp doc URLs follow this format:

https://app.clickup.com/{team_id}/v/dc/{doc_id}/{page_id}

Example with the Cline tools:

get_doc_page(team_id="36768531", doc_id="1322rk-9596", page_id="1322rk-32376")

Example prompts you can ask your AI assistant:

  • "List my ClickUp workspaces"

  • "Get all docs in my workspace"

  • "Read the contents of doc XYZ page 123"

  • "Create a new doc called 'Meeting Notes'"

  • "Update the status of task ABC to 'in progress'"

  • "Create a checklist on task DEF"

šŸ› ļø Development

# Watch mode for development
npm run dev

# Build TypeScript
npm run build

šŸ“ Project Structure

clickup-mcp-server/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts          # MCP server implementation (tool definitions & handlers)
│   └── clickup-api.ts    # ClickUp API v2 + v3 client wrapper
ā”œā”€ā”€ build/                # Compiled JavaScript output
ā”œā”€ā”€ tsconfig.json
ā”œā”€ā”€ package.json
└── README.md

šŸ”§ Architecture Notes

  • Dual API clients: The server uses ClickUp's v2 API for standard endpoints (teams, spaces, tasks, etc.) and v3 API for Docs endpoints (/workspaces/{team_id}/docs/...)

  • Stdio transport: Communication happens over standard input/output

  • TypeScript: Full type safety with strict mode

  • Error handling: Standardized error messages with HTTP status codes

šŸ“„ License

MIT

šŸ¤ Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

Available Tools

89 tools
add_task_assigneeA

Add an assignee to a ClickUp task.

Inputs: task_id (required), assignee_id (required).

add_task_dependencyC

Add a dependency to a ClickUp task.

Inputs: task_id (required), depends_on, dependent_on.

add_task_relationshipC

Add a relationship between two ClickUp tasks.

Inputs: task_id (required), relationships (required).

add_task_tagA

Add a tag to a ClickUp task.

Inputs: task_id (required), tag_name (required).

create_checklistA

Create a checklist on a ClickUp task.

Inputs: name (required), task_id (required).

create_checklist_itemB

Create an item in a ClickUp checklist.

Inputs: name (required), checklist_id (required), assignee.

create_docB

Create a new ClickUp Doc in a team/workspace.

Inputs: name (required), team_id (required), parent, content, +2 more.

create_doc_blocksB

Create content blocks in a ClickUp Doc.

Inputs: blocks (required), doc_id (required), team_id (required).

create_doc_pageC

Create a new page in a ClickUp Doc.

Inputs: doc_id (required), team_id (required), name, content, +2 more.

create_folderB

Create a new folder in a ClickUp space.

Inputs: name (required), space_id (required).

create_goalB

Create a new goal in a ClickUp team/workspace.

Inputs: name (required), team_id (required), color, owners, +3 more.

create_listA

Create a new list in a ClickUp folder or space. Provide either folder_id or space_id.

Inputs: name (required), status, content, assignee, +5 more.

create_spaceB

Create a new space in a ClickUp team/workspace.

Inputs: name (required), team_id (required), features, multiple_assignees.

create_space_tagB

Create a tag in a ClickUp space.

Inputs: space_id (required), tag_name (required), tag_bg_color, tag_fg_color.

create_taskC

Create a new task in a ClickUp list.

Inputs: name (required), list_id (required), tags, parent, +14 more.

create_task_commentB

Create a comment on a ClickUp task.

Inputs: task_id (required), comment_text (required), assignee, notify_all.

create_task_from_templateB

Create a task from a ClickUp template.

Inputs: list_id (required), template_id (required).

create_time_entryA

Create a time entry for a ClickUp task.

Inputs: start (required), task_id (required), team_id (required), duration (required), +2 more.

create_webhookB

Create a webhook for a ClickUp team/workspace.

Inputs: events (required), team_id (required), endpoint (required), list_id, +3 more.

delete_checklistB

Delete a ClickUp checklist.

Inputs: checklist_id (required).

delete_checklist_itemB

Delete a ClickUp checklist item.

Inputs: checklist_id (required), checklist_item_id (required).

delete_commentB

Delete a ClickUp comment.

Inputs: comment_id (required).

delete_docA

Delete a ClickUp Doc by ID.

Inputs: doc_id (required), team_id (required).

delete_doc_blocksB

Delete content blocks from a ClickUp Doc.

Inputs: doc_id (required), team_id (required), block_ids (required).

delete_doc_pageB

Delete a page within a ClickUp Doc.

Inputs: doc_id (required), page_id (required), team_id (required).

delete_folderB

Delete a ClickUp folder.

Inputs: folder_id (required).

delete_goalB

Delete a ClickUp goal.

Inputs: goal_id (required).

delete_listA

Delete a ClickUp list.

Inputs: list_id (required).

delete_spaceB

Delete a ClickUp space.

Inputs: space_id (required).

delete_space_tagA

Delete a tag from a ClickUp space.

Inputs: space_id (required), tag_name (required).

delete_taskB

Delete a ClickUp task.

Inputs: task_id (required).

delete_task_dependencyB

Delete a dependency from a ClickUp task.

Inputs: task_id (required), depends_on, dependent_on.

delete_task_relationshipB

Delete a relationship between two ClickUp tasks.

Inputs: task_id (required), relationship_id (required).

delete_task_templateB

Delete a ClickUp task template.

Inputs: team_id (required), template_id (required).

delete_time_entryA

Delete a ClickUp time entry.

Inputs: team_id (required), time_entry_id (required).

delete_webhookA

Delete a ClickUp webhook.

Inputs: webhook_id (required).

edit_checklistC

Edit a ClickUp checklist.

Inputs: checklist_id (required), name.

get_custom_fieldsA

Get custom fields for a ClickUp space or list.

Inputs: list_id, space_id.

get_custom_rolesA

Get custom roles defined in a ClickUp team/workspace.

Inputs: team_id (required).

get_docA

Get a single ClickUp Doc by ID.

Inputs: doc_id (required), team_id (required).

get_doc_blocksB

Get the content blocks of a ClickUp Doc.

Inputs: doc_id (required), team_id (required), page, limit.

get_doc_pageA

Get a single page within a ClickUp Doc with its full content.

Inputs: doc_id (required), page_id (required), team_id (required).

get_doc_pagesA

Get all pages in a ClickUp Doc.

Inputs: doc_id (required), team_id (required).

get_docsB

Get all ClickUp Docs in a team/workspace.

Inputs: team_id (required), limit, archived.

get_folderA

Get details of a single ClickUp folder.

Inputs: folder_id (required).

get_foldersB

Get all folders in a ClickUp space.

Inputs: space_id (required), archived.

get_goalsA

Get all goals in a ClickUp team/workspace.

Inputs: team_id (required), include_completed.

get_guestsA

Get all guests in a ClickUp team/workspace.

Inputs: team_id (required).

get_listB

Get details of a single ClickUp list.

Inputs: list_id (required).

get_list_commentsB

Get all comments on a ClickUp list.

Inputs: list_id (required), start, start_id.

get_listsA

Get all lists in a ClickUp folder or space. Provide either folder_id or space_id.

Inputs: archived, space_id, folder_id.

get_membersB

Get members of a ClickUp space, folder, or list.

Inputs: list_id, space_id, folder_id.

get_shared_hierarchyC

Get the shared hierarchy (all shared resources) for a ClickUp team/workspace.

Inputs: team_id (required).

get_spaceA

Get details of a single ClickUp space.

Inputs: space_id (required).

get_spacesB

Get all spaces in a ClickUp team/workspace.

Inputs: team_id (required), archived.

get_space_tagsA

Get all tags in a ClickUp space.

Inputs: space_id (required).

get_taskA

Get details of a single ClickUp task.

Inputs: task_id (required), include_subtasks, include_markdown_description.

get_task_attachmentsA

Get all attachments on a ClickUp task.

Inputs: task_id (required).

get_task_checklistsB

Get all checklists on a ClickUp task.

Inputs: task_id (required).

get_task_commentsB

Get all comments on a ClickUp task.

Inputs: task_id (required), start, start_id.

get_task_dependenciesC

Get dependencies of a ClickUp task.

Inputs: task_id (required).

get_tasksB

Get all tasks from a ClickUp list with optional filtering by status, assignee, tags, dates, etc.

Inputs: list_id (required), page, tags, reverse, +14 more.

get_task_templatesA

Get all task templates in a ClickUp team/workspace.

Inputs: team_id (required), page.

get_teamA

Get details of a single ClickUp team/workspace.

Inputs: team_id (required).

get_team_membersA

Get all members of a ClickUp team/workspace.

Inputs: team_id (required).

get_teamsA

Get all teams (workspaces) the authenticated user has access to in ClickUp. Returns team IDs needed for most other API calls.

Inputs: no named parameters.

get_team_tasksA

Get tasks across a whole ClickUp team/workspace with filters.

Inputs: team_id (required), page, tags, reverse, +9 more.

get_time_entriesB

Get tracked time entries for a ClickUp team/workspace.

Inputs: team_id (required), list_id, task_id, assignee, +4 more.

get_viewsA

Get views for a ClickUp team, space, folder, or list.

Inputs: list_id, team_id, space_id, folder_id.

get_webhooksA

Get all webhooks for a ClickUp team/workspace.

Inputs: team_id (required).

invite_team_memberC

Invite a user to a ClickUp team/workspace.

Inputs: email (required), team_id (required), can_edit_tags, can_create_tags, +4 more.

remove_task_assigneeB

Remove an assignee from a ClickUp task.

Inputs: task_id (required), assignee_id (required).

remove_task_tagA

Remove a tag from a ClickUp task.

Inputs: task_id (required), tag_name (required).

set_custom_field_valueB

Set a custom field value on a ClickUp task.

Inputs: value (required), task_id (required), field_id (required).

set_task_statusC

Set the status of a ClickUp task.

Inputs: status (required), task_id (required).

update_checklist_itemC

Update a ClickUp checklist item.

Inputs: checklist_id (required), checklist_item_id (required), name, assignee, +1 more.

update_commentC

Update an existing ClickUp comment.

Inputs: comment_id (required), comment_text (required), assignee, resolved.

update_docC

Update an existing ClickUp Doc.

Inputs: doc_id (required), team_id (required), name, parent, +2 more.

update_doc_blocksB

Update content blocks in a ClickUp Doc.

Inputs: blocks (required), doc_id (required), team_id (required).

update_doc_pageB

Update a page within a ClickUp Doc.

Inputs: doc_id (required), page_id (required), team_id (required), name, +2 more.

update_folderB

Update an existing ClickUp folder.

Inputs: folder_id (required), name.

update_goalB

Update an existing ClickUp goal.

Inputs: goal_id (required), name, color, owners, +3 more.

update_listB

Update an existing ClickUp list.

Inputs: list_id (required), name, content, assignee, +4 more.

update_spaceB

Update an existing ClickUp space.

Inputs: space_id (required), name, features, multiple_assignees.

update_space_tagB

Update a tag in a ClickUp space.

Inputs: space_id (required), tag_name (required), new_tag_name, tag_bg_color, +1 more.

update_taskC

Update an existing ClickUp task.

Inputs: task_id (required), name, tags, status, +11 more.

update_webhookC

Update an existing ClickUp webhook.

Inputs: webhook_id (required), events, status, endpoint.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 89 tools

    Disambiguation4/5

    Most tools have distinct resource-action pairs (e.g., get_spaces vs create_space), but a few overlap like link_tasks vs add_task_relationship and get_team_members vs get_members, which could confuse an agent.

    Naming Consistency4/5

    The naming is largely consistent using verb_noun patterns (get_, create_, update_, delete_), with occasional deviations like add_task_assignee, remove_task_tag, set_task_status, and link_tasks. These are still understandable but not perfectly uniform.

    Tool Count1/5

    With 89 tools, the server is extremely heavy. Even for a comprehensive ClickUp API wrapper, this exceeds reasonable MCP server scope and could overwhelm agents with choice.

    Completeness4/5

    The tool set covers most CRUD operations for teams, spaces, folders, lists, tasks, docs, comments, checklists, goals, time entries, and webhooks. Minor gaps exist, such as no update or delete for team members and no update for time entries.

    Related MCP Connectors

    Related MCP Servers