notion-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NOTION_TOKEN | Yes | Your Notion integration secret (required) | |
| DEFAULT_PRIVACY | No | Default privacy for new pages: private or public | private |
| DEFAULT_PARENT_PAGE_ID | No | Default parent page ID for new pages |
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 | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_notionC | Search Notion for pages and databases by keyword. |
| check_connectionB | Verify Notion integration is working. |
| get_pageB | Read a Notion page's full content as markdown. |
| create_pageC | Create a new Notion page with markdown content. |
| append_to_pageC | Append markdown content to an existing page. |
| update_page_titleC | Rename a Notion page. |
| archive_pageB | Archive (soft-delete) a Notion page. |
| restore_pageB | Restore an archived page. |
| duplicate_pageC | Duplicate a page (creates a copy with same content). |
| list_databasesA | List all Notion databases accessible to the integration. |
| get_database_schemaB | Get the schema (columns/properties) of a database. Use this BEFORE adding/updating rows to know property names and types. |
| query_databaseC | Query a database with filters and sorting. Filter examples: {"Status": "Learning"} {"Priority": "🔥 Critical", "Category": "ML"} {"Progress": {"greater_than": 50}} |
| add_database_rowC | Add a new row to a database. |
| update_database_rowC | Update properties of an existing database row. |
| bulk_add_rowsC | Add multiple rows to a database at once. |
| get_block_childrenC | Get all children blocks of a block (page or container). |
| update_blockC | Update a single block's text content (for edits). |
| delete_blockC | Delete a single block from a page. |
| add_commentC | Add a comment to a Notion page. |
| get_commentsC | Get all comments on a page. |
| quick_noteB | Save a quick note to your default parent page. Requires DEFAULT_PARENT_PAGE_ID in .env. |
| daily_journalA | Add a timestamped entry to today's journal. Auto-finds a page with 'journal' in the title. |
| add_taskC | Quick-add a task to your Tasks database (auto-detected). Date format: 'YYYY-MM-DD' |
| get_today_tasksA | Get all tasks due today or overdue. |
| complete_taskB | Mark a task as complete by name or ID. |
| get_recent_pagesC | Get recently edited pages. |
| learning_dashboardA | Get a dashboard view of your AI/ML learning progress. Shows topics by status, category, priority, and average progress. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/KuldeepJha5176/notion-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server