Notion Publisher
v1.0.0使用目标数据库默认 Notion 模板的本地缓存副本,将文章发布到 Notion。当用户输入 /not... 时使用此技能。
详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
Notion Publisher 技能触发 当用户输入 /notion-publisher 或要求“发布、起草、在 Notion 数据库创建文章/页面”时调用。
共享配置路径 ~/.notion_publish/notion-publisher-config.json 仅保存可复用的发布偏好: { "default_status": "Draft", "template_strategy": "ask_each_time" } 禁止保存:数据库 ID、数据源 ID、标签、分类、封面、文章内容、Notion token、私有工作区 URL。
每次询问目标数据库。
检测平台 选择运行前,先检测客户端是否为 OpenClaw: which openclaw 2>/dev/null && echo "PLATFORM=openclaw" || echo "PLATFORM=other" PLATFORM=openclaw:假设 Notion MCP 不可用,优先用内置 CLI。 PLATFORM=other:有 MCP 用 MCP,无 MCP 退回到 CLI。
Notion 运行选项 支持 MCP 与纯命令行客户端(如 OpenClaw)。 优先级:
- 有 Notion MCP 工具 → 用 MCP。
- 无 MCP 但可执行 shell → 用内置 CLI:scripts/notion_publisher.py
- 两者皆无 → 生成 Markdown 并提示用户手动发布。
CLI 依赖 使用官方 Notion API,需环境变量 NOTION_TOKEN 或文件 ~/.notion_publish/.env 示例:NOTION_TOKEN=secret_xxx 目标数据库须与集成共享。 获取 token:
- 打开 Notion integrations/creator dashboard → 新建内部集成 → 复制 Internal Integration Secret。
- 在 Content access 共享数据库。
- 将 secret 保存到 ~/.notion_publish/.env,勿提交到仓库。
MCP 工具名 视客户端可用工具而定: Codex:mcp__notion__notion_search / fetch / create_pages / update_page Claude Code / Claude plugin:mcp__plugin_Notion_notion__notion-search 等 若无 MCP 工具,不自动停止;可执行 shell 时转 CLI。
CLI 示例 发布: python3 scripts/notion_publisher.py publish \ --database-id "NOTION_DATABASE_ID_OR_URL" \ --title "Article title" \ --body-file article.md \ --status Draft \ --type Post
或直接用数据源: --data-source-id "collection://DATA_SOURCE_ID"
省略 ID 时 CLI 会交互询问;默认不保存,仅当用户显式加 --save-database 才记录。
更新: python3 scripts/notion_publisher.py update \ --page-id "NOTION_PAGE_ID_OR_URL" \ --mode replace|append \ --body-file article.md
搜索: python3 scripts/notion_publisher.py search \ --data-source-id "collection://DATA_SOURCE_ID" \ --query "keyword" \ --limit 10 返回 JSON 含 id, title, status, type, category, slug, date, url。 MCP 搜索为语义级;CLI 搜索为 API 查询+本地关键字过滤。
工作流
- 读配置:cat ~/.notion_publish/notion-publisher-config.json
- 每次询问目标数据库: