Skip to main content
Glama

Notion MCP Server

by tkc
schemas.ts8.38 kB
export const commonIdDescription = 'It should be a 32-character string (excluding hyphens) formatted as 8-4-4-4-12 with hyphens (-).'; // Rich text object schema export const richTextObjectSchema = { type: 'object', description: 'A rich text object.', properties: { type: { type: 'string', description: 'The type of this rich text object. Possible values: text, mention, equation.', enum: ['text', 'mention', 'equation'], }, text: { type: 'object', description: "Object containing text content and optional link info. Required if type is 'text'.", properties: { content: { type: 'string', description: 'The actual text content.', }, link: { type: 'object', description: "Optional link object with a 'url' field.", properties: { url: { type: 'string', description: 'The URL the text links to.', }, }, }, }, }, mention: { type: 'object', description: "Mention object if type is 'mention'. Represents an inline mention of a database, date, link preview, page, template mention, or user.", properties: { type: { type: 'string', description: 'The type of the mention.', enum: [ 'database', 'date', 'link_preview', 'page', 'template_mention', 'user', ], }, database: { type: 'object', description: "Database mention object. Contains a database reference with an 'id' field.", properties: { id: { type: 'string', description: 'The ID of the mentioned database.' + commonIdDescription, }, }, required: ['id'], }, date: { type: 'object', description: 'Date mention object, containing a date property value object.', properties: { start: { type: 'string', description: 'An ISO 8601 formatted start date or date-time.', }, end: { type: ['string', 'null'], description: 'An ISO 8601 formatted end date or date-time, or null if not a range.', }, time_zone: { type: ['string', 'null'], description: 'Time zone information for start and end. If null, times are in UTC.', }, }, required: ['start'], }, link_preview: { type: 'object', description: 'Link Preview mention object, containing a URL for the link preview.', properties: { url: { type: 'string', description: 'The URL for the link preview.', }, }, required: ['url'], }, page: { type: 'object', description: "Page mention object, containing a page reference with an 'id' field.", properties: { id: { type: 'string', description: 'The ID of the mentioned page.' + commonIdDescription, }, }, required: ['id'], }, template_mention: { type: 'object', description: 'Template mention object, can be a template_mention_date or template_mention_user.', properties: { type: { type: 'string', enum: ['template_mention_date', 'template_mention_user'], description: 'The template mention type.', }, template_mention_date: { type: 'string', enum: ['today', 'now'], description: 'For template_mention_date type, the date keyword.', }, template_mention_user: { type: 'string', enum: ['me'], description: 'For template_mention_user type, the user keyword.', }, }, }, user: { type: 'object', description: 'User mention object, contains a user reference.', properties: { object: { type: 'string', description: "Should be 'user'.", enum: ['user'], }, id: { type: 'string', description: 'The ID of the user.' + commonIdDescription, }, }, required: ['object', 'id'], }, }, required: ['type'], oneOf: [ { required: ['database'] }, { required: ['date'] }, { required: ['link_preview'] }, { required: ['page'] }, { required: ['template_mention'] }, { required: ['user'] }, ], }, equation: { type: 'object', description: "Equation object if type is 'equation'. Represents an inline LaTeX equation.", properties: { expression: { type: 'string', description: 'LaTeX string representing the inline equation.', }, }, required: ['expression'], }, annotations: { type: 'object', description: 'Styling information for the text.', properties: { bold: { type: 'boolean' }, italic: { type: 'boolean' }, strikethrough: { type: 'boolean' }, underline: { type: 'boolean' }, code: { type: 'boolean' }, color: { type: 'string', description: 'Color for the text.', enum: [ 'default', 'blue', 'blue_background', 'brown', 'brown_background', 'gray', 'gray_background', 'green', 'green_background', 'orange', 'orange_background', 'pink', 'pink_background', 'purple', 'purple_background', 'red', 'red_background', 'yellow', 'yellow_background', ], }, }, }, href: { type: 'string', description: 'The URL of any link or mention in this text, if any.', }, plain_text: { type: 'string', description: 'The plain text without annotations.', }, }, required: ['type'], }; // Block object schema export const blockObjectSchema = { type: 'object', description: 'A Notion block object.', properties: { object: { type: 'string', description: "Should be 'block'.", enum: ['block'], }, type: { type: 'string', description: "Type of the block. Possible values include 'paragraph', 'heading_1', 'heading_2', 'heading_3', 'bulleted_list_item', 'numbered_list_item', 'to_do', 'toggle', 'child_page', 'child_database', 'embed', 'callout', 'quote', 'equation', 'divider', 'table_of_contents', 'column', 'column_list', 'link_preview', 'synced_block', 'template', 'link_to_page', 'audio', 'bookmark', 'breadcrumb', 'code', 'file', 'image', 'pdf', 'video'. Not all types are supported for creation via API.", }, paragraph: { type: 'object', description: 'Paragraph block object.', properties: { rich_text: richTextObjectSchema, color: { type: 'string', description: 'The color of the block.', enum: [ 'default', 'blue', 'blue_background', 'brown', 'brown_background', 'gray', 'gray_background', 'green', 'green_background', 'orange', 'orange_background', 'pink', 'pink_background', 'purple', 'purple_background', 'red', 'red_background', 'yellow', 'yellow_background', ], }, children: { type: 'array', description: 'Nested child blocks.', items: { type: 'object', description: 'A nested block object.', }, }, }, }, }, required: ['object', 'type'], };

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/tkc/notion-mcp'

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