Microsoft Teams SDKのPythonサポートがGAに|変更点と確認すべき設定

2026年5月2日に確認されたMicrosoft 365 / Teamsの注目アップデートは、Microsoft Teams SDKのPythonサポートが一般提供(GA)になったことです。結論から言うと、Python開発者はTypeScriptや.NETへ無理に寄せず、既存のPythonサーバー、LLM基盤、業務自動化ロジックをTeamsネイティブのアプリやエージェントとして組み込みやすくなりました。既存のTeamsアプリをすぐ移行する必要はありませんが、PythonでBot、AIエージェント、Microsoft Graph連携を作っているチームは、ランタイム、認証、マニフェスト、テナント設定を早めに確認すべきです。なお、Microsoft公式ブログ上の表示日は米国時間の2026年5月1日です。(Microsoft for Developers)

目次

Microsoft Teams SDKのPythonサポートGAで何が変わったのか

今回の変更は「Teams本体がPythonで動くようになった」という話ではありません。Microsoft Teams向けのアプリやエージェントを作るためのMicrosoft Teams SDKで、PythonサポートがGAになったという開発者向けのアップデートです。

Microsoftの発表では、Python開発者がTypeScriptや.NETと同じSDKサーフェスを使って、Teamsネイティブなアプリやエージェントを構築できるようになったと説明されています。これにより、Pythonで作った推論ロジック、ワークフロー自動化、ドメイン特化型エージェント、LLMアプリケーションを、Teamsのチャット、チャネル、会議と接続しやすくなります。(Microsoft for Developers)

実務上のポイントは、Pythonが「試験的に使える」段階から、より本格的な導入判断をしやすい段階に進んだことです。特に、社内ナレッジ検索Bot、問い合わせ一次対応エージェント、運用通知の対話型Bot、承認フローの自動化など、すでにPythonで処理基盤を作っている組織には影響があります。

変更点実務上の意味確認すべき担当者
PythonサポートがGAPythonでTeamsアプリやエージェントを本格検討しやすくなった開発リーダー、Python開発者
Teamsネイティブアプリとして参加可能チャット、チャネル、会議での対話設計を検討できるTeamsアプリ開発者、業務部門
レスポンスのストリーミングやAdaptive Cards対応生成AIの回答表示や入力フォームをTeams内で扱いやすいAI開発者、UX設計担当
OAuthとGraphアクセスのサポートユーザー認証やMicrosoft 365データ連携の設計が重要になるID管理担当、セキュリティ担当
プラグインアーキテクチャテレメトリ、ミドルウェア、独自処理を組み込みやすいプラットフォーム担当、運用担当

すぐ対応すべきチーム、様子見でよいチーム

Microsoft Teams SDKのPythonサポートGAは、すべてのMicrosoft 365利用企業に即時対応を求めるものではありません。影響が大きいのは、Teamsを業務アプリの入口として使い、Python側に既存資産を持っているチームです。

すぐ確認したいケース

次のいずれかに当てはまる場合は、早めに検証環境で確認する価値があります。

  • Pythonで社内Bot、AIエージェント、RAG、業務自動化を開発している
  • Teamsをユーザーインターフェースとして使いたい
  • TypeScriptや.NETではなく、Pythonチーム主導でTeamsアプリを作りたい
  • Microsoft Graphを使ってユーザー情報、予定表、メール、ファイルなどと連携したい
  • プレビュー版のPython SDKや関連サンプルをすでに試している
  • Microsoft 365 CopilotやTeams上のエージェント連携を今後検討している

特にAIエージェント開発では、Python側にモデル呼び出し、ベクトル検索、データ前処理、業務API連携が集まりやすいです。これまではTeamsとの接続部分だけTypeScriptや.NETで作る構成もありましたが、今後はPython中心の構成を選びやすくなります。

急いで移行しなくてよいケース

一方で、次のような環境では、無理に移行する必要はありません。

  • 既存のTypeScriptまたは.NET製Teamsアプリが安定稼働している
  • Teamsには一方向の通知だけを送っており、対話や認証が不要
  • Pythonチームがなく、既存の開発標準がC#やTypeScriptに統一されている
  • 本番運用よりも、まず管理者承認やセキュリティレビューの整理が優先される

GAになったからといって、既存アプリの移行期限が発生するわけではありません。判断基準は「Pythonで作ることで開発・保守・拡張が明確に楽になるか」です。

開発者が最初に確認すべき技術要件

PythonでMicrosoft Teams SDKを使う場合、最初に見るべきなのはパッケージ名、Pythonバージョン、Teamsへのインストール条件です。公式クイックスタートでは、Python 3.12以上が前提として示されています。PyPIのmicrosoft-teams-appsパッケージ情報では、対応Pythonが>=3.12, <3.15とされています。(Microsoft GitHub)

まずはローカル環境で次を確認します。

python --version
pip --version

SDKを既存プロジェクトに追加する場合は、次のパッケージ名を使います。

pip install microsoft-teams-apps

Microsoft Graph連携を使う場合は、Graph用の追加依存関係も確認します。

pip install "microsoft-teams-apps[graph]"

注意したいのは、似た名前の非公式・別用途パッケージと混同しないことです。Teamsへ単純に通知を送るラッパーと、Teamsネイティブアプリやエージェントを構築するMicrosoft Teams SDKは目的が異なります。社内テンプレートやREADMEに古いパッケージ名が残っている場合は、ここで整理しておきましょう。

新規開発と既存Pythonプロジェクトで進め方は変わる

Microsoft Teams SDKのPythonサポートを使う場合、新規でTeamsエージェントを作るのか、既存のPythonアプリにTeams対応を追加するのかで進め方が変わります。

新規プロジェクトならTeams CLIでひな形を作る

公式クイックスタートでは、Teams CLIを使ってPythonのエージェントひな形を作成する流れが紹介されています。ただし、Teams CLIは公式ドキュメント上でPreviewとされています。SDK本体のPythonサポートがGAになったことと、周辺CLIの提供状態は分けて考える必要があります。(Microsoft GitHub)

例として、エコーエージェントの作成コマンドは次のような形です。

npm install -g @microsoft/teams.cli@preview
teams project new python quote-agent --template echo
cd quote-agent
python src/main.py

この流れでは、appPackage配下にTeamsアプリ用のマニフェストやアイコンが作成され、src/main.pyがPythonアプリの入口になります。公式ドキュメントでは、起動後にHTTPサーバーがポート3978で待ち受ける例が示されています。(Microsoft GitHub)

既存のFastAPIなどに追加する場合

すでにFastAPIなどのPythonサーバーを運用している場合は、Teams用にまったく別のアプリを立てるのではなく、既存サーバーへSDKを組み込む構成も検討できます。公式クイックスタートでは、FastAPIAdapterを使って既存のFastAPIアプリにTeamsエンドポイントを登録する例が示されています。(Microsoft GitHub)

この方式が向いているのは、次のようなケースです。

  • 既存のAPIサーバーにTeams Botの入口を追加したい
  • 社内向けAIサービスのUIとしてTeamsを使いたい
  • 既存の認証、ログ、監視、デプロイ基盤を流用したい
  • Teams連携だけのために別スタックを増やしたくない

ただし、既存サーバーに組み込む場合でも、Teams側から到達できるHTTPSエンドポイント、認証情報、マニフェスト、テナントポリシーの確認は必要です。

Teamsで動かすために確認する設定

ローカルでPythonアプリが動くだけでは、Teams上で利用できる状態にはなりません。Teamsにインストールするには、アプリの登録、マニフェスト、エンドポイント、テナント側のカスタムアプリ設定を確認する必要があります。

公式ドキュメントでは、Teamsで動かす前提として、Teams CLIのインストール、カスタムアプリのアップロードが有効なMicrosoft 365アカウント、ローカルサーバーに向けた公開HTTPSトンネルが必要とされています。teams statusでSideloadingが有効か確認し、無効な場合はテナント管理者による設定が必要です。(Microsoft GitHub)

確認項目見るべき内容未確認の場合に起きやすい問題
PythonバージョンPython 3.12以上、パッケージ要件との整合性インストール失敗、依存関係エラー
パッケージ名microsoft-teams-appsを使っているか別用途パッケージを入れて動かない
Teams CLIPreviewであることを理解して使う本番手順にそのまま組み込みすぎる
カスタムアプリアップロードテナントでサイドロードが許可されているかTeamsにアプリを追加できない
HTTPSエンドポイントTeamsから到達できるURLかメッセージがBotに届かない
マニフェストApp ID、スコープ、権限、アイコンが正しいかインストール失敗、権限不足
認証方式Client Secret、Managed Identity、Federated Identityなど送信・Graph連携・SSOで失敗
Graph権限ユーザー委任かアプリ権限かデータ取得エラー、同意フローの混乱
ログと監視受信、送信、認証失敗を追えるか本番障害時に原因が分からない

