Skip to main content

Microsoft Teams notifications tool for Strands Agents SDK

Project description

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.

Links


Built for the Strands community 🚀

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

strands_teams-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

strands_teams-0.1.0-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

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

Hashes for strands_teams-0.1.0.tar.gz
Algorithm Hash digest
SHA256 249880da419bb2d27776df87fc2c3d417190273ab1497e2f4d54492b5d3dcd87
MD5 60b25a7a0718d6f4e26b930e6b1e5571
BLAKE2b-256 7ca2c26c3fdeea725ba7a66ecc2807857179e2764af9d82a0e8f97b22e81c60b

See more details on using hashes here.

Provenance

The following attestation bundles were made for strands_teams-0.1.0.tar.gz:

Publisher: publish.yml on eraykeskinmac/strands-teams

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for strands_teams-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2d087ece5bed0774b68bcd6c4e0119e0356d1e68dd47e2679aeb3d09a7c0c33c
MD5 16e4459e76e20f8e6c777d5855984804
BLAKE2b-256 39da9651ed40f9affa2699132a8a69a6d83e3e69f76637d2deca93a95c9e4c4d

See more details on using hashes here.

Provenance

The following attestation bundles were made for strands_teams-0.1.0-py3-none-any.whl:

Publisher: publish.yml on eraykeskinmac/strands-teams

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page