This server provides a set of tools to interact with the ClickUp API, allowing you to manage workspaces, spaces, folders, lists, tasks, time tracking, and more through the Model Context Protocol (MCP).
All tools require a token_data parameter. This is a JSON string containing your OAuth 2.0 access token or personal API token. The structure of the JSON should be as follows:
{
"access_token": "YOUR_ACCESS_TOKEN",
"token_type": "Bearer"
}{
"access_token": "pk_YOUR_PERSONAL_API_TOKEN"
}ClickUp uses the authorization code grant type for OAuth 2.0:
https://app.clickup.com/api?client_id={client_id}&redirect_uri={redirect_uri}https://api.clickup.com/api/v2/oauth/tokenTo set up OAuth:
client_id and secretpip install -r requirements.txt# Using stdio transport (default)
python clickup_mcp_server.py
# Using SSE transport
python clickup_mcp_server.py -t sse --host 0.0.0.0 --port 8080
# Using streamable-http transport
python clickup_mcp_server.py -t streamable-http --host 0.0.0.0 --port 8080get_authorized_userGet the user that belongs to the access token.
token_data (string, required): The JSON string of the user's access token.get_authorized_teamsGet the authorized Workspaces (teams) for the access token.
token_data (string, required): The JSON string of the user's access token.get_spacesGet all Spaces in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).archived (boolean, optional): Whether to include archived spaces. Default: false.get_spaceGet a specific Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.create_spaceCreate a new Space in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).body (string, required): A JSON string representing the space to create.update_spaceUpdate an existing Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space to update.body (string, required): A JSON string with the fields to update.delete_spaceDelete a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space to delete.get_foldersGet all Folders in a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.archived (boolean, optional): Whether to include archived folders. Default: false.get_folderGet a specific Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder.create_folderCreate a new Folder in a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.body (string, required): A JSON string representing the folder to create.update_folderUpdate an existing Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder to update.body (string, required): A JSON string with the fields to update.delete_folderDelete a Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder to delete.get_listsGet all Lists in a Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder.archived (boolean, optional): Whether to include archived lists. Default: false.get_folderless_listsGet all Lists in a Space that are not in a Folder.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.archived (boolean, optional): Whether to include archived lists. Default: false.get_listGet a specific List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List.create_listCreate a new List in a Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder.body (string, required): A JSON string representing the list to create.create_folderless_listCreate a new List in a Space (not in a Folder).
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.body (string, required): A JSON string representing the list to create.update_listUpdate an existing List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List to update.body (string, required): A JSON string with the fields to update.delete_listDelete a List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List to delete.get_tasksGet tasks in a List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List.archived (boolean, optional): Whether to include archived tasks.include_closed (boolean, optional): Whether to include closed tasks.page (integer, optional): Page number for pagination (0-indexed).order_by (string, optional): Field to order by (id, created, updated, due_date).reverse (boolean, optional): Whether to reverse the order.subtasks (boolean, optional): Whether to include subtasks.statuses (string, optional): Comma-separated list of status names to filter by.assignees (string, optional): Comma-separated list of assignee user IDs to filter by. (integer, optional): Filter tasks with due date greater than (Unix timestamp in ms).get_taskGet a specific task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.include_subtasks (boolean, optional): Whether to include subtasks.include_markdown_description (boolean, optional): Whether to include markdown description.create_taskCreate a new task in a List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List.body (string, required): A JSON string representing the task to create.Example body:
{
"name": "Task name",
"description": "Task description",
"assignees": [123],
"priority": 3,
"due_date": 1609459200000,
"status": "Open"
}update_taskUpdate an existing task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task to update.body (string, required): A JSON string with the fields to update.delete_taskDelete a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task to delete.get_filtered_team_tasksGet all tasks in a Workspace (team) with optional filters.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).get_task_commentsGet comments on a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.start (integer, optional): Enter the start date for comments as a Unix timestamp in milliseconds.start_id (string, optional): Enter the Comment ID to start from.create_task_commentCreate a comment on a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.body (string, required): A JSON string representing the comment.Example body:
{
"comment_text": "This is a comment",
"notify_all": false
}update_commentUpdate a comment.
token_data (string, required): The JSON string of the user's access token.comment_id (string, required): The ID of the comment to update.body (string, required): A JSON string with the updated comment.delete_commentDelete a comment.
token_data (string, required): The JSON string of the user's access token.comment_id (string, required): The ID of the comment to delete.get_time_entriesGet time entries within a date range.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).start_date (integer, optional): Start date as Unix timestamp in milliseconds.end_date (integer, optional): End date as Unix timestamp in milliseconds.assignee (string, optional): User ID to filter time entries by.create_time_entryCreate a time entry.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).body (string, required): A JSON string representing the time entry.Example body:
{
"tid": "task_id",
"start": 1609459200000,
"duration": 3600000,
"description": "Work description"
}start_time_entryStart a timer for time tracking.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).body (string, required): A JSON string with timer details.stop_time_entryStop the currently running timer.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).get_running_time_entryGet the currently running timer.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).get_workspace_membersGet all members in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).get_task_membersGet members assigned to a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.get_list_membersGet members with access to a list.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the list.get_space_tagsGet all tags in a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.create_space_tagCreate a new tag in a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.body (string, required): A JSON string representing the tag.add_tag_to_taskAdd a tag to a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.tag_name (string, required): The name of the tag to add.remove_tag_from_taskRemove a tag from a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.tag_name (string, required): The name of the tag to remove.get_goalsGet all goals in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).include_completed (boolean, optional): Whether to include completed goals.get_goalGet a specific goal.
token_data (string, required): The JSON string of the user's access token.goal_id (string, required): The ID of the goal.create_goalCreate a new goal.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).body (string, required): A JSON string representing the goal.update_goalUpdate a goal.
token_data (string, required): The JSON string of the user's access token.goal_id (string, required): The ID of the goal to update.body (string, required): A JSON string with the fields to update.delete_goalDelete a goal.
token_data (string, required): The JSON string of the user's access token.goal_id (string, required): The ID of the goal to delete.create_checklistCreate a new checklist in a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.body (string, required): A JSON string representing the checklist.update_checklistUpdate a checklist.
token_data (string, required): The JSON string of the user's access token.checklist_id (string, required): The ID of the checklist.body (string, required): A JSON string with the fields to update.delete_checklistDelete a checklist.
token_data (string, required): The JSON string of the user's access token.checklist_id (string, required): The ID of the checklist to delete.create_checklist_itemCreate a new checklist item.
token_data (string, required): The JSON string of the user's access token.checklist_id (string, required): The ID of the checklist.body (string, required): A JSON string representing the checklist item.update_checklist_itemUpdate a checklist item.
token_data (string, required): The JSON string of the user's access token.checklist_id (string, required): The ID of the checklist.checklist_item_id (string, required): The ID of the checklist item.body (string, required): A JSON string with the fields to update.delete_checklist_itemDelete a checklist item.
token_data (string, required): The JSON string of the user's access token.checklist_id (string, required): The ID of the checklist.checklist_item_id (string, required): The ID of the checklist item to delete.get_accessible_custom_fieldsGet all custom fields accessible in a list.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the list.set_custom_field_valueSet a custom field value on a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.field_id (string, required): The ID of the custom field.body (string, required): A JSON string with the value.remove_custom_field_valueRemove a custom field value from a task.
token_data (string, required): The JSON string of the user's access token.task_id (string, required): The ID of the task.field_id (string, required): The ID of the custom field.get_team_viewsGet all views at the Workspace level.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).get_space_viewsGet all views in a Space.
token_data (string, required): The JSON string of the user's access token.space_id (string, required): The ID of the Space.get_folder_viewsGet all views in a Folder.
token_data (string, required): The JSON string of the user's access token.folder_id (string, required): The ID of the Folder.get_list_viewsGet all views in a List.
token_data (string, required): The JSON string of the user's access token.list_id (string, required): The ID of the List.get_viewGet a specific view.
token_data (string, required): The JSON string of the user's access token.view_id (string, required): The ID of the view.get_view_tasksGet tasks in a view.
token_data (string, required): The JSON string of the user's access token.view_id (string, required): The ID of the view.page (integer, optional): Page number for pagination (0-indexed).get_webhooksGet all webhooks in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).create_webhookCreate a new webhook.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).body (string, required): A JSON string representing the webhook.Example body:
{
"endpoint": "https://example.com/webhook",
"events": ["taskCreated", "taskUpdated"]
}update_webhookUpdate a webhook.
token_data (string, required): The JSON string of the user's access token.webhook_id (string, required): The ID of the webhook.body (string, required): A JSON string with the fields to update.delete_webhookDelete a webhook.
token_data (string, required): The JSON string of the user's access token.webhook_id (string, required): The ID of the webhook to delete.search_docsSearch for Docs in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).query (string, optional): Search query string.get_doc_pagesGet all pages in a Doc.
token_data (string, required): The JSON string of the user's access token.doc_id (string, required): The ID of the Doc.create_doc_pageCreate a new page in a Doc.
token_data (string, required): The JSON string of the user's access token.doc_id (string, required): The ID of the Doc.body (string, required): A JSON string representing the page.get_chat_channelsGet all chat channels in a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).send_chat_messageSend a message to a chat channel.
token_data (string, required): The JSON string of the user's access token.channel_id (string, required): The ID of the chat channel.body (string, required): A JSON string representing the message.get_shared_hierarchyGet the shared hierarchy for a Workspace.
token_data (string, required): The JSON string of the user's access token.team_id (string, required): The ID of the Workspace (team).token_data = '{"access_token": "pk_your_token_here"}'
result = get_authorized_teams(token_data)result = get_spaces(token_data, team_id="your_team_id")task_body = json.dumps({
"name": "New Task",
"description": "Task description",
"priority": 3,
"status": "Open"
})
result = create_task(token_data, list_id="your_list_id", body=task_body)ClickUp uses the following priority levels:
All timestamps in ClickUp API are in Unix milliseconds format.
Example: 1609459200000 represents January 1, 2021 00:00:00 UTC
ClickUp API has rate limits. For details, see the ClickUp Rate Limits documentation.
This MCP server is provided as-is for integration with ClickUp's API.
due_date_lt (integer, optional): Filter tasks with due date less than (Unix timestamp in ms).date_created_gt (integer, optional): Filter tasks created after (Unix timestamp in ms).date_created_lt (integer, optional): Filter tasks created before (Unix timestamp in ms).date_updated_gt (integer, optional): Filter tasks updated after (Unix timestamp in ms).date_updated_lt (integer, optional): Filter tasks updated before (Unix timestamp in ms).