Notion MCP服务

Notion MCP服务器是一个为Notion API设计的模型上下文协议服务器,使AI助手能够以编程方式与Notion工作区交互,提供标准化的接口来访问和操作Notion内容,包括数据库、页面和块。

  • by kyrelldixon
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 kyrelldixon/notion-mcp

使用说明

MCP服务器概念

用于Notion API的模型上下文协议(MCP)服务器,使人工智能助手能够以编程方式与Notion工作空间交互。此服务器为LLM提供了一个标准化的接口,用于访问和操作Notion内容,包括数据库、页面和块。

什么是MCP?

模型上下文协议(MCP)是一种标准化协议,用于将大型语言模型(LLM)与外部工具、数据源和API连接起来。它允许像克劳德这样的人工智能助手以安全、标准化的方式访问功能和数据。此Notion MCP服务器实现了协议,为AI助手提供对Notion工作区的访问。

项目目的

该项目是人工智能助手和Notion工作空间之间的桥梁,允许人工智能工具:

  • 查询和搜索数据库
  • 检索和创建页面
  • 更新页面属性和内容
  • 创建和更新数据库
  • (即将推出)管理区块及其内容

通过为Notion实现MCP协议,该服务器使AI助手能够帮助用户更有效地管理他们的Notion工作区。

特性

Notion MCP服务器实现了以下功能:

数据库操作

  • 通过过滤和排序查询数据库
  • 创建具有自定义属性的新数据库
  • 更新现有数据库架构和属性
  • 跨数据库搜索

页面操作

  • 创建具有属性和内容的页面
  • 检索页面内容和元数据
  • 更新页面属性
  • 跨页面搜索

区块操作(即将推出)

  • 检索块子项
  • 将新块附加到页面
  • 更新块内容
  • 删除块

设置

先决条件

  • 包子 v1.2.9或更高版本
  • 具有适当权限的Notion集成令牌
  • 与您的集成共享的Notion页面/数据库

创建概念集成

  1. 访问 注意您的集成页面
  2. 点击“新建集成”
  3. 命名您的集成并选择适当的权限(例如,“读取内容”、“更新内容”)
  4. 复制“内部集成令牌”-这将是您的 NOTION_API_KEY

与您的集成共享概念内容

  1. 在Notion中打开要集成访问的页面或数据库
  2. 点击右上角的“···”按钮
  3. 单击“连接”按钮,然后选择您创建的集成

安装

  1. 克隆存储库:

    git clone https://github.com/kyrelldixon/notion-mcp.git
    cd notion-mcp
    
  2. 安装依赖项:

    bun install
    
  3. 创建一个 .env 使用您的Notion API令牌在项目根目录中创建文件:

    NOTION_API_KEY=your_notion_integration_token
    
  4. 构建并运行服务器:

    bun run src/index.ts
    

配置Claude桌面

要将此MCP服务器与Claude Desktop一起使用,请将以下内容添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "notion": {
      "command": "bun",
      "args": ["run", "src/index.ts"],
      "cwd": "/absolute/path/to/notion-mcp",
      "env": {
        "NOTION_API_KEY": "your-integration-token"
      }
    }
  }
}

可用工具

Notion MCP服务器为AI助手提供以下工具:

数据库工具

  1. queryDatabase

    • 使用过滤器和排序查询Notion数据库
    • 所需参数: database_id
    • 可选参数: filter, sorts, page_size, start_cursor
  2. createDatabase

    • 在Notion中创建新数据库
    • 所需参数: parent, title, properties
  3. updateDatabase

    • 更新数据库的属性或架构
    • 所需参数: database_id
    • 可选参数: title, description, properties

页面工具

  1. retrievePage

    • 获取页面的内容和属性
    • 所需参数: page_id
  2. createPage

    • 在Notion中创建新页面
    • 所需参数: parent, properties
    • 可选参数: children
  3. updatePageProperties

    • 更新页面属性
    • 所需参数: page_id, properties

搜索工具

  1. search
    • 按标题在Notion工作区中搜索
    • 可选参数: query, filter, sort, page_size, start_cursor

故障排除

如果遇到权限错误:

  1. 确保您的Notion集成具有所需的权限
  2. 验证是否邀请集成到相关页面或数据库
  3. 确认您的令牌在 .env 文件或配置

项目结构

notion-mcp/
├── src/
│   ├── services/
│   │   └── notion.ts             # Notion client service  
│   ├── config.ts                 # Application configuration
│   ├── env.ts                    # t3-env schema 
│   ├── index.ts                  # Server entry point
│   ├── utils/
│   │   └── error-handling.ts     # Error handling utilities
│   └── tools/
│       ├── index.ts              # Export all tools
│       ├── databases/            # Database-related tools
│       │   ├── handler.ts        # Handlers for database operations
│       │   ├── index.ts          # Export database tools
│       │   └── schema.ts         # Zod schemas for database operations
│       └── pages/                # Page-related tools
│           ├── handler.ts        # Handlers for page operations
│           ├── index.ts          # Export page tools
│           └── schema.ts         # Zod schemas for page operations
├── tsconfig.json
├── package.json  
├── todos.md
├── README.md
└── bun.lock

许可证

麻省理工学院