Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@twofeetup/clickup-mcp

TwoFeetUp834MIT1.7.0

Optimized ClickUp MCP Server - High-performance AI integration with consolidated tools and response optimization

clickup, mcp, ai, tasks, project-management, model-context-protocol, task-management, productivity, automation, workflow, team-collaboration, artificial-intelligence, clickup-integration, clickup-api, performance-optimized, consolidated-tools, ai-first-design

readme

ClickUp MCP - Optimized AI Integration

A high-performance Model Context Protocol (MCP) server for integrating ClickUp with AI applications. This optimized fork features consolidated tools, response optimization, and intelligent caching for superior performance.

🚀 Key Optimizations

This repository builds on the original ClickUp MCP server with significant performance and efficiency improvements:

  • Tool Consolidation: Reduced from 36 tools to 15 consolidated, action-based tools following MCP design principles
  • Response Optimization: 54% token reduction through intelligent field filtering and data flattening
  • Intelligent Caching: 15-minute TTL workspace hierarchy cache with 85% performance improvement
  • Hybrid Lookups: Direct API calls when IDs available, fallback to cached hierarchy when needed
  • AI-First Design: Tools designed around user intent rather than API structure

Performance Results

Operation Before After Improvement
Response tokens (7 tasks) 723 331 54% reduction
Workspace lookup (warm) 2400ms 350ms 85% faster
Task search (cached) 3000ms 350ms 88% faster

Requirements

  • Node.js v18.0.0 or higher (required for MCP SDK compatibility)
  • ClickUp API key and Team ID

Installation

Add this to your Claude Desktop config file:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "ClickUp": {
      "command": "npx",
      "args": [
        "-y",
        "@twofeetup/clickup-mcp@latest"
      ],
      "env": {
        "CLICKUP_API_KEY": "your-api-key-here",
        "CLICKUP_TEAM_ID": "your-team-id-here"
      }
    }
  }
}

Get your credentials:

  • ClickUp API key: ClickUp Settings
  • Team ID: Found in your ClickUp workspace URL

Restart Claude Desktop and the server will be automatically installed and ready to use!

Local Development Setup

  1. Clone this repository:

    git clone https://github.com/TwoFeetUp/clickup-mcp.git
    cd clickup-mcp
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build
  4. Get your credentials:

  5. Configure your MCP client (e.g., Claude Desktop):

Add this entry to your client's MCP settings JSON file:

{
  "mcpServers": {
    "ClickUp": {
      "command": "node",
      "args": [
        "/path/to/clickup-mcp/build/index.js"
      ],
      "env": {
        "CLICKUP_API_KEY": "your-api-key",
        "CLICKUP_TEAM_ID": "your-team-id"
      }
    }
  }
}

Consolidated Tools

This server provides 15 consolidated tools instead of the original 36:

Task Management

  • manage_task: Create, update, delete, move, or duplicate tasks with action-based routing
  • search_tasks: Find tasks by ID, list, or workspace-wide filters with configurable detail levels
  • task_comments: Get or create task comments
  • task_time_tracking: Manage time entries (get, start, stop, add, delete)
  • attach_file_to_task: Attach files to tasks

Container Management

  • manage_container: Create, update, delete, or get lists and folders
  • get_container: Retrieve container details

Document Management

  • manage_document: Create, update, delete documents
  • manage_document_page: Create, update, delete document pages
  • list_documents: List all documents in workspace

Organization

  • find_members: Search workspace members by name/email
  • operate_tags: Create, update, delete, or list tags

Bulk Operations

  • bulk_create_tasks: Create multiple tasks efficiently
  • bulk_update_tasks: Update multiple tasks at once
  • bulk_delete_tasks: Delete multiple tasks in one operation

Key Features

AI-First Tool Design

  • Tools organized by user intent, not API structure
  • Natural language parameter names
  • Support for flexible task identification (ID, name, or custom ID)
  • Detail level control (minimal, standard, detailed)

Response Optimization

  • Automatic field filtering and null removal
  • Nested object flattening (status → string, assignees → usernames)
  • Configurable detail levels for token efficiency
  • Pagination support for large result sets

Performance Features

  • 15-minute TTL workspace hierarchy cache
  • Direct API lookups when IDs provided
  • Graceful fallback to cached hierarchy
  • Automatic cache invalidation
  • Rate limit awareness (600ms spacing)

Developer Experience

  • Comprehensive TypeScript types
  • Detailed logging with operation tracking
  • Consistent error handling
  • Input validation with helpful messages

Configuration

Environment variables:

  • CLICKUP_API_KEY: Your ClickUp API key (required)
  • CLICKUP_TEAM_ID: Your ClickUp team/workspace ID (required)
  • LOG_LEVEL: Logging verbosity (default: "info")

