Send email from ChatGPT
Custom connectors, and the API path where a key still works.
Remote server, nothing to install
Setup
Settings › Apps › Advanced settings › Developer mode
Then: Create / Add custom connector → https://sending.dev/api/mcp{
"model": "gpt-5",
"tools": [{
"type": "mcp",
"server_label": "sending",
"server_url": "https://sending.dev/api/mcp",
"authorization": "sk_your_api_key",
"require_approval": "always"
}],
"input": "How many emails do I have left this month?"
}Create the API key under Settings › API Keys. The plaintext token is shown once, at creation.
The thing that catches people
In the app there is no way to pass an API key: custom connectors accept OAuth or nothing. And `require_approval: "never"` removes the human step in front of tools that really send, so pair it with read-only scopes or the plan caps.
Check it works
Ask the agent to call get_usage. It is read-only, it sends nothing, and it answers with your plan, this month's quota and the capacity limits. If you get JSON back, the install is fine.
What it can do once connected
71 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.
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.
Windsurf
Through the mcp-remote bridge, because Windsurf speaks stdio.

