Skip to main content
Glama

create-database

Create a new Notion database with a specified title, properties, and optional icon or cover. Assign it to a parent page for organized workspace management.

Instructions

Create a new database

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
coverNoOptional cover for the database
iconNoOptional icon for the database
parent_idYesID of the parent page
propertiesYesDatabase properties schema
titleYesDatabase title as rich text array

Implementation Reference

  • Handler implementation for the 'create-database' tool that creates a new Notion database using the notion.databases.create API.
    else if (name === "create-database") {
      let { parent_id, title, properties, icon, cover } = args;
      
      // Remove dashes if present in parent_id
      parent_id = parent_id.replace(/-/g, "");
    
      const databaseParams = {
        parent: {
          type: "page_id",
          page_id: parent_id,
        },
        title,
        properties,
      };
    
      // Set default emoji if icon is specified but emoji is empty
      if (icon && icon.type === "emoji" && !icon.emoji) {
        icon.emoji = "📄"; // Default document emoji
        databaseParams.icon = icon;
      } else if (icon) {
        databaseParams.icon = icon;
      }
    
      if (cover) {
        databaseParams.cover = cover;
      }
    
      const response = await notion.databases.create(databaseParams);
    
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(response, null, 2),
          },
        ],
      };
    }
  • Input schema definition for the 'create-database' tool, specifying parameters like parent_id, title, properties, icon, and cover.
    inputSchema: {
      type: "object",
      properties: {
        parent_id: {
          type: "string",
          description: "ID of the parent page"
        },
        title: {
          type: "array",
          description: "Database title as rich text array"
        },
        properties: {
          type: "object",
          description: "Database properties schema"
        },
        icon: {
          type: "object",
          description: "Optional icon for the database"
        },
        cover: {
          type: "object",
          description: "Optional cover for the database"
        }
      },
      required: ["parent_id", "title", "properties"]
    }
  • server.js:125-154 (registration)
    Registration of the 'create-database' tool in the tools/list endpoint response, providing name, description, and input schema.
    {
      name: "create-database",
      description: "Create a new database",
      inputSchema: {
        type: "object",
        properties: {
          parent_id: {
            type: "string",
            description: "ID of the parent page"
          },
          title: {
            type: "array",
            description: "Database title as rich text array"
          },
          properties: {
            type: "object",
            description: "Database properties schema"
          },
          icon: {
            type: "object",
            description: "Optional icon for the database"
          },
          cover: {
            type: "object",
            description: "Optional cover for the database"
          }
        },
        required: ["parent_id", "title", "properties"]
      }
    },
Install Server

Other Tools

Related 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/emmanuelsystems/mcpnotionslack'

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