Development

# Install dependencies
npm install

# Build
npm run build

# Watch mode (for development)
npm run dev

# Run tests
node test-cache-performance.js
node test-optimized-response.js

Architecture

This server follows MCP design principles:

  • Tool Consolidation: Related operations grouped into single tools with action parameters
  • Token Efficiency: Optimized response formats with field selection and detail levels
  • Performance: Intelligent caching and direct API fallbacks
  • Maintainability: Clear separation of concerns, consistent patterns

See MCP_DESIGN_PRINCIPLES.md for detailed design philosophy.

License

MIT

Credits

This optimized version builds upon the original ClickUp MCP Server by Talib Kareem, with significant architectural improvements and performance optimizations.

Optimizations by Sjoerd Tiemensma.

changelog

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.5.1 - 2025-11-17

Removed

  • list_task_types tool: Removed redundant introspection tool following AI-first design principles
    • Task types are already visible in dynamic dropdown of manage_task tool
    • Reduces tool count and decision complexity for AI
    • Aligns with MCP tool consolidation best practices

Improved

  • Assignee resolution error handling: Now throws clear, actionable errors when email/username cannot be resolved
    • Error message specifies which assignees failed to resolve
    • Suggests using numeric user IDs or find_members tool
    • Prevents silent failures where assignees weren't assigned

Technical Details

  • Removed: src/tools/task-type-tools.ts
  • Updated: src/server.ts (removed tool registration)
  • Updated: src/tools/task/handlers.ts (improved error handling in resolveAssignees())

1.5.0 - 2025-11-14

Added

  • Custom Task Types support: Create tasks with custom types using friendly names
    • New task_type parameter in manage_task tool (e.g., task_type: "milestone")
    • Support for all ClickUp custom item types: milestone, form_response, meeting_note, Request, Bug/Issue, Feature, Improvement, New Tool/Product, Research, General Idea, Person
    • Dynamic dropdown in tool schema showing all available task types for the workspace
    • Automatic name-to-ID mapping via TaskTypeService
    • New list_task_types introspection tool to view all available custom task types
  • TaskTypeService: Singleton service for managing custom task type mappings
    • Fetches custom task types from ClickUp API on initialization
    • Provides name-to-ID conversion (e.g., "milestone" -> 1)
    • Caches task types for performance
  • Dynamic schema generation: Tool schemas now include enum values populated from API data
    • Task type dropdown automatically shows all available types
    • Better user experience with autocomplete and validation

Technical Details

  • New files:
    • src/services/task-type-service.ts: Task type management service
    • src/tools/task/task-type-schema-builder.ts: Dynamic schema builder
    • src/tools/task-type-tools.ts: Introspection tools
  • Updated files:
    • src/index.ts: Initialize TaskTypeService on startup
    • src/server.ts: Initialize TaskTypeService for SSE server
    • src/tools/task/handlers.ts: Handle task_type parameter in task creation
    • src/services/clickup/types.ts: Add ClickUpCustomItem type

1.4.0 - 2025-11-12

Added

  • Automatic cache invalidation: All modification operations (create/update/delete) now automatically invalidate caches
    • List operations: create_list, create_list_in_folder, update_list, delete_list
    • Task operations: create_task, update_task, move_task, delete_task
    • Bulk operations: create_bulk_tasks, update_bulk_tasks, move_bulk_tasks, delete_bulk_tasks
  • Background cache refresh: After modifications, the cache is automatically refreshed in the background without blocking the response
    • Users get immediate responses (no waiting)
    • Cache is pre-warmed for the next request
    • Ensures data is always up-to-date
  • Enhanced get_workspace_hierarchy tool:
    • Now clears ALL caches before fetching (workspace, members, tags, custom fields, containers, task context)
    • Updated tool description to indicate cache reset behavior
    • Useful after making changes or when not picking up expected results
  • New cache utility functions:
    • invalidateWorkspaceCaches(): Clear all workspace-related caches
    • refreshWorkspaceCachesInBackground(): Non-blocking cache refresh
    • clearTaskContextCache(): Clear task lookup cache

Changed

  • get_workspace_hierarchy tool description is now more concise and mentions cache reset behavior

Performance

  • Improved user experience with non-blocking cache updates
  • Reduced stale data issues by invalidating caches after every modification
  • Faster subsequent requests due to background cache pre-warming

1.3.3 - 2025-11-12

Fixed

  • Renamed manage_tags tool to operate_tags to avoid confusion

1.3.2 - 2025-11-12

Fixed

  • Excluded server.log from npm package to prevent EPERM errors

[1.3.1] - Earlier

Changed

  • Various bug fixes and improvements