LlamaIndex tools for MultiMail -- give your LlamaIndex agents email capabilities
Project description
llamaindex-multimail
LlamaIndex tools for MultiMail -- give your LlamaIndex agents email capabilities with graduated human oversight.
Installation
pip install llamaindex-multimail
Quick Start
from llama_index.core.agent import ReActAgent
from llama_index.llms.openai import OpenAI
from llamaindex_multimail import MultiMailToolSpec
# Create tools from your API key
tool_spec = MultiMailToolSpec(api_key="mm_live_your_api_key")
tools = tool_spec.to_tool_list()
# Create agent
llm = OpenAI(model="gpt-4o")
agent = ReActAgent.from_tools(tools, llm=llm, verbose=True)
# Run
response = agent.chat("Check mailbox 'mbx_123' for new emails")
print(response)
Available Tools
| Tool | Description |
|---|---|
send_email |
Send an email (held for approval if gated) |
check_inbox |
List recent emails in a mailbox |
read_email |
Read the full content of an email |
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 tags to an email for classification |
Oversight Modes
MultiMail supports graduated oversight so your agent doesn't send unsupervised email:
gated_all-- Agent drafts, human approves everythinggated_send-- Agent reads freely, human approves outbound (default)monitored-- Agent sends, human can review afterautonomous-- 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 with Other LlamaIndex Patterns
The MultiMailToolSpec follows the standard LlamaIndex BaseToolSpec pattern, so it works with any agent framework that accepts LlamaIndex tools:
from llamaindex_multimail import MultiMailToolSpec
spec = MultiMailToolSpec(api_key="mm_live_your_api_key")
# Get all tools
tools = spec.to_tool_list()
# Or get a specific tool
send_tool = spec.to_tool_list(func_to_metadata_mapping={
"send_email": {"name": "send_email", "description": "Send an email"},
})
Links
- MultiMail -- Homepage & docs
- multimail -- Base Python SDK
- langchain-multimail -- LangChain integration
- MCP Server -- For Claude, Cursor, and other MCP clients
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 llamaindex_multimail-0.1.0.tar.gz.
File metadata
- Download URL: llamaindex_multimail-0.1.0.tar.gz
- Upload date:
- Size: 5.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
98b014bc9060a0c0619aa0532d205c5b5f3c273f2c586fafc4366e4b54ad08b3
|
|
| MD5 |
ed7cb172e1d71729a00eb1f45881c6a8
|
|
| BLAKE2b-256 |
2bafb63d88af110576d0de788eb7b72c8b28cb778444497627c3f245d8638498
|
File details
Details for the file llamaindex_multimail-0.1.0-py3-none-any.whl.
File metadata
- Download URL: llamaindex_multimail-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
311cf5a1114b063c82c719b42b5d4d5536e6f218b1f97f386f335c338242c4c0
|
|
| MD5 |
cf465add6e3f14d1c33eff592935ab92
|
|
| BLAKE2b-256 |
770a2ec0d4f0bcb38bc1719145211f95a04a20e3665e1e5f70222f52bc688e4d
|