Skip to main content

strands-teams

PyPI version Python Support License: MIT

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.


Built for the Strands community 🚀

Metadata

Release files for strands-teams 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for strands-teams 0.1.0
File Size Uploaded
strands_teams-0.1.0.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for strands-teams 0.1.0
File Interpreter ABI Platform
strands_teams-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.9 kB

Release files / strands_teams-0.1.0.tar.gz

Download URL strands_teams-0.1.0.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
249880da419bb2d27776df87fc2c3d417190273ab1497e2f4d54492b5d3dcd87
BLAKE2b-256 checksum
How to use checksums
7ca2c26c3fdeea725ba7a66ecc2807857179e2764af9d82a0e8f97b22e81c60b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2025.

Transparency log

Release files / strands_teams-0.1.0-py3-none-any.whl

Download URL strands_teams-0.1.0-py3-none-any.whl
Size 10.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d087ece5bed0774b68bcd6c4e0119e0356d1e68dd47e2679aeb3d09a7c0c33c
BLAKE2b-256 checksum
How to use checksums
39da9651ed40f9affa2699132a8a69a6d83e3e69f76637d2deca93a95c9e4c4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 15, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page