Teamsアプリやエージェントをインストールするには、manifest.jsonを含むアプリマニフェストが必要です。サイドロード時には、マニフェストとアイコンを含むzipを用意する必要があります。Teams CLIを使う場合は、マニフェストの生成、検証、更新をコマンドで扱えます。(Microsoft GitHub)

認証とMicrosoft Graph連携で失敗しやすいポイント

PythonサポートGAで開発しやすくなったとはいえ、Teamsアプリの認証設計が不要になるわけではありません。むしろ、Microsoft Graphやユーザーごとのデータアクセスを扱う場合は、ここが本番導入の成否を分けます。

Microsoft Teams SDKのドキュメントでは、Teams Botがメッセージを送信するにはAzureとの認証設定が必要であり、認証方式としてClient Secret、User Managed Identity、Federated Identity Credentialsが示されています。セキュリティ要件が高い本番環境では、単にClient Secretを発行して終わりではなく、シークレット管理、ローテーション、権限最小化をあわせて考えるべきです。(Microsoft GitHub)

ユーザー認証では、OAuthとSSOの使い分けも重要です。公式ドキュメントでは、Microsoft Entra IDでユーザー認証する場合はSSOの利用が推奨されており、SSOは既存のTeamsサインイン状態を活用できます。一方、OAuthはMicrosoft Entra ID以外のIDプロバイダーも扱えますが、ユーザー体験やトークン更新の挙動が異なります。(Microsoft GitHub)

実務では、次のように整理すると判断しやすくなります。

やりたいこと推奨される確認観点
Teamsユーザー本人の予定表やプロフィールを参照したいSSO、委任権限、ユーザー同意、管理者同意
アプリとしてバックグラウンド処理したいアプリ権限、管理者同意、Graphの権限範囲
外部SaaSのアカウントと連携したいOAuthプロバイダー、トークン保管、再認証フロー
部門限定でBotを使わせたいTeamsアプリポリシー、対象ユーザー、アプリカタログ
本番で長期運用したいManaged IdentityやFederated Identityの利用可否、監査ログ

ありがちな失敗は、開発者がローカルで動作確認できた段階で「Teams連携は完成」と判断してしまうことです。本番では、ユーザー同意、管理者同意、Graph権限、アプリポリシー、条件付きアクセス、監査要件が絡みます。開発初期からMicrosoft 365管理者とセキュリティ担当を巻き込む方が、後戻りを減らせます。

Microsoft 365 Copilot連携を検討する場合の注意点

Microsoft Teams SDKのPythonサポートGAにより、Pythonで作ったエージェントをTeams体験に組み込みやすくなりました。ただし、Python SDKを入れただけで自動的にMicrosoft 365 Copilot上に表示されるわけではありません。

公式ドキュメントでは、TeamsアプリやエージェントをM365 Copilotで利用可能にするには、Teams CLIでcopilotスコープを追加し、マニフェストのcopilotAgents.customEngineAgentsブロックを更新する流れが示されています。手動でマニフェストを編集する場合も、再パッケージ化と再インストールが必要です。(Microsoft GitHub)

Copilot連携を検討する場合は、次を事前に確認してください。

  • そのエージェントをCopilot上に出す業務上の必要性があるか
  • ユーザーがどのデータにアクセスできるか
  • 回答に含めてよい情報と含めてはいけない情報を分けられるか
  • Teams内Botとしての利用範囲とCopilot上の利用範囲を分けて管理できるか
  • マニフェスト更新後の再同意、再インストール、バージョン管理を運用できるか

特に社内データを扱うエージェントでは、「作れるか」よりも「誰に、どの範囲で、どのデータを使わせるか」が重要です。

移行や導入を判断するための実務チェックリスト

既存のTeamsアプリやBotがある場合、最初から全面移行を前提にする必要はありません。まずは、Python SDKを使うことで明確なメリットがある領域を切り出して検証するのが現実的です。

既存アプリを移行する前に見るポイント

判断項目Python SDKを検討しやすい条件移行を急がなくてよい条件
開発言語AI、データ処理、業務ロジックがPython中心既存チームがTypeScript/.NET中心
機能要件対話、Graph連携、Adaptive Cards、認証が必要一方向通知だけで足りる
保守性Pythonに統一するとコード量や運用負荷が減る移行で二重管理が増える
本番運用認証、監視、権限管理を整備できる管理者承認や監査設計が未整理
ユーザー体験Teams上で自然な会話UIを提供したい既存画面や別Webアプリで問題ない

