home / mcp / clickup mcp server

ClickUp MCP Server

A Model Context Protocol server implementation for ClickUp integration, enabling AI assistants to interact with ClickUp workspaces.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "nazruden-clickup-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@nazruden/clickup-server"
      ],
      "env": {
        "PORT": "3000",
        "LOG_LEVEL": "debug",
        "ENCRYPTION_KEY": "0123456789abcdef0123456789abcdef",
        "CLICKUP_PERSONAL_TOKEN": "your_personal_api_token_here"
      }
    }
  }
}

You can run a Model Context Protocol (MCP) server that connects ClickUp with AI assistants, letting you manage workspaces, tasks, and more through simple prompts. This server operates via Stdio, enabling seamless integration with MCP clients and giving you programmatic access to ClickUp features from your preferred AI workflow.

How to use

Install and run the ClickUp MCP Server to enable AI assistants to interact with your ClickUp workspace. You will authenticate using your ClickUp Personal API Token and configure your MCP client to start the server automatically when needed. Once running, you can create, update, and query ClickUp resources such as tasks, spaces, folders, docs, views, and more through the MCP endpoints exposed by the server.

How to install

Prerequisites: Node.js and npm, and an active ClickUp Personal API Token.

Install the ClickUp MCP Server via MCP client (example shows Claude Desktop integration):

npx -y @smithery/cli install @Nazruden/clickup-mcp-server --client claude

Additional setup you will need to perform

Configure your MCP client to run the server using the provided configuration snippet. You will supply your ClickUp token in the environment for the server.

{
  "mcpServers": {
    "clickup": {
      "command": "npx",
      "args": ["@nazruden/clickup-server"],
      "env": {
        "CLICKUP_PERSONAL_TOKEN": "your_personal_api_token_here"
      }
    }
  }
}

Development and local run

If you want to develop and test locally, follow these steps to install dependencies, set up your environment, and run in development mode.

Install dependencies and build (if needed) and run in development mode.

npm install
# Create a .env file in the project root and add your ClickUp token
# Example:
# CLICKUP_PERSONAL_TOKEN=your_actual_personal_api_token_here
LOG_LEVEL=debug

# Start in development mode (Stdio)
npm run dev

Using the inspector for testing

You can test the server with the MCP Inspector by providing the ClickUp token in the environment and launching the inspector with the server.

Run the Inspector with the server:

npx @modelcontextprotocol/inspector node --loader ts-node/esm src/index.ts

Available tools

clickup_create_task

Create a new task in a ClickUp list. Requires: list_id, name. Optional: description, status, priority, assignees, due_date, time_estimate, tags.

clickup_update_task

Update properties of an existing task. Requires: task_id. Optional: any writable ClickUpTask properties.

clickup_get_teams

Retrieve all accessible teams (Workspaces) in ClickUp API v2.

clickup_get_lists

Get all lists in a specific folder. Requires: folder_id.

clickup_create_board

Create a new board in a ClickUp space. Requires: space_id, name.

clickup_get_spaces

Retrieve all Spaces for a given Workspace. Requires: team_id. Optional: archived (defaults to false).

clickup_create_space

Create a new Space within a Workspace. Requires: team_id, name. Optional: multiple_assignees, features.

clickup_get_space

Retrieve details for a specific Space. Requires: space_id.

clickup_update_space

Update an existing Space. Requires: space_id. Optional: name, color, private, admin_can_manage, archived, features.

clickup_delete_space

Delete a Space. Requires: space_id.

clickup_get_folders

Retrieve all Folders within a given Space. Requires: space_id. Optional: archived.

clickup_create_folder

Create a new Folder within a Space. Requires: space_id, name.

clickup_get_folder

Retrieve details for a specific Folder. Requires: folder_id.

clickup_update_folder

Update an existing Folder. Requires: folder_id, name.

clickup_delete_folder

Delete a Folder. Requires: folder_id.

clickup_get_custom_fields

Retrieve all accessible Custom Fields for a given List. Requires: list_id.

clickup_set_task_custom_field_value

Set the value of a Custom Field on a specific task. Requires: task_id, field_id, value. Optional: value_options.

clickup_remove_task_custom_field_value

Remove/clear the value of a Custom Field from a specific task. Requires: task_id, field_id.

clickup_search_docs

Search Docs within a Workspace. Requires: workspace_id. Optional: query, include_archived.

clickup_create_doc

Create a new Doc. Requires: workspace_id, name. Optional: parent, visibility, create_page.

clickup_get_doc_pages

Retrieve the list of pages within a Doc. Requires: doc_id.

clickup_create_doc_page

Create a new page within a Doc. Requires: workspace_id, doc_id, name. Optional: content, orderindex, parent_page_id, sub_title, content_format.

clickup_get_doc_page_content

Retrieve content (Markdown) of a Doc page. Requires: workspace_id, doc_id, page_id.

clickup_edit_doc_page_content

Update content/title of a Doc page. Requires: workspace_id, doc_id, page_id, content. Optional: title, sub_title, content_edit_mode, content_format.

clickup_get_views

Retrieve all Views for a given parent resource. Requires: parent_id, parent_type.

clickup_create_view

Create a new View within a parent resource. Requires: parent_id, parent_type, name, type. Optional: grouping, divide, sorting, filters, columns, team_sidebar, settings.

clickup_get_view_details

Retrieve details for a specific View. Requires: view_id.

clickup_update_view

Update an existing View. Requires: view_id. Optional: name, grouping, divide, sorting, filters, columns, team_sidebar, settings.

clickup_delete_view

Delete a View. Requires: view_id.

clickup_get_view_tasks

Retrieve tasks belonging to a specific View. Requires: view_id. Optional: page