Connect MultiMail to Jan for Local-First AI Email

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.

Get started

1

Get your MultiMail API key

Sign up at multimail.dev and create an API key from your dashboard. This key authenticates all MCP server requests.

2

Install the MCP extension

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.

3

Configure the MultiMail MCP server

Edit the MCP extension config file at ~/jan/extensions/mcp/config.json and add the MultiMail server.

json
{
  "mcpServers": {
    "multimail": {
      "command": "npx",
      "args": ["-y", "@multimail/mcp-server"],
      "env": {
        "MULTIMAIL_API_KEY": "mm_live_your_key_here"
      }
    }
  }
}
4

Create an agent mailbox

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.

5

Choose a tool-capable model

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.

6

Verify the connection

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.


Available MCP tools

ToolDescriptionExample
send_emailSend an email from your agent mailbox to any recipient.Send a quick update email while working in your local AI assistant.
reply_emailReply to a received email, maintaining the thread context.Reply to a message with AI-drafted content from your local model.
check_inboxCheck a mailbox for new or unread messages.Check for new emails without leaving your desktop AI app.
read_emailRead 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_mailboxCreate a new agent mailbox on your MultiMail account.Create a dedicated mailbox for a personal project.
list_mailboxesList all mailboxes on your MultiMail account.View available mailboxes before choosing a sender.
get_threadRetrieve an entire email thread to see the full conversation history.Get full thread context before composing a detailed reply.
search_contactsSearch your contact list by name, email, or tags.Find a contact's email to send them an update.
add_contactAdd a new contact to your MultiMail contact list.Save a new contact from a received email.
tag_emailTag or categorize an email for organization and filtering.Tag emails by category for organized retrieval.
list_pendingList all emails currently awaiting human approval.Review pending emails before approving them.
decide_emailApprove or reject a pending email in the oversight queue.Approve a draft email after reviewing its content.

Usage examples

Jan MCP extension configuration
json
{
  "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.

Config path by platform
text
macOS:   ~/jan/extensions/mcp/config.json
Windows: %USERPROFILE%\jan\extensions\mcp\config.json
Linux:   ~/jan/extensions/mcp/config.json

Jan's MCP config location varies by operating system.

Privacy-focused email workflow
text
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.

Offline drafting with online sending
text
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.


Best practices

Local models need function calling support

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.

Draft offline, send online

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.

Privacy-first email composition

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.

Manage models through Jan's UI

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.


Common questions

Do my conversations stay local when using MultiMail?
Yes. Jan processes your prompts and generates responses using a model running on your machine. Only the specific email operations — sending, reading, and managing emails — communicate with MultiMail's API. Your conversation history, prompts, and drafts stay on your local device.
Can I use MultiMail offline in Jan?
You can draft emails offline using Jan's local model, but sending, reading, and managing emails requires an internet connection to reach MultiMail's API. The offline workflow is: draft emails locally, then send them when you reconnect.
Which local models work best with MCP tools?
Models with explicit function calling or tool use training work best. Look for models labeled as 'Instruct' or 'Function Calling' variants, such as Mistral Instruct, Llama 3 Instruct, or Hermes variants. Smaller models under 7B parameters may struggle with reliable tool invocation.
Where is Jan's MCP config file?
On macOS and Linux, the config is at ~/jan/extensions/mcp/config.json. On Windows, it's at %USERPROFILE%\jan\extensions\mcp\config.json. The MCP extension creates this directory when installed. If the file doesn't exist, create it with the MultiMail server configuration.
Does Jan support multiple MCP servers?
Yes. Add multiple servers to the mcpServers object in the config file, each with its own key. Jan's MCP extension manages the lifecycle of all configured servers and makes their tools available in conversations.

More MCP clients

The only agent email with a verifiable sender

Email infrastructure built for AI agents. Verifiable identity, graduated oversight, and a 38-tool MCP server. Formally verified in Lean 4.