Properly Connect ClickUp to AI Agents and Agentic Workflows
A high-performance Model Context Protocol (MCP) server for managing tasks, checklists, sprints, comments, tags, spaces, lists, folders, files, docs, chat, and time using natural language.
⭐️ Proven Performance: 460+ Stars (from previous public repo) & thousands of weekly NPM downloads.
The industry-standard ClickUp integration for AI.
📚 Table of Contents
| Links | Quick Start & Installation |
|---|---|
| • Features• Premium Access• Available Tools• Adv. Config• FAQ• Disclaimer | Antigravity Agy CLI Hermes OpenClaw Cursor VS Code Claude ClaudeCode n8n Codex ChatGPT Augment Auggie Windsurf Roo Code ➕ Add Agent |
✨ Features
🔥 Multi-Account Support: Manage multiple authorized workspaces seamlessly in a single session. See setup
💎 Premium Access
This project transitioned from open-source to a paid model for sustainable full-time development and priority support. A license grants full, unrestricted access to all features across your agents⎯no limits.
| Monthly $9/mo | Annual $59/yr | Lifetime $89 w/ code |
|---|---|---|
| • Pay-as-you-go flexibility• 3 device activations• Cancel anytime | • Save 45% ($4.92/mo)• 3 device activations• Priority support all year | • Best Value — One payment• 3 device activations• 25% OFF code: JUL25 |
⚡️ Instant Key Delivery (Polar.sh) • Setup takes less than 2 mins
🚀 Quick Start
1. Prerequisites
-
License Key: See above
-
ClickUp API Key (Optional - not needed for Remote MCP)
- Log into ClickUp and go to ClickUp Settings → Apps.
- Click Generate under "API Token" (or copy your existing one).
-
ClickUp Team ID (Optional - not needed for Remote MCP)
- Open ClickUp in your browser.
- Look at the URL:
https://app.clickup.com/1234567/v/li/987654321. - The first number (
1234567) directly afterclickup.com/is your Team ID (Workspace ID).
2. Choose your MCP Host & Transport
Download from antigravity.google. Covers Antigravity IDE (VS Code-based agentic editor) and Antigravity 2.0 (standalone desktop agent orchestration app). Both share the same configuration file.
Configuration Path: ~/.gemini/config/mcp_config.json
Tip: Open the Agent Panel → ... → Manage MCP Servers → View raw config to open this file directly. Or type
/mcpin the prompt panel.
Option A: Remote / Streamable HTTP (Recommended)
{
"mcpServers": {
"ClickUp": {
"serverUrl": "https://clickup-mcp.taazkareem.com/mcp",
"headers": { "X-License-Key": "your-license-key" }
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
A lightweight terminal-based interface (TUI) for Antigravity agents. Install with:
curl -fsSL https://antigravity.google/cli/install.sh | bash
Configuration Path: ~/.gemini/antigravity-cli/mcp_config.json
Tip: Run
agyand type/mcpin the interactive session to manage servers from within the TUI.
Option A: Remote / Streamable HTTP (Recommended)
{
"mcpServers": {
"ClickUp": {
"serverUrl": "https://clickup-mcp.taazkareem.com/mcp",
"headers": { "X-License-Key": "your-license-key" }
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
Single Agent Configuration Path: ~/.hermes/config.yaml
Option A: Remote / Streamable HTTP
hermes mcp add clickup \
--url https://clickup-mcp.taazkareem.com/mcp \
--auth oauth && \
hermes config set mcp_servers.clickup.headers.X-License-Key "your-license-key"
Option B: Local / STDIO
hermes mcp add clickup \
--command npx \
--args -y @taazkareem/clickup-mcp-server@latest \
--env CLICKUP_API_KEY="your-api-key" \
CLICKUP_TEAM_ID="your-team-id" \
CLICKUP_MCP_LICENSE_KEY="your-license-key"
- Run it:
hermes
Multi-Agent Setup (Profiles + Personas)
Run a team of specialized agents on the same workspace (or separate). Each Hermes profile is an isolated agent with its own config and SOUL.md instructions. Configure each profile to match a persona (X-Persona) as needed. This will scope which ClickUp tools is in its context. Guide with examples:
1. Create the profiles
hermes profile create project_manager
hermes profile create task_worker
hermes profile create auditor
Optional: Use
--cloneto copy the existing config.yaml/.env/SOUL.md, or re-run the commands from above.
2. Set each profile's persona. The profile has the MCP config now, so just add the matching persona:
project_manager config set mcp_servers.clickup.headers.X-Persona "project_manager"
task_worker config set mcp_servers.clickup.headers.X-Persona "task_worker"
auditor config set mcp_servers.clickup.headers.X-Persona "auditor"
See → Advanced Configuration for more customized filtering options.
3. Give each agent its instructions in ~/.hermes/profiles/<name>/SOUL.md (auditor shown):
# ClickUp Auditor
You are a read-only project auditor. Observe and report — never change anything.
- Summarize task status, overdue items, and blockers concisely.
- Surface risks and recommend actions, but never execute them.
- If asked to create or modify a task, decline and explain you are read-only.
Run any agent query by its profile (call by User or Agent):
project_manager chat -q "Break the Q3 launch into a list with subtasks and owners"
auditor chat -q "Audit the Sprint board and report what's at risk"
-OR-
Run a TUI or Gateway called by User:
project_manager gateway start
auditor chat
Other (Custom Agents, etc.) For most other MCP-compliant hosts:
- Server URL:
https://clickup-mcp.taazkareem.com/mcp - Auth Header:
X-License-Key: your-license-key
1. Enable mcporter in ~/.openclaw/openclaw.json:
{ "skills": { "allowBundled": ["mcporter"] } }
2. Configure & Auth
# Add ClickUp as a remote server
mcporter config add ClickUp https://clickup-mcp.taazkareem.com/mcp --auth oauth --header "X-License-Key=your-license-key"
# Authenticate session
mcporter auth ClickUp
Pro Tip: Use Personas to define multiple isolated configurations (e.g., Auditor vs. Worker) in your agent's
mcporter.json.
Configuration Path: <project-root>/.cursor/mcp.json
Option A: Remote / Streamable HTTP (Easiest)
{
"mcpServers": {
"ClickUp": {
"url": "https://clickup-mcp.taazkareem.com/mcp",
"headers": {
"X-License-Key": "your-license-key"
}
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
Configuration Paths:
- Global:
~/Library/Application Support/Code/User/mcp.json - Local:
<project-root>/.vscode/mcp.json
Option A: Remote / Streamable HTTP (Easiest)
{
"mcpServers": {
"ClickUp": {
"url": "https://clickup-mcp.taazkareem.com/mcp",
"headers": {
"X-License-Key": "your-license-key"
}
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
Configuration Path: <project-root>/.roo/mcp.json
Option A: Remote / Streamable HTTP (Easiest)
{
"mcpServers": {
"ClickUp": {
"url": "https://clickup-mcp.taazkareem.com/mcp",
"headers": {
"X-License-Key": "your-license-key"
}
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
Configuration Path: ~/Library/Application Support/Claude/claude_desktop_config.json
Remote Setup (Requires mcp-remote adapter):
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://clickup-mcp.taazkareem.com/mcp",
"--header",
"X-License-Key: your-license-key"
]
}
}
}
Run this command in your terminal:
claude mcp add --transport http ClickUp https://clickup-mcp.taazkareem.com/mcp \
--header "X-License-Key: your-license-key"
Option A: Remote / Streamable HTTP (Recommended)
- In n8n, add an "MCP Client" node.
- Set Connection Type to
Streamable HTTP. - Auth Type:
Multiple Headers Auth. - Header:
X-License-KeyValue:your-license-key - URL:
https://clickup-mcp.taazkareem.com/mcp
Option B: Self-Hosted Docker Run the container:
docker run -d -p 3231:3231 ghcr.io/taazkareem/clickup-mcp-server:latest
In n8n, use URL: http://host.docker.internal:3231/mcp
Codex clients (CLI, Desktop App, and VS Code extension) share a single source of truth for configuration.
Configuration Paths:
- Global:
~/.codex/config.toml - Local:
<project-root>/.codex/config.toml
Option A: Remote / Streamable HTTP (Easiest)
[mcp_servers.ClickUp]
url = "https://clickup-mcp.taazkareem.com/mcp"
http_headers = { "X-License-Key" = "your-license-key" }
Option B: Local / STDIO
[mcp_servers.ClickUp]
command = "npx"
args = ["-y", "@taazkareem/clickup-mcp-server@latest"]
env = {
CLICKUP_API_KEY = "your-api-key",
CLICKUP_TEAM_ID = "your-team-id",
CLICKUP_MCP_LICENSE_KEY = "your-license-key"
}
Quick Tips:
- Codex CLI: Run
codex mcp listto verify. Usecodex mcp add ...as a CLI alternative to editing the file. - VS Code Extension: Click ⚙ → MCP settings → Open config.toml.
- Desktop App: Go to Settings → Integrations & MCP.
Note: Requires a Business, Enterprise, or Edu workspace with Developer Mode enabled.
- Enable Developer Mode: Ask your workspace admin to enable this under Workspace Settings → Permissions & Roles → Connected Data.
- Connect MCP: Go to Settings → Connectors and toggle Developer Mode on.
- Add Custom Connector:
- Click Add connector (or "Create custom connector").
- Choose MCP as the source type.
- Configure:
- Server URL:
https://clickup-mcp.taazkareem.com/mcp - Authentication: Add HTTP header
X-License-Key: your-license-key.
- Server URL:
- Use: Start a Developer Mode chat and select your ClickUp connector via Add sources.
Configuration Path: <project-root>/.augment/settings.json
{
"mcpServers": {
"ClickUp": {
"url": "https://clickup-mcp.taazkareem.com/mcp",
"headers": {
"X-License-Key": "your-license-key"
}
}
}
}
Run this command in your terminal:
auggie mcp add ClickUp --url https://clickup-mcp.taazkareem.com/mcp \
--header "X-License-Key: your-license-key"
Configuration Path: <project-root>/.codeium/windsurf/mcp_config.json
Option A: Remote / Streamable HTTP (Easiest)
{
"mcpServers": {
"ClickUp": {
"url": "https://clickup-mcp.taazkareem.com/mcp",
"headers": {
"X-License-Key": "your-license-key"
}
}
}
}
Option B: Local / STDIO
{
"mcpServers": {
"ClickUp": {
"command": "npx",
"args": ["-y", "@taazkareem/clickup-mcp-server@latest"],
"env": {
"CLICKUP_API_KEY": "your-api-key",
"CLICKUP_TEAM_ID": "your-team-id",
"CLICKUP_MCP_LICENSE_KEY": "your-license-key"
}
}
}
}
3. Restart
Restart your MCP Host (e.g., Cursor IDE). The server will validate your License Key and start automatically.
🛠️ Available Tools
| Category | Tool | Description |
|---|---|---|
| Workspace | get_workspace |
Get workspace structure and metadata (hierarchy, members, plan, seats, shared items, custom task types) |
get_workspace_seats |
Get member and guest seat utilization (used, total, available) | |
get_workspace_plan |
Get plan details for the workspace (plan_name, plan_id) | |
get_audit_logs |
Retrieve workspace audit logs (Enterprise only) | |
| Tasks | create_task |
Create a task |
get_task |
Get single task details | |
update_task |
Modify task properties | |
move_task |
Move task to new list | |
duplicate_task |
Copy task | |
delete_task |
Remove task | |
add_task_to_list |
Associate task with additional list (TIML) | |
remove_task_from_list |
Remove task list association (TIML) | |
create_bulk_tasks |
Create multiple tasks | |
update_bulk_tasks |
Update multiple tasks | |
move_bulk_tasks |
Move multiple tasks | |
delete_bulk_tasks |
Delete multiple tasks | |
get_workspace_tasks |
Search tasks with Deep Search filtering | |
get_comments |
Get comments on a task, list, or view | |
create_comment |
Create a comment on a task, list, or view | |
update_comment |
Edit or resolve a comment | |
delete_comment |
Delete a comment | |
get_comment_replies |
Get threaded replies for a comment | |
create_comment_reply |
Reply to a comment in a thread | |
add_comment_reaction |
Add an emoji reaction to a comment | |
remove_comment_reaction |
Remove an emoji reaction from a comment | |
get_comment_subtypes |
Get post subtype IDs for the workspace | |
add_task_link |
Link two tasks together | |
get_task_links |
Get task links | |
delete_task_link |
Remove a task link | |
add_task_dependency |
Set a blocking dependency between tasks | |
delete_task_dependency |
Remove a blocking dependency between tasks | |
| Attachments | list_attachments |
List attachments for a task or file custom field (v3) |
get_attachment |
Get a specific attachment by ID or name (v3) | |
upload_attachment |
Upload a file to a task or file custom field (v3) | |
| Checklists | create_checklist |
Add a checklist to a task |
edit_checklist |
Rename or reorder a checklist | |
delete_checklist |
Delete a checklist and all its items | |
create_checklist_item |
Add an item to a checklist | |
edit_checklist_item |
Update a checklist item (name, resolved, assignee, nesting) | |
delete_checklist_item |
Remove an item from a checklist | |
| Sprints | get_active_sprint |
Auto-detect the currently active sprint; returns tasks if exactly one found |
list_sprints |
List all sprints in a folder | |
get_sprint_tasks |
Get tasks for a specific sprint list | |
| Lists | list_lists |
Retrieve lists in a space (folderless) or in a folder |
get_list |
Get list details | |
create_list |
Create a list in a space or folder | |
create_list_from_template |
Create a new list from a template | |
update_list |
Update list properties | |
delete_list |
Delete a list | |
move_list |
Move a list to a different space or folder (high-integrity) | |
set_list_permissions |
Update list privacy and sharing (ACLs) | |
| Custom Fields | list_custom_fields |
List field definitions for a list, folder, or space |
create_custom_field |
Add a new field definition to a list | |
set_custom_field_value |
Set a field value on a task | |
remove_custom_field_value |
Clear a field value from a task | |
| Spaces | list_spaces |
List all spaces in the workspace |
get_space |
Get space details | |
create_space |
Create a new space | |
update_space |
Update space properties | |
delete_space |
Delete a space | |
set_space_permissions |
Update space privacy and sharing (ACLs) | |
| Goals | list_goals |
List all goals in the workspace |
get_goal |
Get a goal with its key results | |
create_goal |
Create a new goal | |
update_goal |
Update a goal's properties | |
delete_goal |
Delete a goal | |
create_key_result |
Add a key result to a goal | |
update_key_result |
Update a key result | |
delete_key_result |
Delete a key result | |
| Views | list_views |
List views for a space, folder, list, or workspace |
get_view |
Get a single view | |
create_view |
Create a new view | |
update_view |
Update a view | |
delete_view |
Delete a view | |
get_view_tasks |
Get tasks in a view | |
| Folders | list_folders |
List all folders in a space |
get_folder |
Get folder details and its contained lists | |
create_folder |
Create a folder in a space | |
update_folder |
Update folder properties | |
delete_folder |
Delete a folder | |
move_folder |
Move a folder to a different space (high-integrity) | |
set_folder_permissions |
Update folder privacy and sharing (ACLs) | |
create_folder_from_template |
Create a folder from a template in a space | |
| Tags | list_space_tags |
List all tags in a space |
create_space_tag |
Create a new space tag | |
update_space_tag |
Update a space tag's name or colors |
No comments yet
Be the first to share your take.