Metadata-Version: 2.4
Name: siren-agent-toolkit
Version: 0.1.1
Summary: Agent toolkit for Siren notification platform
Project-URL: Homepage, https://github.com/KeyValueSoftwareSystems/siren-agent-toolkit
Project-URL: Repository, https://github.com/KeyValueSoftwareSystems/siren-agent-toolkit.git
Project-URL: Documentation, https://docs.trysiren.io
Project-URL: Bug Tracker, https://github.com/KeyValueSoftwareSystems/siren-agent-toolkit/issues
Author-email: Siren <support@trysiren.io>
License: MIT
Keywords: agent,ai,crewai,langchain,notifications,openai,siren,toolkit
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Requires-Dist: pydantic>=2.0.0
Requires-Dist: trysiren>=0.1.1
Provides-Extra: all
Requires-Dist: crewai-tools>=0.1.0; extra == 'all'
Requires-Dist: crewai>=0.1.0; extra == 'all'
Requires-Dist: langchain-core>=0.1.0; extra == 'all'
Requires-Dist: langchain>=0.1.0; extra == 'all'
Requires-Dist: openai>=1.0.0; extra == 'all'
Provides-Extra: crewai
Requires-Dist: crewai-tools>=0.1.0; extra == 'crewai'
Requires-Dist: crewai>=0.1.0; extra == 'crewai'
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: flake8>=6.0.0; extra == 'dev'
Requires-Dist: isort>=5.12.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: python-dotenv>=1.0.0; extra == 'dev'
Provides-Extra: langchain
Requires-Dist: langchain-core>=0.1.0; extra == 'langchain'
Requires-Dist: langchain>=0.1.0; extra == 'langchain'
Provides-Extra: openai
Requires-Dist: openai>=1.0.0; extra == 'openai'
Description-Content-Type: text/markdown

# Siren Agent Toolkit (Python)

The **Siren Agent Toolkit** provides a unified Python interface and agent tools for interacting with the Siren MCP (Model Context Protocol) platform. It enables messaging, template management, user management, workflow automation, and webhook configuration, with seamless integration into popular agent frameworks like LangChain, OpenAI, and CrewAI.

## Features & Capabilities

### Messaging
- Send messages via various channels (Email, SMS, WhatsApp, Slack, Teams, Discord, Line, etc.)
- Retrieve message status and replies
- Support for template-based and direct messaging

### Templates
- List, create, update, delete, and publish notification templates
- Create and manage channel-specific templates
- Support for template variables and versioning

### Users
- Add, update, and delete users
- Manage user attributes and contact information

### Workflows
- Trigger workflows (single or bulk operations)
- Schedule workflows for future or recurring execution
- Pass custom data to workflow executions

### Webhooks
- Configure webhooks for status updates
- Set up inbound message webhooks
- Optional webhook verification with secrets

## 📋 Requirements

- A Siren API key (get one from [Siren Dashboard](https://app.trysiren.io/configuration))

## Installation

```bash
pip install siren-agent-toolkit
```

For local development:

```bash
# From the python/ directory
pip install -e .
```

## Usage

### Basic Example

```python
from siren_agent_toolkit.api import SirenAPI

# Initialize with your API key
api = SirenAPI(api_key="YOUR_API_KEY")

# Send a simple email message
result = api.run("send_message", {
    "recipient_value": "user@example.com",
    "channel": "EMAIL",
    "subject": "Important Update",
    "body": "Hello from Siren! This is an important notification."
})
print(result)
```

## Examples

Complete working examples are available in the `examples/` directory:

- `examples/langchain/main.py` — Using Siren tools with LangChain
- `examples/openai/main.py` — Using Siren tools with OpenAI
- `examples/crewai/main.py` — Using Siren tools with CrewAI

## Development

### Configuration

The toolkit supports flexible configuration options:

```python
from siren_agent_toolkit.api import SirenAPI

api = SirenAPI(
    api_key="YOUR_API_KEY",
    context={"env": "production"}  # Optional environment configuration
)
```

### Building Locally

```bash
# From the python/ directory
pip install -e .
# Install development dependencies
pip install -r requirements.txt
```

### Running Tests

```bash
pytest tests/
```
## License

MIT