Skip to main content
Glama

update-database

Modify an existing Notion database by updating its title, description, or properties schema using a specified database ID through integration with the Notion MCP Server.

Instructions

Update an existing database

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
database_idYesID of the database to update
descriptionNoOptional new description as rich text array
propertiesNoOptional updated properties schema
titleNoOptional new title as rich text array

Implementation Reference

  • Handler function that destructures arguments, constructs update parameters for title, description, and properties, calls Notion's databases.update API, and returns the response as text content.
    else if (name === "update-database") { const { database_id, title, description, properties } = args; const updateParams = { database_id, }; if (title !== undefined) { updateParams.title = title; } if (description !== undefined) { updateParams.description = description; } if (properties !== undefined) { updateParams.properties = properties; } const response = await notion.databases.update(updateParams); return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; }
  • Input schema definition for the update-database tool, specifying required database_id and optional title, description, properties.
    { name: "update-database", description: "Update an existing database", inputSchema: { type: "object", properties: { database_id: { type: "string", description: "ID of the database to update" }, title: { type: "array", description: "Optional new title as rich text array" }, description: { type: "array", description: "Optional new description as rich text array" }, properties: { type: "object", description: "Optional updated properties schema" } }, required: ["database_id"] } },
  • server.js:37-313 (registration)
    Registration of all tools including update-database in the tools/list handler, exposing the tool list with schemas.
    server.setRequestHandler(z.object({ method: z.literal("tools/list") }), async () => { return { tools: [ { name: "list-databases", description: "List all databases the integration has access to", inputSchema: { type: "object", properties: {} } }, { name: "query-database", description: "Query a database", inputSchema: { type: "object", properties: { database_id: { type: "string", description: "ID of the database to query" }, filter: { type: "object", description: "Optional filter criteria" }, sorts: { type: "array", description: "Optional sort criteria" }, start_cursor: { type: "string", description: "Optional cursor for pagination" }, page_size: { type: "number", description: "Number of results per page", default: 100 } }, required: ["database_id"] } }, { name: "create-page", description: "Create a new page in a database", inputSchema: { type: "object", properties: { parent_id: { type: "string", description: "ID of the parent database" }, properties: { type: "object", description: "Page properties" }, children: { type: "array", description: "Optional content blocks" } }, required: ["parent_id", "properties"] } }, { name: "update-page", description: "Update an existing page", inputSchema: { type: "object", properties: { page_id: { type: "string", description: "ID of the page to update" }, properties: { type: "object", description: "Updated page properties" }, archived: { type: "boolean", description: "Whether to archive the page" } }, required: ["page_id", "properties"] } }, { 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"] } }, { name: "update-database", description: "Update an existing database", inputSchema: { type: "object", properties: { database_id: { type: "string", description: "ID of the database to update" }, title: { type: "array", description: "Optional new title as rich text array" }, description: { type: "array", description: "Optional new description as rich text array" }, properties: { type: "object", description: "Optional updated properties schema" } }, required: ["database_id"] } }, { name: "get-page", description: "Retrieve a page by its ID", inputSchema: { type: "object", properties: { page_id: { type: "string", description: "ID of the page to retrieve" } }, required: ["page_id"] } }, { name: "get-block-children", description: "Retrieve the children blocks of a block", inputSchema: { type: "object", properties: { block_id: { type: "string", description: "ID of the block (page or block)" }, start_cursor: { type: "string", description: "Cursor for pagination" }, page_size: { type: "number", description: "Number of results per page", default: 100 } }, required: ["block_id"] } }, { name: "append-block-children", description: "Append blocks to a parent block", inputSchema: { type: "object", properties: { block_id: { type: "string", description: "ID of the parent block (page or block)" }, children: { type: "array", description: "List of block objects to append" }, after: { type: "string", description: "Optional ID of an existing block to append after" } }, required: ["block_id", "children"] } }, { name: "update-block", description: "Update a block's content or archive status", inputSchema: { type: "object", properties: { block_id: { type: "string", description: "ID of the block to update" }, block_type: { type: "string", description: "The type of block (paragraph, heading_1, to_do, etc.)" }, content: { type: "object", description: "The content for the block based on its type" }, archived: { type: "boolean", description: "Whether to archive (true) or restore (false) the block" } }, required: ["block_id", "block_type", "content"] } }, { name: "get-block", description: "Retrieve a block by its ID", inputSchema: { type: "object", properties: { block_id: { type: "string", description: "ID of the block to retrieve" } }, required: ["block_id"] } }, { name: "search", description: "Search Notion for pages or databases", inputSchema: { type: "object", properties: { query: { type: "string", description: "Search query string", default: "" }, filter: { type: "object", description: "Optional filter criteria" }, sort: { type: "object", description: "Optional sort criteria" }, start_cursor: { type: "string", description: "Cursor for pagination" }, page_size: { type: "number", description: "Number of results per page", default: 100 } } } } ] }; });

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