Notion MCP Server
這是一個 Model Context Protocol (MCP) 伺服器,用於連接和操作 Notion API。它提供了一套完整的工具來讀取、寫入和管理 Notion 頁面與資料庫。
功能特色
- 🔍 搜尋頁面 - 在 Notion 工作區中搜尋頁面
- 📄 頁面操作 - 取得、建立和更新 Notion 頁面
- 🗃️ 資料庫查詢 - 查詢和操作 Notion 資料庫
- 📋 內容管理 - 讀取和修改頁面內容區塊
- 🔄 即時同步 - 透過 MCP 協議即時與 Notion 同步
安裝和設定
1. 安裝依賴
npm install
2. 設定 Notion 整合
- 前往 Notion 整合設定頁面
- 建立新的整合
- 複製整合 token
- 建立
.env
檔案並加入您的 token:
cp .env.example .env
# 編輯 .env 檔案,加入您的 Notion token
3. 建立專案
npm run build
使用方法
開發模式
npm run dev
生產模式
npm start
監控模式(自動重新載入)
npm run watch
可用的工具
頁面操作
get-page
- 根據 ID 取得頁面詳細資訊search-pages
- 搜尋頁面create-page
- 建立新頁面update-page
- 更新頁面屬性
資料庫操作
query-database
- 查詢資料庫內容
資源
notion://recent-pages
- 最近存取的頁面notion://databases
- 可存取的資料庫清單
在 VS Code 中使用
- 確保已安裝 MCP 相關的 VS Code 擴充功能
- 使用
.vscode/mcp.json
配置檔案來設定伺服器連接 - 在 VS Code 中啟動偵錯模式以測試 MCP 伺服器
API 範例
搜尋頁面
{
"name": "search-pages",
"arguments": {
"query": "meeting notes",
"filter": {
"property": "Status",
"value": "Active"
}
}
}
建立頁面
{
"name": "create-page",
"arguments": {
"parent": {
"database_id": "your-database-id"
},
"properties": {
"Name": {
"title": [
{
"text": {
"content": "新頁面標題"
}
}
]
}
}
}
}
錯誤排除
常見問題
- Authentication Error: 確認
NOTION_TOKEN
環境變數已正確設定 - Permission Error: 確認 Notion 整合有適當的權限存取所需的頁面和資料庫
- Module Resolution Error: 確認所有依賴已正確安裝
偵錯
在開發模式下,伺服器會在 stderr 輸出詳細的偵錯資訊。
專案結構
.
├── src/
│ ├── index.ts # MCP 伺服器主程式
│ └── notion-service.ts # Notion API 服務類別
├── .vscode/
│ └── mcp.json # VS Code MCP 配置
├── .github/
│ └── copilot-instructions.md # GitHub Copilot 指令
├── package.json
├── tsconfig.json
├── .env.example
└── README.md
授權
MIT License