Send email from LangChain
Our tools as LangChain tools, through the MCP adapter.
Remote server, nothing to install
Setup
from langchain_mcp_adapters.client import MultiServerMCPClient
client = MultiServerMCPClient({
"sending": {
"transport": "streamable_http",
"url": "https://sending.dev/api/mcp",
"headers": {"Authorization": "Bearer sk_your_api_key"},
}
})
tools = await client.get_tools()Create the API key under Settings › API Keys. The plaintext token is shown once, at creation.
The thing that catches people
`get_tools()` is awaitable, and the tools it returns open a new MCP session per call. For a run that sends several emails hold one session open with `client.session("sending")` instead.
Check it works
`len(tools)` matches the tool count listed on this page.
What it can do once connected
85 tools: send transactional email and campaigns, manage contacts and lists, build and activate automations, run an inbox that receives and replies, and read back why a message never went out. All of it inside verified domains, suppression, idempotency, spend caps and an audit log, enforced on our servers rather than in the prompt.
Other clients
Claude Code
Send email from the terminal, inside the session you are already in.
Claude Desktop
Give Claude an email stack without pasting a secret anywhere.
claude.ai
The same connector, in the browser.
ChatGPT
Custom connectors, and the API path where a key still works.
Cursor
Email tools in the editor where you are writing the app that sends them.
VS Code
GitHub Copilot with a mailer attached, and the key never committed.

