Notion Advisor
An MCP server that provides AI assistants with full access to Notion workspaces, enabling search, read, create, and update pages, databases, and blocks.
README
Notion Advisor
An MCP (Model Context Protocol) server that provides AI assistants with full access to Notion workspaces. Enables Claude to search, read, create, and update pages, databases, and blocks.
Features
- Search & Discovery: Search across all pages and databases in your workspace
- Page Operations: Create, read, update, and archive pages
- Content Management: Add, update, and delete content blocks with markdown support
- Database Operations: Query databases with filters and sorts, create new databases
- User Management: List workspace users and get user details
- Rate Limiting: Built-in rate limiting to respect Notion API limits (3 req/sec)
- Markdown Conversion: Automatic conversion between markdown and Notion blocks
Installation
npm install -g @m2ai-mcp/notion-advisor
Or use directly with npx (no install required):
npx @m2ai-mcp/notion-advisor
Configuration
1. Create a Notion Integration
- Go to Notion Integrations
- Click "New integration"
- Select "Internal integration"
- Grant required capabilities:
- Read content
- Update content
- Insert content
- Read user information (optional)
- Copy the "Internal Integration Token"
2. Share Content with Integration
For the integration to access pages and databases:
- Open the page or database in Notion
- Click the "..." menu in the top right
- Click "Add connections"
- Select your integration
3. Set Environment Variable
export NOTION_API_KEY=secret_your_integration_token_here
Or create a .env file:
NOTION_API_KEY=secret_your_integration_token_here
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["@m2ai-mcp/notion-advisor"],
"env": {
"NOTION_API_KEY": "secret_your_token_here"
}
}
}
}
Or if installed globally:
{
"mcpServers": {
"notion": {
"command": "notion-advisor",
"env": {
"NOTION_API_KEY": "secret_your_token_here"
}
}
}
}
Available Tools
Search & Discovery
| Tool | Description |
|---|---|
search |
Search across all pages and databases by keyword or title |
Page Operations
| Tool | Description |
|---|---|
get_page |
Retrieve a page's properties and metadata |
create_page |
Create a new page in a database or as child of another page |
update_page |
Update a page's properties (not content blocks) |
get_page_content |
Retrieve all content blocks from a page |
Block Operations
| Tool | Description |
|---|---|
append_blocks |
Add new content blocks to a page (supports markdown) |
update_block |
Update an existing block's content |
delete_block |
Delete (archive) a block |
Database Operations
| Tool | Description |
|---|---|
get_database |
Retrieve database schema and properties |
query_database |
Query a database with filters and sorts |
create_database |
Create a new database as child of a page |
User Operations
| Tool | Description |
|---|---|
list_users |
List all users in the workspace |
get_user |
Get details about a specific user |
Markdown Support
The server supports conversion of common markdown to Notion blocks:
- Headings (H1, H2, H3)
- Bold, italic, strikethrough, inline code
- Bullet and numbered lists
- Checkboxes / todo items
- Code blocks with language
- Links
- Blockquotes
- Horizontal rules
Example
# My Page Title
This is a paragraph with **bold** and *italic* text.
- Bullet item 1
- Bullet item 2
1. Numbered item
2. Another item
- [ ] Todo item
- [x] Completed item
> A blockquote
\`\`\`javascript
const greeting = "Hello, World!";
\`\`\`
Examples
Search for Pages
{
"query": "meeting notes",
"filter_type": "page",
"page_size": 10
}
Create a Page in a Database
{
"parent_id": "database-id-here",
"parent_type": "database_id",
"title": "New Task",
"properties": {
"Status": { "select": { "name": "In Progress" } }
},
"content": "## Task Description\n\nThis is the task content."
}
Query a Database
{
"database_id": "database-id-here",
"filter": {
"property": "Status",
"select": { "equals": "Done" }
},
"sorts": [
{ "property": "Due Date", "direction": "ascending" }
]
}
Append Content to a Page
{
"parent_id": "page-id-here",
"content": "## New Section\n\nAdding more content to this page.\n\n- Item 1\n- Item 2"
}
Known Limitations
- Cannot access pages not shared with the integration
- File/image uploads not supported (use URLs instead)
- Comments API limited
- Synced blocks are read-only
Development
# Install dependencies
npm install
# Build
npm run build
# Run tests
npm test
# Run with coverage
npm run test:coverage
License
MIT
Author
Me, Myself Plus AI LLC
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.