mcpField
N
notion

notion

github.com/openhands生産性17582 回インストール1 日前に更新
リポジトリ

notion について

Notion のページやデータベースを操作するスキルです。認証済み MCP ツールまたは Notion REST API を使い、API の例に加えて認証情報、共有設定、Windows PowerShell の書き方を示します。

主な機能

  1. 01認証済み Notion MCP ツールを優先
  2. 02タイトルによるページ検索
  3. 03ページ作成とブロック追加
  4. 04REST API の直接呼び出し例
  5. 05Windows PowerShell の同等表記

活用シーン

  1. 01タイトルから Notion ページを検索
  2. 02親ページの下にページを作成
  3. 03既存ページにコンテンツを追加

MCP 対応

認証済み Notion MCP ツールが利用できる場合、スキルは REST API より先に使うよう案内します。MCP が使えない場合や生の API アクセスが必要な場合の REST API 利用方法も説明します。

インストール

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

$npx skills add https://github.com/openhands/extensions --skill notion

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.plugin/
plugin.json
references/
windows.md

詳細

Notion

Notion REST の curl、環境変数、JSON 本文の定型スニペットに対応する Windows PowerShell の例は、references/windows.md にあります。

環境内で認証済みの Notion MCP ツールを利用できる場合は、まずそれを使用してください。MCP ツールでは、ツール引数として `NOTION_INTEGRATION_KEY` を渡す必要はありません。認証は設定済みの MCP インテグレーションによって処理されます。

以下の直接 Notion REST API の例は、MCP を利用できない場合、または生の API/curl へのアクセスが明示的に必要な場合にのみ使用してください。直接 API を使用する場合は、まず必要な環境変数が設定されているか確認してください。

[ -n "$NOTION_INTEGRATION_KEY" ] && echo "NOTION_INTEGRATION_KEY is set" || echo "NOTION_INTEGRATION_KEY is NOT set"

環境変数が設定されておらず、直接 API を使用する必要がある場合は、先にユーザーに値の提供(または Notion インテグレーションの接続)を依頼してください。

  • NOTION_INTEGRATION_KEY:Notion インテグレーションのシークレット(ntn_... で始まります)

MCP と直接 API のどちらを使用する場合も、設定済みのインテグレーションが Notion の対象ページ/データベースと共有されていることも確認してください。

直接 API 呼び出しの基本ヘッダー

-H "Authorization: Bearer ${NOTION_INTEGRATION_KEY}" \
-H "Notion-Version: 2022-06-28" \
-H "Content-Type: application/json"

ページを検索する

Notion の検索エンドポイントを使用して、タイトルからページを検索します。

curl -s https://api.notion.com/v1/search \
  -H "Authorization: Bearer ${NOTION_INTEGRATION_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "OpenHands Wiki",
    "page_size": 10
  }' | jq .

親ページの下にページを作成する

PARENT_PAGE_ID="<parent_page_id>"

curl -s https://api.notion.com/v1/pages \
  -H "Authorization: Bearer ${NOTION_INTEGRATION_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  -H "Content-Type: application/json" \
  -d '{
    "parent": {"type": "page_id", "page_id": "'"${PARENT_PAGE_ID}"'"},
    "properties": {
      "title": {
        "title": [{"type": "text", "text": {"content": "My new page"}}]
      }
    },
    "children": [
      {
        "object": "block",
        "type": "paragraph",
        "paragraph": {
          "rich_text": [{"type": "text", "text": {"content": "Hello from OpenHands."}}]
        }
      }
    ]
  }' | jq .

既存のページにブロックを追加する

ページのブロック ID(ページ ID と同じ)を使用して、子ブロックを追加します。

PAGE_ID="<page_id>"

curl -s -X PATCH "https://api.notion.com/v1/blocks/${PAGE_ID}/children" \
  -H "Authorization: Bearer ${NOTION_INTEGRATION_KEY}" \
  -H "Notion-Version: 2022-06-28" \
  -H "Content-Type: application/json" \
  -d '{
    "children": [
      {
        "object": "block",
        "type": "heading_2",
        "heading_2": {"rich_text": [{"type": "text", "text": {"content": "Appended section"}}]}
      }
    ]
  }' | jq .

ヒント/注意点

  • 共有が必要です:有効なキーがあっても、Notion の UI でインテグレーションとページ/データベースを共有するまでは、そのページ/データベースをインテグレーションから参照できません。
  • レート制限:リクエストは小さく保ってください。大きなページの場合は、まずページを作成し、その後、ブロックを複数回に分けて追加してください。
  • ID の形式:Notion の ID はハイフン付きで返されることがあります。通常は、API 呼び出しでハイフン付きとハイフンなしのどちらも使用できます。

ドキュメント

コメント