Get workspace and user identity with notion-fetch (Notion Changelog 6/25) : hkob の雑記録 (540)

はじめに

hkob の雑記録の第540回目(連続115日目)は、Developer ChangeLog の 6/22 版のその2を解説します。

Get workspace and user identity with notion-fetch

6/25 の Changelog はこちらです。

6/25 の Changelog

notion-fetch MCP ツールは、特別な id self を受け付けるようになりました。これにより、エンティティの代わりに、接続済みワークスペースとユーザーのアイデンティティが返されます。レスポンスには、ワークスペースの ID と名前、認証済みユーザーの ID、名前、タイプ、メールアドレスを含む self オブジェクトが含まれます。これにより、MCP クライアントはパブリック REST API を使わずに、OAuth 後の接続にラベルを付けられます。詳しくは、独自の MCP クライアントを統合する を参照してください。

MCP クライアントを自分で作ったりしていないので、この辺りは全く調べていませんでした。notion-fetch にアクセスすると以下のように記載されていました。

notion-fetch

Notion ページ、データベース、またはデータソースの URL か ID を指定して、そのコンテンツを取得します。データベースのレスポンスに含まれる collection://... タグのデータソース ID を渡すと、その特定のデータソースのスキーマやプロパティなどの詳細を取得できます。データベースを取得する場合、レスポンスには各データソースで利用可能なテンプレートが含まれます。これらは create-pages ツールや update-page ツールで使用できます。特別な id self を渡すと、エンティティの代わりに、接続済みワークスペースとユーザーのアイデンティティを取得できます。レスポンスには、ワークスペースの ID と名前、認証済みユーザーの ID、名前、タイプ、メールアドレスを含む self オブジェクトが含まれます。OAuth 後に接続へラベルを付ける場合に便利です。

プロンプト例:

  • 「このチケット https://notion.so/page-url から、まだ実装が必要なプロダクト要件は何ですか?」
  • 「データソース collection://f336d0bc-b841-465b-8045-024475c079dd を取得して、スキーマを確認してください」
  • 「バグ追跡データベースを取得して、利用可能なテンプレートを確認できるようにしてください」
  • self を取得して、この接続がどのワークスペースとユーザーのものか確認してください」

ここに例が出ていますね。 self とすると認証しているワークスペース名や認証済ユーザIDなどが取得できるのですね。

もう一つのリンク先である Identify the connected workspace にもう少し詳しく書かれていました。

Identify the connected workspace

OAuth トークンのレスポンスでは、意図的にワークスペースのアイデンティティが省略されています。また、パブリック REST API の GET /v1/users/me は、MCP 向けのトークンを受け付けません。接続後にワークスペース名と安定した ID で接続にラベルを付けるには、特別な id self を指定して fetch ツールを呼び出します。

内部インテグレーションだと自分は users/me で取得できるのですが、MCP 向けのトークンでは受け付けられなかったそうです。このため、今回 self を指定して fetch ツールを使うことで自分自身のことを知ることができるようになったということだそうです。

おわりに

今回は、独自の MCP クライアントを作る場合にユーザ名やワークスペース名などを取得する方法でした。私は MCP クライアントを作るほどの情報を持っていないので手を出していませんでした。しかし、一気に Developer のページの情報量が膨大になりましたね。一度ちゃんと全て読んだ方がいいかなと思いました。

hkob.notion.site