Notion Agent

👤 chloepark85 📦 v1.0.1 ⭐ 4.4 ⬇️ 982 下載
🤖 AI-Agent 免費 🔑 需 API Key

📖 技能介紹


name: notion-agent description: "Notion integration for OpenClaw. Manage pages, databases, and blocks via AI agent." license: "MIT-0" metadata: { "openclaw": { "emoji": "📝", "requires": { "bins": ["uv"] }, "primaryEnv": "NOTION_TOKEN", }, }


Notion Agent

OpenClaw skill for managing Notion workspaces via AI agents. Provides CLI commands for pages, databases, blocks, and search.

Setup

  1. Create a Notion Integration:
  2. Go to https://www.notion.so/my-integrations
  3. Click "New integration"
  4. Give it a name (e.g., "OpenClaw")
  5. Copy the "Internal Integration Token"

  6. Set environment variable: bash export NOTION_TOKEN=your_integration_token_here

  7. Share pages/databases with your integration:

    7w4.net小蔥技能站,你的AI助手技能庫。

  8. Open the page or database in Notion
  9. Click "..." → "Add connections"
  10. Select your integration

Usage

All commands use the pattern:

uv run {baseDir}/scripts/notion.py <command> [options]

Page Operations

Create a page:

uv run {baseDir}/scripts/notion.py page create \
  --parent <parent_page_id> \
  --title "My New Page" \
  --content "Initial paragraph content"

Get a page:

uv run {baseDir}/scripts/notion.py page get <page_id>

Update a page:

uv run {baseDir}/scripts/notion.py page update <page_id> \
  --title "Updated Title"

Delete (archive) a page:

uv run {baseDir}/scripts/notion.py page delete <page_id>

List child pages:

uv run {baseDir}/scripts/notion.py page list --parent <page_id>

Database Operations

Query a database:

# Simple query
uv run {baseDir}/scripts/notion.py db query <db_id>

# With filter
uv run {baseDir}/scripts/notion.py db query <db_id> --filter Name=Todo

# With sort
uv run {baseDir}/scripts/notion.py db query <db_id> --sort Priority:desc

Add page to database:

uv run {baseDir}/scripts/notion.py db add <db_id> \
  --props '{"Name":{"title":[{"text":{"content":"Task"}}]},"Status":{"select":{"name":"Done"}}}'

List all databases:

uv run {baseDir}/scripts/notion.py db list

Block Operations

Append paragraph:

uv run {baseDir}/scripts/notion.py block append <page_id> \
  --type paragraph \
  --text "This is a paragraph"

Append to-do:

uv run {baseDir}/scripts/notion.py block append <page_id> \
  --type todo \
  --text "Task to complete" \
  --checked

Append heading:

uv run {baseDir}/scripts/notion.py block append <page_id> \
  --type heading1 \
  --text "Section Title"

Append code block:

uv run {baseDir}/scripts/notion.py block append <page_id> \
  --type code \
  --text "print('Hello, World!')" \
  --language python

List child blocks:

uv run {baseDir}/scripts/notion.py block children <block_id>

Search workspace:

# Search all
uv run {baseDir}/scripts/notion.py search "project plan"

# Search only pages
uv run {baseDir}/scripts/notion.py search "meeting notes" --type page

# Search only databases
uv run {baseDir}/scripts/notion.py search "tasks" --type database

Error Handling

The CLI handles common errors: - NOTION_TOKEN not set — Set the environment variable - Invalid NOTION_TOKEN — Check your integration token - Resource not found — Page/database doesn't exist or integration lacks access - Permission denied — Share the resource with your integration

API Reference

  • Base URL: https://api.notion.com/v1
  • API Version: 2022-06-28
  • Authentication: Bearer token via NOTION_TOKEN

Limitations

  • Uses requests library only (no Notion SDK)
  • Simple filter/sort syntax (single property)
  • Rich text limited to plain text content
  • Database properties must be formatted as JSON

Examples for AI Agents

Create a meeting notes page:

uv run {baseDir}/scripts/notion.py page create \
  --parent <workspace_root_id> \
  --title "Meeting Notes - 2026-03-10" \
  --content "Attendees: Team"

Add task to project database:

uv run {baseDir}/scripts/notion.py db add <project_db_id> \
  --props '{"Name":{"title":[{"text":{"content":"Fix bug #123"}}]},"Status":{"select":{"name":"In Progress"}},"Priority":{"select":{"name":"High"}}}'

Build a structured page:

PAGE_ID=$(uv run {baseDir}/scripts/notion.py page create --parent <parent> --title "Report" | jq -r .id)
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type heading1 --text "Executive Summary"
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type paragraph --text "Key findings..."
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type heading2 --text "Details"
uv run {baseDir}/scripts/notion.py block append $PAGE_ID --type todo --text "Review findings"

Help

uv run {baseDir}/scripts/notion.py --help
uv run {baseDir}/scripts/notion.py page --help
uv run {baseDir}/scripts/notion.py db --help
uv run {baseDir}/scripts/notion.py block --help

🤖 AI 評測

這個 Skill 質量不錯,完成了 Notion 的核心功能整合,包括頁面、資料庫、塊操作和搜尋。它的一大亮點是文件非常詳細,小白也能快速上手,錯誤提示也很友好。不過它的一些高階功能比較簡單,比如過濾只能匹配文本包含,資料庫屬性還需要自己寫 JSON 格式,對新手有點門檻。總體來說功能完整、程式碼規範,是一款可靠的 Notion 整合工具。

📊 多維度評分

適應性4.4
規範性4.3
有效性4.6
可靠性4.2
可信度4.4

📁 包含檔案 (11 個)

📄 README.md 2.1 KB
📄 SKILL.md 5 KB
📄 _meta.json 131 B
📄 lib/__init__.py 39 B
📄 lib/blocks.py 1.7 KB
📄 lib/client.py 2.1 KB
📄 lib/databases.py 1.3 KB
📄 lib/pages.py 1.9 KB
📄 lib/search.py 608 B
📄 pyproject.toml 221 B
📄 scripts/notion.py 7.8 KB