Outreach infrastructure for AI agents
Email and LinkedIn outreach via REST API, TypeScript SDK, and MCP tools. One API key, one client, both channels.
7-day free trial · Card required · Cancel anytime before day 7
The platform under the hood
Two channels. One platform.
Subscribe to either or both. Email-only customers stay email-only. LinkedIn-only customers stay LinkedIn-only. Customers who do multi-channel outreach get one bill, one SDK, one MCP server.
MyAgentMail
Email infrastructure for AI agents
- Provision inboxes on demand on myagentmail.com or your custom domain
- Send via REST or SMTP, receive via webhook or IMAP, threads preserved
- Workspace isolation for resellers — one tenant, many end-customers
LinkedIn Outreach
Login, search, connect — all programmatic
- Email + password login with PIN and mobile-app verification handled for you
- Keyword post search — find people posting about your topic in the last 24h
- Send personalized connection requests. AES-256-GCM encrypted at rest
How agents use it
Same SDK call shape, different channel. Switch channels by changing one method name.
Install one SDK
`npm install myagentmail`, or `npm i -g myagentmail-cli && myagentmail login` for shell + agent loops, or wire the MCP server into Claude Desktop / Cursor / Windsurf and skip the code path entirely.
Authenticate the channel
Provision an email inbox in one call, or sign in to LinkedIn with email + password (we handle challenges).
Outreach
`client.email.send(...)` for email. `client.linkedin.connections.send(...)` for LinkedIn. One key, one client.
import { MyAgentMail } from "myagentmail";
const mam = new MyAgentMail({ apiKey: process.env.MYAGENTMAIL_KEY! });
// Email
const inbox = await mam.inboxes.create({ username: "scout" });
await mam.messages.send(inbox.id, {
to: "[email protected]",
subject: "Saw your post on AI agents",
plainBody: "Hey — would love 15 minutes...",
verified: true,
});
// LinkedIn — same key, same client
const { sessionId } = await mam.linkedin.sessions.import({ liAt, jsessionId });
const { posts } = await mam.linkedin.search.content({
sessionId, keyword: "AI agents", datePosted: "past-24h",
});
for (const p of posts) {
await mam.linkedin.connections.send({
sessionId, target: p.authorProfileUrl,
message: `Hey ${p.authorName.split(" ")[0]} — saw your post...`,
});
}Why one platform, not two
Outreach is rarely single-channel. Buying email and LinkedIn from one vendor saves operational glue and billing overhead — and your agent gets a uniform interface.
One API key
The same tenant key authorizes both products. No juggling credentials per channel.
One agent loop
Same SDK, same MCP tools, same response shapes. Switching channels is a method name, not a refactor.
Independent billing
Subscribe to either product alone or both together. Cancel one without affecting the other.
Already using an email API? MyAgentMail vs Resend · MyAgentMail vs SendGrid · MyAgentMail vs Instantly
Start with whichever channel you need first.
Email is $5/mo. LinkedIn is $29/mo. Add the other later — your existing API key automatically picks it up.