Microsoft Teams SDK for Python
April 30, 2026 · View on GitHub
Note
Our Python SDK is now Generally Available!
Microsoft Teams SDK for Python
A comprehensive SDK for building Microsoft Teams applications, bots, and AI agents using Python. This SDK provides a high-level framework with built-in Microsoft Graph integration, OAuth handling, and extensible plugin architecture.
Questions & Issues
-
Questions or Feature Requests: Please use GitHub Discussions
-
Bug Reports: Please open an issue
Getting Started
Prerequisites
- UV version is >= 0.8.11. Install and upgrade from docs.astral.sh/uv.
- Python version is >= 3.12. Install or upgrade from python.org/downloads.
- (Optional) .NET SDK +
nbgvCLI for real version numbers. Without it, packages build as0.0.0which is fine for local development. See RELEASE.md for details.
Installation
1. Install the dependencies.
uv sync --all-packages --group dev
2. Activate the virtual env
Note: After the initial setup, you need to activate the virtual environment each time you start a new terminal session
# On Mac
`source .venv/bin/activate`
# On Windows
`.venv\Scripts\Activate`
3. Install the pre-commit hooks
pre-commit install
Packages
ℹ️ core packages used to build client/server apps for Teams.
microsoft-teams-appsmicrosoft-teams-apimicrosoft-teams-cardsmicrosoft-teams-commonmicrosoft-teams-graphmicrosoft-teams-botbuilder
Create a New Package
We use cookiecutter to create new packages. To create a new package, run:
cookiecutter templates/package -o packages
Follow the prompts to name the package and the directory. It should create the package folder in the packages directory.
Create A New Test Package
Similarly, to create a new test app, run:
cookiecutter templates/examples -o examples
Test Apps
ℹ️ used to test the SDK or as a visual sample of how certain features can be implemented.
⚠️ WARNING these apps are changed often and are not intended to be used outside the projects monorepo. To easily setup a new project please use the templates available via the @microsoft/teams.cli and follow the Getting Started documentation!
@examples/echo@examples/message-extensions@examples/dialogs@examples/graph@examples/stream@examples/oauth@examples/meetings