How to integrate Clickup MCP with OpenAI Agents SDK

This guide walks you through connecting Clickup to the OpenAI Agents SDK using the Composio tool router. By the end, you'll have a working Clickup agent that can add 'urgent' tag to today's tasks, create a time entry for design work, share project folder with new guest user through natural language commands. This guide will help you understand how to give your OpenAI Agents SDK agent real control over a Clickup account through Composio's Clickup MCP server. Before we dive in, let's take a quick look at the key ideas and tools involved.

Clickup logoClickup
Oauth2Api Key

ClickUp is an all-in-one productivity platform for managing tasks, docs, goals, and team collaboration. It streamlines project workflows so teams can work smarter and stay organized in one place.

162 Tools

Introduction

This guide walks you through connecting Clickup to the OpenAI Agents SDK using the Composio tool router. By the end, you'll have a working Clickup agent that can add 'urgent' tag to today's tasks, create a time entry for design work, share project folder with new guest user through natural language commands.

This guide will help you understand how to give your OpenAI Agents SDK agent real control over a Clickup account through Composio's Clickup MCP server.

Before we dive in, let's take a quick look at the key ideas and tools involved.

Also integrate Clickup with

TL;DR

Here's what you'll learn:
  • Get and set up your OpenAI and Composio API keys
  • Install the necessary dependencies
  • Initialize Composio and create a Tool Router session for Clickup
  • Configure an AI agent that can use Clickup as a tool
  • Run a live chat session where you can ask the agent to perform Clickup operations

What is OpenAI Agents SDK?

The OpenAI Agents SDK is a lightweight framework for building AI agents that can use tools and maintain conversation state. It provides a simple interface for creating agents with hosted MCP tool support.

Key features include:

  • Hosted MCP Tools: Connect to external services through hosted MCP endpoints
  • SQLite Sessions: Persist conversation history across interactions
  • Simple API: Clean interface with Agent, Runner, and tool configuration
  • Streaming Support: Real-time response streaming for interactive applications

What is the Clickup MCP server, and what's possible with it?

The Clickup MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your ClickUp account. It provides structured and secure access to your projects, tasks, and team collaboration features, so your agent can manage tasks, add dependencies, assign guests, tag work, and streamline workflows on your behalf.

  • Automated task management: Easily have your agent create new time entries, add tasks to multiple lists, or link related tasks to keep your projects organized and up to date.
  • Dependency tracking and updates: Instruct your agent to set up 'waiting on' or 'blocking' dependencies between tasks, ensuring everything flows smoothly and work bottlenecks are visible and managed automatically.
  • Seamless guest access: Let your agent add guests to folders, lists, or individual tasks with specific permissions, helping external collaborators get the right level of access instantly.
  • Tagging and time entry management: Direct your agent to add or update tags on time entries, or manage tags for specific tasks, enabling better tracking and reporting for your team's efforts.
  • Task and list organization: Have your agent quickly add existing tasks to additional lists or update key task attributes, so you can adapt to new priorities without manual effort.

What is the Composio tool router, and how does it fit here?

What is Composio SDK?

Composio's Composio SDK helps agents find the right tools for a task at runtime. You can plug in multiple toolkits (like Gmail, HubSpot, and GitHub), and the agent will identify the relevant app and action to complete multi-step workflows. This can reduce token usage and improve the reliability of tool calls. Read more here: Getting started with Composio SDK

The tool router generates a secure MCP URL that your agents can access to perform actions.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Step by step09 STEPS
1

Prerequisites

Before starting, make sure you have:
  • Composio API Key and OpenAI API Key
  • Primary know-how of OpenAI Agents SDK
  • A live Clickup project
  • Some knowledge of Python or Typescript
2

Getting API Keys for OpenAI and Composio

OpenAI API Key
  • Go to the OpenAI dashboard and create an API key. You'll need credits to use the models, or you can connect to another model provider.
  • Keep the API key safe.
Composio API Key
3

Install dependencies

npm install @composio/openai-agents @openai/agents dotenv

Install the Composio SDK and the OpenAI Agents SDK.

4

Set up environment variables

bash
OPENAI_API_KEY=sk-...your-api-key
COMPOSIO_API_KEY=your-api-key
USER_ID=composio_user@gmail.com

Create a .env file and add your OpenAI and Composio API keys.

5

Import dependencies

