Skip to main content
Glama
Leanware-io

ClickUp MCP Integration

by Leanware-io

clickup_create_page

Create a new page in a ClickUp document by specifying the doc ID, page name, and markdown content. Add subtitles and organize pages hierarchically with parent page IDs.

Instructions

Create a new page in a ClickUp doc

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
doc_idYesClickUp doc ID
nameYesPage name
parent_page_idNoParent page ID (null for root page)
sub_titleNoPage subtitle
contentYesPage content in markdown format

Implementation Reference

  • MCP tool definition for 'clickup_create_page', including name, description, input schema (Zod), and handler function that prepares parameters and delegates to docsService.createPage, returning JSON response.
    const createPageTool = defineTool((z) => ({
      name: "clickup_create_page",
      description: "Create a new page in a ClickUp doc",
      inputSchema: {
        doc_id: z.string().describe("ClickUp doc ID"),
        name: z.string().describe("Page name"),
        parent_page_id: z
          .string()
          .optional()
          .describe("Parent page ID (null for root page)"),
        sub_title: z.string().optional().describe("Page subtitle"),
        content: z.string().describe("Page content in markdown format"),
      },
      handler: async (input) => {
        const pageParams: CreatePageParams = {
          docId: input.doc_id,
          name: input.name,
          parent_page_id: input.parent_page_id,
          sub_title: input.sub_title,
          content: input.content,
        };
        const response = await docsService.createPage(pageParams);
        return {
          content: [{ type: "text", text: JSON.stringify(response) }],
        };
      },
    }));
  • src/index.ts:29-62 (registration)
    The createPageTool is included in the 'tools' array which is iterated over to register all tools with the MCP server using server.tool(tool.name, tool.description, tool.inputSchema, tool.handler).
    const tools = [
      // Task tools
      getTaskByCustomIdTool,
      getTaskTool,
      createTaskTool,
      updateTaskTool,
      updateTaskByCustomIdTool,
    
      // Space tools
      getSpacesTool,
    
      // Folder tools
      getFoldersTool,
    
      // List tools
      getListsTool,
      createListTool,
    
      // Custom Field tools
      getListCustomFieldsTool,
      setCustomFieldValueTool,
      setCustomFieldValueByCustomIdTool,
    
      // Assignee tools
      getListAssigneesTool,
    
      // Docs tools
      searchDocsTool,
      createDocTool,
      getDocPagesTool,
      getPageTool,
      createPageTool,
      editPageTool,
    ];
  • Core implementation of page creation: constructs the request payload and performs POST API call to ClickUp to create the page.
    async createPage(params: CreatePageParams): Promise<ClickUpDocPage> {
      const { docId, name, parent_page_id, sub_title, content } = params;
      const pageData = {
        name,
        parent_page_id: parent_page_id || null,
        sub_title: sub_title || null,
        content,
        content_format: "text/md",
      };
    
      return this.request<ClickUpDocPage>(
        `/${this.workspaceId}/docs/${docId}/pages`,
        {
          method: "POST",
          body: JSON.stringify(pageData),
        }
      );
    }
  • TypeScript interface defining the parameters for creating a ClickUp page, used in the tool handler and service method.
    export interface CreatePageParams {
      docId: string;
      name: string;
      parent_page_id?: string;
      sub_title?: string;
      content: string;
    }

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/Leanware-io/clickup-mcp-server'

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