Skip to main content

CrewAI tools for MultiMail — give your CrewAI agents email capabilities

Project description

crewai-multimail

CrewAI tools for MultiMail — give your CrewAI agents email capabilities with graduated human oversight.

Installation

pip install crewai-multimail

Quick Start

from crewai import Agent, Task, Crew
from crewai_multimail import MultiMailToolkit

# Create tools from your API key
toolkit = MultiMailToolkit(api_key="mm_live_your_api_key")
tools = toolkit.get_tools()

# Create an agent with email capabilities
email_agent = Agent(
    role="Email Assistant",
    goal="Help the user manage their email inbox",
    backstory="You are a helpful email assistant that reads, triages, and drafts replies.",
    tools=tools,
    verbose=True,
)

# Define a task
task = Task(
    description="Check mailbox YOUR_MAILBOX_ID for new emails and summarize them.",
    expected_output="A summary of recent emails with sender, subject, and urgency.",
    agent=email_agent,
)

# Run the crew
crew = Crew(agents=[email_agent], tasks=[task], verbose=True)
result = crew.kickoff()
print(result)

Available Tools

Tool Description
check_inbox List recent emails in a mailbox
read_email Read the full content of an email
send_email Send an email (held for approval if gated)
reply_email Reply to an existing email thread
search_contacts Search contacts by name or email
list_pending List emails awaiting human approval
decide_email Approve or reject a pending email
get_thread Get all emails in a conversation
tag_email Add key-value tags to an email

Oversight Modes

MultiMail supports graduated oversight so your agent doesn't send unsupervised email:

  • gated_all — Agent drafts, human approves everything
  • gated_send — Agent reads freely, human approves outbound (default)
  • monitored — Agent sends, human can review after
  • autonomous — Full agent control

When a mailbox uses gated oversight, send_email returns pending_send_approval and the email waits for human review. The agent can check status with list_pending.

Using Individual Tools

from multimail import MultiMail
from crewai_multimail import CheckInboxTool, SendEmailTool

client = MultiMail("mm_live_your_api_key")

inbox_tool = CheckInboxTool(client=client)
send_tool = SendEmailTool(client=client)

# Use directly
result = inbox_tool.run(mailbox_id="your_mailbox_id", limit=5)
print(result)

Multi-Agent Crew Example

See examples/support_crew.py for a full example with a triage agent and a responder agent working together as a crew.

Links

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

crewai_multimail-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

crewai_multimail-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file crewai_multimail-0.1.0.tar.gz.

File metadata

  • Download URL: crewai_multimail-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for crewai_multimail-0.1.0.tar.gz
Algorithm Hash digest
SHA256 db3ab547922d0e2d4843e74c17900039747ea1e042ad275f7d284898e6a0bcc1
MD5 f1b76683bd3a71c56aadc292fb5b0264
BLAKE2b-256 7e3dabed57a7e2e9120c52bc5485165df7ddadf73777361a3f60e9f46204fcb2

See more details on using hashes here.

File details

Details for the file crewai_multimail-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for crewai_multimail-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6963045e6bab8d3a95848cc4b45d323290b6c36e075555349fb351075eba43dd
MD5 aa98db6a9403235efc500cc81ad11f17
BLAKE2b-256 eb2aedb166e957223aee49bb073e6fe2c0074cbb941512dcf28e991adc37c559

See more details on using hashes here.

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