How to make Claude
send email from chat.
Tell Claude to send an email and it does — by pointing Claude Desktop or the Claude Agent SDK at a Loomal MCP server.
There are two common versions of 'I want Claude to send email.' The first is in Claude Desktop, where you want the chat itself to send messages on your behalf. The second is in a programmatic agent using the Claude Agent SDK, where Claude is the brain inside a larger workflow.
Both use the same underlying mechanism: MCP. Loomal ships an MCP server (@loomal/mcp) that Claude talks to, exposing mail.send, mail.list_messages, mail.reply, vault.get, vault.totp, and more.
Option A: Claude Desktop (no code)
Edit Claude's config file and restart. That's the entire setup. On macOS the file is at ~/Library/Application Support/Claude/claude_desktop_config.json; on Windows it's %APPDATA%\Claude\claude_desktop_config.json. Create it if it doesn't exist.
{
"mcpServers": {
"loomal": {
"command": "npx",
"args": ["-y", "@loomal/mcp"],
"env": {
"LOOMAL_API_KEY": "loid-your-api-key"
}
}
}
}Restart Claude, then use it
Quit Claude completely (Cmd+Q, not just close the window). Reopen it. You should see a tools icon in the chat input. From here, ask Claude to send mail.
Send a thank-you email to alice@example.com for today's demo.
What's in my agent's inbox right now?
Reply to the most recent message about billing — the answer is we prorate refunds.Option B: Claude Agent SDK (code)
For programmatic agents, register the MCP server when constructing the agent. The pattern is the same in TypeScript and Python; here's the TypeScript version.
import { query } from "@anthropic-ai/claude-agent-sdk";
const result = query({
prompt: "Email alice@example.com a follow-up about today's demo.",
options: {
mcpServers: {
loomal: {
command: "npx",
args: ["-y", "@loomal/mcp"],
env: { LOOMAL_API_KEY: process.env.LOOMAL_API_KEY! },
},
},
allowedTools: [
"mcp__loomal__mail_send",
"mcp__loomal__mail_list_messages",
"mcp__loomal__mail_reply",
],
},
});
for await (const message of result) console.log(message);Option C: Claude.ai web app
For the web version of Claude, add MCP servers in Settings → Connectors. Use a publicly reachable HTTP MCP endpoint (the stdio transport won't work in a browser context). This is a paid Pro/Team feature at time of writing.
FAQ
Does this cost Anthropic tokens per email?
The emails themselves don't cost tokens — but when Claude decides to call a tool and read results, those exchanges are part of the conversation and count toward usage. Long inbox lists can burn tokens; filter with labels or limit early.
Can I restrict which tools Claude can call?
Yes. In the SDK, use allowedTools on the query options. In Claude Desktop, tool approval happens per-call (Claude asks before each tool use the first time per session).
Why doesn't the tools icon appear after editing the config?
You probably didn't fully quit Claude. Window close isn't enough — use Cmd+Q (macOS) or right-click the tray icon → Quit (Windows), then reopen.
Related reading
Last updated: 2026-04-15