home / mcp / clickup mcp server
A Model Context Protocol server implementation for ClickUp integration, enabling AI assistants to interact with ClickUp workspaces.
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.
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.
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 claudeConfigure 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"
}
}
}
}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 devYou 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.tsCreate a new task in a ClickUp list. Requires: list_id, name. Optional: description, status, priority, assignees, due_date, time_estimate, tags.
Update properties of an existing task. Requires: task_id. Optional: any writable ClickUpTask properties.
Retrieve all accessible teams (Workspaces) in ClickUp API v2.
Get all lists in a specific folder. Requires: folder_id.
Create a new board in a ClickUp space. Requires: space_id, name.
Retrieve all Spaces for a given Workspace. Requires: team_id. Optional: archived (defaults to false).
Create a new Space within a Workspace. Requires: team_id, name. Optional: multiple_assignees, features.
Retrieve details for a specific Space. Requires: space_id.
Update an existing Space. Requires: space_id. Optional: name, color, private, admin_can_manage, archived, features.
Delete a Space. Requires: space_id.
Retrieve all Folders within a given Space. Requires: space_id. Optional: archived.
Create a new Folder within a Space. Requires: space_id, name.
Retrieve details for a specific Folder. Requires: folder_id.
Update an existing Folder. Requires: folder_id, name.
Delete a Folder. Requires: folder_id.
Retrieve all accessible Custom Fields for a given List. Requires: list_id.
Set the value of a Custom Field on a specific task. Requires: task_id, field_id, value. Optional: value_options.
Remove/clear the value of a Custom Field from a specific task. Requires: task_id, field_id.
Search Docs within a Workspace. Requires: workspace_id. Optional: query, include_archived.
Create a new Doc. Requires: workspace_id, name. Optional: parent, visibility, create_page.
Retrieve the list of pages within a Doc. Requires: doc_id.
Create a new page within a Doc. Requires: workspace_id, doc_id, name. Optional: content, orderindex, parent_page_id, sub_title, content_format.
Retrieve content (Markdown) of a Doc page. Requires: workspace_id, doc_id, page_id.
Update content/title of a Doc page. Requires: workspace_id, doc_id, page_id, content. Optional: title, sub_title, content_edit_mode, content_format.
Retrieve all Views for a given parent resource. Requires: parent_id, parent_type.
Create a new View within a parent resource. Requires: parent_id, parent_type, name, type. Optional: grouping, divide, sorting, filters, columns, team_sidebar, settings.
Retrieve details for a specific View. Requires: view_id.
Update an existing View. Requires: view_id. Optional: name, grouping, divide, sorting, filters, columns, team_sidebar, settings.
Delete a View. Requires: view_id.
Retrieve tasks belonging to a specific View. Requires: view_id. Optional: page