MCP Server for Notion
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NOTION_API_KEY | Yes | Your Notion API key (starts with secret_...) | |
| HOST_WORKSPACE_PATH | Yes | The path to your workspace on the host machine, used for file-based operations. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| notion_retrieve_pageA | Retrieves page metadata: properties, parent, timestamps, archived status |
| notion_create_pageA | IMPORTANT: You MUST write the JSON payload (including 'parent', 'properties', 'children') to a file first, then pass the file path in 'file_path'. Creates page in database or as subpage. |
| notion_update_pageA | IMPORTANT: You MUST write the JSON payload to a file first, then pass the file path in 'file_path'. Updates page properties, archive status, icon, or cover. |
| notion_query_databaseA | Queries database with filters/sorts. Returns array of pages (results). Supports pagination |
| notion_retrieve_databaseA | Retrieves database schema: property definitions, title, description |
| notion_create_databaseA | IMPORTANT: You MUST write the JSON payload (including 'parent', 'title', 'properties') to a file first, then pass the file path in 'file_path'. Creates a database as a subpage in a specified parent. |
| notion_update_databaseA | IMPORTANT: You MUST write the JSON payload to a file first, then pass the file path in 'file_path'. Updates database title, description, or properties. |
| notion_retrieve_block_childrenA | Retrieves child blocks (paragraphs, headings, lists, etc.) of page or block. Supports pagination |
| notion_append_block_childrenB | IMPORTANT: You MUST write the JSON payload (array of children) to a file first, then pass the file path in 'file_path'. Appends content blocks. |
| notion_delete_blockA | Deletes a block (sets in_trash: true). |
| notion_retrieve_blockB | Retrieves a block by ID. |
| notion_update_blockC | IMPORTANT: You MUST write the JSON payload to a file first, then pass the file path in 'file_path'. Updates a block. |
| notion_searchA | Searches pages/databases by title. Filter by object type (page/database), sort by last_edited_time |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct Notion resource and action: pages, databases, blocks, search, and query operations are clearly separated. Tools like notion_search and notion_query_database work differently enough that an agent should not confuse them.
All tools follow a consistent notion_verb_noun pattern (e.g., notion_retrieve_page, notion_create_database, notion_update_block, notion_append_block_children). The verb and resource order is uniform across the entire tool set, making the naming predictable.
Thirteen tools is well-scoped for Notion's content model, covering pages, databases, blocks, child-block operations, and search. Each tool covers a meaningful operation without excessive fragmentation or overlap.
The tool set provides strong coverage of Notion's core workflows: creating, retrieving, updating, querying, and searching pages, databases, and blocks. Minor gaps exist such as no explicit delete-database or page-deletion tool, though page archiving can be handled via update_page and block deletion is supported.