import 'dotenv/config';
import { Composio } from '@composio/core';
import { OpenAIAgentsProvider } from '@composio/openai-agents';
import { Agent, hostedMcpTool, run, OpenAIConversationsSession } from '@openai/agents';
import * as readline from 'readline';
What's happening:
  • You're importing all necessary libraries.
  • The Composio and OpenAIAgentsProvider classes are imported to connect your OpenAI agent to Composio tools like Clickup.
6

Set up the Composio instance

dotenv.config();

const composioApiKey = process.env.COMPOSIO_API_KEY;
const userId = process.env.USER_ID;

if (!composioApiKey) {
  throw new Error('COMPOSIO_API_KEY is not set. Create a .env file with COMPOSIO_API_KEY=your_key');
}
if (!userId) {
  throw new Error('USER_ID is not set');
}

// Initialize Composio
const composio = new Composio({
  apiKey: composioApiKey,
  provider: new OpenAIAgentsProvider(),
});
What's happening:
  • dotenv.config() loads your .env file so COMPOSIO_API_KEY and USER_ID are available as environment variables.
  • Creating a Composio instance using the API Key and OpenAIAgentsProvider class.
7

Create a Tool Router session

// Create Tool Router session for Clickup
const session = await composio.create(userId as string, {
  toolkits: ['clickup'],
});
const mcpUrl = session.mcp.url;

What is happening:

  • You give the Tool Router the user id and the toolkits you want available. Here, it is only clickup.
  • The router checks the user's Clickup connection and prepares the MCP endpoint.
  • The returned session.mcp.url is the MCP URL that your agent will use to access Clickup.
  • This approach keeps things lightweight and lets the agent request Clickup tools only when needed during the conversation.
8

Configure the agent

// Configure agent with MCP tool
const agent = new Agent({
  name: 'Assistant',
  model: 'gpt-5',
  instructions:
    'You are a helpful assistant that can access Clickup. Help users perform Clickup operations through natural language.',
  tools: [
    hostedMcpTool({
      serverLabel: 'tool_router',
      serverUrl: mcpUrl,
      headers: { 'x-api-key': composioApiKey },
      requireApproval: 'never',
    }),
  ],
});
What's happening:
  • We're creating an Agent instance with a name, model (gpt-5), and clear instructions about its purpose.
  • The agent's instructions tell it that it can access Clickup and help with queries, inserts, updates, authentication, and fetching database information.
  • The tools array includes a hostedMcpTool that connects to the MCP server URL we created earlier.
  • The headers object includes the Composio API key for secure authentication with the MCP server.
  • requireApproval: 'never' means the agent can execute Clickup operations without asking for permission each time, making interactions smoother.
9

Start chat loop and handle conversation

// Keep conversation state across turns
const conversationSession = new OpenAIConversationsSession();

// Simple CLI
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  prompt: 'You: ',
});

console.log('\nComposio Tool Router session created.');
console.log('\nChat started. Type your requests below.');
console.log("Commands: 'exit', 'quit', or 'q' to end\n");

try {
  const first = await run(agent, 'What can you help me with?', { session: conversationSession });
  console.log(`Assistant: ${first.finalOutput}\n`);
} catch (e) {
  console.error('Error:', e instanceof Error ? e.message : e, '\n');
}

rl.prompt();

rl.on('line', async (userInput) => {
  const text = userInput.trim();

  if (['exit', 'quit', 'q'].includes(text.toLowerCase())) {
    console.log('Goodbye!');
    rl.close();
    process.exit(0);
  }

  if (!text) {
    rl.prompt();
    return;
  }

  try {
    const result = await run(agent, text, { session: conversationSession });
    console.log(`\nAssistant: ${result.finalOutput}\n`);
  } catch (e) {
    console.error('Error:', e instanceof Error ? e.message : e, '\n');
  }

  rl.prompt();
});

rl.on('close', () => {
  console.log('\n👋 Session ended.');
  process.exit(0);
});
What's happening:
  • The program prints a session URL that you visit to authorize Clickup.
  • After authorization, the chat begins.
  • Each message you type is processed by the agent using run().
  • The responses are printed to the console.
  • Typing exit, quit, or q cleanly ends the chat.

Complete Code

Here's the complete code to get you started with Clickup and OpenAI Agents SDK:

import 'dotenv/config';
import { Composio } from '@composio/core';
import { OpenAIAgentsProvider } from '@composio/openai-agents';
import { Agent, hostedMcpTool, run, OpenAIConversationsSession } from '@openai/agents';
import * as readline from 'readline';

