Duva integration
Duva is a transactional email API hosted in Canada. Send email (HTML or text, attachments, tags, metadata, optional open and click tracking) from your verified sending domain, read each message's per-recipient delivery status and the domain's delivery events (delivered, bounced, deferred, expired, complained, opened, clicked), read daily or hourly delivery statistics, manage the domain's suppression list and register webhook endpoints. Every new account starts in the free sandbox (100 emails a month, at most 5 recipients per message, no attachments); paid plans have fixed monthly limits and sends past a limit are refused. SMTP submission and dashboard tasks (adding and verifying domains, creating API keys, billing) are not exposed. Authentication is an API key created for one domain in the Duva dashboard (API keys screen), sent as a Bearer token, together with that domain name.
Say what should happen.
The workflow builds itself.
What you can do with Duva
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Webhook, 4 operations
create_webhookCreate webhookPOSTAgents: ask firstRegisters a public https URL that Duva POSTs each delivery event to (at most five per domain), for a receiver that does not check signatures: Duva shows the signing secret only once, in the creation answer, and this tool withholds it.delete_webhookDelete webhookDELETEAgents: ask firstDeletes a webhook endpoint for good: Duva stops sending events to it and abandons its pending deliveries.get_webhookGet webhookGETAgents: ask firstReturns one webhook endpoint by id (from list_webhooks): its URL, event types, status (active or disabled), the reason it was disabled (410 Gone, too many consecutive failures) and creation time. The secret is never returned.list_webhooksList webhooksGETAgents: ask firstLists the domain's webhook endpoints (at most five): id, URL, subscribed event types, status (active or disabled), why one was disabled and when it was created. The signing secret is never returned.
Suppression, 3 operations
add_suppressionAdd suppressionPOSTAgents: ask firstAdds an email address to the domain's suppression list (reason manual): Duva will send it nothing more from this domain. Returns the entry, whether it was just added or was already listed.list_suppressionsList suppressionsGETAgents: ask firstLists the email addresses this domain no longer sends to (hard bounce, complaint, unsubscribe or manual), with the reason and the message that caused it. Pass next_cursor as cursor for the next page. Contains email addresses.remove_suppressionRemove suppressionDELETEAgents: ask firstRemoves an email address from the domain's suppression list so it can receive mail again. Fails with not found when it is not on this domain's list. Re-mailing an address that bounced or complained harms sending reputation.
Email, 1 operation
send_messageSend messagePOSTAgents: ask firstSends a real email from your Duva domain to every address in to, cc and bcc (one copy each). Answers at once with the message id and status queued, never a delivery: follow it with get_message or list_events. Counts against the plan quota.
Event, 1 operation
list_eventsList eventsGETAgents: ask firstLists the domain's delivery events (delivered, bounced, deferred, expired, complained, opened, clicked), newest first, by message, type, recipient or start time. Pass next_cursor as cursor for the next page. Contains recipient addresses.
Message, 1 operation
get_messageGet messageGETAgents: ask firstReturns one message by id (from send_message or list_events): its status (that of its least advanced recipient), sender, subject, tags, metadata, tracking and each recipient's address, name and status. Contains email addresses (personal data).
Service, 1 operation
get_healthGet healthGETAgents: ask firstChecks whether the Duva service is up: returns status ok when it works; the call fails with HTTP 503 when its database is unreachable. Uses no domain and no quota.
Statistics, 1 operation
get_delivery_statsGet delivery statsGETAgents: ask firstReturns the domain's delivery counters per UTC day or hour (accepted, suppressed, delivered, bounced, deferred, expired, complained, opened, clicked) and their totals. At most 366 days, or 7 days by hour.
Webhook delivery, 1 operation
list_webhook_deliveriesList webhook deliveriesGETAgents: ask firstLists the latest deliveries to one webhook endpoint: event id, status (pending, delivered or failed), attempts, last HTTP status code, a fixed error text (HTTP 500, connection failed) and timestamps.
Use Duva from Claude Code, Cursor or Codex
Connect Duva in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Duva operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Duva
- Create your workspace
Sign up free. Nothing to install.
- Connect Duva once
Add your Duva connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Duva integration FAQ
What can you do with the Duva integration?
LiveContext exposes 13 operations on Duva, covering webhook, suppression, email and event.
