Notion API任务管理服务

一个基于Notion API的Python服务,提供高级任务管理和内容组织功能,支持AI模型与Notion的无缝集成。

  • by HitmanLy007
  • 本地部署
  • 更新于
在 GitHub 查看 hitmanly007/notion-api-mcp

使用说明

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.创建概念集成

  1. 首选https://www.notion.so/my-integrations
  2. 点击“新建集成”
  3. 命名您的集成(例如,“我的MCP集成”)
  4. 选择要使用集成的工作区
  5. 复制“内部集成令牌”-这将是您的 NOTION_API_KEY
    • 应以“ntn_”开头

2.设置通知访问

您需要一个父页面(用于创建新数据库)或一个现有的数据库ID:

选项A:新数据库的父页

  1. 在浏览器中打开Notion
  2. 创建新页面或打开要在其中创建数据库的现有页面
  3. 点击右上角的•••菜单
  4. 选择“添加连接”并选择您的集成
  5. 从URL复制页面ID-它是最后一个斜线后和问号前的字符串
    • 示例:In https://notion.so/myworkspace/123456abcdef...,ID为 123456abcdef...
    • 这将是你的 NOTION_PARENT_PAGE_ID

选项B:现有数据库

  1. 打开现有的Notion数据库
  2. 确保它已连接到您的集成(•••菜单>添加连接)
  3. 从URL复制数据库ID
    • 示例:In https://notion.so/myworkspace/123456abcdef...?v=...,ID为 123456abcdef...
    • 这将是你的 NOTION_DATABASE_ID

3.安装MCP服务器

  1. 创建虚拟环境:
cd notion-api-mcp
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 安装依赖项:
uv pip install -e .
  1. 配置环境:
cp .env.integration.template .env
  1. 使用您的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 databases

4.配置克劳德桌面

重要提示:虽然服务器支持.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文件主要用于本地开发和测试。

文档

发展

服务器始终使用现代Python异步功能:

  • 使用Pydantic模型的类型安全配置
  • 使用httpx异步HTTP以获得更好的性能
  • 清洁MCP集成以暴露Notion功能
  • 适当的资源清理和错误处理

调试

服务器包括全面的日志记录:

  • 控制台输出用于开发
  • 作为服务运行时的文件日志记录
  • 详细的错误消息
  • 调试级别的请求/响应日志记录

集 PYTHONPATH 在直接运行时包含项目根:

PYTHONPATH=/path/to/project python -m notion_api_mcp

未来发展

计划中的增强功能:

  1. 性能优化

    • 添加请求缓存
    • 优化数据库查询
    • 实现连接池
  2. 高级功能

    • 多工作空间支持
    • 批量操作
    • 实时更新
    • 高级搜索功能
  3. 开发者体验

    • 交互式API文档
    • 用于常见操作的CLI工具
    • 其他代码示例
    • 性能监控
  4. 测试增强功能

    • 性能基准
    • 负载测试
    • 其他边缘案例
    • 扩展集成测试