notion-tool

$npx mdskill add xuiltul/animaworks/notion-tool

Execute Notion API actions to manage pages and databases.

  • Edit, search, and query Notion content directly.
  • Depends on the Notion API for all operations.
  • Uses JSON arguments to specify filters and payloads.
  • Returns structured data via the tool invocation.

SKILL.md

.github/skills/notion-toolView on GitHub ↗
---
name: notion-tool
description: >-
  Notion integration tool for searching, reading, creating, and updating pages and databases via the API.
  Use when: editing Notion pages, adding database rows, or searching a workspace.
tags: [productivity, notion, external]
---

# Notion Tool

External tool for searching, reading, creating, and updating Notion pages and databases via the Notion API.

## Invocation via Bash

Use **Bash** with `animaworks-tool notion <subcommand> [args]`. See Actions below for syntax.

## Actions

### search — Search workspace
```json
{"tool_name": "notion", "action": "search", "args": {"query": "search term", "page_size": 10}}
```

### get_page — Get page metadata
```json
{"tool_name": "notion", "action": "get_page", "args": {"page_id": "page-id"}}
```

### get_page_content — Get page body
```json
{"tool_name": "notion", "action": "get_page_content", "args": {"page_id": "page-id"}}
```

### get_database — Get database metadata
```json
{"tool_name": "notion", "action": "get_database", "args": {"database_id": "database-id"}}
```

### query — Query database
```json
{"tool_name": "notion", "action": "query", "args": {"database_id": "database-id", "filter": {}, "sorts": [], "page_size": 10}}
```
- `filter`: Notion API filter JSON (optional)
- `sorts`: Array of sort conditions (optional)

### create_page — Create page
```json
{"tool_name": "notion", "action": "create_page", "args": {"parent_page_id": "parent-page-id", "properties": {"title": [{"text": {"content": "Title"}}]}}}
```
- Either `parent_page_id` or `parent_database_id` is required
- `children`: Array of page content blocks (optional)

### update_page — Update page
```json
{"tool_name": "notion", "action": "update_page", "args": {"page_id": "page-id", "properties": {}}}
```

### create_database — Create database
```json
{"tool_name": "notion", "action": "create_database", "args": {"parent_page_id": "parent-page-id", "title": "DB name", "properties": {}}}
```

## CLI Usage (S/C/D/G-mode)

```bash
animaworks-tool notion search [query] -j
animaworks-tool notion get-page PAGE_ID -j
animaworks-tool notion get-page-content PAGE_ID -j
animaworks-tool notion get-database DATABASE_ID -j
animaworks-tool notion query DATABASE_ID [--filter JSON] [--sorts JSON] [-n 10] -j
animaworks-tool notion create-page --parent-page-id ID --properties JSON -j
animaworks-tool notion update-page PAGE_ID --properties JSON -j
animaworks-tool notion create-database --parent-page-id ID --title "name" --properties JSON -j
```

## Notes

- Notion API Token must be configured in credentials
- Page/database IDs accept both hyphenated and non-hyphenated formats
- Property structures follow the Notion API schema

More from xuiltul/animaworks