返回市场
诺记API MCP服务器

诺记API MCP服务器

作者:pbohannon26 星标更新:2025-01-14

项目介绍

Notion API MCP

一个基于模型上下文协议(MCP)的服务器,通过Notion的API提供高级待办事项管理和内容组织能力。MCP使AI模型能够与外部工具和服务进行交互,实现与Notion强大功能的无缝集成。

MCP概述

基于Python的MCP服务器,使AI模型能够与Notion的API进行交互,提供以下功能:

  • 待办事项管理:创建、更新和跟踪带有富文本、截止日期、优先级和嵌套子任务的任务。
  • 数据库操作:创建和管理具有自定义属性、过滤器和视图的Notion数据库。
  • 内容组织:使用Markdown支持、分层列表和块操作来结构化和格式化内容。
  • 实时集成:通过干净的异步实现直接与Notion的工作区、页面和数据库进行交互。

完整功能列表 →

快速开始

# 克隆并设置
git clone https://github.com/yourusername/notion-api-mcp.git
cd notion-api-mcp
uv venv && source .venv/bin/activate

# 安装和配置
uv pip install -e .
cp .env.integration.template .env

# 在.env中添加您的Notion凭据:
# NOTION_API_KEY=ntn_your_integration_token_here
# NOTION_PARENT_PAGE_ID=your_page_id_here  # 创建新数据库时使用
# NOTION_DATABASE_ID=your_database_id_here  # 使用现有数据库时使用

# 运行服务器
python -m notion_api_mcp

开始使用

1. 创建Notion集成

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

2. 设置Notion访问权限

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

选项A:用于新数据库的父页面

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

选项B:现有数据库

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

3. 安装MCP服务器

  1. 创建虚拟环境:
cd notion-api-mcp
uv venv
source .venv/bin/activate  # 在Windows上:.venv\Scripts\activate
  1. 安装依赖项:
uv pip install -e .
  1. 配置环境:
cp .env.integration.template .env
  1. 编辑.env文件,添加您的Notion凭据:
NOTION_API_KEY=ntn_your_integration_token_here

# 根据需要选择其中一个或两个:
NOTION_PARENT_PAGE_ID=your_page_id_here  # 创建新数据库时使用
NOTION_DATABASE_ID=your_database_id_here  # 使用现有数据库时使用

4. 配置Claude Desktop

重要提示:虽然服务器支持.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",
        
        // 根据需要选择其中一个或两个:
        "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. 测试增强
    • 性能基准测试
  • 负载测试
  • 额外的边界情况
  • 扩展的集成测试