Mails.ai
for Bolt
Bolt built the app. The mails.ai call sits in a server function, the key in Secrets.
Try it
Things to ask Bolt
Copy any prompt into Bolt and the agent does the rest with the mails tools.
“Add a signup flow that sends a welcome email from the hello agent”
“Email me each new order through mails.ai from a server function”
“On Pro (5 agents), create an agent called orders for order confirmations”
“Send a test from the hello agent to reply@test.mails.ai”
“List the open threads for the hello agent”
“How healthy is the hello agent’s sending reputation?”
Step by step
Add mails to Bolt
A custom connector lets Bolt use your agents while it builds. The app it makes sends through the API, with the key kept in Secrets.
Open Connectors
On the Bolt home page, click + in the chatbox, then Connectors, then Manage connectors.
Add a custom MCP server
Name it
mails, enterhttps://api., choose HTTP as the transport and MCP OAuth to sign in. Click Connect and wait for Connected.mails. ai/mcp Switch it on in a project
In the project’s chatbox, open + → Connectors and turn mails on, or tick Auto-enable for all projects.
Keep the key in Secrets
Open the database icon → Secrets, add
MAILS_API_KEYand click Create secret. Your app’s server functions read it to call the API.
curl https://api.mails.ai/v1/messages \
-H "Authorization: Bearer $MAILS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"from": "orders",
"to": "you@yourcompany.com",
"subject": "New order #10473",
"body_text": "A new order just came in."
}'“Replies come back as events with an injection score already on them. We deleted a whole layer of parsing code the week we switched, and we gate on the quarantine flag, so our agent never sees the ones that look like attacks.”
“Moving our agent onto our own domain was a few DNS records at the registrar. No nameserver move, and our existing mail kept working. Replies to the agent still come back to its inbox, threaded with the message they answer.”
“The 422 on cold outreach is the feature I didn’t know I wanted. An agent can’t talk itself into emailing strangers.”
“Our tests send to the test address and wait for the real reply, so the whole loop is covered before a customer ever writes in. It answers in about a second, which keeps the suite fast.”
“Adding the MCP server was one JSON block. Claude Code could send and read its own inbox a minute later.”
“A reputation score per agent tells us exactly which one needs attention, instead of one number for the whole account. It comes from each agent’s own replies, bounces and complaints, and we read it from the API.”
“Sends and replies have separate allowances, so a busy inbox never eats our sending quota. Pricing was the easy part.”
“Half our agents are LangGraph in Python and half are Node. Both SDKs make the same calls, so the team doesn’t have to think about it.”
“Signed webhooks, retries with backoff and an event id to dedupe on. The boring plumbing, done properly.”
“We signed up, made a key and sent our first message without talking to anyone, and the free tier never asked for a card. That’s how infrastructure should feel.”
Give your first agent an inbox
Free covers 3,000 emails and 3,000 inbound replies a month, with no card. Upgrade when your agents get busy.
Get your API key