const composioApiKey = process.env.COMPOSIO_API_KEY;
const userId = process.env.USER_ID;

if (!composioApiKey) {
  throw new Error('COMPOSIO_API_KEY is not set. Create a .env file with COMPOSIO_API_KEY=your_key');
}
if (!userId) {
  throw new Error('USER_ID is not set');
}

// Initialize Composio
const composio = new Composio({
  apiKey: composioApiKey,
  provider: new OpenAIAgentsProvider(),
});

async function main() {
  // Create Tool Router session
  const session = await composio.create(userId as string, {
    toolkits: ['clickup'],
  });
  const mcpUrl = session.mcp.url;

  // Configure agent with MCP tool
  const agent = new Agent({
    name: 'Assistant',
    model: 'gpt-5',
    instructions:
      'You are a helpful assistant that can access Clickup. Help users perform Clickup operations through natural language.',
    tools: [
      hostedMcpTool({
        serverLabel: 'tool_router',
        serverUrl: mcpUrl,
        headers: { 'x-api-key': composioApiKey },
        requireApproval: 'never',
      }),
    ],
  });

  // Keep conversation state across turns
  const conversationSession = new OpenAIConversationsSession();

  // Simple CLI
  const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    prompt: 'You: ',
  });

  console.log('\nComposio Tool Router session created.');
  console.log('\nChat started. Type your requests below.');
  console.log("Commands: 'exit', 'quit', or 'q' to end\n");

  try {
    const first = await run(agent, 'What can you help me with?', { session: conversationSession });
    console.log(`Assistant: ${first.finalOutput}\n`);
  } catch (e) {
    console.error('Error:', e instanceof Error ? e.message : e, '\n');
  }

  rl.prompt();

  rl.on('line', async (userInput) => {
    const text = userInput.trim();

    if (['exit', 'quit', 'q'].includes(text.toLowerCase())) {
      console.log('Goodbye!');
      rl.close();
      process.exit(0);
    }

    if (!text) {
      rl.prompt();
      return;
    }

    try {
      const result = await run(agent, text, { session: conversationSession });
      console.log(`\nAssistant: ${result.finalOutput}\n`);
    } catch (e) {
      console.error('Error:', e instanceof Error ? e.message : e, '\n');
    }

    rl.prompt();
  });

  rl.on('close', () => {
    console.log('\nSession ended.');
    process.exit(0);
  });
}

main().catch((err) => {
  console.error('Fatal error:', err);
  process.exit(1);
});

Conclusion

This was a starter code for integrating Clickup MCP with OpenAI Agents SDK to build a functional AI agent that can interact with Clickup.

Key features:

  • Hosted MCP tool integration through Composio's Tool Router
  • SQLite session persistence for conversation history
  • Simple async chat loop for interactive testing
You can extend this by adding more toolkits, implementing custom business logic, or building a web interface around the agent.
TOOLS

Supported Tools

Every Clickup action and event your agent gets out of the box.

Add dependency

Adds a 'waiting on' or 'blocking' dependency to a task, requiring either `depends_on` (task becomes waiting on) or `dependency_of` (task becomes blocking), but not both; `team_id` is required if `custom_task_ids` is true.

Add guest to folder

Adds a guest to a folder with specified permissions; requires a ClickUp Enterprise Plan.

Add guest to list

Shares a ClickUp List with an existing guest user, granting them specified permissions; requires the Workspace to be on the ClickUp Enterprise Plan.

Add guest to task

Assigns a guest to a task with specified permissions; requires ClickUp Enterprise Plan, and `team_id` if `custom_task_ids` is true.

Add tags from time entries

Associates a list of specified tags with one or more time entries within a given Team (Workspace).

Add tag to task

Adds an existing tag to a specified task; team_id is required if custom_task_ids is true.

Add task link

Links two existing and accessible ClickUp tasks, identified by `task_id` (source) and `links_to` (target).

Add task to list

Adds an existing task to an additional ClickUp List; the "Tasks in Multiple Lists" ClickApp must be enabled in the Workspace for this.

Update Doc Page

Tool to update/edit a ClickUp Doc page's title and/or content via the v3 Docs API.

Create a time entry

Creates a new time entry for a specified team.

Create chat channel

Tool to create a chat channel in a ClickUp workspace.

