Notion MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| notion_append_block_childrenB | Append new children blocks to a specified parent block in Notion. Requires insert content capabilities. You can optionally specify the 'after' parameter to append after a certain block. |
| notion_retrieve_blockB | Retrieve a block from Notion |
| notion_retrieve_block_childrenC | Retrieve the children of a block |
| notion_delete_blockC | Delete a block in Notion |
| notion_update_blockA | Update the content of a block in Notion based on its type. The update replaces the entire value for a given field. |
| notion_retrieve_pageB | Retrieve a page from Notion |
| notion_update_page_propertiesB | Update properties of a page or an item in a Notion database |
| notion_list_all_usersA | List all users in the Notion workspace. Note: This function requires upgrading to the Notion Enterprise plan and using an Organization API key to avoid permission errors. |
| notion_retrieve_userA | Retrieve a specific user by user_id in Notion. Note: This function requires upgrading to the Notion Enterprise plan and using an Organization API key to avoid permission errors. |
| notion_retrieve_bot_userB | Retrieve the bot user associated with the current token in Notion |
| notion_create_databaseC | Create a database in Notion |
| notion_query_databaseC | Query a database in Notion |
| notion_retrieve_databaseB | Retrieve a database in Notion |
| notion_update_databaseC | Update a database in Notion |
| notion_create_database_itemB | Create a new item (page) in a Notion database |
| notion_create_commentA | Create a comment in Notion. This requires the integration to have 'insert comment' capabilities. You can either specify a page parent or a discussion_id, but not both. |
| notion_retrieve_commentsB | Retrieve a list of unresolved comments from a Notion page or block. Requires the integration to have 'read comment' capabilities. |
| notion_searchB | Search pages or databases by title in Notion |
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 18 tools
Most tools have distinct purposes targeting specific Notion resources (e.g., blocks, databases, pages, users, comments), with clear action differentiation. However, some overlap exists between 'notion_retrieve_block' and 'notion_retrieve_block_children' or 'notion_retrieve_database' and 'notion_query_database', which could cause minor confusion, though descriptions help clarify.
All tool names follow a consistent 'notion_verb_noun' pattern with snake_case throughout, using clear verbs like create, retrieve, update, delete, list, query, and search. This predictability makes it easy for agents to understand and select tools based on naming conventions.
With 18 tools, the count is slightly high but reasonable for a comprehensive Notion API server covering blocks, databases, pages, users, and comments. It feels slightly heavy but not excessive, as each tool serves a specific function in the domain without obvious redundancy.
The tool set provides complete CRUD/lifecycle coverage for Notion's core resources: create, retrieve, update, and delete operations for blocks, databases, pages, and comments, plus querying, searching, and user management. No significant gaps are apparent, enabling agents to handle typical Notion workflows effectively.