移行の第一歩は、既存機能の棚卸しです。たとえば「通知だけ」「簡単なFAQ応答」「ユーザー認証付きのGraph参照」「生成AIを使う業務エージェント」では、必要な設計が大きく異なります。

プレビュー版やサンプルを使っていた場合

すでにプレビュー版のPython SDKや古いサンプルコードを試していた場合は、次を確認してください。

  • requirements.txtやpyproject.tomlのパッケージ名とバージョン
  • Pythonバージョンの要件
  • インポートパスやAPI呼び出しの変更有無
  • マニフェストのスコープ、Bot ID、エンドポイント
  • OAuth、SSO、Graph権限の設定
  • Teams CLIやAgents Toolkitのバージョン
  • ローカル、検証、本番の環境変数差分

特に、プレビュー時代のコードをそのまま本番へ持ち込むのは避けるべきです。まずは小さなBotでメッセージ受信、返信、認証、Graphアクセス、Teamsへのインストールまでを一通り確認し、その後に既存ロジックを組み込みます。

導入するなら小さな業務ユースケースから始める

Microsoft Teams SDKのPythonサポートGAを活かすなら、最初の検証テーマは小さく切るのがおすすめです。いきなり全社向けAIエージェントを作るより、対象ユーザー、扱うデータ、失敗時の影響が限定された業務から始める方が成功しやすくなります。

たとえば、次のようなユースケースは検証に向いています。

ユースケース検証しやすい理由注意点
社内FAQ Bot入力と回答の流れがシンプル誤回答時の案内文を用意する
運用アラートの対話型確認既存Python監視基盤と相性がよい誤操作を防ぐ確認ステップが必要
申請状況の確認BotGraphや業務API連携の検証になる個人情報や権限管理に注意
会議前の情報整理エージェントTeams利用シーンと自然につながる参照データの範囲を明確にする
部門限定のナレッジ検索RAGやPython製検索基盤を活かせるアクセス制御とログ管理が必須

最初のPoCでは、技術的な派手さよりも「Teamsで使うと本当に業務が短縮されるか」を見てください。Teams内で完結する価値がない場合、通常のWebアプリやPower Automateの方が適していることもあります。

管理者と開発者で分担して確認すること

このアップデートは開発者向けですが、本番導入にはMicrosoft 365管理者の関与が欠かせません。開発者だけで進めると、最後にサイドロード、アプリポリシー、Graph権限、管理者同意で止まりやすくなります。

担当主な確認内容
Python開発者SDK導入、メッセージ処理、Graph呼び出し、エラー処理
Teamsアプリ開発者マニフェスト、スコープ、Adaptive Cards、インストール手順
Microsoft 365管理者カスタムアプリアップロード、アプリポリシー、組織カタログ
ID管理担当Entra ID、SSO、OAuth、管理者同意、条件付きアクセス
セキュリティ担当権限最小化、ログ、監査、データ保持、秘密情報管理
運用担当デプロイ、監視、障害対応、バージョン更新

特に本番化前には、「誰がアプリを使えるか」「どのデータにアクセスするか」「回答や操作のログをどこまで残すか」を文書化しておくべきです。生成AIを組み込む場合は、誤回答時の責任範囲や人間へのエスカレーション導線も必要になります。

まず取るべき次のアクション

Microsoft Teams SDKのPythonサポートGAは、Python開発者にとってTeamsアプリ開発の選択肢を広げる重要なアップデートです。既存のPython資産をTeamsの会話体験に接続できるため、AIエージェント、業務Bot、Microsoft Graph連携、運用自動化の実装が現実的になります。

まずは次の順番で確認すると、無駄な手戻りを減らせます。

順番やること
1Python 3.12以上の検証環境を用意する
2microsoft-teams-appsで最小Botを作る
3Teamsへのサイドロード可否を確認する
4HTTPSエンドポイントとマニフェストを整える
5OAuth、SSO、Graph権限の要否を判断する
6小さな業務ユースケースでPoCを行う
7管理者承認、監視、権限、運用手順を整えて本番化する

今回のGAで最も重要なのは、「PythonでもTeamsネイティブな体験を作れるようになった」ことです。既存アプリを急いで置き換えるのではなく、Pythonで作る意味がある業務から小さく検証し、認証と管理の設計を早い段階で固めるのが現実的な進め方です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次