Notion API服务器

为Notion API提供服务的MCP服务器,使LLM能够与Notion工作区交互。

  • by SunCreation
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 SunCreation/mcp-notion-server

使用说明

@suncreation/mcp概念服务器

用于Notion API的MCP服务器,使LLM能够与Notion工作空间交互。

分叉通知这是一把叉子 @搜狐/mcp概念服务器 通过改进错误处理、附加功能和更好的环境变量支持等增强功能。

特性

  • 通过MCP(模型上下文协议)实现API完整概念集成
  • Markdown转换以减少代币使用
  • 页面创建 (notion_create_page)-在现有页面下创建新页面
  • 支持两者 NOTION_API_TOKEN 和 NOTION_API_KEY 环境变量
  • 通过详细的HTTP状态代码消息增强错误处理

安装

npx -y @suncreation/mcp-notion-server

快速开始

1.创建概念集成

  1. 访问 概念集成页面
  2. 点击 “新整合”
  3. 命名您的集成并选择权限:
    • ✅ 阅读内容
    • ✅ 更新内容
    • ✅ 插入内容
  4. 复制 “内部集成令牌” (开始于 ntn_ 或 secret_)

2.将集成连接到页面

  1. 打开要访问的Notion页面
  2. 点击 "···" (右上)→ “连接”
  3. 添加您的集成

3.配置您的MCP客户端

开源代码

增添 ~/.config/opencode/opencode.json:

{
  "mcp": {
    "notion": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "your-integration-token"
      },
      "enabled": true
    }
  }
}

克劳德桌面

增添 claude_desktop_config.json:

{
  "mcpServers": {
    "notion": {
      "command": "npx",
      "args": ["-y", "@suncreation/mcp-notion-server"],
      "env": {
        "NOTION_API_TOKEN": "your-integration-token"
      }
    }
  }
}

多个工作区

您可以使用不同的名称连接多个Notion工作区:

{
  "mcp": {
    "notion-work": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "work-workspace-token"
      },
      "enabled": true
    },
    "notion-personal": {
      "type": "local",
      "command": ["npx", "-y", "@suncreation/mcp-notion-server"],
      "environment": {
        "NOTION_API_TOKEN": "personal-workspace-token"
      },
      "enabled": true
    }
  }
}

环境变量

变量 必填 描述
NOTION_API_TOKEN 是* 您的Notion API集成令牌
NOTION_API_KEY 是* 令牌的替代名称(可以使用)
NOTION_MARKDOWN_CONVERSION 否 设置为 "true" 用于Markdown输出(减少标记)

*其中之一 NOTION_API_TOKEN 或 NOTION_API_KEY 是必需的。

可用工具

页面

工具 说明
notion_retrieve_page 获取页面信息
notion_update_page_properties 更新页面属性
notion_create_page 创建新页面 (增强功能)

积木

工具 说明
notion_retrieve_block 获取区块信息
notion_retrieve_block_children 获取儿童积木
notion_append_block_children 向页面/块添加块
notion_delete_block 删除块

数据库

工具 说明
notion_create_database 创建新数据库
notion_query_database 查询数据库条目
notion_retrieve_database 获取数据库架构
notion_update_database 更新数据库属性
notion_create_database_item 将项目添加到数据库

搜索和用户

工具 说明
notion_search 按标题搜索页面/数据库
notion_list_all_users 列出工作区用户(企业)
notion_retrieve_user 获取用户详细信息(企业)
notion_retrieve_bot_user 获取机器人用户信息

评论

工具 说明
notion_create_comment 添加评论
notion_retrieve_comments 获取页面/块上的评论

命令行选项

# Enable only specific tools
node build/index.js --enabledTools=notion_retrieve_page,notion_query_database

# Read-only mode example
node build/index.js --enabledTools=notion_retrieve_block,notion_retrieve_block_children,notion_retrieve_page,notion_query_database,notion_retrieve_database,notion_search

Markdown转换

启用Markdown转换以减少令牌使用:

{
  "environment": {
    "NOTION_API_TOKEN": "your-token",
    "NOTION_MARKDOWN_CONVERSION": "true"
  }
}
  • 使用 format: "markdown" 用于可读输出(查看)
  • 使用 format: "json" 用于结构化数据(编辑)

故障排除

问题 解决方案
权限被拒绝 确保通过“连接”将集成添加到页面
401未经授权 检查您的API令牌是否正确
404 Not Found 验证页面/数据库ID是否正确
速率受限 增加请求之间的延迟

发展

# Clone and install
git clone https://github.com/SunCreation/mcp-notion-server.git
cd mcp-notion-server
npm install

# Build
npm run build

# Test
npm test

# Watch mode
npm run watch

与原始更改

此分叉包括以下增强功能 @搜狐/mcp概念服务器:

  1. notion_create_page 工具 -在现有页面下创建新页面
  2. 双环境变量支持 -两者皆有 NOTION_API_TOKEN 和 NOTION_API_KEY 工作
  3. 增强的错误处理 -详细的HTTP状态代码消息,便于调试
  4. setApiVersion() 方法 -如果需要,动态更改API版本

许可证

MIT许可证-请参阅 许可证 文件。

学分