A safe Notion API wrapper CLI for AI agents with granular permission control
npm install safe-notionAIエージェント向けの安全なNotion APIラッパーCLI。きめ細かな権限制御により、AIエージェントとNotion API間のセキュリティレイヤーとして機能します。
- きめ細かな権限制御: resource:operation 形式(例: page:read, database:query)で操作を制限
- 階層認識: 子ページは親ページのルールを継承
- 条件付きアクセス: Notionプロパティの値に基づいたアクセス制御
- デフォルト拒否: 明示的に許可されない限り、すべての操作を拒否
``bash`
npm install -g safe-notion
`bash`
export NOTION_TOKEN="your-notion-integration-token"
設定ファイルを初期化:
`bash`
safe-notion config init
設定ファイルの場所: ~/.config/safe-notion/config.jsonc
`jsonc`
{
"rules": [
{
// 特定ページとその子孫に読み取り専用アクセス
"name": "docs-readonly",
"pageId": "12345678-1234-1234-1234-123456789abc",
"permissions": ["page:read", "block:read"]
},
{
// データベースへのクエリと新規作成のみ許可
"name": "tasks-db",
"databaseId": "87654321-4321-4321-4321-cba987654321",
"permissions": ["database:read", "database:query", "database:create"]
},
{
// 条件付きアクセス: 担当者が自分の場合のみ更新可能
"name": "my-tasks-only",
"databaseId": "87654321-4321-4321-4321-cba987654321",
"permissions": ["page:update"],
"condition": {
"property": "担当者",
"type": "people",
"equals": "me"
}
}
],
"defaultPermission": "deny"
}
| リソース | 権限 | 説明 |
|---------|------|------|
| Page | page:read | ページの読み取り |page:update
| Page | | ページの更新 |page:create
| Page | | ページの作成 |database:read
| Database | | データベースの読み取り |database:query
| Database | | データベースのクエリ |database:create
| Database | | データベースへのページ作成 |block:read
| Block | | ブロックの読み取り |block:append
| Block | | ブロックの追加 |block:delete
| Block | | ブロックの削除 |
`bash`
safe-notion page get
safe-notion page create --parent
safe-notion page update
`bash`
safe-notion db get
safe-notion db query
safe-notion db create-page
`bash`
safe-notion block get
safe-notion block children
safe-notion block append
safe-notion block delete
`bash`
safe-notion config init # 設定ファイルを初期化
safe-notion config validate # 設定を検証
safe-notion config path # 設定ファイルのパスを表示
`bash`
bun install
`bash`
bun run build
`bash``
bun run typecheck
MIT