notion_retrieve_block
Retrieve content blocks from Notion workspaces in JSON or markdown format for reading, writing, or modifying content through the MCP Notion Server.
Instructions
Retrieve a block from Notion
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| block_id | Yes | The ID of the block to retrieve.It should be a 32-character string (excluding hyphens) formatted as 8-4-4-4-12 with hyphens (-). | |
| format | No | Specify the response format. 'json' returns the original data structure, 'markdown' returns a more readable format. Use 'markdown' when the user only needs to read the page and isn't planning to write or modify it. Use 'json' when the user needs to read the page with the intention of writing to or modifying it. | markdown |
Implementation Reference
- src/client/index.ts:87-94 (handler)Core implementation of retrieveBlock method that makes a GET request to the Notion API to retrieve a block by IDasync retrieveBlock(block_id: string): Promise<BlockResponse> { const response = await fetch(`${this.baseUrl}/blocks/${block_id}`, { method: "GET", headers: this.headers, }); return response.json(); }
- src/server/index.ts:67-75 (handler)Switch case handler that validates arguments and calls the retrieveBlock method when notion_retrieve_block tool is invokedcase "notion_retrieve_block": { const args = request.params .arguments as unknown as args.RetrieveBlockArgs; if (!args.block_id) { throw new Error("Missing required argument: block_id"); } response = await notionClient.retrieveBlock(args.block_id); break; }
- src/types/schemas.ts:43-57 (schema)MCP tool schema definition for notion_retrieve_block, including name, description, and input validationexport const retrieveBlockTool: Tool = { name: "notion_retrieve_block", description: "Retrieve a block from Notion", inputSchema: { type: "object", properties: { block_id: { type: "string", description: "The ID of the block to retrieve." + commonIdDescription, }, format: formatParameter, }, required: ["block_id"], }, };
- src/server/index.ts:317-342 (registration)Tool registration in the ListToolsRequestSchema handler, where retrieveBlockTool is added to the list of available toolsserver.setRequestHandler(ListToolsRequestSchema, async () => { const allTools = [ schemas.appendBlockChildrenTool, schemas.retrieveBlockTool, schemas.retrieveBlockChildrenTool, schemas.deleteBlockTool, schemas.updateBlockTool, schemas.createPageTool, schemas.retrievePageTool, schemas.updatePagePropertiesTool, schemas.listAllUsersTool, schemas.retrieveUserTool, schemas.retrieveBotUserTool, schemas.createDatabaseTool, schemas.queryDatabaseTool, schemas.retrieveDatabaseTool, schemas.updateDatabaseTool, schemas.createDatabaseItemTool, schemas.createCommentTool, schemas.retrieveCommentsTool, schemas.searchTool, ]; return { tools: filterTools(allTools, enabledToolsSet), }; });
- src/types/args.ts:15-18 (schema)TypeScript interface definition for RetrieveBlockArgs used for type-safe argument validationexport interface RetrieveBlockArgs { block_id: string; format?: "json" | "markdown"; }