返回市场
诺提昂-MCP服务器

诺提昂-MCP服务器

作者:awkoy138 星标更新:2025-04-13

项目介绍

Notion MCP Server

License TypeScript Model Context Protocol smithery badge NPM Downloads Stars

Notion MCP Server 是一个实现了模型上下文协议(MCP)的服务器,它使AI助手能够与Notion的API进行交互。这个生产就绪的服务器提供了一整套工具和端点,通过自然语言交互来读取、创建和修改Notion内容。

🚧 活跃开发中:现在支持数据库!增加了评论和用户管理工具。如果你发现这个项目有用,请考虑给它一个星标——这有助于我了解这项工作对社区的价值,并激励进一步的发展。

<a href="https://glama.ai/mcp/servers/zrh07hteaa"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=790865212,727334730&fm=3081&app=33&f=PNG?w=760&h=400" /> </a>

📑 目录

🚀 开始与集成

设置过程

  1. 获取Notion API密钥

  2. 启用页面集成

    • 在Notion中选择一个现有页面或创建一个新的页面
    • 点击右上角的“...”菜单
    • 前往“连接”
    • 找到并启用你的集成列表中的集成

    Notion 页面连接

  3. 选择你的集成方法

    • 根据你偏好的MCP客户端,遵循以下集成选项之一
  4. 让AI助手与Notion互动

    • “创建一个包含今天任务的新页面”
    • “更新我在Notion上的会议笔记”
    • “在会议笔记页面添加要点”
    • “创建一个用于跟踪项目的数据库”
    • “向我的任务数据库添加新条目”
    • “在我的项目页面添加评论”
    • “显示此文档的所有评论”
    • “列出我的工作区中的所有用户”
    • “获取特定用户的详细信息”

Cursor 集成

方法1:使用 mcp.json

  1. 创建或编辑项目目录中的.cursor/mcp.json文件:
{
  "mcpServers": {
    "notion-mcp-server": {
      "command": "env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx",
      "args": ["-y", "notion-mcp-server"]
    }
  }
}
  1. YOUR_KEYYOUR_PAGE_ID替换为你的实际Notion API密钥和页面ID
  2. 重启Cursor以应用更改

方法2:手动模式

  1. 打开Cursor并进入设置
  2. 导航到“MCP”或“模型上下文协议”部分
  3. 点击“添加服务器”或类似按钮
  4. 在相应字段中输入以下命令:
env NOTION_TOKEN=YOUR_KEY NOTION_PAGE_ID=YOUR_PAGE_ID npx -y notion-mcp-server
  1. YOUR_KEYYOUR_PAGE_ID替换为你的实际Notion API密钥和页面ID
  2. 保存设置,如有必要,重启Cursor

Claude Desktop 集成

  1. 创建或编辑配置目录中的mcp.json文件:
{
  "mcpServers": {
    "notion-mcp-server": {
      "command": "npx",
      "args": ["-y", "notion-mcp-server"],
      "env": {
        "NOTION_TOKEN": "YOUR_KEY",
        "NOTION_PAGE_ID": "YOUR_PAGE_ID"
      }
    }
  }
}
  1. YOUR_KEYYOUR_PAGE_ID替换为你的实际Notion API密钥和页面ID
  2. 重启Claude Desktop以应用更改

🌟 特性

  • 📝 Notion 集成 - 与Notion数据库、页面和块进行交互
  • 🔌 通用MCP兼容性 - 适用于所有MCP客户端,包括Cursor、Claude Desktop、Cline和Zed
  • 🔍 数据检索 - 从Notion页面、块和数据库中获取信息
  • ✏️ 内容创建 - 创建和更新Notion页面和块
  • 📊 块管理 - 在Notion页面内追加、更新和删除块
  • 💾 数据库操作 - 创建、查询和更新数据库
  • 🔄 批量操作 - 在单个请求中执行多个操作
  • 🗑️ 归档与恢复 - 归档和恢复Notion页面
  • 🔎 搜索功能 - 按标题搜索Notion页面和数据库
  • 💬 评论管理 - 获取、创建和回复页面和讨论中的评论
  • 👥 用户管理 - 获取工作区用户和用户信息