Create chat message

Tool to send a message in a ClickUp chat channel.

Create chat reaction

Tool to add a reaction to a ClickUp chat message.

Create chat view comment

Posts a new comment to a specified ClickUp Chat view; the 'view_id' must correspond to an existing and accessible Chat view.

Create checklist

Creates a new checklist with a specified name within an existing task, which can be identified by its standard ID or a custom task ID (if `custom_task_ids` is true, `team_id` is also required).

Create checklist item

Creates a new checklist item within a specified, existing checklist, optionally setting the item's name and assigning it to a user.

Create direct message channel

Tool to create a direct message channel in ClickUp.

Create Doc

Tool to create a new ClickUp Doc in a Workspace (v3 Docs API) and return the new doc_id for follow-up page/content operations.

Create Doc Page

Tool to create a page in a ClickUp Doc (v3 Docs API).

Create folder

Creates a new ClickUp Folder within the specified Space, which must exist and be accessible.

Create folderless list

Creates a new folderless list (a list not part of any Folder) directly within a specified ClickUp Space.

Create folder view

Creates a new, highly customizable view within a specific ClickUp folder using its `folder_id`.

Create goal

Creates a new goal in a ClickUp Team (Workspace).

Create key result

Creates a new Key Result (Target) for a specified Goal in ClickUp to define and track measurable objectives towards achieving that Goal.

Create list

Creates a new list in ClickUp within an existing folder.

Create list comment

Adds a new comment with specific text to an existing and accessible ClickUp List, assigns it to a user, and sets notification preferences for all list members.

Create list from template in folder

Creates a new list from a template in a specified ClickUp folder.

Create list view

