4/17 の Notion API アップデート : hkob の雑記録 (467)

はじめに

hkob の雑記録の第467回目(連続40日目)は、4/17(日本時間4/18)の Notion API アップデートを紹介します。ChangeLog で気づいたので記事化しました。ChangeLog はこちらです。

Changelog - Notion Docs

Update and delete comment endpoints

コメントを更新PATCH /v1/comments/:comment_id)および コメントを削除DELETE /v1/comments/:comment_id)のエンドポイントが一般提供(GA)になりました。DLP 非対応のインテグレーションは、自身が作成したコメントのみを変更または削除できます。

Update and delete comment endpoints

DLP integrations という言葉が聞き慣れなかったので、Notion AI に聞いてみました。

DLP integrations は、Notion が用意している DLP(Data Loss Prevention / 情報漏えい防止)機能に対応しているインテグレーション(連携アプリ)という意味です。

この文脈(コメントの更新・削除 API)で言っているポイントは次のとおりです。

  • DLP 対応インテグレーション

企業の DLP 製品や Notion 側の DLP 制御と連動して、機密データ扱い(ラベル/ポリシー)や監査・制限などの対象として、より強くガバナンスできるタイプのインテグレーション。

  • DLP 非対応インテグレーション(DLP unsupported)

そのような DLP 制御の枠組みに入らないインテグレーション。今回の GA になったエンドポイントでは、「自分が作成したコメント」しか変更・削除できないという制限がある、という説明です。

要するに、Notion が“より厳格な企業向けデータ保護ポリシー”の中で安全に扱えると判断している連携かどうか、の区別です。

基本、我々が使うような Internal integrations の場合は自分のコメントだけが対応可能ということですね。

Multi-value filters for select, status, and multi_select properties

Database および data source のフィルターで、select と status プロパティの equals / does_not_equal複数値(配列) を指定できるようになりました。また、multi_select プロパティの contains / does_not_contain にも配列を指定でき、Notion UI にある複数値条件と一致します。同じスキーマは view filters と quick filters でも使われます。さらに、API で設定した Person フィルターは、読み取り時に余分なコンビネータのネストが付かず、クリーンに往復(round-trip)するようになりました。

Multi-value filters for select, status, and multi_select properties

現在実装している view API のテストデータでは、quick filters に以下のように設定されています。equals の引数として Array を持つことで、複数個の or 条件に対応しています。

"quick_filters": {
  "MNV~": {
    "status": {
      "equals": [
        "To-do",
        "In progress"
      ]
    }
  }
},

これまで DataSource の Query では or を使うしかありませんでした。

sp = StatusProperty.new "a"
=>
#<NotionRubyMapping::StatusProperty:0x0000000126d24390

print sp.filter_equals("ToDo").or(sp.filter_equals("In progress")).filter.to_json
{"or":[{"property":"a","status":{"equals":"ToDo"}},{"property":"a","status":{"equals":"In progress"}}]}

まだ試していませんが、この部分が上と同じように以下のように書けるようになるのだと思います。ずいぶんスッキリしますね。

{"property":"a","status":{"equals": ["ToDo", "In progress"]}}

Notion MCP improvements

  • search ツールが、Slack 連携が有効なワークスペースに接続している場合でも Slack の DM や非公開チャンネルの検索結果を落とさなくなりました
  • fetch ツールが、現行環境の Notion 公式ドメイン(notion.sonotion.com の両方) を受け付けるようになり、貼り付けたリンクが一般的な Web ページ扱いになってしまう問題を修正しました。
  • fetch ツールが返すページリソースに is_archived が含まれるようになり、エージェントがそのページが ゴミ箱(アーカイブ) に入っているか判別できるようになりました。
  • MCP が LLM に提示する Markdown ガイダンスが改善され、インラインコード内で改行する正しい方法として
    を明記しました。これにより、update_page 経由で複数行インラインコードを書いた際のリトライループを防ぎます。
  • Notion MCP の OAuth サーバーが、MCP spec 2025-11-25 に基づく Client ID Metadata Document (CIMD) に対応しました。これにより、Dynamic Client Registration を経由せずに、HTTPS URL を client_id として利用できます。

Notion MCP improvements

MCP 周りは常に細かくアップデートされていますね。各 AI からの応答に常に対応してアップデートしているからだろうと思います。

Comment markdown formatting clarification

The Create a commentUpdate a comment のリファレンスで、コメントの本文パラメータ markdown はインライン装飾のみをサポートすることが明確に追記されました。つまり、フェンス付きコードブロック、見出し、リスト、テーブル、引用(ブロッククオート)は、コメント内では構造化されたブロックとしてはレンダリングされません。

Comment markdown formatting clarification

試してみたことはなかったですが、これまで comment にもブロックなどが送れてしまったんですかね。これが明確にサポートしなくなることが明記されたようです。

おわりに

まだ NotionRubyMapping への view の実装が完了しないのにさらに API がどんどんアップデートされてしまいますね。とても追いつかないです。

https://hkob.notion.site/hkob-16dd8e4e98ab807cbe3cf3cc94cdfe0f?pvs=4hkob.notion.site