📚 文档

可用工具

该服务器提供了以下整合工具,用于与Notion进行交互:

notion_pages

一个全面的页面操作工具,包括:

  • 使用指定内容创建新页面
  • 更新页面属性
  • 归档页面(移动到回收站)
  • 恢复已归档的页面
  • 按标题搜索页面

示例操作:

{
  "payload": {
    "action": "create_page", // 其中之一:"create_page", "archive_page", "restore_page", "search_pages", "update_page_properties"
    "params": {
      // 与所选动作相关的参数
    }
  }
}

notion_blocks

一个完整的块操作工具箱,包括:

  • 获取块内容
  • 获取子块
  • 向父块追加新块
  • 更新现有块
  • 删除块
  • 执行批量操作(追加、更新、删除、混合)

示例操作:

{
  "payload": {
    "action": "append_block_children", // 其中之一:"append_block_children", "retrieve_block", "retrieve_block_children", "update_block", "delete_block", "batch_append_block_children", "batch_update_blocks", "batch_delete_blocks", "batch_mixed_operations"
    "params": {
      // 与所选动作相关的参数
    }
  }
}

notion_database

一个强大的数据库交互工具,包括:

  • 使用自定义属性创建新数据库
  • 使用过滤器和排序查询数据库
  • 更新数据库结构和属性

示例操作:

{
  "payload": {
    "action": "create_database", // 其中之一:"create_database", "query_database", "update_database"
    "params": {
      // 与所选动作相关的参数
    }
  }
}

notion_comments

一个用于管理Notion内容评论的工具:

  • 从页面和块中获取评论
  • 向页面添加新的评论
  • 回复现有的讨论

示例操作:

{
  "payload": {
    "action": "get_comments", // 其中之一:"get_comments", "add_page_comment", "add_discussion_comment"
    "params": {
      // 与所选动作相关的参数
    }
  }
}

notion_users

一个用于访问用户信息的工具:

  • 列出所有工作区用户
  • 获取特定用户的详细信息
  • 获取当前机器人用户的详细信息

示例操作:

{
  "payload": {
    "action": "list_users", // 其中之一:"list_users", "get_user", "get_bot_user"
    "params": {
      // 与所选动作相关的参数
    }
  }
}

可用资源

该服务器目前不暴露任何资源,而是专注于基于工具的操作。

🛠 开发

  1. 克隆仓库

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

    npm install
    
  3. 设置环境变量

    • 创建一个.env文件,内容如下:
      NOTION_TOKEN=your_notion_api_key
      NOTION_PAGE_ID=your_notion_page_id
      
  4. 构建项目

    npm run build
    
  5. 运行检查器

    npm run inspector
    

🔧 技术细节

  • 使用TypeScript和MCP SDK(版本1.7.0+)构建
  • 使用官方Notion API客户端(@notionhq/client v2.3.0+)
  • 遵循模型上下文协议规范
  • 实现了针对Notion页面、块和数据库的CRUD操作工具
  • 支持高效的批量操作以优化性能
  • 使用Zod模式验证输入/输出

❓ 故障排除

  • 常见问题

    • 认证错误:确保你的Notion令牌具有正确的权限,并且已为你的页面/数据库启用集成
    • 页面访问问题:确保你的集成已添加到你尝试访问的页面
    • 速率限制:Notion API有速率限制——使用批量操作优化请求
  • 获取帮助

🤝 贡献

欢迎贡献!请随意提交Pull Request。

  1. 分叉仓库
  2. 创建你的功能分支(git checkout -b feature/amazing-feature
  3. 提交你的更改(git commit -m 'Add some amazing feature'
  4. 推送到分支(git push origin feature/amazing-feature
  5. 打开一个Pull Request

📄 许可证

本项目采用MIT许可证——详情见LICENSE文件。