Skip to main content
Glama

get-page

Retrieve a specific page from your Notion workspace using its unique ID to access content and data.

Instructions

Retrieve a page by its ID

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
page_idYesID of the page to retrieve

Implementation Reference

  • The handler logic for the "get-page" tool. It extracts the page_id from arguments, removes any dashes from the ID, retrieves the page using the Notion API, and returns the response as JSON text.
    else if (name === "get-page") {
      let { page_id } = args;
      
      // Remove dashes if present in page_id
      page_id = page_id.replace(/-/g, "");
    
      const response = await notion.pages.retrieve({ page_id });
    
      return {
        content: [
          {
            type: "text",
            text: JSON.stringify(response, null, 2),
          },
        ],
      };
    }
  • Input schema definition for the "get-page" tool, specifying that it requires a 'page_id' string parameter.
    {
      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"]
      }
    },
  • server.js:38-315 (registration)
    The tools/list handler registers the "get-page" tool by including it in the list of available tools with its schema.
    // List databases tool
    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
                }
              }
            }
          }
        ]
      };
    });

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/Sjotie/notionMCP'

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