Add email capabilities to Jan's local AI assistant through MCP. Run models offline while managing email through MultiMail's API.
Jan is an open-source desktop AI assistant designed for local-first, privacy-focused AI usage. It runs models directly on your machine with full offline support, and its MCP extension system lets you connect external tools like MultiMail. Your conversations stay local while MultiMail handles the email operations.
MCP servers in Jan are configured through the MCP extension at ~/jan/extensions/mcp/config.json. The extension manages server lifecycle and provides the transport layer for tools. Once configured, MultiMail tools appear in Jan's interface alongside your local model's capabilities.
This integration appeals to privacy-conscious users who want AI email capabilities without sending their conversations to the cloud. Jan processes your prompts locally, and only the specific email actions — sending a message, reading an inbox — touch MultiMail's API. The combination delivers AI-powered email with minimal data exposure.
Sign up at multimail.dev and create an API key from your dashboard. This key authenticates all MCP server requests.
Open Jan's extension manager and install the MCP extension if it's not already installed. This extension provides the infrastructure for connecting MCP servers.
Edit the MCP extension config file at ~/jan/extensions/mcp/config.json and add the MultiMail server.
{
"mcpServers": {
"multimail": {
"command": "npx",
"args": ["-y", "@multimail/mcp-server"],
"env": {
"MULTIMAIL_API_KEY": "mm_live_your_key_here"
}
}
}
}In the MultiMail dashboard, create a mailbox for Jan to use. Start with gated_send oversight mode so all outbound emails require your approval before delivery.
Select a local model that supports function calling. Models like Mistral, Llama 3, or other tool-capable variants work best for reliable MCP tool use.
Start a new conversation in Jan and ask it to list your MultiMail mailboxes. If the MCP extension is configured correctly, you'll see your mailboxes returned.
| Tool | Description | Example |
|---|---|---|
| send_email | Send an email from your agent mailbox to any recipient. | Send a quick update email while working in your local AI assistant. |
| reply_email | Reply to a received email, maintaining the thread context. | Reply to a message with AI-drafted content from your local model. |
| check_inbox | Check a mailbox for new or unread messages. | Check for new emails without leaving your desktop AI app. |
| read_email | Read the full content of a specific email including headers and body. | Read an email and have your local model analyze its tone and intent. |
| create_mailbox | Create a new agent mailbox on your MultiMail account. | Create a dedicated mailbox for a personal project. |
| list_mailboxes | List all mailboxes on your MultiMail account. | View available mailboxes before choosing a sender. |
| get_thread | Retrieve an entire email thread to see the full conversation history. | Get full thread context before composing a detailed reply. |
| search_contacts | Search your contact list by name, email, or tags. | Find a contact's email to send them an update. |
| add_contact | Add a new contact to your MultiMail contact list. | Save a new contact from a received email. |
| tag_email | Tag or categorize an email for organization and filtering. | Tag emails by category for organized retrieval. |
| list_pending | List all emails currently awaiting human approval. | Review pending emails before approving them. |
| decide_email | Approve or reject a pending email in the oversight queue. | Approve a draft email after reviewing its content. |
{
"mcpServers": {
"multimail": {
"command": "npx",
"args": ["-y", "@multimail/mcp-server"],
"env": {
"MULTIMAIL_API_KEY": "mm_live_your_key_here"
}
}
}
}Add this to ~/jan/extensions/mcp/config.json to connect MultiMail.
macOS: ~/jan/extensions/mcp/config.json
Windows: %USERPROFILE%\jan\extensions\mcp\config.json
Linux: ~/jan/extensions/mcp/config.jsonJan's MCP config location varies by operating system.
I need to write a sensitive email to [email protected] about a workplace concern. Help me draft it professionally and empathetically. Once I approve the draft, send it via MultiMail.Use Jan's local model to draft emails privately before sending.
Help me draft three outreach emails to potential partners. Save each draft as a separate message. When I'm back online, I'll ask you to send them through MultiMail.Draft emails offline, then send when connected.
Not all local models support function calling, which is required for MCP tool use. Choose models explicitly trained for tool use, such as Mistral with function calling, Llama 3 Instruct, or similar variants. Smaller quantized models may not invoke tools reliably.
Jan's offline capability means you can draft emails with your local model even without internet. When you reconnect, the MCP server can send the drafted emails through MultiMail. This workflow is useful for composing sensitive emails privately before sending.
With Jan running a local model, your email drafts and prompts never leave your machine. Only the final email content is sent through MultiMail's API when you explicitly trigger a send. This makes Jan ideal for drafting sensitive or confidential correspondence.
Jan includes a model manager that lets you download, switch, and configure models. If one model doesn't handle MCP tools well, try switching to another. The MCP configuration persists across model changes.
Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.