API MCP通知
模型上下文协议(MCP)服务器,通过Notion的API提供高级待办事项列表管理和内容组织功能。MCP使AI模型能够与外部工具和服务交互,从而与Notion的强大功能无缝集成。
MCP概述
基于Python的MCP服务器,使人工智能模型能够与Notion的API交互,提供:
- 待办事项管理:使用富格文本、截止日期、优先级和嵌套子任务创建、更新和跟踪任务
- 数据库操作:使用自定义属性、筛选器和视图创建和管理Notion数据库
- 内容组织:具有Markdown支持、分层列表和块操作的结构和格式内容
- 实时集成:通过干净的异步实现与Notion的工作区、页面和数据库直接交互
快速开始
# Clone and setup
git clone https://github.com/yourusername/notion-api-mcp.git
cd notion-api-mcp
uv venv && source .venv/bin/activate
# Install and configure
uv pip install -e .
cp .env.integration.template .env
# Add your Notion credentials to .env:
# NOTION_API_KEY=ntn_your_integration_token_here
# NOTION_PARENT_PAGE_ID=your_page_id_here # For new databases
# NOTION_DATABASE_ID=your_database_id_here # For existing databases
# Run the server
python -m notion_api_mcp入门指南
1.创建概念集成
- 首选https://www.notion.so/my-integrations
- 点击“新建集成”
- 命名您的集成(例如,“我的MCP集成”)
- 选择要使用集成的工作区
- 复制“内部集成令牌”-这将是您的
NOTION_API_KEY
- 应以“ntn\_”开头
2.设置通知访问
您需要一个父页面(用于创建新数据库)或一个现有的数据库ID:
选项A:新数据库的父页
- 在浏览器中打开Notion
- 创建新页面或打开要在其中创建数据库的现有页面
- 点击右上角的•••菜单
- 选择“添加连接”并选择您的集成
- 从URL复制页面ID-它是最后一个斜线后和问号前的字符串
- 示例:In https://notion.so/myworkspace/123456abcdef...,ID为 123456abcdef... - 这将是你的 NOTION_PARENT_PAGE_ID
选项B:现有数据库
- 打开现有的Notion数据库
- 确保它已连接到您的集成(•••菜单>添加连接)
- 从URL复制数据库ID
- 示例:In https://notion.so/myworkspace/123456abcdef...?v=...,ID为 123456abcdef... - 这将是你的 NOTION_DATABASE_ID
3.安装MCP服务器
- 创建虚拟环境:
cd notion-api-mcp
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate- 安装依赖项:
uv pip install -e .- 配置环境:
cp .env.integration.template .env- 使用您的Notion凭据编辑.env:
NOTION_API_KEY=ntn_your_integration_token_here
# Choose one or both of these depending on your needs:
NOTION_PARENT_PAGE_ID=your_page_id_here # For creating new databases
NOTION_DATABASE_ID=your_database_id_here # For working with existing databases4.配置克劳德桌面
重要提示:虽然服务器支持.env文件和环境变量,但Claude Desktop特别要求在其配置文件中进行配置才能使用MCP。
添加到Claude Desktop的配置中(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"notion-api": {
"command": "/path/to/your/.venv/bin/python",
"args": ["-m", "notion_api_mcp"],
"env": {
"NOTION_API_KEY": "ntn_your_integration_token_here",
// Choose one or both:
"NOTION_PARENT_PAGE_ID": "your_page_id_here",
"NOTION_DATABASE_ID": "your_database_id_here"
}
}
}
}注意:即使您配置了.env文件,您也必须将这些环境变量添加到Claude Desktop配置中,以便Claude使用MCP。.env文件主要用于本地开发和测试。
文档
- 配置详情 -详细的配置选项和环境变量
- 特性 -完整的功能列表和功能
- 建筑 -可用工具和使用示例概述
- api参考 -详细的API端点和实现详细信息
- 测试覆盖矩阵 -测试覆盖率和验证状态
- 依赖项 -项目依赖关系和版本信息
- 更新日志 -开发进展和更新
发展
服务器始终使用现代Python异步功能:
- 使用Pydantic模型的类型安全配置
- 使用httpx异步HTTP以获得更好的性能
- 清洁MCP集成以暴露Notion功能
- 适当的资源清理和错误处理
调试
服务器包括全面的日志记录:
- 控制台输出用于开发
- 作为服务运行时的文件日志记录
- 详细的错误消息
- 调试级别的请求/响应日志记录
集 PYTHONPATH 在直接运行时包含项目根:
PYTHONPATH=/path/to/project python -m notion_api_mcp未来发展
计划中的增强功能:
- 性能优化
- 添加请求缓存 - 优化数据库查询 - 实现连接池
- 高级功能
- 多工作空间支持 - 批量操作 - 实时更新 - 高级搜索功能
- 开发者体验
- 交互式API文档 - 用于常见操作的CLI工具 - 其他代码示例 - 性能监控
- 测试增强功能
- 性能基准 - 负载测试 - 其他边缘案例 - 扩展集成测试
