Microsoft Teams notifications tool for Strands Agents SDK
Project description
strands-teams
Microsoft Teams notifications tool for Strands Agents SDK. Enables powerful adaptive card notifications and rich messaging for AI agents.
Features
- Adaptive Cards: Rich, interactive message cards
- Pre-built Templates: Notifications, approvals, status updates
- Custom Cards: Full adaptive card schema support
- Action Buttons: Add interactive elements to messages
- Rich Formatting: Markdown support, images, and media
- Type Safe: Full type hints and validation
- Easy Integration: Drop-in tool for Strands agents
Requirements
- Python 3.9+
- Strands Agents SDK 1.11.0+
- Microsoft Teams webhook URL
Installation
pip install strands-teams
Quick Start
from strands import Agent
from strands_teams import teams
# Create an agent with Teams tool
agent = Agent(tools=[teams])
# Simple notification
agent("send a Teams message: New lead from Acme Corp")
# Use pre-built templates
agent("send an approval request to Teams for the Q4 budget")
# Status updates
agent("send a status update to Teams: website redesign is 75% complete")
Configuration
Set your Teams webhook URL as an environment variable:
TEAMS_WEBHOOK_URL=your_webhook_url # Optional - can be provided per call
Setup webhook: Teams Channel → Connectors → Incoming Webhook
Supported Templates
Notification Template
agent("send a notification to Teams about new sales leads")
Features:
- Color-coded cards (default, good, attention, warning, accent)
- Title and message content
- Markdown formatting support
Approval Template
agent("send an approval request to Teams for budget approval")
Features:
- Attention-grabbing style
- Approve and Reject action buttons
- Detailed description section
Status Update Template
agent("send a status update to Teams: project is 75% complete")
Features:
- Project and status information
- Color-coded by status
- Status emojis (✅, 🔄, ⏸️, 🚫, ❌)
Simple Message
agent("send a simple message to Teams: Meeting in 15 minutes")
Features:
- Basic title and message
- Clean formatting
- Quick notifications
Custom Adaptive Cards
You can send fully custom adaptive cards:
from strands import Agent
from strands_teams import teams
agent = Agent(tools=[teams])
agent("""
Send this custom Teams card:
{
"type": "AdaptiveCard",
"version": "1.3",
"body": [
{
"type": "TextBlock",
"text": "Custom Card",
"weight": "Bolder",
"size": "Large"
}
]
}
""")
For more information on adaptive cards, see: adaptivecards.io
Testing
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Links
- PyPI: pypi.org/project/strands-teams
- GitHub: github.com/eraykeskinmac/strands-teams
- Strands Agents SDK: github.com/strands-agents/strands
- Adaptive Cards: adaptivecards.io
Built for the Strands community 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file strands_teams-0.1.0.tar.gz.
File metadata
- Download URL: strands_teams-0.1.0.tar.gz
- Upload date:
- Size: 11.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
249880da419bb2d27776df87fc2c3d417190273ab1497e2f4d54492b5d3dcd87
|
|
| MD5 |
60b25a7a0718d6f4e26b930e6b1e5571
|
|
| BLAKE2b-256 |
7ca2c26c3fdeea725ba7a66ecc2807857179e2764af9d82a0e8f97b22e81c60b
|
Provenance
The following attestation bundles were made for strands_teams-0.1.0.tar.gz:
Publisher:
publish.yml on eraykeskinmac/strands-teams
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strands_teams-0.1.0.tar.gz -
Subject digest:
249880da419bb2d27776df87fc2c3d417190273ab1497e2f4d54492b5d3dcd87 - Sigstore transparency entry: 606671670
- Sigstore integration time:
-
Permalink:
eraykeskinmac/strands-teams@b5d4819cb251ea57e6a4aa16bd6621fc26fad900 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/eraykeskinmac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b5d4819cb251ea57e6a4aa16bd6621fc26fad900 -
Trigger Event:
release
-
Statement type:
File details
Details for the file strands_teams-0.1.0-py3-none-any.whl.
File metadata
- Download URL: strands_teams-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d087ece5bed0774b68bcd6c4e0119e0356d1e68dd47e2679aeb3d09a7c0c33c
|
|
| MD5 |
16e4459e76e20f8e6c777d5855984804
|
|
| BLAKE2b-256 |
39da9651ed40f9affa2699132a8a69a6d83e3e69f76637d2deca93a95c9e4c4d
|
Provenance
The following attestation bundles were made for strands_teams-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on eraykeskinmac/strands-teams
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
strands_teams-0.1.0-py3-none-any.whl -
Subject digest:
2d087ece5bed0774b68bcd6c4e0119e0356d1e68dd47e2679aeb3d09a7c0c33c - Sigstore transparency entry: 606671681
- Sigstore integration time:
-
Permalink:
eraykeskinmac/strands-teams@b5d4819cb251ea57e6a4aa16bd6621fc26fad900 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/eraykeskinmac
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b5d4819cb251ea57e6a4aa16bd6621fc26fad900 -
Trigger Event:
release
-
Statement type: