Notion MCP Server
Integrates Notion with Claude Code, enabling search, read, and write operations on Notion pages and databases via the Model Context Protocol.
README
Notion MCP Server
Notion MCP (Model Context Protocol) server for Claude Code integration.
Overview
This server connects your Notion workspace to Claude Code, enabling Claude to search, read, and write Notion pages directly.
Features
- 🔍 Search Notion pages and databases
- 📖 Read page content and database entries
- ✍️ Create and update pages
- 🔎 Query databases with filters and sorting
- 🔐 Secure API key management
- 🚀 Full Notion API integration
Quick Start
For most users, use stdio mode (simpler and more stable):
# 1. Install
npm install && npm run build
# 2. Get Notion API key from https://www.notion.so/my-integrations
# 3. Register with Claude Code
claude mcp add --transport stdio notion \
--env NOTION_API_KEY=your_key_here \
-- node /absolute/path/to/dist/index.js
# 4. Use in Claude Code
claude
> /mcp
> 내 Notion 페이지를 검색해줘
📘 Detailed guide: docs/STDIO_MODE.md
Architecture
Transport Modes
This server supports three transport modes:
-
stdio (Standard I/O) - ⭐ Recommended for personal use
- Simple setup, stable, secure
- Perfect for local/personal use
- 📘 Complete stdio guide
-
HTTP (Streamable HTTP) - ⭐ Recommended for team/VM deployment
- Modern MCP protocol (2025-03-26)
- Central server deployment
- Multi-user support with authentication
- 📘 HTTP deployment guide
MCP Capabilities
- Tools: Functions to interact with Notion API
- Resources: Access to Notion pages and databases
- Authentication: Per-user API key management
Prerequisites
- Node.js 18+ or Node.js 20+
- A Notion account with API access
- Notion Integration created in Notion workspace
Installation
Option 1: Local Installation
# Clone the repository
git clone <repository-url>
cd notion-mcp-server
# Install dependencies
npm install
# Build the project
npm run build
Option 2: VM/Server Deployment (stdio mode)
For deploying on a VM where multiple users will connect via SSH:
# On your VM
git clone <repository-url>
cd notion-mcp-server
npm install
npm run build
# Start the server (stdio mode)
npm start
Option 3: HTTP Server Deployment (Recommended for VMs)
For a true central server with Streamable HTTP:
# On your VM
git clone <repository-url>
cd notion-mcp-server
npm install
npm run build
# Start HTTP server
npm run start:http
# Or with PM2 for production
npm install -g pm2
pm2 start dist/index-http.js --name notion-mcp-http
pm2 save
📘 See docs/HTTP_MODE.md for complete HTTP setup guide
Getting Your Notion API Key
- Go to https://www.notion.so/my-integrations
- Click "+ New integration"
- Give it a name (e.g., "Claude Code Integration")
- Select the workspace you want to connect
- Click "Submit"
- Copy the "Internal Integration Token" - this is your API key
- Important: Share the integration with the pages/databases you want to access:
- Open the page in Notion
- Click "..." menu → "Add connections"
- Select your integration
Claude Code Configuration
stdio Mode (Recommended)
The simplest and most reliable way to use this server:
claude mcp add --transport stdio notion \
--env NOTION_API_KEY=secret_your_notion_key \
--env USER_ID=optional_user_id \
-- node /absolute/path/to/notion-mcp-server/dist/index.js
Windows Example:
claude mcp add --transport stdio notion \
--env NOTION_API_KEY=ntn_xxxxxxxxxx \
-- node C:/IdeaProject/mcp/notion-mcp-server/dist/index.js
Mac/Linux Example:
claude mcp add --transport stdio notion \
--env NOTION_API_KEY=ntn_xxxxxxxxxx \
-- node /Users/username/notion-mcp-server/dist/index.js
Verify:
claude mcp list
# Should show: notion: node ... - ✓ Connected
📘 Full stdio guide: docs/STDIO_MODE.md
Claude Desktop App Configuration
For Claude Desktop (not CLI), edit the config file:
Mac/Linux: ~/.claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"notion": {
"command": "node",
"args": ["/absolute/path/to/notion-mcp-server/dist/index.js"],
"env": {
"NOTION_API_KEY": "secret_your_notion_key"
}
}
}
}
Advanced: HTTP Mode (Team Deployment)
For teams or remote deployment, see docs/HTTP_MODE.md
First, register with the HTTP server:
curl -X POST http://your-server:3000/register \
-H "Content-Type: application/json" \
-d '{"notionApiKey": "secret_xxx"}'
Then connect with Claude Code:
claude mcp add --transport http notion \
--header "X-User-Id: YOUR_USER_ID" \
--header "X-Api-Key: YOUR_NOTION_KEY" \
http://your-server:3000/mcp
Note: For production, use HTTPS with proper SSL certificates.
Method 3: NPM Package (Coming Soon)
{
"mcpServers": {
"notion": {
"command": "npx",
"args": ["notion-mcp-server"],
"env": {
"NOTION_API_KEY": "your-notion-api-key",
"USER_ID": "your-user-id"
}
}
}
}
Available Tools
Once configured, Claude Code can use these tools:
1. search_pages
Search for Notion pages in your workspace.
{
query: "project notes",
page_size: 10
}
2. search_databases
Find Notion databases.
{
query: "tasks",
page_size: 10
}
3. get_page
Get details of a specific page.
{
page_id: "page-id-here"
}
4. get_page_content
Read the content blocks of a page.
{
page_id: "page-id-here"
}
5. create_page
Create a new page.
{
parent: { page_id: "parent-page-id" },
title: "New Page",
content: [
{
object: "block",
type: "paragraph",
paragraph: {
rich_text: [{ type: "text", text: { content: "Hello!" } }]
}
}
]
}
6. append_blocks
Add content to an existing page.
{
page_id: "page-id-here",
blocks: [/* block objects */]
}
7. query_database
Query a database with filters.
{
database_id: "database-id-here",
filter: {
property: "Status",
select: { equals: "In Progress" }
}
}
8. get_database
Get database schema and properties.
{
database_id: "database-id-here"
}
Security Considerations
- API keys are hashed using SHA-256 before storage
- Each user has a unique ID for authentication
- Keys are never logged or exposed in responses
- Store
users.jsonsecurely and backup regularly - Use environment variables for sensitive data
- Consider using HTTPS for remote deployments
Development
# Run in development mode with auto-reload
npm run dev
# Build
npm run build
# Production
npm start
Troubleshooting
"Invalid Notion API key"
- Verify your API key is correct
- Check that the integration is shared with your pages
- Ensure the integration has the necessary permissions
"User not found"
- Make sure you've run the registration script
- Verify the User ID matches the one from registration
Claude Code can't connect
- Check that the path to index.js is absolute
- Verify Node.js is in your PATH
- Check Claude Code logs for errors
SSH connection issues (VM deployment)
- Ensure SSH key authentication is configured
- Test SSH connection manually first
- Check firewall rules on the VM
VM Deployment Best Practices
For production VM deployment:
- Use a process manager (PM2, systemd):
npm install -g pm2
pm2 start dist/index.js --name notion-mcp-server
pm2 save
-
Set up automatic backups of
users.json -
Configure firewall to restrict access
-
Use SSH key authentication only (disable password auth)
-
Monitor logs:
pm2 logs notion-mcp-server
- Keep the server updated:
git pull
npm install
npm run build
pm2 restart notion-mcp-server
API Reference
For detailed Notion API documentation, see: https://developers.notion.com/reference/intro
License
MIT
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
Support
For issues and questions:
- Check the troubleshooting section
- Review Notion API documentation
- Open a GitHub issue
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。