CL

ClickUp MCP Server: Task Creation, Bulk Updates, Markdown

Manage ClickUp tasks with an MCP server that supports task creation, updates, bulk operations, and Markdown descriptions for faster workflows.

Quick Install
npx -y @TaazKareem/clickup-mcp-server

Overview

This MCP-compatible server provides a lightweight bridge between AI agents and ClickUp. It exposes a set of tools that let an MCP-enabled model create and update ClickUp tasks, perform bulk operations, and send rich Markdown task descriptions directly into ClickUp — enabling faster, programmatic task workflows from prompts, agents, or automation pipelines.

By centralizing ClickUp interactions behind an MCP server, teams can standardize how LLM agents and other systems manipulate tasks (create, edit, bulk-change status/assignees, search). The server handles authentication, rate-limiting concerns, and the transformation of Markdown into task-ready content, so developer integrations stay concise and consistent.

Features

  • MCP-compatible tool endpoints for ClickUp operations
  • Create tasks with Markdown descriptions (supports headings, lists, code blocks)
  • Update single tasks (name, description, status, assignees, custom fields)
  • Bulk update tasks in one request (status changes, assignee updates, tags)
  • Search and fetch task details
  • Environment-driven configuration for ClickUp API token and defaults
  • Docker-ready and node/npm-based start scripts

Installation / Configuration

Prerequisites: Node.js (14+), npm, a ClickUp personal API token.

Clone and install:

git clone https://github.com/TaazKareem/clickup-mcp-server.git
cd clickup-mcp-server
npm install

Create a .env file with your ClickUp credentials and optional defaults:

CLICKUP_API_TOKEN=pk_xxx-your-token-xxx
DEFAULT_TEAM_ID=123456
DEFAULT_LIST_ID=654321
PORT=4000
LOG_LEVEL=info

Start locally:

npm start
# or for development with auto-reload
npm run dev

Run with Docker:

# build
docker build -t clickup-mcp-server .

# run
docker run -e CLICKUP_API_TOKEN=pk_xxx -e DEFAULT_LIST_ID=654321 -p 4000:4000 clickup-mcp-server

Notes:

  • Respect ClickUp API rate limits; the server includes basic retry/backoff.
  • Use environment variables to avoid committing secrets.

Available Tools

The server exposes a set of MCP tools (resources) that an MCP-capable agent can call. Below is a summary; each tool accepts JSON inputs and returns structured JSON.

ToolPurposeExample Input
create_taskCreate a new ClickUp task with a Markdown description{“name”:“Fix login bug”,“description_markdown”:“## Steps to reproduce\n1. Open app\n2. Click login\n\njs\nconsole.log('fail')\n”,“list_id”:“654321”,“assignees”:[111]}
update_taskUpdate properties of an existing task{“task_id”:“abc123”,“name”:“Fix login bug (added tests)”,“status”:“in progress”,“description_markdown”:“Updated: added test steps”}
bulk_update_tasksApply the same changes to many tasks{“task_ids”:[“a”,“b”,“c”],“status”:“review”,“assignees”:[222]}
get_taskFetch task details by ID{“task_id”:“abc123”}
search_tasksSearch by text, status, or tag{“query”:“login bug”,“status”:“open”,“limit”:25}

Example: create_task via curl (replace URL/port as configured)

curl -X POST http://localhost:4000/tools/create_task \
  -H "Content-Type: application/json" \
  -d '{
    "name":"Document API auth",
    "description_markdown":"# API Auth\nUse bearer tokens.\n\n- Add examples\n- Note expiry",
    "list_id":"654321",
    "assignees":[111]
  }'

The server converts the Markdown to the format ClickUp accepts and returns the created task object.

Use Cases

  • Agent-driven task creation from notes: Feed meeting notes or AI-generated summaries to the create_task tool. The Markdown content becomes the task description with preserved headings, lists, and code blocks.
  • Bulk status updates after sprint planning: Use bulk_update_tasks to move many tasks from “in progress” to “review” after a milestone completes, avoiding per-task API calls.
  • Triage automation: A prompt-based bot can create tasks for incoming bug reports, set assignees, and add tags based on classification from an LLM.
  • Migration or import scripts: Convert Markdown documents or converted issues into ClickUp tasks programmatically by iterating and calling create_task.
  • Enrich workflows: Combine search_tasks with bulk_update_tasks to find all tasks matching a filter (e.g., tag X) and update their due dates or assignees.

Available Resources

  • Source code and issues: https://github.com/TaazKareem/clickup-mcp-server
  • ClickUp API docs: https://clickup.com/api
  • MCP specification and examples (if using a specific MCP client, consult that client’s docs for how to register remote tools)

Tips & Best Practices

  • Keep your ClickUp API token secure; prefer environment variables or secret managers.
  • When sending large Markdown bodies, consider trimming or splitting content to avoid API limits.
  • Use the server in a service-account pattern for automation: one token scoped to an automation user.
  • Monitor logs and ClickUp API responses for rate-limit headers and backoff when necessary.

This MCP server is intended as a developer-facing bridge to make ClickUp operations predictable and accessible to LLM agents and automation pipelines. Refer to the repo for the exact API schema, example clients, and extension points for custom tools.