コンテンツにスキップ
Zenn Truestar Mcp Teams Log

MCPは万能ではなかった ~ TeamsログをClaude Codeで取得するまで ~

  • URL: https://zenn.dev/truestar/articles/8d280b284f630f
  • 日付: 2026-06-14
  • Tier: Tier 3
  • 要旨: Teams チャネルの全件メッセージ取得を試みたところ、MCP の read_resource ではページネーションが機能せず最新 20 件程度しか取れなかった。最終的に Graph API の委任アクセス + デバイスコードフロー + Python スクリプト(Claude Code 生成)で全件取得に成功した事例報告。

詳細

社内 Q&A ナレッジ構造化プロジェクトの技術報告記事。

MCP の read_resource で Teams チャネルのメッセージ一覧を取得できたが、$skip/$skipToken などのページネーションパラメータが無視され、返信(子メッセージ)の取得も /replies を付与したリクエストでは機能しなかった。差分取得には使えるが全件取得には不向きという結論に至った。

代替策として Graph API を直接呼び出す Python スクリプトを Claude Code に生成させた。認証方式は「必要最小限の権限で済む方式から検討する」を原則に、委任アクセス + デバイスコードフローを選択。ChannelMessage.Read.All はテナント管理者の明示的な同意が必要な権限で、取得範囲は自分が Teams で見られるものと同一になる。ガバナンスの観点では「API を使うこと」よりも「取得後のデータの扱い」にリスクがあると整理している。