mcpField
N
notion

notion

github.com/letta-ai生産性152114 回インストール4 週間前に更新
リポジトリ

notion について

notion は、Notion API でページ、データソース、ブロックを作成・取得・更新するためのスキルです。Notion を操作するワークフロー向けに、新しいデータソース用エンドポイントと一般的な API 操作を扱います。

主な機能

  1. 01ページとデータソースの検索
  2. 02ページとコンテンツブロックの取得
  3. 03ページとデータソースの作成
  4. 04ページプロパティとブロックの更新
  5. 05API 認証とバージョン差分の説明

活用シーン

  1. 01Notion ページの検索と読み取り
  2. 02データベースへのページ追加
  3. 03ページのステータスやプロパティの更新
  4. 04ページへのテキスト追加

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/letta-ai/skills --skill notion

インストール後、Claude Code で/notionを入力して読み込まれたか確認します。

同梱ファイルassets/notion-small.svgLICENSE

詳細

notion

Notion API を使用して、ページ、データソース(データベース)、ブロックを作成、読み取り、更新します。

セットアップ

  1. https://notion.so/my-integrations でインテグレーションを作成します
  2. API キー(ntn_ または secret_ で始まります)をコピーします
  3. 保存します:
mkdir -p ~/.config/notion
echo "ntn_your_key_here" > ~/.config/notion/api_key
  1. 対象のページ/データベースをインテグレーションと共有します(「...」→「接続先」→ インテグレーション名をクリック)

API の基本

すべてのリクエストに以下が必要です:

NOTION_KEY=$(cat ~/.config/notion/api_key)
curl -X GET "https://api.notion.com/v1/..." \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json"

注記: Notion-Version ヘッダーは必須です。このスキルでは 2025-09-03(最新)を使用します。このバージョンでは、API 上でデータベースを「データソース」と呼びます。

よく使う操作

ページとデータソースを検索する:

curl -X POST "https://api.notion.com/v1/search" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{"query": "page title"}'

ページを取得する:

curl "https://api.notion.com/v1/pages/{page_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03"

ページのコンテンツ(ブロック)を取得する:

curl "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03"

データソースにページを作成する:

curl -X POST "https://api.notion.com/v1/pages" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "parent": {"database_id": "xxx"},
    "properties": {
      "Name": {"title": [{"text": {"content": "New Item"}}]},
      "Status": {"select": {"name": "Todo"}}
    }
  }'

データソース(データベース)にクエリする:

curl -X POST "https://api.notion.com/v1/data_sources/{data_source_id}/query" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {"property": "Status", "select": {"equals": "Active"}},
    "sorts": [{"property": "Date", "direction": "descending"}]
  }'

データソース(データベース)を作成する:

curl -X POST "https://api.notion.com/v1/data_sources" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "parent": {"page_id": "xxx"},
    "title": [{"text": {"content": "My Database"}}],
    "properties": {
      "Name": {"title": {}},
      "Status": {"select": {"options": [{"name": "Todo"}, {"name": "Done"}]}},
      "Date": {"date": {}}
    }
  }'

ページのプロパティを更新する:

curl -X PATCH "https://api.notion.com/v1/pages/{page_id}" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{"properties": {"Status": {"select": {"name": "Done"}}}}'

ページにブロックを追加する:

curl -X PATCH "https://api.notion.com/v1/blocks/{page_id}/children" \
  -H "Authorization: Bearer $NOTION_KEY" \
  -H "Notion-Version: 2025-09-03" \
  -H "Content-Type: application/json" \
  -d '{
    "children": [
      {"object": "block", "type": "paragraph", "paragraph": {"rich_text": [{"text": {"content": "Hello"}}]}}
    ]
  }'

プロパティの種類

データベース項目でよく使われるプロパティ形式:

  • タイトル: {"title": [{"text": {"content": "..."}}]}
  • リッチテキスト: {"rich_text": [{"text": {"content": "..."}}]}
  • セレクト: {"select": {"name": "Option"}}
  • マルチセレクト: {"multi_select": [{"name": "A"}, {"name": "B"}]}
  • 日付: {"date": {"start": "2024-01-15", "end": "2024-01-16"}}
  • チェックボックス: {"checkbox": true}
  • 数値: {"number": 42}
  • URL: {"url": "https://..."}
  • メールアドレス: {"email": "[email protected]"}
  • リレーション: {"relation": [{"id": "page_id"}]}

2025-09-03 の主な変更点

  • データベース → データソース: クエリと取得には /data_sources/ エンドポイントを使用します
  • 2 つの ID: 各データベースに database_id と data_source_id の両方が付与されます
    • ページの作成時は database_id を使用します(parent: {"database_id": "..."})
    • クエリ時は data_source_id を使用します(POST /v1/data_sources/{id}/query)
  • 検索結果: データベースは data_source_id を持つ "object": "data_source" として返されます
  • レスポンス内の親: ページには parent.database_id とともに parent.data_source_id が表示されます
  • data_source_id の確認方法: データベースを検索するか、GET /v1/data_sources/{data_source_id} を呼び出します

注記

  • ページ/データベース ID は UUID です(ハイフンの有無は問いません)
  • API ではデータベースのビューのフィルターを設定できません。設定できるのは UI のみです
  • レート制限:平均約 3 リクエスト/秒です。429 rate_limited レスポンスでは Retry-After が使用されます
  • ブロックの子要素を追加する場合:1 リクエストあたり最大 100 個の子要素を追加でき、1 回の追加リクエストでは最大 2 階層までネストできます
  • ペイロードサイズの上限:ブロック要素は最大 1000 個、全体で最大 500KB です
  • データソースをページに埋め込んで作成する場合は is_inline: true を使用します

コメント