0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Notion MCP最新アップデート:query-database-view廃止とBusinessプランSQL解放

0
Posted at

はじめに

2026年8月13日、Notion MCP(Model Context Protocol)サーバーに複数の重要なアップデートが行われました。中でも影響が大きいのは以下の2点です。

  1. notion-query-database-view ツールがツールリストから削除され、notion-query-data-sourcesmode: "view")への移行が求められるようになった
  2. 複数データソース横断 SQL クエリが Business プランでも利用可能になった(従来は Enterprise 限定)

これに加えて、ビューのフィルター機能が大幅に拡張され、relation / person / status に加えて created bylast edited byunique IDlast visitedverificationplace の各フィルターが正式にサポートされました。さらに @notionhq/client(JS SDK)でも型ガードの修正とフィルター条件の追加が行われています。

Claude や他の AI エージェントから Notion MCP 経由でデータベース・データソースを操作している開発者は、特に notion-query-database-view を使ったコードがある場合、早めの確認・移行が推奨されます。

📌 影響を受ける人

  • Notion MCP の notion-query-database-view を直接呼び出しているエージェント/ワークフローの開発者
  • ビューの保存済みフィルター(relation, person, status など)を MCP 経由で操作している人
  • Business プランで Notion AI を利用しており、複数データソース横断のクエリをこれから使いたい人
  • @notionhq/client (JS SDK) v5.25 系より前のバージョンを使っている人

変更の全体像

今回のアップデートは大きく「MCP ツール層」「プラン・課金」「SDK」の3レイヤーにまたがっています。関係性を図にまとめます。

変更内容

1. notion-query-database-view の廃止(severity: high)

項目 内容
変更対象 notion-query-database-view
ステータス ツールリストから削除(呼び出し自体は当面動作)
移行先 notion-query-data-sourcesmode: "view"
互換性 既存クライアントがツールリストをキャッシュしている場合、引き続き呼び出し可能。ただし移行ガイダンスが返却される
副次的な変更 notion-fetchid: self)が返す current_tool_access マップから query_database_view エントリが削除

⚠️ Breaking Change
新規にツールリストを取得するクライアントには notion-query-database-view が表示されなくなります。将来的に呼び出し自体が動作しなくなる可能性があるため、今のうちに notion-query-data-sourcesmode: "view")へ移行しておくのが安全です。

2. 複数データソース横断 SQL が Business プランに開放(severity: high)

プラン 複数データソース横断 SQL 保存済みビューモード
Enterprise(Notion AI付き) 無制限 無料
Business(Notion AI付き) 無制限(NEW) 無料
その他プラン 単一データソースのみ・従量制割り当て 無料

これまで Enterprise 限定だった横断 SQL 機能が Business プランでも使えるようになったことで、複数の Notion データベースをまたいだ集計・分析クエリをより多くのユーザーが利用できるようになりました。

3. ビューのフィルター対応プロパティ拡大(severity: medium)

notion-create-view / notion-update-view で以下のフィルターが正式サポートされました。

  • relation(ページ URL または ID を指定)
  • person(ユーザー ID または "me" を指定)
  • status
  • created by / last edited by
  • unique ID
  • last visited
  • verificationstatus による一致条件、does_not_equal による不一致条件の両方)
  • place

従来は一部のフィルターを指定してもリクエストがサイレントに無視され、フィルターなしでビューが保存されるという問題がありましたが、今回の更新で無効な値を渡した場合は明示的にエラーが返るようになりました。

💡 Tips
フィルターの設定構文は notion://docs/view-dsl-spec リソースに完全な仕様が記載されています。実装前に一読しておくと、サイレント欠落のような予期しない挙動を避けられます。

4. JS SDK (@notionhq/client) のアップデート(severity: medium/low)

バージョン 変更内容
v5.25.1 isFullDataSource / isFullDatabase の型ガードが title フィールドの存在チェックを必須化。部分レスポンスを完全型として誤判定するバグを修正(isFullPageOrDataSource にも波及)
v5.25.2 データソース/データベースクエリの verification プロパティフィルターに does_not_equal 条件を型定義レベルで追加

影響と対応

notion-query-database-view を使っている場合

  1. コードベース内で notion-query-database-view の呼び出し箇所を検索する
  2. notion-query-data-sourcesmode: "view" を指定する形に書き換える
  3. notion-fetch(id: self)current_tool_access を参照しているツール検出ロジックがあれば、query_database_view エントリの有無に依存していないか確認する

ビューのフィルターを使っている場合

  • relation フィルターは ID ではなく URL を渡していないか等、値の形式を再確認する(不正な値は今後エラーになります)
  • verification フィルターで不一致条件が必要な場合は does_not_equal を利用する

SQL クエリ機能を検討している場合

  • Business プランで Notion AI を有効化していれば、追加設定なしで複数データソース横断 SQL を試せます
  • 単一データソースへのクエリのみで足りる場合は、引き続き従量制の割り当て内で利用可能です

コード例

notion-query-database-view からの移行

Before(廃止予定)

{
  "tool": "notion-query-database-view",
  "arguments": {
    "database_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "view_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
  }
}

After(推奨)

{
  "tool": "notion-query-data-sources",
  "arguments": {
    "data_source_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "mode": "view",
    "view_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
  }
}

verification フィルターの利用例(does_not_equal 追加後)

{
  "tool": "notion-update-view",
  "arguments": {
    "view_id": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
    "filter": {
      "property": "Verification",
      "verification": {
        "does_not_equal": "verified"
      }
    }
  }
}

JS SDK での型ガード(v5.25.1 修正後の挙動)

import { isFullDataSource } from "@notionhq/client";

const response = await notion.dataSources.retrieve({ data_source_id });

if (isFullDataSource(response)) {
  // title フィールドが必ず存在することが保証される
  console.log(response.title);
} else {
  // 部分レスポンス(title を持たない)として安全に分岐できる
  console.log("partial response");
}

まとめ

  • notion-query-database-view はツールリストから削除。呼び出し自体は当面動作するが、notion-query-data-sourcesmode: "view")への移行を推奨
  • 複数データソース横断 SQL が Business プラン(Notion AI付き)でも無制限利用可能に。Enterprise 限定だった機能が広いユーザー層に開放された
  • ビューのフィルター対応プロパティが大幅拡大し、無効な値はサイレント無視ではなく明示的なエラーになった
  • @notionhq/client v5.25.1/v5.25.2 で型ガードの修正verification フィルターの does_not_equal 対応が追加

特に notion-query-database-view を利用している開発者は、ツールリストから削除された影響が今後大きくなる可能性があるため、早めのコード確認と移行をおすすめします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?