Skip to main content
Glama

create_list

Create a new list in a ClickUp folder or space by specifying the container type, container ID, and list name.

Instructions

Create a new list in a ClickUp folder or space with the specified name.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
container_typeYesThe type of container to create the list in
container_idYesThe ID of the container to create the list in
nameYesThe name of the list

Implementation Reference

  • Registration of the 'create_list' tool on the MCP server using server.tool(), with Zod schema for container_type, container_id, and name.
    server.tool(
      'create_list',
      'Create a new list in a ClickUp folder or space with the specified name.',
      {
        container_type: z.enum(['folder', 'space']).describe('The type of container to create the list in'),
        container_id: z.string().describe('The ID of the container to create the list in'),
        name: z.string().describe('The name of the list')
      },
      async ({ container_type, container_id, name }) => {
        try {
          let result;
          if (container_type === 'folder') {
            result = await listsClient.createListInFolder(container_id, { name });
          } else if (container_type === 'space') {
            result = await listsClient.createFolderlessList(container_id, { name });
          } else {
            throw new Error('Invalid container_type. Must be one of: folder, space');
          }
          
          return {
            content: [{ type: 'text', text: JSON.stringify(result, null, 2) }]
          };
        } catch (error: any) {
          console.error(`Error creating list in ${container_type}:`, error);
          return {
            content: [{ type: 'text', text: `Error creating list: ${error.message}` }],
            isError: true
          };
        }
      }
    );
  • Handler function for 'create_list' that routes to listsClient.createListInFolder or listsClient.createFolderlessList based on container_type.
    async ({ container_type, container_id, name }) => {
      try {
        let result;
        if (container_type === 'folder') {
          result = await listsClient.createListInFolder(container_id, { name });
        } else if (container_type === 'space') {
          result = await listsClient.createFolderlessList(container_id, { name });
        } else {
          throw new Error('Invalid container_type. Must be one of: folder, space');
        }
        
        return {
          content: [{ type: 'text', text: JSON.stringify(result, null, 2) }]
        };
      } catch (error: any) {
        console.error(`Error creating list in ${container_type}:`, error);
        return {
          content: [{ type: 'text', text: `Error creating list: ${error.message}` }],
          isError: true
        };
      }
    }
  • Zod schema defining input parameters: container_type (enum: 'folder'/'space'), container_id (string), name (string).
    {
      container_type: z.enum(['folder', 'space']).describe('The type of container to create the list in'),
      container_id: z.string().describe('The ID of the container to create the list in'),
      name: z.string().describe('The name of the list')
    },
  • CreateListParams interface used for creating lists, containing the name property.
    export interface CreateListParams {
      name: string;
      // ...other parameters for creating a list...
    }
  • createListInFolder method - sends POST request to /folder/{folderId}/list to create a list in a folder.
    async createListInFolder(folderId: string, params: CreateListParams): Promise<List> {
      return this.client.post(`/folder/${folderId}/list`, params);
    }
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it creates a list (write operation) but provides no details on authentication, side effects, or constraints; no annotations exist to supplement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with 16 words, no redundancy or filler; perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks explanation of return value or constraints (e.g., container_id must match container_type), but sufficient for a simple creation tool with no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all three parameters with descriptions; the tool description adds no new information beyond what the schema already provides, achieving baseline for 100% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it creates a list in a folder or space with a specified name, distinguishing it from sibling tools like create_folderless_list (no container) or template-based creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like create_folderless_list or template-based creation; context is implied but not stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nsxdavid/clickup-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server