🚀 Notion MCP 服務器指南
MCP(Multipurpose Control Panel)服務器是一款強大的工具,可與 Notion 接口進行交互。它支持創建、讀取、更新和刪除數據庫項,還能管理用戶、處理評論等。本文將詳細介紹 MCP 服務器的設置、使用和集成方法,並提供完整的中文翻譯。
🚀 快速開始
1. 創建 MCP 實例
使用默認配置創建 MCP 服務器:
from mcp_server import MCP
mcp = MCP()
2. 啟動服務器
運行以下命令啟動 MCP 服務器:
python mcp_server.py
默認情況下,服務器將在http://localhost:5000上運行。
📦 安裝指南
1. 安裝依賴
在開始之前,請確保安裝以下 Python 庫:
notion:用於與 Notion API 交互。
flask:用於創建 Web 界面(可選)。
運行以下命令進行安裝:
pip install notion python-dotenv flask
2. 初始化項目結構
創建一個新目錄,並在其中添加以下文件:
config.py:存儲配置信息,如 Notion API 密鑰和數據庫 ID。
mcp_server.py:主服務器文件,包含 MCP 接口的實現。
requirements.txt:列出所有依賴項。
3. 配置環境變量
在config.py中添加以下內容:
NOTION_TOKEN = "your_notion_token"
DATABASE_ID = "your_database_id"
✨ 主要特性
以下是 MCP 服務器支持的主要功能及其詳細說明:
- 創建頁面
- 描述:在 Notion 工作區中創建新頁面。
- 參數:
title:必需,類型為字符串。
parent_page_id:可選,指定父頁面的 ID。
- 讀取頁面內容
- 更新頁面屬性
- 描述:更新現有頁面的屬性或內容。
- 參數:
page_id:必需,類型為字符串。
properties:可選,字典格式,包含要更新的屬性和值。
- 刪除頁面
- 描述:從 Notion 工作區中刪除指定頁面。
- 參數:
- 創建數據庫條目
- 描述:在指定的 Notion 數據庫中創建新條目。
- 參數:
database_id:必需,類型為字符串。
properties:必需,字典格式,包含條目的屬性和值。
- 讀取數據庫內容
- 描述:獲取指定數據庫的所有條目。
- 參數:
database_id:必需,類型為字符串。
page_size:可選,整數,指定每頁顯示的條目數量。
- 更新數據庫條目
- 描述:更新現有數據庫條目的屬性或內容。
- 參數:
database_id:必需,類型為字符串。
entry_id:必需,類型為字符串。
properties:可選,字典格式,包含要更新的屬性和值。
- 刪除數據庫條目
- 描述:從指定數據庫中刪除特定條目。
- 參數:
database_id:必需,類型為字符串。
entry_id:必需,類型為字符串。
- 搜索內容
- 描述:在 Notion 工作區中搜索頁面、數據庫和評論。
- 參數:
query:可選,字符串,指定搜索關鍵詞。
filter:可選,字典格式,用於限制搜索範圍(如僅限於頁面或數據庫)。
- 管理用戶
- 描述:列出所有用戶、獲取特定用戶的詳細信息以及創建新用戶。
- 參數:
user_id:可選,類型為字符串。
username:可選,類型為字符串。
email:可選,類型為字符串。
- 處理評論
- 描述:在頁面上創建、讀取、更新和刪除評論。
- 參數:
page_id:必需,類型為字符串。
comment_id:可選,類型為字符串。
content:必需,類型為字符串。
💻 使用示例
基礎用法
創建新頁面
mcp.create_page(title="My New Page", parent_page_id="parent_page_id")
更新現有頁面屬性
properties = {
"Status": "Published",
"Priority": "High"
}
mcp.update_page_properties(page_id="page_id", properties=properties)
搜索內容
results = mcp.search_content(query="search_term")
for result in results:
print(result.title, result.type)
🔧 技術細節
MCP 服務器提供了詳細的錯誤處理機制,包括驗證錯誤、授權錯誤和網絡錯誤。所有錯誤都會拋出相應的異常,並附帶錯誤信息。
示例
try:
mcp.create_page(title="", parent_page_id="parent_id")
except ValueError as e:
print(e)
📄 許可證
MCP 服務器遵循 MIT 許可證,允許您自由使用、修改和分發該軟件。完整的許可內容如下:
MIT License
版權所有 (c) [年份] [姓名]
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
🤝 貢獻指南
我們歡迎社區的貢獻!如果您發現任何問題或有任何改進想法,請訪問我們的 GitHub 倉庫提交 Issue 或 Pull Request。
如何貢獻
- Fork 該項目。
- 創建新的功能分支。
- 提交您的更改。
- Push 到遠程倉庫並創建 Pull Request。
📞 聯繫我們
如果您有任何問題或反饋,請聯繫我們的開發團隊:
- 郵件:contact@notionmcp.com
- GitHub:https://github.com/notionmcp
感謝您選擇 MCP 服務器!希望它能為您的 Notion 項目帶來便利。