Creates a new, customizable view (e.

Create Location Chat Channel

Tool to create a Channel on a Space, Folder, or List in ClickUp.

Create reply message

Tool to create a reply to a chat message in ClickUp.

Create space

Creates a new ClickUp Space within a specified Workspace, allowing feature configuration which defaults to Workspace settings if unspecified.

Create space tag

Creates a new tag (name, foreground color, background color) in an existing ClickUp Space.

Create space view

Creates a customizable view (e.

Create a task

Creates a new ClickUp task in a specific list, optionally as a subtask if a `parent` task ID (which cannot be a subtask itself and must be in the same list) is provided.

Create task attachment

Uploads a file as an attachment to a specified ClickUp task using multipart/form-data.

Create task comment

Adds a comment to a ClickUp task; `team_id` is required if `custom_task_ids` is true.

Create task from template

Creates a new task in a specified ClickUp list from a task template, using the provided name for the new task.

Create team

Creates a new team (user group) with specified members in a Workspace; member IDs must be for existing users, and be aware that adding view-only guests as paid members may incur extra charges.

Create threaded comment

Tool to create a threaded reply to a comment in ClickUp.

Create webhook

Creates a ClickUp webhook for a Team (Workspace) to notify a public URL on specified events (at least one, or '*' for all), optionally scoped to a Space, Folder, List, or Task; the endpoint must accept requests from dynamic IPs.

Create workspace Everything level view

Creates a new, customizable view (e.

Delete chat channel

Tool to delete a chat channel in ClickUp.

Delete chat message

Tool to delete a chat message in ClickUp.

Delete chat reaction

Tool to delete a reaction from a chat message in ClickUp.

Delete checklist

Permanently deletes an existing checklist identified by its `checklist_id`.

Delete checklist item

Permanently deletes an existing item, identified by `checklist_item_id`, from an existing checklist, identified by `checklist_id`.

Delete comment

Deletes an existing comment from a task using its `comment_id`.

Delete dependency

Removes a dependency relationship for a task.

Delete folder

Permanently and irreversibly deletes a specified folder and all its contents (Lists, Tasks) if the folder_id exists.

Delete goal

Permanently removes an existing Goal, identified by its `goal_id`, from the Workspace.

Delete key result

Deletes an existing Key Result, also referred to as a Target within a Goal, identified by its `key_result_id`.

Delete list

Permanently deletes an existing List and all its contents; this action is destructive and irreversible via the API.

Delete space

Permanently deletes a specified Space in ClickUp; this action is irreversible as the Space cannot be recovered via the API.

Delete space tag

Deletes a Tag from a Space, identified by `tag_name` in path; precise matching of Tag details in the request body (`tag_name_1`, `tag_tag_fg`, `tag_tag_bg`) is generally required for successful deletion.

Delete task

Permanently deletes a task, using its standard ID or a custom task ID (requires `custom_task_ids=true` and `team_id`).

Delete task link

Deletes an existing link, effectively a dependency or relationship, between two ClickUp tasks; set `custom_task_ids=true` and provide `team_id` if using custom task IDs.

Delete team

Permanently deletes an existing Team (user group) from the Workspace using its `group_id`.

Delete a time entry

Deletes an existing time entry, specified by `timer_id`, from a Workspace identified by `team_id`.

Delete time tracked

Deletes a time-tracked interval from a task; use this legacy endpoint for older time tracking systems.

Delete view

Permanently and irreversibly deletes an existing View in ClickUp, identified by its `view_id`.

Delete webhook

Permanently removes an existing webhook, specified by its ID, thereby ceasing all its event monitoring and notifications.

Get accessible custom fields

Retrieves all accessible Custom Field definitions for a specified ClickUp List using its `list_id`.

Get access token

Exchanges a ClickUp OAuth 2.

Get all tags from time entries

Retrieves all unique tags applied to time entries within a specified ClickUp Team (Workspace).

Get authorized teams workspaces

Retrieves a list of Workspaces (Teams) the authenticated user can access.

Get authorized user

Retrieves the details of the currently authenticated ClickUp user.

Get bulk tasks time in status

Retrieves the time spent in each status for multiple tasks; requires the 'Total time in Status' ClickApp to be enabled in the Workspace.

Get chat channel

Retrieves details for a specific chat channel in a ClickUp Workspace.

Get chat channel followers

Tool to retrieve followers of a ClickUp chat channel.

Get chat channel members

Tool to get members of a chat channel.

Get chat channels

Tool to retrieve chat channels in a ClickUp workspace.

Get chat message reactions

Tool to retrieve reactions on a ClickUp chat message.

Get chat message replies

Retrieves replies to a chat message in ClickUp.

Get chat messages

Tool to retrieve messages from a ClickUp chat channel.

Get chat message tagged users

Tool to retrieve users tagged in a ClickUp chat message.

Get chat view comments

Retrieves comments from a specified Chat view in ClickUp, supporting pagination via `start` and `start_id` to fetch comments older than the default 25 most recent.

Get custom roles

Retrieves all Custom Roles, which allow granular permission configurations, for a specified Workspace (Team).

Get custom task types

Retrieves all custom task types available within a specified Workspace (team_id).

Get Doc Content

Tool to fetch the full content of a ClickUp Doc including metadata and all page contents in markdown format.

Get Doc Page Content

Tool to fetch a single ClickUp Doc page's content and metadata by workspace_id + doc_id + page_id (v3 Docs API).

Get Doc Page Listing

Tool to fetch the page listing structure of a ClickUp Doc by workspace_id and doc_id.

Get Doc Pages

Tool to fetch pages belonging to a ClickUp Doc.

Get filtered team tasks

Retrieves a paginated list of tasks (up to 100 per page) from a specified workspace based on various filter criteria, respecting user access permissions.

Get folder

Retrieves detailed information about a specific folder in ClickUp.

Get Folder Available Fields

Tool to view custom fields available in a ClickUp folder.

Get folderless lists

Retrieves all Lists within a specified Space that are not located in any Folder.

Get folders

Retrieves Folders within a specified ClickUp Space, ensuring `space_id` is valid, with an option to filter by archived status.

Get folder views

Retrieves all configured views (like List, Board, Calendar) for a specified, existing Folder in ClickUp.

Get goal

Retrieves detailed information for an existing ClickUp Goal, specified by its unique `goal_id`.

Get goals

Retrieves goals for a specified ClickUp Workspace (Team); the `team_id` must be valid and accessible.

Get guest

Call this to retrieve detailed information for a specific guest within a Team (Workspace), ensuring the `guest_id` is valid for the given `team_id`; this action requires the ClickUp Enterprise Plan.

Get list

Retrieves detailed information for an existing List in ClickUp, identified by its unique `list_id`.

Get list comments

Retrieves comments for a specific ClickUp List, supporting pagination using `start` (timestamp) and `start_id` (comment ID) to fetch earlier comments; omits them for the latest 25.

Get list members

Retrieves all members of a specific, existing ClickUp List by its ID.

Get lists

Retrieves all lists within a specified, existing ClickUp folder, optionally filtering by archived status.

Get list views

Retrieves all task and page views for a specified and accessible ClickUp List.

Get running time entry

Retrieves the currently active time entry for a user in a Workspace; a negative 'duration' in its data indicates it's running, and the response may be empty if no entry is active.

Shared hierarchy

Retrieves the hierarchy of tasks, Lists, and Folders shared with the authenticated user within an existing ClickUp Team (Workspace), identified by its `team_id`.

Get space

Retrieves detailed information for an existing Space in a ClickUp Workspace, identified by its unique space_id.

Get space available fields

Retrieves all custom fields available in a ClickUp Space, identified by space_id.

Get spaces

Retrieves Spaces for a Team ID; member information for private Spaces is returned only if the authenticated user is a member.

Get space tags

Retrieves all tags for tasks within a specified ClickUp Space, requiring a valid `space_id`.

Get space views

Retrieves all task and page views for a specified Space ID in ClickUp.

Get post subtype IDs

Tool to retrieve post subtype IDs (Announcement, Discussion, Idea, Update) for a ClickUp Workspace.

Get task

Retrieves comprehensive details for a ClickUp task by its ID, supporting standard or custom task IDs (requires `team_id` for custom IDs).

Get task comments

Retrieves up to 25 comments for a specified task, supporting pagination using `start` and `start_id` to fetch older comments.

Get task members

Retrieves users with explicit access (directly assigned or shared) to a specific existing task, excluding users with inherited permissions.

Get tasks

Retrieves tasks from a specified ClickUp list; only tasks whose home is the given list_id are returned.

Get task templates

Retrieves task templates for a specified Workspace (Team ID), supporting pagination.

Get task s time in status

Retrieves the duration a task has spent in each status, provided the 'Total time in Status' ClickApp is enabled for the Workspace.

Get team available fields

Retrieves all custom fields available in a ClickUp Workspace (Team), identified by team_id.

Get teams

Retrieves user groups (Teams) from a ClickUp Workspace, typically requiring `team_id` (Workspace ID), with an option to filter by `group_ids`.

Get threaded comments

Retrieves threaded replies to a parent comment.

Get time entries within a date range

Retrieves time entries for a specified Team (Workspace ID) within a date range (defaults to the last 30 days for the authenticated user if dates are omitted); active timers are indicated by negative durations in the response.

Get singular time entry

Fetches a specific time entry by its ID for a given team; a negative duration in the response indicates an active timer.

Get time entry history

Retrieves the modification history for an existing time entry within a specific ClickUp Team (Workspace).

Get tracked time

Retrieves tracked time for a task using a legacy endpoint; prefer newer Time Tracking API endpoints for managing time entries.

Get user

Retrieves detailed information for a specific user within a ClickUp Workspace (Team), available only for Workspaces on the ClickUp Enterprise Plan.

Get view

Fetches details for a specific ClickUp view, identified by its `view_id`, which must exist.

Get view tasks

Retrieves all tasks visible in a specified ClickUp view, respecting its applied filters, sorting, and grouping.

Get webhooks

Fetches webhooks for a Team (Workspace), returning only those created by the authenticated user via API, for a `team_id` they can access.

Get workspace everything level views

Retrieves all task and page views at the 'Everything Level' (a comprehensive overview of all tasks across all Spaces) for a specified ClickUp Workspace.

Get workspace plan

Retrieves the details of the current subscription plan for a specified ClickUp Workspace.

Get workspace seats

Retrieves seat utilization (used, total, available for members/guests) for a ClickUp Workspace (Team) ID, which must be for an existing Workspace.

Invite guest to workspace

Invites a guest by email to a ClickUp Workspace (Team) on an Enterprise Plan, setting initial permissions and optionally a custom role; further access configuration for specific items may require separate actions.

Invite user to workspace

Invites a user via email to a ClickUp Workspace (Team), optionally granting admin rights or a custom role; requires an Enterprise Plan for the Workspace.

Move task to new home list

Tool to move a task to a new home List using ClickUp Public API v3.

Remove custom field value

Removes an existing value from a Custom Field on a specific task; this does not delete the Custom Field definition or its predefined options.

Remove guest from folder

Revokes a guest's access to a specific ClickUp Folder, optionally unsharing items explicitly shared with them within it; requires an Enterprise Plan.

Remove guest from list

Revokes a guest's access to a specific List, provided the guest currently has access to this List and the Workspace is on the ClickUp Enterprise Plan.

Remove guest from task

Revokes a guest's access to a specific task; only available for Workspaces on the ClickUp Enterprise Plan.

Remove guest from workspace

Permanently removes a guest from a specified Workspace, revoking all their access; this destructive operation requires the Workspace to be on the ClickUp Enterprise Plan.

Remove tag from task

Removes a tag from a specified task by disassociating it (does not delete the tag from Workspace), succeeding even if the tag is not on the task.

Remove tags from time entries

Removes tags from specified time entries in a team, without deleting the tags from the workspace.

Remove task from list

Removes a task from an extra list (not its home list); the 'Tasks in Multiple Lists' ClickApp must be enabled.

Remove user from workspace

Deactivates a user from a specified ClickUp Workspace, revoking their access (user can be reactivated later); requires the Workspace to be on an Enterprise Plan.

Search Docs

Tool to search and list Docs metadata in a ClickUp workspace.

Set custom field value

Sets or updates a Custom Field's value for a task; the new value (with type-dependent structure, e.

Start a time entry

Starts a new time entry (timer) in the specified Team (Workspace), optionally associating it with a task, adding a description, setting billable status, or applying tags (tags feature requires Business Plan or higher).

Stop a time entry

Stops the authenticated user's currently active time entry in the specified Team (Workspace), which requires an existing time entry to be running.

Track time

Records a time entry for a task using ClickUp's legacy time tracking system; newer endpoints are generally recommended.

Update chat channel

Tool to update a ClickUp chat channel's properties including name, topic, description, visibility, and location.

Update chat message

Tool to update a ClickUp chat message's content, assignee, or resolved status via the v3 API.

Edit checklist

Updates an existing checklist's name or position, identified by its `checklist_id`.

Edit checklist item

Updates an existing checklist item, allowing modification of its name, assignee, resolution status, or parent item for nesting.

Update comment

Updates an existing task comment's text, assignee (who must be a valid workspace member), or resolution status, requiring a valid existing comment_id.

Update folder

Updates the name of an existing folder in ClickUp.

Update goal

Updates attributes of an existing ClickUp goal, identified by its `goal_id`.

Edit guest on workspace

Modifies the details and permissions of an existing guest user within a specific Workspace.

Edit key result

Updates an existing key result's progress or note in ClickUp, where the key result measures progress towards a goal.

Update list

Updates attributes of an existing ClickUp list, such as its name, content, due date, priority, assignee, or color status, identified by its `list_id`.

Update space

Updates an existing ClickUp Space, allowing modification of its name, color, privacy, and feature settings (ClickApps).

Edit space tag

Updates an existing tag's name and colors in a ClickUp Space; requires current tag name for identification, and new values for tag name, foreground color, and background color, all of which are mandatory for the update.

Update task

Updates attributes of an existing task; `team_id` is required if `custom_task_ids` is true, use a single space (" ") for `description` to clear it, and provide at least one modifiable field.

Update team

Updates an existing ClickUp User Group (Team) using its `group_id`; note that adding a view-only guest as a paid member may incur charges.

Update a time entry

Updates an existing ClickUp time entry.

Change tag names from time entries

Updates the name, background color, and/or foreground color for an existing time entry tag, identified by its current `name` and `team_id`.

Edit time tracked

Edits a legacy time-tracked interval for a task (identified by `task_id` and `interval_id`) to update its start/end times and duration; `team_id` is required if `custom_task_ids` is true.

Edit user on workspace

Updates a user's username, admin status, or custom role in a Workspace; requires the Workspace to be on an Enterprise Plan.

Update view

Updates an existing ClickUp view's settings such as name, type, grouping, or filters; ensure `parent_id` and `parent_type` define a valid hierarchy, and that specified field names (e.

Update webhook

Updates the endpoint URL, monitored events, and status of an existing webhook, identified by its `webhook_id`.

Update workspace ACL

Updates privacy and access control list (ACL) permissions for a workspace object or location.

FAQ

Frequently asked questions

With a standalone Clickup MCP server, the agents and LLMs can only access a fixed set of Clickup tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Clickup and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. OpenAI Agents SDK fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Clickup tools.

Yes, absolutely. You can configure which Clickup scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Clickup data and credentials are handled as safely as possible.

Start with Clickup.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Clickup tool your agent needs.Free to start.

Start building