create-database-row
Add a new row to a Notion database by specifying the database ID and required properties. Enables streamlined data entry and organization within Notion workspaces via the Notion MCP Server.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| databaseId | Yes | ||
| properties | Yes |
Implementation Reference
- src/index.ts:453-486 (registration)Registration of the create-database-row MCP tool using server.tool(), including inline input schema validation with Zod and the complete handler function.server.tool( "create-database-row", { databaseId: z.string(), properties: z.record(z.any()) }, async ({ databaseId, properties }) => { try { // Create a new page (row) in the database const response = await notion.pages.create({ parent: { database_id: databaseId, type: "database_id" }, properties: properties }); return { content: [{ type: "text", text: `Database row created successfully!\nID: ${response.id}` }] }; } catch (error: any) { return { content: [{ type: "text", text: `Error creating database row: ${error.message}` }], isError: true }; } } );
- src/index.ts:459-485 (handler)The handler function that implements the core logic of the create-database-row tool. It uses the Notion API to create a new page (representing a database row) in the specified database with the given properties, and returns a success message with the new page ID or an error message.async ({ databaseId, properties }) => { try { // Create a new page (row) in the database const response = await notion.pages.create({ parent: { database_id: databaseId, type: "database_id" }, properties: properties }); return { content: [{ type: "text", text: `Database row created successfully!\nID: ${response.id}` }] }; } catch (error: any) { return { content: [{ type: "text", text: `Error creating database row: ${error.message}` }], isError: true }; } }
- src/index.ts:455-457 (schema)Zod input schema for the create-database-row tool, validating databaseId as a string and properties as a record of arbitrary values matching Notion's property format.{ databaseId: z.string(), properties: z.record(z.any())