README
🚀 Notion MCP 服务器指南
MCP(Multipurpose Control Panel)服务器是一个强大工具,可与 Notion 接口交互。它支持多种操作,如创建、读取、更新和删除数据库项,管理用户,以及处理评论等。本文将详细介绍该服务器的设置、使用和集成方法,并提供完整的中文翻译。
🚀 快速开始
1. 创建 MCP 实例
使用默认配置创建 MCP 服务器:
from mcp_server import MCP
mcp = MCP()
2. 启动服务器
运行以下命令启动 MCP 服务器:
python mcp_server.py
默认情况下,服务器将在 http://localhost:5000 上运行。
✨ 主要特性
MCP 服务器支持的主要功能及其详细说明如下:
- 创建页面
- 描述:在 Notion 工作区中创建新页面。
- 参数:
title:必需,类型为字符串。parent_page_id:可选,指定父页面的 ID。
- 读取页面内容
- 描述:获取指定页面的内容和属性。
- 参数:
page_id:必需,类型为字符串。
- 更新页面属性
- 描述:更新现有页面的属性或内容。
- 参数:
page_id:必需,类型为字符串。properties:可选,字典格式,包含要更新的属性和值。
- 删除页面
- 描述:从 Notion 工作区中删除指定页面。
- 参数:
page_id:必需,类型为字符串。
- 创建数据库条目
- 描述:在指定的 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:必需,类型为字符串。
📦 安装指南
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.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.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)
搜索内容
搜索 Notion 工作区中的内容,可以使用以下代码:
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 许可证
版权所有 (c) [年份] [姓名]
特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向其提供软件的人这样做。
软件按“原样”提供,不附带任何形式的明示或暗示保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对因合同、侵权或其他方式引起的任何索赔、损害或其他责任负责,无论是在与软件或软件的使用或其他交易有关的任何行动中。
贡献指南
我们欢迎社区的贡献!如果您发现任何问题或有任何改进想法,请访问我们的 GitHub 仓库提交 Issue 或 Pull Request。
如何贡献
- Fork 该项目。
- 创建新的功能分支。
- 提交您的更改。
- Push 到远程仓库并创建 Pull Request。
联系我们
如果您有任何问题或反馈,请联系我们的开发团队:
- 邮件:contact@notionmcp.com
- GitHub:https://github.com/notionmcp
感谢您选择 MCP 服务器!希望它能为您的 Notion 项目带来便利。
Scan to join WeChat group